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)
5 #################################################
6 # Directory handling stuff to support both the
7 # legacy SAMBA directories and FHS compliant
9 AC_PREFIX_DEFAULT(/usr/local/samba)
12 [ --with-fhs Use FHS-compliant paths (default=no)],
13 codepagedir="\$(DATADIR)/samba/codepages"
14 configdir="${sysconfdir}/samba"
15 lockdir="\${VARDIR}/cache/samba"
16 piddir="\$(VARDIR)/run/samba"
17 logfilebase="\${VARDIR}/log/samba"
18 privatedir="\${CONFIGDIR}/private"
19 swatdir="\${DATADIR}/samba/swat",
20 codepagedir="\$(LIBDIR)/codepages"
21 configdir="\$(LIBDIR)"
22 logfilebase="\$(VARDIR)"
23 lockdir="\${VARDIR}/locks"
24 piddir="\$(VARDIR)/locks"
25 privatedir="\${prefix}/private"
26 swatdir="\${prefix}/swat")
28 #################################################
29 # set private directory location
30 AC_ARG_WITH(privatedir,
31 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
35 # Just in case anybody calls it without argument
37 AC_MSG_WARN([--with-privatedir called without argument - will use default])
44 #################################################
45 # set lock directory location
47 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
51 # Just in case anybody calls it without argument
53 AC_MSG_WARN([--with-lockdir called without argument - will use default])
60 #################################################
61 # set pid directory location
63 [ --with-piddir=DIR Where to put pid files ($ac_default_prefix/var/locks)],
67 # Just in case anybody calls it without argument
69 AC_MSG_WARN([--with-piddir called without argument - will use default])
76 #################################################
77 # set SWAT directory location
79 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
83 # Just in case anybody does it
85 AC_MSG_WARN([--with-swatdir called without argument - will use default])
92 #################################################
93 # set configuration directory location
94 AC_ARG_WITH(configdir,
95 [ --with-configdir=DIR Where to put configuration files (\$libdir)],
99 # Just in case anybody does it
101 AC_MSG_WARN([--with-configdir called without argument - will use default])
108 #################################################
109 # set codepage directory location
110 AC_ARG_WITH(codepagedir,
111 [ --with-codepagedir=DIR Where to put codepage files (\$libdir/codepages)],
115 # Just in case anybody does it
117 AC_MSG_WARN([--with-codepagedir called without argument - will use default])
120 codepagedir="$withval"
124 #################################################
125 # set log directory location
126 AC_ARG_WITH(logfilebase,
127 [ --with-logfilebase=DIR Where to put log files (\$(VARDIR))],
131 # Just in case anybody does it
133 AC_MSG_WARN([--with-logfilebase called without argument - will use default])
136 logfilebase="$withval"
140 AC_SUBST(codepagedir)
144 AC_SUBST(logfilebase)
150 dnl Unique-to-Samba variables we'll be playing with.
167 AC_SUBST(LIBSMBCLIENT_SHARED)
168 AC_SUBST(LIBSMBCLIENT)
170 # compile with optimization and without debugging by default
171 CFLAGS="-O ${CFLAGS}"
174 [ --enable-debug Turn on compiler debugging information (default=no)],
175 [if eval "test x$enable_debug = xyes"; then
176 CFLAGS="${CFLAGS} -g"
181 dnl Checks for programs.
185 AC_PATH_PROG(passwd_program, passwd, /bin/passwd)
186 AC_SUBST(passwd_program)
188 dnl Check if C compiler understands -c and -o at the same time
190 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
197 dnl Check if the C compiler understands volatile (it should, being ANSI).
198 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
199 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
200 samba_cv_volatile=yes,samba_cv_volatile=no)])
201 if test x"$samba_cv_volatile" = x"yes"; then
202 AC_DEFINE(HAVE_VOLATILE)
209 dnl Add #include for broken IRIX header files
211 *irix6*) AC_ADD_INCLUDE(<standards.h>)
215 AC_VALIDATE_CACHE_SYSTEM_TYPE
220 # Config CPPFLAG settings for strange OS's that must be set
221 # before other tests.
224 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
227 # mmap on HPUX is completely broken...
228 AC_DEFINE(MMAP_BLACKLIST)
229 if test $ac_cv_prog_cc_Ae = yes; then
230 CPPFLAGS="$CPPFLAGS -Ae"
233 # Defines needed for HPUX support.
234 # HPUX has bigcrypt but (sometimes?) doesn't use it for
235 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
239 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4"
240 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
241 AC_DEFINE(_HPUX_SOURCE)
242 AC_DEFINE(_POSIX_SOURCE)
243 AC_DEFINE(_ALIGNMENT_REQUIRED,1)
244 AC_DEFINE(_MAX_ALIGNMENT,4)
247 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4"
248 AC_DEFINE(_HPUX_SOURCE)
249 AC_DEFINE(_POSIX_SOURCE)
250 AC_DEFINE(_LARGEFILE64_SOURCE)
251 AC_DEFINE(_ALIGNMENT_REQUIRED,1)
252 AC_DEFINE(_MAX_ALIGNMENT,4)
253 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
261 # CRAY Unicos has broken const handling
263 AC_MSG_RESULT([disabling const])
264 CPPFLAGS="$CPPFLAGS -Dconst="
268 # AIX4.x doesn't even admit to having large
269 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
272 AC_MSG_RESULT([enabling large file support])
273 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
274 AC_DEFINE(_LARGE_FILES)
277 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
278 # to the existance of large files..
279 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
280 # recommendations on large file support, however it makes the
281 # compile work using gcc 2.7 and 2.8, whereas using the Sun
282 # recommendation makes the compile fail on gcc2.7. JRA.
286 5.0*|5.1*|5.2*|5.3*|5.5*)
287 AC_MSG_RESULT([no large file support])
290 AC_MSG_RESULT([enabling large file support])
291 if test "$ac_cv_prog_gcc" = yes; then
292 ${CC-cc} -v >conftest.c 2>&1
293 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
295 case "$ac_cv_gcc_compiler_version_number" in
296 *"gcc version 2.6"*|*"gcc version 2.7"*)
297 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
298 AC_DEFINE(_LARGEFILE64_SOURCE)
301 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
302 AC_DEFINE(_LARGEFILE64_SOURCE)
303 AC_DEFINE(_FILE_OFFSET_BITS,64)
307 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
308 AC_DEFINE(_LARGEFILE64_SOURCE)
309 AC_DEFINE(_FILE_OFFSET_BITS,64)
315 # Tests needed for SINIX large file support.
318 if test $host = mips-sni-sysv4 ; then
319 AC_MSG_CHECKING([for LFS support])
320 old_CPPFLAGS="$CPPFLAGS"
321 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
325 #if _LFS64_LARGEFILE == 1
330 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
331 CPPFLAGS="$old_CPPFLAGS"
332 if test x$SINIX_LFS_SUPPORT = xyes ; then
333 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
334 AC_DEFINE(_LARGEFILE64_SOURCE)
335 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
336 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
337 LIBS="`getconf LFS64_LIBS` $LIBS"
339 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
343 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
346 AC_MSG_CHECKING([for LFS support])
347 old_CPPFLAGS="$CPPFLAGS"
348 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
351 #include <sys/utsname.h>
353 #if _LFS64_LARGEFILE == 1
358 /* Ensure this is glibc 2.2 or higher */
359 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
360 int libc_major = __GLIBC__;
361 int libc_minor = __GLIBC_MINOR__;
369 /* Ensure this is kernel 2.4 or higher */
372 release = uts.release;
373 major = atoi(strsep(&release, "."));
374 minor = atoi(strsep(&release, "."));
376 if (major > 2 || (major == 2 && minor > 3))
383 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
384 CPPFLAGS="$old_CPPFLAGS"
385 if test x$LINUX_LFS_SUPPORT = xyes ; then
386 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
387 AC_DEFINE(_LARGEFILE64_SOURCE)
388 AC_DEFINE(_FILE_OFFSET_BITS,64)
389 AC_DEFINE(_GNU_SOURCE)
391 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
395 AC_MSG_CHECKING([for LFS support])
396 old_CPPFLAGS="$CPPFLAGS"
397 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
401 #if _LFS64_LARGEFILE == 1
406 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
407 CPPFLAGS="$old_CPPFLAGS"
408 if test x$GLIBC_LFS_SUPPORT = xyes ; then
409 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
410 AC_DEFINE(_LARGEFILE64_SOURCE)
411 AC_DEFINE(_GNU_SOURCE)
413 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
423 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
424 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
425 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
426 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
427 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
428 AC_CHECK_HEADERS(syslog.h sys/syslog.h sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
429 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
430 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h dlfcn.h synch.h pthread.h nsswitch.h)
433 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
434 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
438 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
439 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
440 if test x"$ac_cv_header_shadow_h" = x"yes"; then
441 AC_DEFINE(HAVE_SHADOW_H)
445 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
446 AC_CHECK_HEADERS(nss.h nss_common.h ns_api.h sys/security.h security/pam_appl.h security/pam_modules.h)
447 AC_CHECK_HEADERS(stropts.h poll.h)
448 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
449 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
451 # For experimental utmp support (lastlog on some BSD-like systems)
452 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
454 # For quotas on Veritas VxFS filesystems
455 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
457 # For quotas on Linux XFS filesystems
458 AC_CHECK_HEADERS(linux/xqm.h)
460 AC_CHECK_SIZEOF(int,cross)
461 AC_CHECK_SIZEOF(long,cross)
462 AC_CHECK_SIZEOF(short,cross)
477 AC_CHECK_TYPE(ino_t,unsigned)
478 AC_CHECK_TYPE(loff_t,off_t)
479 AC_CHECK_TYPE(offset_t,loff_t)
480 AC_CHECK_TYPE(ssize_t, int)
481 AC_CHECK_TYPE(wchar_t, unsigned short)
483 ############################################
484 # for cups support we need libcups, and a handful of header files
487 [ --enable-cups Turn on CUPS support (default=auto)])
489 if test x$enable_cups != xno; then
490 AC_PATH_PROG(CUPS_CONFIG, cups-config)
492 if test "x$CUPS_CONFIG" != x; then
494 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
495 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
496 LIBS="$LIBS `$CUPS_CONFIG --libs`"
500 ############################################
501 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the new VFS code
502 AC_CHECK_FUNCS(dlopen)
503 if test x"$ac_cv_func_dlopen" = x"no"; then
504 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
505 AC_DEFINE(HAVE_DLOPEN)])
507 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
509 ############################################
510 # check if the compiler can do immediate structures
511 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
515 typedef struct {unsigned x;} FOOBAR;
516 #define X_FOOBAR(x) ((FOOBAR) { x })
517 #define FOO_ONE X_FOOBAR(1)
525 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
526 if test x"$samba_cv_immediate_structures" = x"yes"; then
527 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES)
530 ############################################
531 # check for unix domain sockets
532 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
534 #include <sys/types.h>
537 #include <sys/socket.h>
538 #include <sys/un.h>],
540 struct sockaddr_un sunaddr;
541 sunaddr.sun_family = AF_UNIX;
543 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
544 if test x"$samba_cv_unixsocket" = x"yes"; then
545 AC_DEFINE(HAVE_UNIXSOCKET)
548 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
550 #include <sys/types.h>
555 #include <sys/socket.h>],[socklen_t i = 0],
556 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
557 if test x"$samba_cv_socklen_t" = x"yes"; then
558 AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
561 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
563 #include <sys/types.h>
568 #include <signal.h>],[sig_atomic_t i = 0],
569 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
570 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
571 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
574 # stupid headers have the functions but no declaration. grrrr.
575 AC_HAVE_DECL(errno, [#include <errno.h>])
576 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
577 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
578 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
579 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
580 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
581 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
583 # and glibc has setresuid under linux but the function does
584 # nothing until kernel 2.1.44! very dumb.
585 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
586 AC_TRY_RUN([#include <errno.h>
587 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
588 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
589 if test x"$samba_cv_have_setresuid" = x"yes"; then
590 AC_DEFINE(HAVE_SETRESUID)
593 # Do the same check for setresguid...
595 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
596 AC_TRY_RUN([#include <unistd.h>
598 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
599 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
600 if test x"$samba_cv_have_setresgid" = x"yes"; then
601 AC_DEFINE(HAVE_SETRESGID)
606 ###############################################
607 # Readline included by default unless explicitly asked not to
608 test "${with_readline+set}" != "set" && with_readline=yes
610 # test for where we get readline() from
611 AC_MSG_CHECKING(whether to use readline)
612 AC_ARG_WITH(readline,
613 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto)],
614 [ case "$with_readline" in
618 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
619 AC_CHECK_HEADERS(readline/history.h)
621 AC_CHECK_HEADERS(readline.h readline/readline.h,[
622 for termlib in ncurses curses termcap terminfo termlib; do
623 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
625 AC_CHECK_LIB(readline, rl_callback_handler_install,
626 [TERMLIBS="-lreadline $TERMLIBS"
627 AC_DEFINE(HAVE_LIBREADLINE)
628 break], [TERMLIBS=], $TERMLIBS)])
636 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
637 # alternate readline path
639 _cppflags=${CPPFLAGS}
641 # Add additional search path
642 LDFLAGS="-L$with_readline/lib $LDFLAGS"
643 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
645 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
646 AC_CHECK_HEADERS(readline/history.h)
648 AC_CHECK_HEADERS(readline.h readline/readline.h,[
649 for termlib in ncurses curses termcap terminfo termlib; do
650 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
652 AC_CHECK_LIB(readline, rl_callback_handler_install,
653 [TERMLDFLAGS="-L$with_readline/lib"
654 TERMCPPFLAGS="-I$with_readline/include"
655 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
656 TERMLIBS="-lreadline $TERMLIBS"
657 AC_DEFINE(HAVE_LIBREADLINE)
658 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
666 AC_SUBST(TERMLDFLAGS)
668 # The following test taken from the cvs sources
669 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
670 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
671 # libsocket.so which has a bad implementation of gethostbyname (it
672 # only looks in /etc/hosts), so we only look for -lsocket if we need
674 AC_CHECK_FUNCS(connect)
675 if test x"$ac_cv_func_connect" = x"no"; then
678 *) AC_CHECK_LIB(nsl_s, printf) ;;
682 *) AC_CHECK_LIB(nsl, printf) ;;
686 *) AC_CHECK_LIB(socket, connect) ;;
690 *) AC_CHECK_LIB(inet, connect) ;;
692 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
694 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
695 test x"$ac_cv_lib_inet_connect" = x"yes"; then
696 # ac_cv_func_connect=yes
697 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
698 AC_DEFINE(HAVE_CONNECT)
702 ###############################################
703 # test for where we get get_yp_default_domain() from
704 AC_CHECK_FUNCS(yp_get_default_domain)
705 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
706 AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
707 AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)])
710 # Check if we have execl, if not we need to compile smbrun.
711 AC_CHECK_FUNCS(execl)
712 if test x"$ac_cv_func_execl" = x"no"; then
718 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link)
719 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid mknod mknod64)
720 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
721 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
722 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
723 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
724 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
725 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
726 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
727 AC_CHECK_FUNCS(syslog vsyslog)
729 # syscall() is needed for smbwrapper.
730 AC_CHECK_FUNCS(syscall)
732 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
733 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
734 AC_CHECK_FUNCS(__getcwd _getcwd)
735 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
736 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
737 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
738 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
739 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
740 AC_CHECK_FUNCS(_write __write _fork __fork)
741 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
742 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
743 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
744 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
745 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
748 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
751 if test x$ac_cv_func_stat64 = xno ; then
752 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
754 #if defined(HAVE_UNISTD_H)
757 #include <sys/stat.h>
758 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
759 AC_MSG_RESULT([$ac_cv_func_stat64])
760 if test x$ac_cv_func_stat64 = xyes ; then
761 AC_DEFINE(HAVE_STAT64)
765 if test x$ac_cv_func_lstat64 = xno ; then
766 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
768 #if defined(HAVE_UNISTD_H)
771 #include <sys/stat.h>
772 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
773 AC_MSG_RESULT([$ac_cv_func_lstat64])
774 if test x$ac_cv_func_lstat64 = xyes ; then
775 AC_DEFINE(HAVE_LSTAT64)
779 if test x$ac_cv_func_fstat64 = xno ; then
780 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
782 #if defined(HAVE_UNISTD_H)
785 #include <sys/stat.h>
786 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
787 AC_MSG_RESULT([$ac_cv_func_fstat64])
788 if test x$ac_cv_func_fstat64 = xyes ; then
789 AC_DEFINE(HAVE_FSTAT64)
794 # If no strcasecmp, check for it in some known places
795 # It is in -lresolv on ReliantUNIX and UnixWare
796 # -lresolve *must* follow -lnsl for name resolution to work properly
799 if test x$ac_cv_func_strcasecmp = xno ; then
800 AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
801 AC_DEFINE(HAVE_STRCASECMP))
805 # Check for the functions putprpwnam, set_auth_parameters,
806 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
807 # Needed for OSF1 and HPUX.
810 AC_LIBTESTFUNC(security, putprpwnam)
811 AC_LIBTESTFUNC(sec, putprpwnam)
813 AC_LIBTESTFUNC(security, set_auth_parameters)
814 AC_LIBTESTFUNC(sec, set_auth_parameters)
816 # UnixWare 7.x has its getspnam in -lgen
817 AC_LIBTESTFUNC(gen, getspnam)
819 AC_LIBTESTFUNC(security, getspnam)
820 AC_LIBTESTFUNC(sec, getspnam)
822 AC_LIBTESTFUNC(security, bigcrypt)
823 AC_LIBTESTFUNC(sec, bigcrypt)
825 AC_LIBTESTFUNC(security, getprpwnam)
826 AC_LIBTESTFUNC(sec, getprpwnam)
828 # this bit needs to be modified for each OS that is suported by
829 # smbwrapper. You need to specify how to created a shared library and
830 # how to compile C code to produce PIC object files
832 # these are the defaults, good for lots of systems
840 # Assume non-shared by default and override below
842 AC_MSG_CHECKING([ability to build shared libraries])
844 # and these are for particular systems
846 *linux*) AC_DEFINE(LINUX)
849 DYNEXP="-Wl,--export-dynamic"
851 SONAMEFLAG="-Wl,-soname="
852 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
854 *solaris*) AC_DEFINE(SUNOS5)
858 if test "${GCC}" = "yes"; then
863 ## ${CFLAGS} added for building 64-bit shared
864 ## libs using Sun's Compiler
865 LDSHFLAGS="-G \${CFLAGS}"
869 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
871 *sunos*) AC_DEFINE(SUNOS4)
875 PICFLAG="-KPIC" # Is this correct for SunOS
877 *bsd*) BLDSHARED="true"
879 DYNEXP="-Wl,-Bdynamic"
880 SONAMEFLAG="-Wl,-soname,"
882 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
884 *irix*) AC_DEFINE(IRIX)
886 *irix6*) AC_DEFINE(IRIX6)
889 ATTEMPT_WRAP32_BUILD=yes
891 LDSHFLAGS="-set_version sgi1.0 -shared"
892 SONAMEFLAG="-soname "
894 if test "${GCC}" = "yes"; then
899 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
901 *aix*) AC_DEFINE(AIX)
903 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
904 DYNEXP="-Wl,-brtl,-bexpall"
905 if test "${GCC}" = "yes"; then
908 PICFLAG="-O2 -qmaxmem=6000"
911 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE)
913 *hpux*) AC_DEFINE(HPUX)
915 # Use special PIC flags for the native HP-UX compiler.
916 if test $ac_cv_prog_cc_Ae = yes; then
919 LDSHFLAGS="-B symbolic -b -z"
924 AC_DEFINE(STAT_ST_BLOCKSIZE,8192)
926 *qnx*) AC_DEFINE(QNX);;
927 *osf*) AC_DEFINE(OSF1)
930 SONAMEFLAG="-Wl,-soname,"
933 *sco*) AC_DEFINE(SCO);;
934 *unixware*) AC_DEFINE(UNIXWARE)
937 SONAMEFLAG="-Wl,-soname,"
940 *next2*) AC_DEFINE(NEXT2);;
941 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
944 *-univel-*) if [ test "$GCC" != yes ]; then
945 AC_DEFINE(HAVE_MEMSET)
950 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
954 if [ test "$GCC" != yes ]; then
955 AC_DEFINE(HAVE_MEMSET)
961 AC_MSG_RESULT($BLDSHARED)
962 AC_MSG_CHECKING([linker flags for shared libraries])
963 AC_MSG_RESULT([$LDSHFLAGS])
964 AC_MSG_CHECKING([compiler flags for position-independent code])
965 AC_MSG_RESULT([$PICFLAGS])
967 # try to work out how to produce pic code with this compiler
968 if test x$PICFLAG = x; then
969 AC_PROG_CC_FLAG(fpic)
970 if test $ac_cv_prog_cc_fpic = yes; then
974 if test x$PICFLAG = x; then
975 AC_PROG_CC_FLAG(KPIC)
976 if test $ac_cv_prog_cc_KPIC = yes; then
980 if test x$PICFLAG = x; then
981 AC_PROG_CC_FLAG(Kpic)
982 if test $ac_cv_prog_cc_Kpic = yes; then
989 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
990 AC_TRY_RUN([#include <stdio.h>
991 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
992 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
993 if test x"$samba_cv_have_longlong" = x"yes"; then
994 AC_DEFINE(HAVE_LONGLONG)
998 # Check if the compiler supports the LL prefix on long long integers.
1001 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1002 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1003 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1004 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1005 AC_DEFINE(COMPILER_SUPPORTS_LL)
1009 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1010 AC_TRY_RUN([#include <stdio.h>
1011 #include <sys/stat.h>
1012 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1013 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1014 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1015 AC_DEFINE(SIZEOF_OFF_T,8)
1018 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1020 #if defined(HAVE_UNISTD_H)
1024 #include <sys/stat.h>
1025 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1026 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1027 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1028 AC_DEFINE(HAVE_OFF64_T)
1031 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1032 AC_TRY_RUN([#include <stdio.h>
1033 #include <sys/stat.h>
1034 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1035 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1036 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1037 AC_DEFINE(SIZEOF_INO_T,8)
1040 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1042 #if defined(HAVE_UNISTD_H)
1046 #include <sys/stat.h>
1047 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1048 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1049 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1050 AC_DEFINE(HAVE_INO64_T)
1053 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1055 #if defined(HAVE_UNISTD_H)
1059 #include <sys/stat.h>
1060 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1061 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1062 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1063 AC_DEFINE(HAVE_DEV64_T)
1066 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1068 #if defined(HAVE_UNISTD_H)
1071 #include <sys/types.h>
1072 #include <dirent.h>],
1073 [struct dirent64 de;],
1074 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1075 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
1076 AC_DEFINE(HAVE_STRUCT_DIRENT64)
1079 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1081 #if defined(HAVE_UNISTD_H)
1084 #include <sys/types.h>
1085 main() { dev_t dev; int i = major(dev); return 0; }],
1086 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1087 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1088 AC_DEFINE(HAVE_DEVICE_MAJOR_FN)
1091 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1093 #if defined(HAVE_UNISTD_H)
1096 #include <sys/types.h>
1097 main() { dev_t dev; int i = minor(dev); return 0; }],
1098 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1099 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1100 AC_DEFINE(HAVE_DEVICE_MINOR_FN)
1103 AC_CACHE_CHECK([for makedev macro],samba_cv_HAVE_MAKEDEV_FN,[
1105 #if defined(HAVE_UNISTD_H)
1108 #include <sys/types.h>
1109 main() { dev_t dev = makedev(1,2); return 0; }],
1110 samba_cv_HAVE_MAKEDEV_FN=yes,samba_cv_HAVE_MAKEDEV_FN=no,samba_cv_HAVE_MAKEDEV_FN=cross)])
1111 if test x"$samba_cv_HAVE_MAKEDEV_FN" = x"yes"; then
1112 AC_DEFINE(MAKEDEV_FN)
1115 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1116 AC_TRY_RUN([#include <stdio.h>
1117 main() { char c; c=250; exit((c > 0)?0:1); }],
1118 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1119 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1120 AC_DEFINE(HAVE_UNSIGNED_CHAR)
1123 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1124 AC_TRY_COMPILE([#include <sys/types.h>
1125 #include <sys/socket.h>
1126 #include <netinet/in.h>],
1127 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1128 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1129 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1130 AC_DEFINE(HAVE_SOCK_SIN_LEN)
1133 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1134 AC_TRY_COMPILE([#include <sys/types.h>
1136 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1137 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1138 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1139 AC_DEFINE(SEEKDIR_RETURNS_VOID)
1142 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
1143 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
1144 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
1145 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
1146 AC_DEFINE(HAVE_FILE_MACRO)
1149 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1150 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1151 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1152 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1153 AC_DEFINE(HAVE_FUNCTION_MACRO)
1156 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1158 #include <sys/time.h>
1160 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1161 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1162 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1163 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
1166 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE_VA_COPY,[
1167 AC_TRY_LINK([#include <stdarg.h>
1168 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1169 samba_cv_HAVE_VA_COPY=yes,samba_cv_HAVE_VA_COPY=no)])
1170 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1171 AC_DEFINE(HAVE_VA_COPY)
1174 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1176 #include <sys/types.h>
1178 void foo(const char *format, ...) {
1183 va_start(ap, format);
1184 len = vsnprintf(buf, 0, format, ap);
1186 if (len != 5) exit(1);
1188 va_start(ap, format);
1189 len = vsnprintf(0, 0, format, ap);
1191 if (len != 5) exit(1);
1193 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1197 main() { foo("hello"); }
1199 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1200 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1201 AC_DEFINE(HAVE_C99_VSNPRINTF)
1204 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1205 AC_TRY_RUN([#include <sys/types.h>
1207 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1208 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1209 di->d_name[0] == 0) exit(0); exit(1);} ],
1210 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1211 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1212 AC_DEFINE(HAVE_BROKEN_READDIR)
1215 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1216 AC_TRY_COMPILE([#include <sys/types.h>
1217 #include <utime.h>],
1218 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1219 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1220 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1221 AC_DEFINE(HAVE_UTIMBUF)
1224 dnl utmp and utmpx come in many flavours
1225 dnl We need to check for many of them
1226 dnl But we don't need to do each and every one, because our code uses
1227 dnl mostly just the utmp (not utmpx) fields.
1229 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1231 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1232 AC_TRY_COMPILE([#include <sys/types.h>
1234 [struct utmp ut; ut.ut_name[0] = 'a';],
1235 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1236 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1237 AC_DEFINE(HAVE_UT_UT_NAME)
1240 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1241 AC_TRY_COMPILE([#include <sys/types.h>
1243 [struct utmp ut; ut.ut_user[0] = 'a';],
1244 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1245 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1246 AC_DEFINE(HAVE_UT_UT_USER)
1249 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1250 AC_TRY_COMPILE([#include <sys/types.h>
1252 [struct utmp ut; ut.ut_id[0] = 'a';],
1253 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1254 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1255 AC_DEFINE(HAVE_UT_UT_ID)
1258 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1259 AC_TRY_COMPILE([#include <sys/types.h>
1261 [struct utmp ut; ut.ut_host[0] = 'a';],
1262 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1263 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1264 AC_DEFINE(HAVE_UT_UT_HOST)
1267 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1268 AC_TRY_COMPILE([#include <sys/types.h>
1270 [struct utmp ut; time_t t; ut.ut_time = t;],
1271 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1272 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1273 AC_DEFINE(HAVE_UT_UT_TIME)
1276 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1277 AC_TRY_COMPILE([#include <sys/types.h>
1279 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
1280 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1281 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1282 AC_DEFINE(HAVE_UT_UT_TV)
1285 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1286 AC_TRY_COMPILE([#include <sys/types.h>
1288 [struct utmp ut; ut.ut_type = 0;],
1289 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1290 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1291 AC_DEFINE(HAVE_UT_UT_TYPE)
1294 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1295 AC_TRY_COMPILE([#include <sys/types.h>
1297 [struct utmp ut; ut.ut_pid = 0;],
1298 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1299 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1300 AC_DEFINE(HAVE_UT_UT_PID)
1303 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1304 AC_TRY_COMPILE([#include <sys/types.h>
1306 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1307 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1308 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1309 AC_DEFINE(HAVE_UT_UT_EXIT)
1312 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1313 AC_TRY_COMPILE([#include <sys/types.h>
1315 [struct utmp ut; ut.ut_addr = 0;],
1316 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1317 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1318 AC_DEFINE(HAVE_UT_UT_ADDR)
1321 if test x$ac_cv_func_pututline = xyes ; then
1322 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1323 AC_TRY_COMPILE([#include <sys/types.h>
1325 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1326 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1327 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1328 AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
1332 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1333 AC_TRY_COMPILE([#include <sys/types.h>
1334 #include <utmpx.h>],
1335 [struct utmpx ux; ux.ut_syslen = 0;],
1336 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1337 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1338 AC_DEFINE(HAVE_UX_UT_SYSLEN)
1341 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1343 #include <sys/types.h>
1346 #define F_GETLEASE 1025
1349 int fd = open("/dev/null", O_RDONLY);
1350 return fcntl(fd, F_GETLEASE, 0) == -1;
1353 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1354 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1355 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1358 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1360 #include <sys/types.h>
1364 #define F_NOTIFY 1026
1367 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1370 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1371 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1372 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1375 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1377 #include <sys/types.h>
1380 #include <sys/file.h>
1382 #define LOCK_MAND 32
1383 #define LOCK_READ 64
1386 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1389 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1390 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1391 AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1397 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1398 AC_TRY_COMPILE([#include <sys/types.h>
1399 #include <fcntl.h>],
1400 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1401 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1402 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1403 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1406 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1407 AC_TRY_RUN([#include <sys/types.h>
1408 #include <sys/capability.h>
1411 if ((cap = cap_get_proc()) == NULL)
1413 cap->cap_effective |= CAP_NETWORK_MGT;
1414 cap->cap_inheritable |= CAP_NETWORK_MGT;
1419 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1420 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1421 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1425 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1426 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1429 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1430 AC_TRY_COMPILE([#include <sys/types.h>
1431 #if defined(HAVE_RPC_RPC_H)
1432 #include <rpc/rpc.h>
1435 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1436 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1437 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1440 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1441 AC_TRY_COMPILE([#include <sys/types.h>
1442 #if defined(HAVE_RPC_RPC_H)
1443 #include <rpc/rpc.h>
1446 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1447 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1448 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1451 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1452 AC_TRY_COMPILE([#include <sys/types.h>
1453 #if defined(HAVE_RPC_RPC_H)
1454 #include <rpc/rpc.h>
1457 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1458 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1459 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1462 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1463 AC_TRY_COMPILE([#include <sys/types.h>
1464 #if defined(HAVE_RPC_RPC_H)
1465 #include <rpc/rpc.h>
1468 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1469 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1470 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1474 dnl Some systems (SCO) have a problem including
1475 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1476 dnl as a #define in <prot.h> and as part of an enum
1480 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1481 AC_TRY_COMPILE([#include <sys/types.h>
1482 #ifdef HAVE_SYS_SECURITY_H
1483 #include <sys/security.h>
1485 #endif /* HAVE_SYS_SECURITY_H */
1486 #if defined(HAVE_RPC_RPC_H)
1487 #include <rpc/rpc.h>
1490 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1491 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1492 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1495 AC_MSG_CHECKING([for test routines])
1496 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1498 AC_MSG_ERROR([cant find test code. Aborting config]),
1499 AC_MSG_WARN([cannot run when cross-compiling]))
1501 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1502 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1503 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1504 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1505 AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1508 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1509 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1510 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1511 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1512 AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1515 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1516 SAVE_CPPFLAGS="$CPPFLAGS"
1517 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/popt -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1519 #define REPLACE_GETPASS 1
1520 #define NO_CONFIG_H 1
1521 #define main dont_declare_main
1522 #include "${srcdir-.}/lib/getsmbpass.c"
1524 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1525 CPPFLAGS="$SAVE_CPPFLAGS"
1527 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1528 AC_DEFINE(REPLACE_GETPASS)
1531 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1534 #include <sys/types.h>
1535 #include <netinet/in.h>
1536 #ifdef HAVE_ARPA_INET_H
1537 #include <arpa/inet.h>
1539 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1540 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1541 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1543 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1544 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1545 AC_DEFINE(REPLACE_INET_NTOA)
1548 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1549 AC_TRY_RUN([#include <stdlib.h>
1550 #include <sys/types.h>
1551 #include <sys/stat.h>
1555 char tpl[20]="/tmp/test.XXXXXX";
1556 int fd = mkstemp(tpl);
1557 if (fd == -1) exit(1);
1559 if (fstat(fd, &st) != 0) exit(1);
1560 if ((st.st_mode & 0777) != 0600) exit(1);
1563 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1564 samba_cv_HAVE_SECURE_MKSTEMP=no,
1565 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1566 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1567 AC_DEFINE(HAVE_SECURE_MKSTEMP)
1570 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1571 AC_TRY_RUN([#include <unistd.h>
1572 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1573 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1574 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1575 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1578 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1579 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1580 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1581 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1582 AC_DEFINE(HAVE_ROOT)
1584 AC_MSG_WARN(running as non-root will disable some tests)
1588 # look for a method of finding the list of network interfaces
1590 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1592 #define HAVE_IFACE_AIX 1
1593 #define AUTOCONF_TEST 1
1594 #include "confdefs.h"
1595 #include "${srcdir-.}/lib/interfaces.c"],
1596 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1597 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1598 iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1601 if test $iface = no; then
1602 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1604 #define HAVE_IFACE_IFCONF 1
1605 #define AUTOCONF_TEST 1
1606 #include "confdefs.h"
1607 #include "${srcdir-.}/lib/interfaces.c"],
1608 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1609 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1610 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1614 if test $iface = no; then
1615 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1617 #define HAVE_IFACE_IFREQ 1
1618 #define AUTOCONF_TEST 1
1619 #include "confdefs.h"
1620 #include "${srcdir-.}/lib/interfaces.c"],
1621 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1622 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1623 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1628 ################################################
1629 # look for a method of setting the effective uid
1631 if test $seteuid = no; then
1632 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1634 #define AUTOCONF_TEST 1
1635 #define USE_SETRESUID 1
1636 #include "confdefs.h"
1637 #include "${srcdir-.}/lib/util_sec.c"],
1638 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1639 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1640 seteuid=yes;AC_DEFINE(USE_SETRESUID)
1645 if test $seteuid = no; then
1646 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1648 #define AUTOCONF_TEST 1
1649 #define USE_SETREUID 1
1650 #include "confdefs.h"
1651 #include "${srcdir-.}/lib/util_sec.c"],
1652 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1653 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1654 seteuid=yes;AC_DEFINE(USE_SETREUID)
1658 if test $seteuid = no; then
1659 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1661 #define AUTOCONF_TEST 1
1662 #define USE_SETEUID 1
1663 #include "confdefs.h"
1664 #include "${srcdir-.}/lib/util_sec.c"],
1665 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1666 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1667 seteuid=yes;AC_DEFINE(USE_SETEUID)
1671 if test $seteuid = no; then
1672 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1674 #define AUTOCONF_TEST 1
1675 #define USE_SETUIDX 1
1676 #include "confdefs.h"
1677 #include "${srcdir-.}/lib/util_sec.c"],
1678 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1679 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1680 seteuid=yes;AC_DEFINE(USE_SETUIDX)
1685 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1686 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1687 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1688 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1689 AC_DEFINE(HAVE_MMAP)
1692 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1693 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1694 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1695 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1696 AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1699 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1700 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1701 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1702 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1703 AC_DEFINE(HAVE_FCNTL_LOCK)
1706 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1707 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1708 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1709 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1710 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1715 dnl Don't check for 64 bit fcntl locking if we know that the
1716 dnl glibc2.1 broken check has succeeded.
1719 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1721 #if defined(HAVE_UNISTD_H)
1731 #ifdef HAVE_SYS_FCNTL_H
1732 #include <sys/fcntl.h>
1734 main() { struct flock64 fl64;
1735 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1741 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1743 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1744 AC_DEFINE(HAVE_STRUCT_FLOCK64)
1748 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
1749 AC_TRY_COMPILE([#include <sys/types.h>
1750 #include <sys/stat.h>
1751 #include <unistd.h>],
1752 [struct stat st; st.st_blocks = 0;],
1753 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
1754 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
1755 AC_DEFINE(HAVE_STAT_ST_BLOCKS)
1760 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
1762 #ifdef HAVE_SYS_VFS_H
1763 #include <sys/vfs.h>
1765 #ifdef HAVE_SYS_CAPABILITY_H
1766 #include <sys/capability.h>
1769 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
1770 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
1771 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS)
1776 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1777 AC_TRY_COMPILE([#include <sys/acl.h>
1778 #if defined(HAVE_RPCSVC_NIS_H)
1779 #include <rpcsvc/nis.h>
1782 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1783 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1784 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1788 #################################################
1789 # check for smbwrapper support
1790 AC_MSG_CHECKING(whether to use smbwrapper)
1791 AC_ARG_WITH(smbwrapper,
1792 [ --with-smbwrapper Include SMB wrapper support (default=no)],
1793 [ case "$withval" in
1796 AC_DEFINE(WITH_SMBWRAPPER)
1797 WRAPPROG="bin/smbsh"
1798 WRAP="bin/smbwrapper.$SHLIBEXT"
1800 if test x$ATTEMPT_WRAP32_BUILD = x; then
1803 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1806 # Conditions under which smbwrapper should not be built.
1808 if test x$PICFLAG = x; then
1809 echo No support for PIC code - disabling smbwrapper and smbsh
1813 elif test x$ac_cv_func_syscall = xno; then
1814 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1827 #################################################
1828 # check for the AFS filesystem
1829 AC_MSG_CHECKING(whether to use AFS)
1831 [ --with-afs Include AFS support (default=no)],
1832 [ case "$withval" in
1845 #################################################
1846 # check for the DFS auth system
1847 AC_MSG_CHECKING(whether to use DCE/DFS auth)
1849 [ --with-dce-dfs Include DCE/DFS support (default=no)],
1850 [ case "$withval" in
1862 #################################################
1863 # check for Kerberos IV auth system
1864 AC_MSG_CHECKING(whether to use Kerberos IV)
1866 [ --with-krb4=base-dir Include Kerberos IV support (default=no)],
1867 [ case "$withval" in
1870 AC_DEFINE(KRB4_AUTH)
1871 AC_CHECK_LIB(resolv, dn_expand)
1872 LIBS="$LIBS -lkrb -ldes"
1873 CFLAGS="$CFLAGS -I$withval/include"
1874 LDFLAGS="$LDFLAGS -L$withval/lib"
1883 #################################################
1884 # check for Kerberos 5 auth system
1885 AC_MSG_CHECKING(whether to use Kerberos 5)
1887 [ --with-krb5=base-dir Include Kerberos 5 support (default=no)],
1888 [ case "$withval" in
1891 AC_DEFINE(KRB5_AUTH)
1892 LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1893 CFLAGS="$CFLAGS -I$withval/include"
1894 LDFLAGS="$LDFLAGS -L$withval/lib"
1903 #################################################
1904 # check for automount support
1905 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1906 AC_ARG_WITH(automount,
1907 [ --with-automount Include AUTOMOUNT support (default=no)],
1908 [ case "$withval" in
1911 AC_DEFINE(WITH_AUTOMOUNT)
1920 #################################################
1921 # check for smbmount support
1922 AC_MSG_CHECKING(whether to use SMBMOUNT)
1923 AC_ARG_WITH(smbmount,
1924 [ --with-smbmount Include SMBMOUNT (Linux only) support (default=no)],
1925 [ case "$withval" in
1930 AC_DEFINE(WITH_SMBMOUNT)
1931 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1934 AC_MSG_ERROR(not on a linux system!)
1948 #################################################
1949 # check for a PAM password database
1950 with_pam_for_crypt=no
1951 AC_MSG_CHECKING(whether to use PAM password database)
1953 [ --with-pam Include PAM password database support (default=no)],
1954 [ case "$withval" in
1959 with_pam_for_crypt=yes
1968 # we can't build a pam module if we don't have pam.
1969 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
1971 #################################################
1972 # check for pam_smbpass support
1973 AC_MSG_CHECKING(whether to use pam_smbpass)
1974 AC_ARG_WITH(pam_smbpass,
1975 [ --with-pam_smbpass Include the smbpass PAM module (default=no)],
1976 [ case "$withval" in
1980 # Conditions under which pam_smbpass should not be built.
1982 if test x$PICFLAG = x; then
1983 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
1985 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
1986 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
1989 AC_DEFINE(WITH_PAM_SMBPASS)
1990 PAM_MOD="bin/pam_smbpass.so"
2001 ###############################################
2002 # test for where we get crypt() from, but only
2004 if test $with_pam_for_crypt = no; then
2005 AC_CHECK_FUNCS(crypt)
2006 if test x"$ac_cv_func_crypt" = x"no"; then
2007 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
2008 AC_DEFINE(HAVE_CRYPT)])
2013 ## moved after the check for -lcrypt in order to
2014 ## ensure that the necessary libraries are included
2015 ## check checking for truncated salt. Wrapped by the
2016 ## $with_pam_for_crypt variable as above --jerry
2018 if test $with_pam_for_crypt = no; then
2019 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2020 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2021 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
2022 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2023 AC_DEFINE(HAVE_TRUNCATED_SALT)
2028 ########################################################################################
2030 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
2032 ########################################################################################
2034 ## set the with_smbpasswd_sam as the default
2035 with_smbpasswd_sam=yes
2039 #################################################
2040 # check for a TDB password database
2041 AC_MSG_CHECKING(whether to use TDB SAM database)
2043 [ --with-tdbsam Include experimental TDB SAM support (default=no)],
2044 [ case "$withval" in
2047 AC_DEFINE(WITH_TDB_SAM)
2048 with_smbpasswd_sam=no
2057 #################################################
2058 # check for a LDAP password database
2059 AC_MSG_CHECKING(whether to use LDAP SAM database)
2060 AC_ARG_WITH(ldapsam,
2061 [ --with-ldapsam Include experimental LDAP SAM support (default=no)],
2062 [ case "$withval" in
2065 AC_DEFINE(WITH_LDAP_SAM)
2066 LIBS="-lldap -llber -lresolv $LIBS"
2067 with_smbpasswd_sam=no
2076 #################################################
2077 # check for a NISPLUS password database
2078 AC_MSG_CHECKING(whether to use NISPLUS SAM database)
2079 AC_ARG_WITH(nisplussam,
2080 [ --with-nisplussam Include NISPLUS SAM support (default=no)],
2081 [ case "$withval" in
2084 AC_DEFINE(WITH_NISPLUS_SAM)
2085 with_smbpasswd_sam=no
2094 ################################################
2095 # This test should come last because the
2096 # smbpasswd SAM is only used if another format
2097 # has not been defined
2098 AC_MSG_CHECKING(whether to use traditional smbpasswd file)
2099 if test $with_smbpasswd_sam = yes; then
2101 AC_DEFINE(WITH_SMBPASSWD_SAM)
2108 ########################################################################################
2110 ## END OF TESTS FOR SAM BACKENDS.
2112 ########################################################################################
2114 #################################################
2115 # check for a NISPLUS_HOME support
2116 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
2117 AC_ARG_WITH(nisplus-home,
2118 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
2119 [ case "$withval" in
2122 AC_DEFINE(WITH_NISPLUS_HOME)
2131 #################################################
2132 # check for the secure socket layer
2133 AC_MSG_CHECKING(whether to use SSL)
2135 [ --with-ssl Include SSL support (default=no)
2136 --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl/include)
2137 --with-ssllib=DIR Where the SSL libraries are (defaults to /usr/local/ssl/lib)],
2138 [ case "$withval" in
2142 withval="/usr/local/ssl" # default
2144 if test "${with_sslinc+set}" = set; then
2146 withval="$with_sslinc"
2149 echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
2150 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
2153 CFLAGS="-I${withval} $CFLAGS"
2159 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
2163 if test "${with_ssllib+set}" = set; then
2165 withval="$with_ssllib"
2168 echo "configure: warning: --with-ssllib called without argument - will use default" 1>&w
2169 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
2172 LDFLAGS="-L${withval}/lib $LDFLAGS"
2178 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
2182 LIBS="-lssl -lcrypto $LIBS"
2184 # if test ! -d ${withval}; then
2185 # echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
2189 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own
2199 #################################################
2200 # check for syslog logging
2201 AC_MSG_CHECKING(whether to use syslog logging)
2203 [ --with-syslog Include experimental SYSLOG support (default=no)],
2204 [ case "$withval" in
2207 AC_DEFINE(WITH_SYSLOG)
2216 #################################################
2217 # check for a shared memory profiling support
2218 AC_MSG_CHECKING(whether to use profiling)
2219 AC_ARG_WITH(profiling-data,
2220 [ --with-profiling-data Include gathering source code profile information (default=no)],
2221 [ case "$withval" in
2224 AC_DEFINE(WITH_PROFILE)
2234 #################################################
2235 # check for experimental disk-quotas support
2236 QUOTAOBJS=smbd/noquotas.o
2238 AC_MSG_CHECKING(whether to support disk-quotas)
2240 [ --with-quotas Include experimental disk-quota support (default=no)],
2241 [ case "$withval" in
2244 QUOTAOBJS=smbd/quotas.o
2247 # Check for kernel 2.4.x quota braindamage...
2248 AC_CACHE_CHECK([for linux 2.4.x quota braindamage..],samba_cv_linux_2_4_quota_braindamage, [
2249 AC_TRY_COMPILE([#include <stdio.h>
2250 #include <sys/types.h>
2251 #include <asm/types.h>
2252 #include <linux/quota.h>
2254 #include <linux/unistd.h>],[struct mem_dqblk D;],
2255 samba_cv_linux_2_4_quota_braindamage=yes,samba_cv_linux_2_4_quota_braindamage=no)])
2256 if test x"$samba_cv_linux_2_4_quota_braindamage" = x"yes"; then
2257 AC_DEFINE(LINUX_QUOTAS_2)
2259 AC_DEFINE(LINUX_QUOTAS_1)
2274 #################################################
2275 # check for experimental utmp accounting
2277 AC_MSG_CHECKING(whether to support utmp accounting)
2279 [ --with-utmp Include experimental utmp accounting (default=no)],
2280 [ case "$withval" in
2283 AC_DEFINE(WITH_UTMP)
2292 #################################################
2293 # check for MS Dfs support
2295 AC_MSG_CHECKING(whether to support Microsoft Dfs)
2297 [ --with-msdfs Include MS Dfs support (default=no)],
2298 [ case "$withval" in
2301 AC_DEFINE(WITH_MSDFS)
2310 #################################################
2311 # should we build libsmbclient?
2313 LIBSMBCLIENT_SHARED=
2315 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
2316 AC_ARG_WITH(libsmbclient,
2317 [ --with-libsmbclient Build the libsmbclient shared library (default=no)],
2318 [ case "$withval" in
2320 if test $BLDSHARED = true; then
2321 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
2322 LIBSMBCLIENT=libsmbclient
2325 AC_MSG_RESULT(no shared library support)
2335 #################################################
2336 # these tests are taken from the GNU fileutils package
2337 AC_CHECKING(how to get filesystem space usage)
2340 # Test for statvfs64.
2341 if test $space = no; then
2343 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2345 #if defined(HAVE_UNISTD_H)
2348 #include <sys/types.h>
2349 #include <sys/statvfs.h>
2352 struct statvfs64 fsd;
2353 exit (statvfs64 (".", &fsd));
2355 fu_cv_sys_stat_statvfs64=yes,
2356 fu_cv_sys_stat_statvfs64=no,
2357 fu_cv_sys_stat_statvfs64=cross)])
2358 if test $fu_cv_sys_stat_statvfs64 = yes; then
2360 AC_DEFINE(STAT_STATVFS64)
2364 # Perform only the link test since it seems there are no variants of the
2365 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2366 # because that got a false positive on SCO OSR5. Adding the declaration
2367 # of a `struct statvfs' causes this test to fail (as it should) on such
2368 # systems. That system is reported to work fine with STAT_STATFS4 which
2369 # is what it gets when this test fails.
2370 if test $space = no; then
2372 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2373 [AC_TRY_LINK([#include <sys/types.h>
2374 #include <sys/statvfs.h>],
2375 [struct statvfs fsd; statvfs (0, &fsd);],
2376 fu_cv_sys_stat_statvfs=yes,
2377 fu_cv_sys_stat_statvfs=no)])
2378 if test $fu_cv_sys_stat_statvfs = yes; then
2380 AC_DEFINE(STAT_STATVFS)
2384 if test $space = no; then
2385 # DEC Alpha running OSF/1
2386 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2387 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2389 #include <sys/param.h>
2390 #include <sys/types.h>
2391 #include <sys/mount.h>
2396 exit (statfs (".", &fsd, sizeof (struct statfs)));
2398 fu_cv_sys_stat_statfs3_osf1=yes,
2399 fu_cv_sys_stat_statfs3_osf1=no,
2400 fu_cv_sys_stat_statfs3_osf1=no)])
2401 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2402 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2404 AC_DEFINE(STAT_STATFS3_OSF1)
2408 if test $space = no; then
2410 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2411 member (AIX, 4.3BSD)])
2412 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2414 #ifdef HAVE_SYS_PARAM_H
2415 #include <sys/param.h>
2417 #ifdef HAVE_SYS_MOUNT_H
2418 #include <sys/mount.h>
2420 #ifdef HAVE_SYS_VFS_H
2421 #include <sys/vfs.h>
2427 exit (statfs (".", &fsd));
2429 fu_cv_sys_stat_statfs2_bsize=yes,
2430 fu_cv_sys_stat_statfs2_bsize=no,
2431 fu_cv_sys_stat_statfs2_bsize=no)])
2432 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2433 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2435 AC_DEFINE(STAT_STATFS2_BSIZE)
2439 if test $space = no; then
2441 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2442 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2443 [AC_TRY_RUN([#include <sys/types.h>
2444 #include <sys/statfs.h>
2448 exit (statfs (".", &fsd, sizeof fsd, 0));
2450 fu_cv_sys_stat_statfs4=yes,
2451 fu_cv_sys_stat_statfs4=no,
2452 fu_cv_sys_stat_statfs4=no)])
2453 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2454 if test $fu_cv_sys_stat_statfs4 = yes; then
2456 AC_DEFINE(STAT_STATFS4)
2460 if test $space = no; then
2462 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2463 member (4.4BSD and NetBSD)])
2464 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2465 [AC_TRY_RUN([#include <sys/types.h>
2466 #ifdef HAVE_SYS_PARAM_H
2467 #include <sys/param.h>
2469 #ifdef HAVE_SYS_MOUNT_H
2470 #include <sys/mount.h>
2476 exit (statfs (".", &fsd));
2478 fu_cv_sys_stat_statfs2_fsize=yes,
2479 fu_cv_sys_stat_statfs2_fsize=no,
2480 fu_cv_sys_stat_statfs2_fsize=no)])
2481 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2482 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2484 AC_DEFINE(STAT_STATFS2_FSIZE)
2488 if test $space = no; then
2490 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2491 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2492 [AC_TRY_RUN([#include <sys/types.h>
2493 #ifdef HAVE_SYS_PARAM_H
2494 #include <sys/param.h>
2496 #ifdef HAVE_SYS_MOUNT_H
2497 #include <sys/mount.h>
2499 #ifdef HAVE_SYS_FS_TYPES_H
2500 #include <sys/fs_types.h>
2505 /* Ultrix's statfs returns 1 for success,
2506 0 for not mounted, -1 for failure. */
2507 exit (statfs (".", &fsd) != 1);
2509 fu_cv_sys_stat_fs_data=yes,
2510 fu_cv_sys_stat_fs_data=no,
2511 fu_cv_sys_stat_fs_data=no)])
2512 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2513 if test $fu_cv_sys_stat_fs_data = yes; then
2515 AC_DEFINE(STAT_STATFS2_FS_DATA)
2520 # As a gating factor for large file support, in order to
2521 # use <4GB files we must have the following minimal support
2523 # long long, and a 64 bit off_t or off64_t.
2524 # If we don't have all of these then disable large
2527 AC_MSG_CHECKING(if large file support can be enabled)
2529 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2530 #include <sys/types.h>
2536 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2537 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2539 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2544 AC_ARG_WITH(spinlocks,
2545 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no)])
2546 if test "x$with_spinlocks" = "xyes"; then
2547 AC_DEFINE(USE_SPINLOCKS)
2551 AC_DEFINE(SPARC_SPINLOCKS)
2554 i386|i486|i586|i686)
2555 AC_DEFINE(INTEL_SPINLOCKS)
2559 AC_DEFINE(MIPS_SPINLOCKS)
2563 AC_DEFINE(POWERPC_SPINLOCKS)
2568 #################################################
2569 # check for ACL support
2571 AC_MSG_CHECKING(whether to support ACLs)
2572 AC_ARG_WITH(acl-support,
2573 [ --with-acl-support Include ACL support (default=no)],
2574 [ case "$withval" in
2579 AC_MSG_RESULT(Using UnixWare ACLs)
2580 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2583 AC_MSG_RESULT(Using solaris ACLs)
2584 AC_DEFINE(HAVE_SOLARIS_ACLS)
2587 AC_MSG_RESULT(Using HPUX ACLs)
2588 AC_DEFINE(HAVE_HPUX_ACLS)
2591 AC_MSG_RESULT(Using IRIX ACLs)
2592 AC_DEFINE(HAVE_IRIX_ACLS)
2595 AC_MSG_RESULT(Using AIX ACLs)
2596 AC_DEFINE(HAVE_AIX_ACLS)
2599 AC_MSG_RESULT(Using Tru64 ACLs)
2600 AC_DEFINE(HAVE_TRU64_ACLS)
2604 AC_CHECK_LIB(acl,acl_get_file)
2605 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2606 AC_TRY_LINK([#include <sys/types.h>
2607 #include <sys/acl.h>],
2608 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2609 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2610 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2611 AC_MSG_RESULT(Using posix ACLs)
2612 AC_DEFINE(HAVE_POSIX_ACLS)
2613 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2614 AC_TRY_LINK([#include <sys/types.h>
2615 #include <sys/acl.h>],
2616 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2617 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2618 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2619 AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2627 AC_DEFINE(HAVE_NO_ACLS)
2630 AC_DEFINE(HAVE_NO_ACLS)
2634 #################################################
2635 # check for the historical SAMBA installation
2637 if test "x$prefix" = xNONE -a "$sbindir" = "\${exec_prefix}/sbin"; then
2638 # Put all binaries under the /usr/local/samba/bin directory.
2642 #################################################
2643 # Check whether winbind is supported on this platform. If so we need to
2644 # build and install client programs (WINBIND_TARGETS), sbin programs
2645 # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS).
2647 AC_MSG_CHECKING(whether to build winbind)
2649 # Initially, the value of $host_os decides whether winbind is supported
2657 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2658 WINBIND_NSS_EXTRA_LIBS="-lsocket"
2662 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2669 winbind_no_reason=", unsupported on $host_os"
2673 # Check the setting of --with-winbindd
2675 AC_ARG_WITH(winbind,
2676 [ --with-winbind Build winbind (default, if supported by OS)],
2689 # We need unix domain sockets for winbind
2691 if test x"$HAVE_WINBIND" = x"yes"; then
2692 if test x"$samba_cv_unixsocket" = x"no"; then
2693 winbind_no_reason=", no unix domain socket support on $host_os"
2698 # Display test results
2700 if test x"$HAVE_WINBIND" = x"yes"; then
2704 WINBIND_TARGETS="bin/wbinfo"
2705 WINBIND_STARGETS="bin/winbindd"
2708 WINBIND_LTARGETS="nsswitch/libns_winbind.so"
2711 WINBIND_LTARGETS="nsswitch/libnss_winbind.so"
2718 WINBIND_PAM_TARGETS="nsswitch/pam_winbind.so"
2722 AC_MSG_RESULT(no$winbind_no_reason)
2727 WINBIND_PAM_TARGETS=""
2730 # Check for FreeBSD problem with getgroups
2731 # It returns EGID too many times in the list of groups
2732 # and causes a security problem
2733 AC_CACHE_CHECK([whether or not getgroups returns EGID too many times],
2734 samba_cv_have_getgroups_too_many_egids,[AC_TRY_RUN([
2735 #include <sys/types.h>
2738 int main(int argc, char *argv[])
2743 n = getgroups(n, &groups);
2744 /* Could actually pass back the number of EGIDs there ... */
2745 exit((n > 1 && groups[0] == getegid() && groups[1] == getegid()) ? 1 : 0);
2747 samba_cv_have_getgroups_too_many_egids=no,samba_cv_have_getgroups_too_many_egids=yes, samba_cv_have_getgroups_too_many_egids=cross)])
2748 if test x"$samba_cv_have_getgroups_too_many_egids" = x"yes"; then
2749 AC_DEFINE(HAVE_GETGROUPS_TOO_MANY_EGIDS)
2752 # Substitution time!
2754 AC_SUBST(WINBIND_TARGETS)
2755 AC_SUBST(WINBIND_STARGETS)
2756 AC_SUBST(WINBIND_LTARGETS)
2757 AC_SUBST(WINBIND_PAM_TARGETS)
2758 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
2759 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
2761 # Solaris has some extra fields in struct passwd that need to be
2762 # initialised otherwise nscd crashes. Unfortunately autoconf < 2.50
2763 # doesn't have the AC_CHECK_MEMBER macro which would be handy for checking
2766 #AC_CHECK_MEMBER(struct passwd.pw_comment,
2767 # AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),
2768 # [#include <pwd.h>])
2770 AC_CACHE_CHECK([whether struct passwd has pw_comment],samba_cv_passwd_pw_comment, [
2771 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_comment;],
2772 samba_cv_passwd_pw_comment=yes,samba_cv_passwd_pw_comment=no)])
2773 if test x"$samba_cv_passwd_pw_comment" = x"yes"; then
2774 AC_DEFINE(HAVE_PASSWD_PW_COMMENT)
2777 #AC_CHECK_MEMBER(struct passwd.pw_age,
2778 # AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),
2779 # [#include <pwd.h>])
2781 AC_CACHE_CHECK([whether struct passwd has pw_age],samba_cv_passwd_pw_age, [
2782 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_age;],
2783 samba_cv_passwd_pw_age=yes,samba_cv_passwd_pw_age=no)])
2784 if test x"$samba_cv_passwd_pw_age" = x"yes"; then
2785 AC_DEFINE(HAVE_PASSWD_PW_AGE)
2788 #################################################
2789 # Check to see if we should use the included popt
2791 AC_ARG_WITH(included-popt,
2792 [ --with-included-popt use bundled popt library, not from system],
2803 if test x"$INCLUDED_POPT" != x"yes"; then
2804 AC_CHECK_LIB(popt, poptGetContext,
2805 INCLUDED_POPT=no, INCLUDED_POPT=yes)
2808 AC_MSG_CHECKING(whether to use included popt)
2809 if test x"$INCLUDED_POPT" = x"yes"; then
2810 AC_MSG_RESULT($srcdir/popt)
2811 BUILD_POPT='$(POPT_OBJS)'
2812 FLAGS1="-I$srcdir/popt"
2817 AC_SUBST(BUILD_POPT)
2820 #################################################
2821 # final configure stuff
2822 AC_MSG_CHECKING([configure summary])
2823 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2825 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
2826 AC_MSG_WARN([cannot run when cross-compiling]))
2831 AC_OUTPUT(include/stamp-h Makefile script/findsmb)