1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT(include/includes.h)
3 AC_CONFIG_HEADER(include/config.h)
4 # we want to be compatibe with older versions of Samba
5 AC_PREFIX_DEFAULT(/usr/local/samba)
7 dnl Unique-to-Samba variables we'll be playing with.
23 # compile with optimisation and without debugging by default
26 AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],
27 [if eval "test x$enable_debug = xyes"; then
32 dnl Checks for programs.
37 dnl Check if C compiler understands -c and -o at the same time
39 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
46 dnl Check if the C compiler understands volatile (it should, being ANSI).
47 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
48 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
49 samba_cv_volatile=yes,samba_cv_volatile=no)])
50 if test x"$samba_cv_volatile" = x"yes"; then
51 AC_DEFINE(HAVE_VOLATILE)
55 #################################################
56 # set codepage directory location
57 AC_ARG_WITH(codepagedir,
58 [ --with-codepagedir=DIR Where to put codepage files (\$libdir/codepages)],
62 # Just in case anybody does it
64 AC_MSG_WARN([--with-codepagedir called without argument - will use default])
67 codepagedir="$withval"
74 dnl Add #include for broken IRIX header files
76 *irix6*) AC_ADD_INCLUDE(<standards.h>)
80 AC_VALIDATE_CACHE_SYSTEM_TYPE
83 # Config CPPFLAG settings for strange OS's that must be set
87 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
90 if test $ac_cv_prog_cc_Ae = yes; then
91 CPPFLAGS="$CPPFLAGS -Ae"
94 # Defines needed for HPUX support.
95 # HPUX has bigcrypt but (sometimes?) doesn't use it for
96 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
100 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
101 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
104 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
105 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
110 # AIX4.x doesn't even admit to having large
111 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
114 AC_MSG_RESULT([enabling large file support])
115 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
118 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
119 # to the existance of large files..
120 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
121 # recommendations on large file support, however it makes the
122 # compile work using gcc 2.7 and 2.8, whereas using the Sun
123 # recommendation makes the compile fail on gcc2.7. JRA.
128 AC_MSG_RESULT([enabling large file support])
129 if test "$ac_cv_prog_gcc" = yes; then
130 ${CC-cc} -v >conftest.c 2>&1
131 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
133 case "$ac_cv_gcc_compiler_version_number" in
134 *"gcc version 2.6"*|*"gcc version 2.7"*)
135 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
138 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
142 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
148 # Tests needed for SINIX large file support.
151 if test $host = mips-sni-sysv4 ; then
152 AC_MSG_CHECKING([for LFS support])
153 old_CPPFLAGS="$CPPFLAGS"
154 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
158 #if _LFS64_LARGEFILE == 1
163 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
164 CPPFLAGS="$old_CPPFLAGS"
165 if test x$SINIX_LFS_SUPPORT = xyes ; then
166 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
167 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
168 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
169 LIBS="`getconf LFS64_LIBS` $LIBS"
171 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
175 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
178 AC_MSG_CHECKING([for LFS support])
179 old_CPPFLAGS="$CPPFLAGS"
180 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
183 #include <sys/utsname.h>
185 #if _LFS64_LARGEFILE == 1
190 /* Ensure this is glibc 2.2 or higher */
191 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
192 int libc_major = __GLIBC__;
193 int libc_minor = __GLIBC_MINOR__;
201 /* Ensure this is kernel 2.4 or higher */
204 release = uts.release;
205 major = atoi(strsep(&release, "."));
206 minor = atoi(strsep(&release, "."));
208 if (major > 2 || (major == 2 && minor > 3))
215 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
216 CPPFLAGS="$old_CPPFLAGS"
217 if test x$LINUX_LFS_SUPPORT = xyes ; then
218 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
220 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
224 AC_MSG_CHECKING([for LFS support])
225 old_CPPFLAGS="$CPPFLAGS"
226 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
230 #if _LFS64_LARGEFILE == 1
235 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
236 CPPFLAGS="$old_CPPFLAGS"
237 if test x$GLIBC_LFS_SUPPORT = xyes ; then
238 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
240 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
250 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
251 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
252 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
253 AC_CHECK_HEADERS(sys/param.h ctype.h sys/un.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
254 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
255 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
256 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
257 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h)
260 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
261 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
265 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
266 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
267 if test x"$ac_cv_header_shadow_h" = x"yes"; then
268 AC_DEFINE(HAVE_SHADOW_H)
272 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
273 AC_CHECK_HEADERS(nss.h nss_common.h sys/security.h security/pam_appl.h security/pam_modules.h)
274 AC_CHECK_HEADERS(stropts.h poll.h)
275 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
276 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
278 # For experimental utmp support (lastlog on some BSD-like systems)
279 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
281 # For quotas on Veritas VxFS filesystems
282 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
284 AC_CHECK_SIZEOF(int,cross)
285 AC_CHECK_SIZEOF(long,cross)
286 AC_CHECK_SIZEOF(short,cross)
301 AC_CHECK_TYPE(ino_t,unsigned)
302 AC_CHECK_TYPE(loff_t,off_t)
303 AC_CHECK_TYPE(offset_t,loff_t)
304 AC_CHECK_TYPE(ssize_t, int)
305 AC_CHECK_TYPE(wchar_t, unsigned short)
307 # we need libcups for CUPS support...
308 AC_CHECK_LIB(cups,httpConnect)
310 # we need libdl for PAM and the new VFS code
311 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
312 AC_DEFINE(HAVE_LIBDL)])
314 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
316 #include <sys/types.h>
321 #include <sys/socket.h>],[socklen_t i = 0],
322 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
323 if test x"$samba_cv_socklen_t" = x"yes"; then
324 AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
327 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
329 #include <sys/types.h>
334 #include <signal.h>],[sig_atomic_t i = 0],
335 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
336 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
337 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
340 # stupid headers have the functions but no declaration. grrrr.
341 AC_HAVE_DECL(errno, [#include <errno.h>])
342 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
343 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
344 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
345 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
346 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
347 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
349 # and glibc has setresuid under linux but the function does
350 # nothing until kernel 2.1.44! very dumb.
351 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
352 AC_TRY_RUN([#include <errno.h>
353 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
354 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
355 if test x"$samba_cv_have_setresuid" = x"yes"; then
356 AC_DEFINE(HAVE_SETRESUID)
359 # Do the same check for setresguid...
361 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
362 AC_TRY_RUN([#include <unistd.h>
364 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
365 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
366 if test x"$samba_cv_have_setresgid" = x"yes"; then
367 AC_DEFINE(HAVE_SETRESGID)
372 ###############################################
373 # test for where we get crypt() from
374 AC_CHECK_FUNCS(crypt)
375 if test x"$ac_cv_func_crypt" = x"no"; then
376 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
377 AC_DEFINE(HAVE_CRYPT)])
381 ###############################################
382 # Readline included by default unless explicitly asked not to
383 test "${with_readline+set}" != "set" && with_readline=yes
385 # test for where we get readline() from
386 AC_MSG_CHECKING(whether to use readline)
387 AC_ARG_WITH(readline,
388 [ --with-readline[=DIR] Look for readline include/libs in DIR
389 --without-readline Don't include readline support],
390 [ case "$with_readline" in
394 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
395 AC_CHECK_HEADERS(readline/history.h)
397 AC_CHECK_HEADERS(readline.h readline/readline.h,[
398 for termlib in ncurses curses termcap terminfo termlib; do
399 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
401 AC_CHECK_LIB(readline, rl_callback_handler_install,
402 [TERMLIBS="-lreadline $TERMLIBS"
403 AC_DEFINE(HAVE_LIBREADLINE)
404 break], [TERMLIBS=], $TERMLIBS)])
412 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
413 # alternate readline path
415 _cppflags=${CPPFLAGS}
417 # Add additional search path
418 LDFLAGS="-L$with_readline/lib $LDFLAGS"
419 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
421 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
422 AC_CHECK_HEADERS(readline/history.h)
424 AC_CHECK_HEADERS(readline.h readline/readline.h,[
425 for termlib in ncurses curses termcap terminfo termlib; do
426 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
428 AC_CHECK_LIB(readline, rl_callback_handler_install,
429 [TERMLDFLAGS="-L$with_readline/lib"
430 TERMCPPFLAGS="-I$with_readline/include"
431 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
432 TERMLIBS="-lreadline $TERMLIBS"
433 AC_DEFINE(HAVE_LIBREADLINE)
434 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
442 AC_SUBST(TERMLDFLAGS)
444 # The following test taken from the cvs sources
445 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
446 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
447 # libsocket.so which has a bad implementation of gethostbyname (it
448 # only looks in /etc/hosts), so we only look for -lsocket if we need
450 AC_CHECK_FUNCS(connect)
451 if test x"$ac_cv_func_connect" = x"no"; then
454 *) AC_CHECK_LIB(nsl_s, printf) ;;
458 *) AC_CHECK_LIB(nsl, printf) ;;
462 *) AC_CHECK_LIB(socket, connect) ;;
466 *) AC_CHECK_LIB(inet, connect) ;;
468 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
470 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
471 test x"$ac_cv_lib_inet_connect" = x"yes"; then
472 # ac_cv_func_connect=yes
473 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
474 AC_DEFINE(HAVE_CONNECT)
478 ###############################################
479 # test for where we get get_yp_default_domain() from
480 AC_CHECK_FUNCS(yp_get_default_domain)
481 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
482 AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
483 AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)])
486 # Check if we have execl, if not we need to compile smbrun.
487 AC_CHECK_FUNCS(execl)
488 if test x"$ac_cv_func_execl" = x"no"; then
494 AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown fchown chmod fchmod chroot)
495 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset)
496 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
497 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr setnetgrent getnetgrent endnetgrent)
498 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf)
499 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
500 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
501 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
502 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
503 # setbuffer is needed for smbtorture
504 AC_CHECK_FUNCS(setbuffer)
506 # syscall() is needed for smbwrapper.
507 AC_CHECK_FUNCS(syscall)
509 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
510 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
511 AC_CHECK_FUNCS(__getcwd _getcwd)
512 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
513 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
514 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
515 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
516 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
517 AC_CHECK_FUNCS(_write __write _fork __fork)
518 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
519 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
520 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
521 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
522 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
525 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
528 if test x$ac_cv_func_stat64 = xno ; then
529 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
531 #if defined(HAVE_UNISTD_H)
534 #include <sys/stat.h>
535 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
536 AC_MSG_RESULT([$ac_cv_func_stat64])
537 if test x$ac_cv_func_stat64 = xyes ; then
538 AC_DEFINE(HAVE_STAT64)
542 if test x$ac_cv_func_lstat64 = xno ; then
543 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
545 #if defined(HAVE_UNISTD_H)
548 #include <sys/stat.h>
549 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
550 AC_MSG_RESULT([$ac_cv_func_lstat64])
551 if test x$ac_cv_func_lstat64 = xyes ; then
552 AC_DEFINE(HAVE_LSTAT64)
556 if test x$ac_cv_func_fstat64 = xno ; then
557 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
559 #if defined(HAVE_UNISTD_H)
562 #include <sys/stat.h>
563 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
564 AC_MSG_RESULT([$ac_cv_func_fstat64])
565 if test x$ac_cv_func_fstat64 = xyes ; then
566 AC_DEFINE(HAVE_FSTAT64)
571 # If no strcasecmp, check for it in some known places
572 # It is in -lresolv on ReliantUNIX and UnixWare
573 # -lresolve *must* follow -lnsl for name resolution to work properly
576 if test x$ac_cv_func_strcasecmp = xno ; then
577 AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
578 AC_DEFINE(HAVE_STRCASECMP))
582 # Check for the functions putprpwnam, set_auth_parameters,
583 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
584 # Needed for OSF1 and HPUX.
587 AC_LIBTESTFUNC(security, putprpwnam)
588 AC_LIBTESTFUNC(sec, putprpwnam)
590 AC_LIBTESTFUNC(security, set_auth_parameters)
591 AC_LIBTESTFUNC(sec, set_auth_parameters)
593 # UnixWare 7.x has its getspnam in -lgen
594 AC_LIBTESTFUNC(gen, getspnam)
596 AC_LIBTESTFUNC(security, getspnam)
597 AC_LIBTESTFUNC(sec, getspnam)
599 AC_LIBTESTFUNC(security, bigcrypt)
600 AC_LIBTESTFUNC(sec, bigcrypt)
602 AC_LIBTESTFUNC(security, getprpwnam)
603 AC_LIBTESTFUNC(sec, getprpwnam)
605 # this bit needs to be modified for each OS that is suported by
606 # smbwrapper. You need to specify how to created a shared library and
607 # how to compile C code to produce PIC object files
609 # these are the defaults, good for lots of systems
619 # and these are for particular systems
621 *linux*) AC_DEFINE(LINUX)
626 *solaris*) AC_DEFINE(SUNOS5)
628 LDSHFLAGS="-Wl,-h,\$@.so -G"
629 if test "${ac_cv_prog_CC}" = "gcc"; then
637 *sunos*) AC_DEFINE(SUNOS4)
639 LDSHFLAGS="-Wl,-h,\$@ -G"
640 PICFLAG="-KPIC -O2" # Is this correct for SunOS
642 *bsd*) BLDSHARED="true"
643 LDSHFLAGS="-Wl,-soname,\$@ -shared"
646 *irix*) AC_DEFINE(IRIX)
648 *irix6*) AC_DEFINE(IRIX6)
651 ATTEMPT_WRAP32_BUILD=yes
653 LDSHFLAGS="-Wl,-soname,\$@ -shared"
654 if test "${ac_cv_prog_CC}" = "gcc"; then
660 *aix*) AC_DEFINE(AIX)
662 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
663 PICFLAG="-O2 -qmaxmem=6000"
665 *hpux*) AC_DEFINE(HPUX)
667 # Use special PIC flags for the native HP-UX compiler.
668 if test $ac_cv_prog_cc_Ae = yes; then
670 LDSHFLAGS="-b -z +h \$@"
674 *qnx*) AC_DEFINE(QNX);;
675 *osf*) AC_DEFINE(OSF1)
677 LDSHFLAGS="-Wl,-soname,\$@ -shared"
680 *sco*) AC_DEFINE(SCO);;
681 *unixware*) AC_DEFINE(UNIXWARE)
683 LDSHFLAGS="-Wl,-soname,\$@ -shared"
686 *next2*) AC_DEFINE(NEXT2);;
687 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
690 *-univel-*) if [ test "$GCC" != yes ]; then
691 AC_DEFINE(HAVE_MEMSET)
695 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
699 if [ test "$GCC" != yes ]; then
700 AC_DEFINE(HAVE_MEMSET)
708 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
709 AC_TRY_RUN([#include <stdio.h>
710 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
711 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
712 if test x"$samba_cv_have_longlong" = x"yes"; then
713 AC_DEFINE(HAVE_LONGLONG)
717 # Check if the compiler supports the LL prefix on long long integers.
720 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
721 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
722 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
723 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
724 AC_DEFINE(COMPILER_SUPPORTS_LL)
728 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
729 AC_TRY_RUN([#include <stdio.h>
730 #include <sys/stat.h>
731 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
732 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
733 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
734 AC_DEFINE(SIZEOF_OFF_T,8)
737 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
739 #if defined(HAVE_UNISTD_H)
743 #include <sys/stat.h>
744 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
745 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
746 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
747 AC_DEFINE(HAVE_OFF64_T)
750 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
751 AC_TRY_RUN([#include <stdio.h>
752 #include <sys/stat.h>
753 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
754 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
755 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
756 AC_DEFINE(SIZEOF_INO_T,8)
759 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
761 #if defined(HAVE_UNISTD_H)
765 #include <sys/stat.h>
766 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
767 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
768 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
769 AC_DEFINE(HAVE_INO64_T)
772 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
774 #if defined(HAVE_UNISTD_H)
777 #include <sys/types.h>
778 #include <dirent.h>],
779 [struct dirent64 de;],
780 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
781 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
782 AC_DEFINE(HAVE_STRUCT_DIRENT64)
785 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
786 AC_TRY_RUN([#include <stdio.h>
787 main() { char c; c=250; exit((c > 0)?0:1); }],
788 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
789 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
790 AC_DEFINE(HAVE_UNSIGNED_CHAR)
793 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
794 AC_TRY_COMPILE([#include <sys/types.h>
795 #include <sys/socket.h>
796 #include <netinet/in.h>],
797 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
798 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
799 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
800 AC_DEFINE(HAVE_SOCK_SIN_LEN)
803 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
804 AC_TRY_COMPILE([#include <sys/types.h>
806 void seekdir(DIR *d, long loc) { return; }],[return 0;],
807 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
808 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
809 AC_DEFINE(SEEKDIR_RETURNS_VOID)
812 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
813 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
814 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
815 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
816 AC_DEFINE(HAVE_FILE_MACRO)
819 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
820 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
821 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
822 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
823 AC_DEFINE(HAVE_FUNCTION_MACRO)
826 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
828 #include <sys/time.h>
830 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
831 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
832 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
833 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
836 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
838 #include <sys/types.h>
840 void foo(const char *format, ...) {
845 va_start(ap, format);
846 len = vsnprintf(0, 0, format, ap);
848 if (len != 5) exit(1);
850 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
854 main() { foo("hello"); }
856 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
857 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
858 AC_DEFINE(HAVE_C99_VSNPRINTF)
861 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
862 AC_TRY_RUN([#include <sys/types.h>
864 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
865 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
866 di->d_name[0] == 0) exit(0); exit(1);} ],
867 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
868 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
869 AC_DEFINE(HAVE_BROKEN_READDIR)
872 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
873 AC_TRY_COMPILE([#include <sys/types.h>
875 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
876 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
877 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
878 AC_DEFINE(HAVE_UTIMBUF)
881 dnl utmp and utmpx come in many flavours
882 dnl We need to check for many of them
883 dnl But we don't need to do each and every one, because our code uses
884 dnl mostly just the utmp (not utmpx) fields.
886 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
888 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
889 AC_TRY_COMPILE([#include <sys/types.h>
891 [struct utmp ut; ut.ut_name[0] = 'a';],
892 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
893 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
894 AC_DEFINE(HAVE_UT_UT_NAME)
897 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
898 AC_TRY_COMPILE([#include <sys/types.h>
900 [struct utmp ut; ut.ut_user[0] = 'a';],
901 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
902 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
903 AC_DEFINE(HAVE_UT_UT_USER)
906 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
907 AC_TRY_COMPILE([#include <sys/types.h>
909 [struct utmp ut; ut.ut_id[0] = 'a';],
910 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
911 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
912 AC_DEFINE(HAVE_UT_UT_ID)
915 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
916 AC_TRY_COMPILE([#include <sys/types.h>
918 [struct utmp ut; ut.ut_host[0] = 'a';],
919 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
920 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
921 AC_DEFINE(HAVE_UT_UT_HOST)
924 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
925 AC_TRY_COMPILE([#include <sys/types.h>
927 [struct utmp ut; time_t t; ut.ut_time = t;],
928 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
929 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
930 AC_DEFINE(HAVE_UT_UT_TIME)
933 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
934 AC_TRY_COMPILE([#include <sys/types.h>
936 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
937 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
938 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
939 AC_DEFINE(HAVE_UT_UT_TV)
942 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
943 AC_TRY_COMPILE([#include <sys/types.h>
945 [struct utmp ut; ut.ut_type = 0;],
946 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
947 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
948 AC_DEFINE(HAVE_UT_UT_TYPE)
951 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
952 AC_TRY_COMPILE([#include <sys/types.h>
954 [struct utmp ut; ut.ut_pid = 0;],
955 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
956 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
957 AC_DEFINE(HAVE_UT_UT_PID)
960 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
961 AC_TRY_COMPILE([#include <sys/types.h>
963 [struct utmp ut; ut.ut_exit.e_exit = 0;],
964 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
965 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
966 AC_DEFINE(HAVE_UT_UT_EXIT)
969 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
970 AC_TRY_COMPILE([#include <sys/types.h>
972 [struct utmp ut; ut.ut_addr = 0;],
973 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
974 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
975 AC_DEFINE(HAVE_UT_UT_ADDR)
978 if test x$ac_cv_func_pututline = xyes ; then
979 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
980 AC_TRY_COMPILE([#include <sys/types.h>
982 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
983 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
984 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
985 AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
989 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
990 AC_TRY_COMPILE([#include <sys/types.h>
992 [struct utmpx ux; ux.ut_syslen = 0;],
993 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
994 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
995 AC_DEFINE(HAVE_UX_UT_SYSLEN)
999 #################################################
1000 # check for libiconv support
1001 AC_MSG_CHECKING(whether to use libiconv)
1002 AC_ARG_WITH(libiconv,
1003 [ --with-libiconv=BASEDIR use libiconv in BASEDIR/lib and BASEDIR/include
1004 --without-libiconv Don't use libiconv library],
1005 [ case "$withval" in
1011 CFLAGS="$CFLAGS -I$withval/include"
1012 LDFLAGS="$LDFLAGS -L$withval/lib"
1013 AC_CHECK_LIB(iconv, iconv_open)
1021 # check for iconv in libc
1022 AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1026 iconv_t cd = iconv_open("ASCII", "UCS-2LE");
1027 if (cd == 0 || cd == (iconv_t)-1) return -1;
1031 samba_cv_HAVE_NATIVE_ICONV=yes,samba_cv_HAVE_NATIVE_ICONV=no,samba_cv_HAVE_NATIVE_ICONV=cross)])
1032 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1033 AC_DEFINE(HAVE_NATIVE_ICONV)
1037 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1039 #include <sys/types.h>
1042 #define F_GETLEASE 1025
1045 int fd = open("/dev/null", O_RDONLY);
1046 return fcntl(fd, F_GETLEASE, 0) == -1;
1049 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1050 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1051 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1054 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1056 #include <sys/types.h>
1060 #define F_NOTIFY 1026
1063 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1066 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1067 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1068 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1071 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1073 #include <sys/types.h>
1076 #include <sys/file.h>
1078 #define LOCK_MAND 32
1079 #define LOCK_READ 64
1082 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1085 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1086 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1087 AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1093 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1094 AC_TRY_COMPILE([#include <sys/types.h>
1095 #include <fcntl.h>],
1096 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1097 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1098 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1099 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1102 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1103 AC_TRY_RUN([#include <sys/types.h>
1104 #include <sys/capability.h>
1107 if ((cap = cap_get_proc()) == NULL)
1109 cap->cap_effective |= CAP_NETWORK_MGT;
1110 cap->cap_inheritable |= CAP_NETWORK_MGT;
1115 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1116 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1117 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1121 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1122 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1125 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1126 AC_TRY_COMPILE([#include <sys/types.h>
1127 #if defined(HAVE_RPC_RPC_H)
1128 #include <rpc/rpc.h>
1131 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1132 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1133 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1136 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1137 AC_TRY_COMPILE([#include <sys/types.h>
1138 #if defined(HAVE_RPC_RPC_H)
1139 #include <rpc/rpc.h>
1142 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1143 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1144 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1147 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1148 AC_TRY_COMPILE([#include <sys/types.h>
1149 #if defined(HAVE_RPC_RPC_H)
1150 #include <rpc/rpc.h>
1153 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1154 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1155 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1158 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1159 AC_TRY_COMPILE([#include <sys/types.h>
1160 #if defined(HAVE_RPC_RPC_H)
1161 #include <rpc/rpc.h>
1164 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1165 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1166 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1170 dnl Some systems (SCO) have a problem including
1171 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1172 dnl as a #define in <prot.h> and as part of an enum
1176 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1177 AC_TRY_COMPILE([#include <sys/types.h>
1178 #ifdef HAVE_SYS_SECURITY_H
1179 #include <sys/security.h>
1181 #endif /* HAVE_SYS_SECURITY_H */
1182 #if defined(HAVE_RPC_RPC_H)
1183 #include <rpc/rpc.h>
1186 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1187 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1188 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1191 AC_MSG_CHECKING([for test routines])
1192 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1194 AC_MSG_ERROR([cant find test code. Aborting config]),
1195 AC_MSG_WARN([cannot run when cross-compiling]))
1197 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1198 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1199 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1200 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1201 AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1204 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1205 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1206 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1207 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1208 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1209 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1211 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1214 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1215 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1216 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1217 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1218 AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1221 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1222 SAVE_CPPFLAGS="$CPPFLAGS"
1223 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1225 #define REPLACE_GETPASS 1
1226 #define NO_CONFIG_H 1
1227 #define main dont_declare_main
1228 #include "${srcdir-.}/lib/getsmbpass.c"
1230 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1231 CPPFLAGS="$SAVE_CPPFLAGS"
1233 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1234 AC_DEFINE(REPLACE_GETPASS)
1237 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1240 #include <sys/types.h>
1241 #include <netinet/in.h>
1242 #ifdef HAVE_ARPA_INET_H
1243 #include <arpa/inet.h>
1245 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1246 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1247 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1249 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1250 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1251 AC_DEFINE(REPLACE_INET_NTOA)
1254 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1255 AC_TRY_RUN([#include <stdlib.h>
1256 #include <sys/types.h>
1257 #include <sys/stat.h>
1261 char tpl[20]="/tmp/test.XXXXXX";
1262 int fd = mkstemp(tpl);
1263 if (fd == -1) exit(1);
1265 if (fstat(fd, &st) != 0) exit(1);
1266 if ((st.st_mode & 0777) != 0600) exit(1);
1269 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1270 samba_cv_HAVE_SECURE_MKSTEMP=no,
1271 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1272 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1273 AC_DEFINE(HAVE_SECURE_MKSTEMP)
1276 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1277 AC_TRY_RUN([#include <unistd.h>
1278 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1279 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1280 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1281 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1284 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1285 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1286 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1287 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1288 AC_DEFINE(HAVE_ROOT)
1290 AC_MSG_WARN(running as non-root will disable some tests)
1294 # look for a method of finding the list of network interfaces
1296 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1298 #define HAVE_IFACE_AIX 1
1299 #define AUTOCONF_TEST 1
1300 #include "confdefs.h"
1301 #include "${srcdir-.}/lib/interfaces.c"],
1302 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1303 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1304 iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1307 if test $iface = no; then
1308 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1310 #define HAVE_IFACE_IFCONF 1
1311 #define AUTOCONF_TEST 1
1312 #include "confdefs.h"
1313 #include "${srcdir-.}/lib/interfaces.c"],
1314 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1315 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1316 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1320 if test $iface = no; then
1321 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1323 #define HAVE_IFACE_IFREQ 1
1324 #define AUTOCONF_TEST 1
1325 #include "confdefs.h"
1326 #include "${srcdir-.}/lib/interfaces.c"],
1327 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1328 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1329 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1334 ################################################
1335 # look for a method of setting the effective uid
1337 if test $seteuid = no; then
1338 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1340 #define AUTOCONF_TEST 1
1341 #define USE_SETRESUID 1
1342 #include "confdefs.h"
1343 #include "${srcdir-.}/lib/util_sec.c"],
1344 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1345 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1346 seteuid=yes;AC_DEFINE(USE_SETRESUID)
1351 if test $seteuid = no; then
1352 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1354 #define AUTOCONF_TEST 1
1355 #define USE_SETREUID 1
1356 #include "confdefs.h"
1357 #include "${srcdir-.}/lib/util_sec.c"],
1358 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1359 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1360 seteuid=yes;AC_DEFINE(USE_SETREUID)
1364 if test $seteuid = no; then
1365 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1367 #define AUTOCONF_TEST 1
1368 #define USE_SETEUID 1
1369 #include "confdefs.h"
1370 #include "${srcdir-.}/lib/util_sec.c"],
1371 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1372 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1373 seteuid=yes;AC_DEFINE(USE_SETEUID)
1377 if test $seteuid = no; then
1378 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1380 #define AUTOCONF_TEST 1
1381 #define USE_SETUIDX 1
1382 #include "confdefs.h"
1383 #include "${srcdir-.}/lib/util_sec.c"],
1384 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1385 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1386 seteuid=yes;AC_DEFINE(USE_SETUIDX)
1391 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1392 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1393 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1394 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1395 AC_DEFINE(HAVE_MMAP)
1398 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1399 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1400 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1401 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1402 AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1405 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1406 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1407 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1408 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1409 AC_DEFINE(HAVE_FCNTL_LOCK)
1412 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1413 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1414 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1415 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1416 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1421 dnl Don't check for 64 bit fcntl locking if we know that the
1422 dnl glibc2.1 broken check has succeeded.
1425 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1427 #if defined(HAVE_UNISTD_H)
1437 #ifdef HAVE_SYS_FCNTL_H
1438 #include <sys/fcntl.h>
1440 main() { struct flock64 fl64;
1441 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1447 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1449 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1450 AC_DEFINE(HAVE_STRUCT_FLOCK64)
1454 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1455 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1456 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1457 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1458 AC_DEFINE(HAVE_TRUNCATED_SALT)
1461 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1462 AC_TRY_COMPILE([#include <sys/acl.h>
1463 #if defined(HAVE_RPCSVC_NIS_H)
1464 #include <rpcsvc/nis.h>
1467 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1468 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1469 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1473 #################################################
1474 # check for smbwrapper support
1475 AC_MSG_CHECKING(whether to use smbwrapper)
1476 AC_ARG_WITH(smbwrapper,
1477 [ --with-smbwrapper Include SMB wrapper support
1478 --without-smbwrapper Don't include SMB wrapper support (default)],
1479 [ case "$withval" in
1482 AC_DEFINE(WITH_SMBWRAPPER)
1483 WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1485 if test x$ATTEMPT_WRAP32_BUILD = x; then
1488 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1491 # Conditions under which smbwrapper should not be built.
1493 if test x$PICFLAG = x; then
1494 echo No support for PIC code - disabling smbwrapper and smbsh
1497 elif test x$ac_cv_func_syscall = xno; then
1498 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1510 #################################################
1511 # check for the AFS filesystem
1512 AC_MSG_CHECKING(whether to use AFS)
1514 [ --with-afs Include AFS support
1515 --without-afs Don't include AFS support (default)],
1516 [ case "$withval" in
1529 #################################################
1530 # check for the DFS auth system
1531 AC_MSG_CHECKING(whether to use DFS auth)
1533 [ --with-dfs Include DFS support
1534 --without-dfs Don't include DFS support (default)],
1535 [ case "$withval" in
1547 #################################################
1548 # check for Kerberos IV auth system
1549 AC_MSG_CHECKING(whether to use Kerberos IV)
1551 [ --with-krb4=base-dir Include Kerberos IV support
1552 --without-krb4 Don't include Kerberos IV support (default)],
1553 [ case "$withval" in
1556 AC_DEFINE(KRB4_AUTH)
1557 AC_CHECK_LIB(resolv, dn_expand)
1558 LIBS="$LIBS -lkrb -ldes"
1559 CFLAGS="$CFLAGS -I$withval/include"
1560 LDFLAGS="$LDFLAGS -L$withval/lib"
1569 #################################################
1570 # check for Kerberos 5 auth system
1571 AC_MSG_CHECKING(whether to use Kerberos 5)
1573 [ --with-krb5=base-dir Include Kerberos 5 support
1574 --without-krb5 Don't include Kerberos 5 support (default)],
1575 [ case "$withval" in
1578 AC_DEFINE(KRB5_AUTH)
1579 LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1580 CFLAGS="$CFLAGS -I$withval/include"
1581 LDFLAGS="$LDFLAGS -L$withval/lib"
1590 #################################################
1591 # check for automount support
1592 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1593 AC_ARG_WITH(automount,
1594 [ --with-automount Include AUTOMOUNT support
1595 --without-automount Don't include AUTOMOUNT support (default)],
1596 [ case "$withval" in
1599 AC_DEFINE(WITH_AUTOMOUNT)
1608 #################################################
1609 # check for smbmount support
1610 AC_MSG_CHECKING(whether to use SMBMOUNT)
1611 AC_ARG_WITH(smbmount,
1612 [ --with-smbmount Include SMBMOUNT (Linux only) support
1613 --without-smbmount Don't include SMBMOUNT support (default)],
1614 [ case "$withval" in
1617 AC_DEFINE(WITH_SMBMOUNT)
1618 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1630 #################################################
1631 # check for a PAM password database
1633 AC_MSG_CHECKING(whether to use PAM password database)
1635 [ --with-pam Include PAM password database support
1636 --without-pam Don't include PAM password database support (default)],
1637 [ case "$withval" in
1650 # we can't build a pam module if we don't have pam.
1651 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
1653 #################################################
1654 # check for pam_smbpass support
1655 AC_MSG_CHECKING(whether to use pam_smbpass)
1656 AC_ARG_WITH(pam_smbpass,
1657 [ --with-pam_smbpass Include the smbpass PAM module
1658 --without-pam_smbpass Don't include the smbpass PAM module (default)],
1659 [ case "$withval" in
1663 # Conditions under which pam_smbpass should not be built.
1665 if test x$PICFLAG = x; then
1666 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
1668 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
1669 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
1672 AC_DEFINE(WITH_PAM_SMBPASS)
1673 PAM_MOD="bin/pam_smbpass.so"
1684 ###############################################
1685 # test for where we get crypt() from, but only
1687 if test "$with_pam" != yes; then
1688 AC_CHECK_FUNCS(crypt)
1689 if test x"$ac_cv_func_crypt" = x"no"; then
1690 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
1691 AC_DEFINE(HAVE_CRYPT)])
1696 #################################################
1697 # check for a TDB password database
1698 AC_MSG_CHECKING(whether to use TDB password database)
1700 [ --with-tdbsam Include experimental TDB password database
1701 --without-tdbsam Don't include experimental TDB password database (default)],
1702 [ case "$withval" in
1705 AC_DEFINE(WITH_TDBPWD)
1706 # AC_MSG_ERROR([TDB password database not supported in this version.])
1715 #################################################
1716 # check for a LDAP password database
1717 AC_MSG_CHECKING(whether to use LDAP password database)
1719 [ --with-ldap Include LDAP support
1720 --without-ldap Don't include LDAP support (default)],
1721 [ case "$withval" in
1724 AC_DEFINE(WITH_LDAP)
1725 AC_MSG_ERROR([LDAP password database not supported in this version.])
1734 #################################################
1735 # check for a NISPLUS password database
1736 AC_MSG_CHECKING(whether to use NISPLUS password database)
1737 AC_ARG_WITH(nisplus,
1738 [ --with-nisplus Include NISPLUS password database support
1739 --without-nisplus Don't include NISPLUS password database support (default)],
1740 [ case "$withval" in
1743 AC_DEFINE(WITH_NISPLUS)
1752 #################################################
1753 # check for a NISPLUS_HOME support
1754 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1755 AC_ARG_WITH(nisplus-home,
1756 [ --with-nisplus-home Include NISPLUS_HOME support
1757 --without-nisplus-home Don't include NISPLUS_HOME support (default)],
1758 [ case "$withval" in
1761 AC_DEFINE(WITH_NISPLUS_HOME)
1770 #################################################
1771 # check for the secure socket layer
1772 AC_MSG_CHECKING(whether to use SSL)
1774 [ --with-ssl Include SSL support
1775 --without-ssl Don't include SSL support (default)
1776 --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl)],
1777 [ case "$withval" in
1781 withval="/usr/local/ssl" # default
1783 if test "${with_sslinc+set}" = set; then
1785 withval="$with_sslinc"
1788 echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1789 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1790 LIBS="-lssl -lcrypto $LIBS"
1791 LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
1794 CFLAGS="-I${withval} $CFLAGS"
1795 LIBS="-lssl -lcrypto $LIBS"
1796 LDFLAGS="-L${withval}/lib $LDFLAGS"
1802 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1803 LIBS="-lssl -lcrypto $LIBS"
1804 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1808 if test ! -d ${withval}; then
1809 echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1813 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own
1823 #################################################
1824 # check for syslog logging
1825 AC_MSG_CHECKING(whether to use syslog logging)
1827 [ --with-syslog Include experimental SYSLOG support
1828 --without-syslog Don't include SYSLOG support (default)],
1829 [ case "$withval" in
1832 AC_DEFINE(WITH_SYSLOG)
1841 #################################################
1842 # check for a shared memory profiling support
1843 AC_MSG_CHECKING(whether to use profiling)
1844 AC_ARG_WITH(profile,
1845 [ --with-profile Include profile support
1846 --without-profile Don't include profile support (default)],
1847 [ case "$withval" in
1850 AC_DEFINE(WITH_PROFILE)
1860 #################################################
1861 # check for experimental netatalk resource fork support
1862 AC_MSG_CHECKING(whether to support netatalk)
1863 AC_ARG_WITH(netatalk,
1864 [ --with-netatalk Include experimental Netatalk support
1865 --without-netatalk Don't include experimental Netatalk support (default)],
1866 [ case "$withval" in
1869 AC_DEFINE(WITH_NETATALK)
1878 #################################################
1879 # check for experimental disk-quotas support
1880 QUOTAOBJS=smbd/noquotas.o
1882 AC_MSG_CHECKING(whether to support disk-quotas)
1884 [ --with-quotas Include experimental disk-quota support
1885 --without-quotas Don't include experimental disk-quota support (default)],
1886 [ case "$withval" in
1889 QUOTAOBJS=smbd/quotas.o
1899 #################################################
1900 # check for experimental utmp accounting
1902 AC_MSG_CHECKING(whether to support utmp accounting)
1904 [ --with-utmp Include experimental utmp accounting
1905 --without-utmp Don't include experimental utmp accounting (default)],
1906 [ case "$withval" in
1909 AC_DEFINE(WITH_UTMP)
1918 #################################################
1919 # check for MS Dfs support
1921 AC_MSG_CHECKING(whether to support Microsoft Dfs)
1923 [ --with-msdfs Include MS Dfs support
1924 --without-msdfs Don't include MS Dfs support (default)],
1925 [ case "$withval" in
1928 AC_DEFINE(WITH_MSDFS)
1937 #################################################
1938 # set private directory location
1939 AC_ARG_WITH(privatedir,
1940 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
1941 [ case "$withval" in
1944 # Just in case anybody calls it without argument
1946 AC_MSG_WARN([--with-privatedir called without argument - will use default])
1947 privatedir='${prefix}/private'
1950 privatedir="$withval"
1953 AC_SUBST(privatedir)],
1954 [privatedir='${prefix}/private'
1955 AC_SUBST(privatedir)]
1958 #################################################
1959 # set lock directory location
1960 AC_ARG_WITH(lockdir,
1961 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
1962 [ case "$withval" in
1965 # Just in case anybody calls it without argument
1967 AC_MSG_WARN([--with-lockdir called without argument - will use default])
1968 lockdir='$(VARDIR)/locks'
1975 [lockdir='$(VARDIR)/locks'
1979 #################################################
1980 # set SWAT directory location
1981 AC_ARG_WITH(swatdir,
1982 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
1983 [ case "$withval" in
1986 # Just in case anybody does it
1988 AC_MSG_WARN([--with-swatdir called without argument - will use default])
1989 swatdir='${prefix}/swat'
1996 [swatdir='${prefix}/swat'
2000 #################################################
2001 # these tests are taken from the GNU fileutils package
2002 AC_CHECKING(how to get filesystem space usage)
2005 # Test for statvfs64.
2006 if test $space = no; then
2008 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2010 #if defined(HAVE_UNISTD_H)
2013 #include <sys/types.h>
2014 #include <sys/statvfs.h>
2017 struct statvfs64 fsd;
2018 exit (statvfs64 (".", &fsd));
2020 fu_cv_sys_stat_statvfs64=yes,
2021 fu_cv_sys_stat_statvfs64=no,
2022 fu_cv_sys_stat_statvfs64=cross)])
2023 if test $fu_cv_sys_stat_statvfs64 = yes; then
2025 AC_DEFINE(STAT_STATVFS64)
2029 # Perform only the link test since it seems there are no variants of the
2030 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2031 # because that got a false positive on SCO OSR5. Adding the declaration
2032 # of a `struct statvfs' causes this test to fail (as it should) on such
2033 # systems. That system is reported to work fine with STAT_STATFS4 which
2034 # is what it gets when this test fails.
2035 if test $space = no; then
2037 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2038 [AC_TRY_LINK([#include <sys/types.h>
2039 #include <sys/statvfs.h>],
2040 [struct statvfs fsd; statvfs (0, &fsd);],
2041 fu_cv_sys_stat_statvfs=yes,
2042 fu_cv_sys_stat_statvfs=no)])
2043 if test $fu_cv_sys_stat_statvfs = yes; then
2045 AC_DEFINE(STAT_STATVFS)
2049 if test $space = no; then
2050 # DEC Alpha running OSF/1
2051 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2052 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2054 #include <sys/param.h>
2055 #include <sys/types.h>
2056 #include <sys/mount.h>
2061 exit (statfs (".", &fsd, sizeof (struct statfs)));
2063 fu_cv_sys_stat_statfs3_osf1=yes,
2064 fu_cv_sys_stat_statfs3_osf1=no,
2065 fu_cv_sys_stat_statfs3_osf1=no)])
2066 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2067 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2069 AC_DEFINE(STAT_STATFS3_OSF1)
2073 if test $space = no; then
2075 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2076 member (AIX, 4.3BSD)])
2077 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2079 #ifdef HAVE_SYS_PARAM_H
2080 #include <sys/param.h>
2082 #ifdef HAVE_SYS_MOUNT_H
2083 #include <sys/mount.h>
2085 #ifdef HAVE_SYS_VFS_H
2086 #include <sys/vfs.h>
2092 exit (statfs (".", &fsd));
2094 fu_cv_sys_stat_statfs2_bsize=yes,
2095 fu_cv_sys_stat_statfs2_bsize=no,
2096 fu_cv_sys_stat_statfs2_bsize=no)])
2097 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2098 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2100 AC_DEFINE(STAT_STATFS2_BSIZE)
2104 if test $space = no; then
2106 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2107 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2108 [AC_TRY_RUN([#include <sys/types.h>
2109 #include <sys/statfs.h>
2113 exit (statfs (".", &fsd, sizeof fsd, 0));
2115 fu_cv_sys_stat_statfs4=yes,
2116 fu_cv_sys_stat_statfs4=no,
2117 fu_cv_sys_stat_statfs4=no)])
2118 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2119 if test $fu_cv_sys_stat_statfs4 = yes; then
2121 AC_DEFINE(STAT_STATFS4)
2125 if test $space = no; then
2127 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2128 member (4.4BSD and NetBSD)])
2129 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2130 [AC_TRY_RUN([#include <sys/types.h>
2131 #ifdef HAVE_SYS_PARAM_H
2132 #include <sys/param.h>
2134 #ifdef HAVE_SYS_MOUNT_H
2135 #include <sys/mount.h>
2141 exit (statfs (".", &fsd));
2143 fu_cv_sys_stat_statfs2_fsize=yes,
2144 fu_cv_sys_stat_statfs2_fsize=no,
2145 fu_cv_sys_stat_statfs2_fsize=no)])
2146 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2147 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2149 AC_DEFINE(STAT_STATFS2_FSIZE)
2153 if test $space = no; then
2155 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2156 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2157 [AC_TRY_RUN([#include <sys/types.h>
2158 #ifdef HAVE_SYS_PARAM_H
2159 #include <sys/param.h>
2161 #ifdef HAVE_SYS_MOUNT_H
2162 #include <sys/mount.h>
2164 #ifdef HAVE_SYS_FS_TYPES_H
2165 #include <sys/fs_types.h>
2170 /* Ultrix's statfs returns 1 for success,
2171 0 for not mounted, -1 for failure. */
2172 exit (statfs (".", &fsd) != 1);
2174 fu_cv_sys_stat_fs_data=yes,
2175 fu_cv_sys_stat_fs_data=no,
2176 fu_cv_sys_stat_fs_data=no)])
2177 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2178 if test $fu_cv_sys_stat_fs_data = yes; then
2180 AC_DEFINE(STAT_STATFS2_FS_DATA)
2185 # As a gating factor for large file support, in order to
2186 # use <4GB files we must have the following minimal support
2188 # long long, and a 64 bit off_t or off64_t.
2189 # If we don't have all of these then disable large
2192 AC_MSG_CHECKING([if large file support can be enabled])
2194 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2195 #include <sys/types.h>
2201 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2202 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2203 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2205 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2207 AC_ARG_WITH(spinlocks, [ --with-spinlocks use spin locks instead of fcntl locks ])
2208 if test "x$with_spinlocks" = "xyes"; then
2209 AC_DEFINE(USE_SPINLOCKS)
2213 AC_DEFINE(SPARC_SPINLOCKS)
2216 i386|i486|i586|i686)
2217 AC_DEFINE(INTEL_SPINLOCKS)
2221 AC_DEFINE(MIPS_SPINLOCKS)
2225 AC_DEFINE(POWERPC_SPINLOCKS)
2230 #################################################
2231 # check for ACL support
2233 AC_MSG_CHECKING(whether to support ACLs)
2234 AC_ARG_WITH(acl-support,
2235 [ --with-acl-support Include ACL support
2236 --without-acl-support Don't include ACL support (default)],
2237 [ case "$withval" in
2242 AC_MSG_RESULT(Using UnixWare ACLs)
2243 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2246 AC_MSG_RESULT(Using solaris ACLs)
2247 AC_DEFINE(HAVE_SOLARIS_ACLS)
2250 AC_MSG_RESULT(Using IRIX ACLs)
2251 AC_DEFINE(HAVE_IRIX_ACLS)
2254 AC_MSG_RESULT(Using AIX ACLs)
2255 AC_DEFINE(HAVE_AIX_ACLS)
2258 AC_CHECK_LIB(acl,acl_get_file)
2259 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2260 AC_TRY_LINK([#include <sys/types.h>
2261 #include <sys/acl.h>],
2262 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2263 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2264 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2265 AC_MSG_RESULT(Using posix ACLs)
2266 AC_DEFINE(HAVE_POSIX_ACLS)
2267 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2268 AC_TRY_LINK([#include <sys/types.h>
2269 #include <sys/acl.h>],
2270 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2271 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2272 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2273 AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2281 AC_DEFINE(HAVE_NO_ACLS)
2284 AC_DEFINE(HAVE_NO_ACLS)
2288 #################################################
2289 # check whether winbind is supported on this platform
2291 AC_MSG_CHECKING(whether to compile winbind)
2295 WINBIND_TARGETS="\$(WINBIND_PROGS)"
2296 WINBIND_STARGETS="\$(WINBIND_SPROGS)"
2299 WINBIND_STARGETS="$WINBIND_STARGETS \$(WINBIND_PAM_PROGS)"
2305 winbind_no_reason=", unsupported on $host_os"
2309 AC_ARG_WITH(winbind,
2310 [ --with-winbind Build winbind library (default, if supported by OS)
2311 --without-winbind Don't build winbind library],
2322 if test x"$WINBIND_TARGETS" = x; then
2323 AC_MSG_RESULT(no$winbind_no_reason)
2328 AC_SUBST(WINBIND_TARGETS)
2329 AC_SUBST(WINBIND_STARGETS)
2331 #################################################
2332 # final configure stuff
2334 echo "checking configure summary"
2335 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2336 echo "configure OK";,
2337 AC_MSG_ERROR([summary failure. Aborting config]),:)
2342 AC_OUTPUT(include/stamp-h Makefile)