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(INSTALLCLIENTCMD_SH)
168 AC_SUBST(INSTALLCLIENTCMD_A)
169 AC_SUBST(LIBSMBCLIENT_SHARED)
170 AC_SUBST(LIBSMBCLIENT)
172 # compile with optimization and without debugging by default
173 CFLAGS="-O ${CFLAGS}"
176 [ --enable-debug Turn on compiler debugging information (default=no)],
177 [if eval "test x$enable_debug = xyes"; then
178 CFLAGS="${CFLAGS} -g"
183 dnl Checks for programs.
187 dnl Check if we use GNU ld
190 AC_PATH_PROG(passwd_program, passwd, /bin/passwd)
191 AC_SUBST(passwd_program)
193 dnl Check if C compiler understands -c and -o at the same time
195 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
202 dnl Check if the C compiler understands volatile (it should, being ANSI).
203 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
204 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
205 samba_cv_volatile=yes,samba_cv_volatile=no)])
206 if test x"$samba_cv_volatile" = x"yes"; then
207 AC_DEFINE(HAVE_VOLATILE)
214 dnl Add #include for broken IRIX header files
216 *irix6*) AC_ADD_INCLUDE(<standards.h>)
220 AC_VALIDATE_CACHE_SYSTEM_TYPE
225 # Config CPPFLAG settings for strange OS's that must be set
226 # before other tests.
229 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
232 # mmap on HPUX is completely broken...
233 AC_DEFINE(MMAP_BLACKLIST)
234 if test $ac_cv_prog_cc_Ae = yes; then
235 CPPFLAGS="$CPPFLAGS -Ae"
238 # Defines needed for HPUX support.
239 # HPUX has bigcrypt but (sometimes?) doesn't use it for
240 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
244 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
245 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
246 AC_DEFINE(_HPUX_SOURCE)
247 AC_DEFINE(_POSIX_SOURCE)
248 AC_DEFINE(_ALIGNMENT_REQUIRED,1)
249 AC_DEFINE(_MAX_ALIGNMENT,4)
252 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
253 AC_DEFINE(_HPUX_SOURCE)
254 AC_DEFINE(_POSIX_SOURCE)
255 AC_DEFINE(_LARGEFILE64_SOURCE)
256 AC_DEFINE(POSIX_ACL_NEEDS_MASK)
257 AC_DEFINE(_ALIGNMENT_REQUIRED,1)
258 AC_DEFINE(_MAX_ALIGNMENT,4)
259 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
267 # CRAY Unicos has broken const handling
269 AC_MSG_RESULT([disabling const])
270 CPPFLAGS="$CPPFLAGS -Dconst="
274 # AIX4.x doesn't even admit to having large
275 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
278 AC_MSG_RESULT([enabling large file support])
279 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
280 AC_DEFINE(_LARGE_FILES)
283 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
284 # to the existance of large files..
285 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
286 # recommendations on large file support, however it makes the
287 # compile work using gcc 2.7 and 2.8, whereas using the Sun
288 # recommendation makes the compile fail on gcc2.7. JRA.
292 5.0*|5.1*|5.2*|5.3*|5.5*)
293 AC_MSG_RESULT([no large file support])
296 AC_MSG_RESULT([enabling large file support])
297 if test "$ac_cv_prog_gcc" = yes; then
298 ${CC-cc} -v >conftest.c 2>&1
299 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
301 case "$ac_cv_gcc_compiler_version_number" in
302 *"gcc version 2.6"*|*"gcc version 2.7"*)
303 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
304 AC_DEFINE(_LARGEFILE64_SOURCE)
307 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
308 AC_DEFINE(_LARGEFILE64_SOURCE)
309 AC_DEFINE(_FILE_OFFSET_BITS,64)
313 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
314 AC_DEFINE(_LARGEFILE64_SOURCE)
315 AC_DEFINE(_FILE_OFFSET_BITS,64)
321 # VOS may need to have POSIX support and System V compatibility enabled.
328 CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=199506L"
329 AC_DEFINE(_POSIX_C_SOURCE, 199506L, [Whether to enable POSIX support])
333 *-D_SYSV*|*-D_SVID_SOURCE*)
336 CPPFLAGS="$CPPFLAGS -D_SYSV"
337 AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
341 # Tests needed for SINIX large file support.
344 if test $host = mips-sni-sysv4 ; then
345 AC_MSG_CHECKING([for LFS support])
346 old_CPPFLAGS="$CPPFLAGS"
347 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
351 #if _LFS64_LARGEFILE == 1
356 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
357 CPPFLAGS="$old_CPPFLAGS"
358 if test x$SINIX_LFS_SUPPORT = xyes ; then
359 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
360 AC_DEFINE(_LARGEFILE64_SOURCE)
361 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
362 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
363 LIBS="`getconf LFS64_LIBS` $LIBS"
365 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
369 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
372 AC_MSG_CHECKING([for LFS support])
373 old_CPPFLAGS="$CPPFLAGS"
374 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
377 #include <sys/utsname.h>
379 #if _LFS64_LARGEFILE == 1
384 /* Ensure this is glibc 2.2 or higher */
385 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
386 int libc_major = __GLIBC__;
387 int libc_minor = __GLIBC_MINOR__;
395 /* Ensure this is kernel 2.4 or higher */
398 release = uts.release;
399 major = atoi(strsep(&release, "."));
400 minor = atoi(strsep(&release, "."));
402 if (major > 2 || (major == 2 && minor > 3))
409 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
410 CPPFLAGS="$old_CPPFLAGS"
411 if test x$LINUX_LFS_SUPPORT = xyes ; then
412 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
413 AC_DEFINE(_LARGEFILE64_SOURCE)
414 AC_DEFINE(_FILE_OFFSET_BITS,64)
415 AC_DEFINE(_GNU_SOURCE)
417 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
421 AC_MSG_CHECKING([for LFS support])
422 old_CPPFLAGS="$CPPFLAGS"
423 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
427 #if _LFS64_LARGEFILE == 1
432 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
433 CPPFLAGS="$old_CPPFLAGS"
434 if test x$GLIBC_LFS_SUPPORT = xyes ; then
435 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
436 AC_DEFINE(_LARGEFILE64_SOURCE)
437 AC_DEFINE(_GNU_SOURCE)
439 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
449 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
450 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
451 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
452 AC_CHECK_HEADERS(stdlib.h string.h strings.h syslog.h sys/file.h)
453 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
454 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h sys/socket.h)
455 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)
456 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
457 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h dlfcn.h synch.h pthread.h nsswitch.h)
460 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
461 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
465 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
466 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
467 if test x"$ac_cv_header_shadow_h" = x"yes"; then
468 AC_DEFINE(HAVE_SHADOW_H)
472 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
473 AC_CHECK_HEADERS(nss.h nss_common.h ns_api.h sys/security.h security/pam_appl.h security/pam_modules.h)
474 AC_CHECK_HEADERS(stropts.h poll.h)
475 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
476 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
478 # For experimental utmp support (lastlog on some BSD-like systems)
479 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
481 # For quotas on Veritas VxFS filesystems
482 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
484 # For quotas on Linux XFS filesystems
485 AC_CHECK_HEADERS(linux/xqm.h)
487 AC_CHECK_SIZEOF(int,cross)
488 AC_CHECK_SIZEOF(long,cross)
489 AC_CHECK_SIZEOF(short,cross)
504 AC_CHECK_TYPE(ino_t,unsigned)
505 AC_CHECK_TYPE(loff_t,off_t)
506 AC_CHECK_TYPE(offset_t,loff_t)
507 AC_CHECK_TYPE(ssize_t, int)
508 AC_CHECK_TYPE(wchar_t, unsigned short)
510 ############################################
511 # for cups support we need libcups, and a handful of header files
514 [ --enable-cups Turn on CUPS support (default=auto)])
516 if test x$enable_cups != xno; then
517 AC_PATH_PROG(CUPS_CONFIG, cups-config)
519 if test "x$CUPS_CONFIG" != x; then
521 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
522 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
523 LIBS="$LIBS `$CUPS_CONFIG --libs`"
527 ############################################
528 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the new VFS code
529 AC_CHECK_FUNCS(dlopen)
530 if test x"$ac_cv_func_dlopen" = x"no"; then
531 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
532 AC_DEFINE(HAVE_DLOPEN)])
534 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
536 ############################################
537 # check if the compiler can do immediate structures
538 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
542 typedef struct {unsigned x;} FOOBAR;
543 #define X_FOOBAR(x) ((FOOBAR) { x })
544 #define FOO_ONE X_FOOBAR(1)
552 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
553 if test x"$samba_cv_immediate_structures" = x"yes"; then
554 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES)
557 ############################################
558 # check for unix domain sockets
559 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
561 #include <sys/types.h>
564 #include <sys/socket.h>
565 #include <sys/un.h>],
567 struct sockaddr_un sunaddr;
568 sunaddr.sun_family = AF_UNIX;
570 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
571 if test x"$samba_cv_unixsocket" = x"yes"; then
572 AC_DEFINE(HAVE_UNIXSOCKET)
575 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
577 #include <sys/types.h>
582 #include <sys/socket.h>],[socklen_t i = 0],
583 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
584 if test x"$samba_cv_socklen_t" = x"yes"; then
585 AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
588 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
590 #include <sys/types.h>
595 #include <signal.h>],[sig_atomic_t i = 0],
596 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
597 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
598 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
601 # stupid headers have the functions but no declaration. grrrr.
602 AC_HAVE_DECL(errno, [#include <errno.h>])
603 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
604 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
605 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
606 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
607 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
608 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
610 # and glibc has setresuid under linux but the function does
611 # nothing until kernel 2.1.44! very dumb.
612 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
613 AC_TRY_RUN([#include <errno.h>
614 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
615 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
616 if test x"$samba_cv_have_setresuid" = x"yes"; then
617 AC_DEFINE(HAVE_SETRESUID)
620 # Do the same check for setresguid...
622 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
623 AC_TRY_RUN([#include <unistd.h>
625 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
626 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
627 if test x"$samba_cv_have_setresgid" = x"yes"; then
628 AC_DEFINE(HAVE_SETRESGID)
633 ###############################################
634 # Readline included by default unless explicitly asked not to
635 test "${with_readline+set}" != "set" && with_readline=yes
637 # test for where we get readline() from
638 AC_MSG_CHECKING(whether to use readline)
639 AC_ARG_WITH(readline,
640 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto)],
641 [ case "$with_readline" in
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 [TERMLIBS="-lreadline $TERMLIBS"
654 AC_DEFINE(HAVE_LIBREADLINE)
655 break], [TERMLIBS=], $TERMLIBS)])
663 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
664 # alternate readline path
666 _cppflags=${CPPFLAGS}
668 # Add additional search path
669 LDFLAGS="-L$with_readline/lib $LDFLAGS"
670 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
672 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
673 AC_CHECK_HEADERS(readline/history.h)
675 AC_CHECK_HEADERS(readline.h readline/readline.h,[
676 for termlib in ncurses curses termcap terminfo termlib; do
677 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
679 AC_CHECK_LIB(readline, rl_callback_handler_install,
680 [TERMLDFLAGS="-L$with_readline/lib"
681 TERMCPPFLAGS="-I$with_readline/include"
682 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
683 TERMLIBS="-lreadline $TERMLIBS"
684 AC_DEFINE(HAVE_LIBREADLINE)
685 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
693 AC_SUBST(TERMLDFLAGS)
695 # The following test taken from the cvs sources
696 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
697 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
698 # libsocket.so which has a bad implementation of gethostbyname (it
699 # only looks in /etc/hosts), so we only look for -lsocket if we need
701 AC_CHECK_FUNCS(connect)
702 if test x"$ac_cv_func_connect" = x"no"; then
705 *) AC_CHECK_LIB(nsl_s, printf) ;;
709 *) AC_CHECK_LIB(nsl, printf) ;;
713 *) AC_CHECK_LIB(socket, connect) ;;
717 *) AC_CHECK_LIB(inet, connect) ;;
719 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
721 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
722 test x"$ac_cv_lib_inet_connect" = x"yes"; then
723 # ac_cv_func_connect=yes
724 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
725 AC_DEFINE(HAVE_CONNECT)
729 ###############################################
730 # test for where we get get_yp_default_domain() from
731 AC_CHECK_FUNCS(yp_get_default_domain)
732 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
733 AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
734 AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)])
737 # Check if we have execl, if not we need to compile smbrun.
738 AC_CHECK_FUNCS(execl)
739 if test x"$ac_cv_func_execl" = x"no"; then
745 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link)
746 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid mknod mknod64)
747 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
748 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
749 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
750 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
751 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
752 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
753 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
754 AC_CHECK_FUNCS(syslog vsyslog)
756 # syscall() is needed for smbwrapper.
757 AC_CHECK_FUNCS(syscall)
759 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
760 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
761 AC_CHECK_FUNCS(__getcwd _getcwd)
762 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
763 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
764 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
765 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
766 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
767 AC_CHECK_FUNCS(_write __write _fork __fork)
768 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
769 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
770 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
771 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
772 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
775 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
778 if test x$ac_cv_func_stat64 = xno ; then
779 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
781 #if defined(HAVE_UNISTD_H)
784 #include <sys/stat.h>
785 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
786 AC_MSG_RESULT([$ac_cv_func_stat64])
787 if test x$ac_cv_func_stat64 = xyes ; then
788 AC_DEFINE(HAVE_STAT64)
792 if test x$ac_cv_func_lstat64 = xno ; then
793 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
795 #if defined(HAVE_UNISTD_H)
798 #include <sys/stat.h>
799 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
800 AC_MSG_RESULT([$ac_cv_func_lstat64])
801 if test x$ac_cv_func_lstat64 = xyes ; then
802 AC_DEFINE(HAVE_LSTAT64)
806 if test x$ac_cv_func_fstat64 = xno ; then
807 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
809 #if defined(HAVE_UNISTD_H)
812 #include <sys/stat.h>
813 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
814 AC_MSG_RESULT([$ac_cv_func_fstat64])
815 if test x$ac_cv_func_fstat64 = xyes ; then
816 AC_DEFINE(HAVE_FSTAT64)
821 # If no strcasecmp, check for it in some known places
822 # It is in -lresolv on ReliantUNIX and UnixWare
823 # -lresolve *must* follow -lnsl for name resolution to work properly
826 if test x$ac_cv_func_strcasecmp = xno ; then
827 AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
828 AC_DEFINE(HAVE_STRCASECMP))
832 # Check for the functions putprpwnam, set_auth_parameters,
833 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
834 # Needed for OSF1 and HPUX.
837 AC_LIBTESTFUNC(security, putprpwnam)
838 AC_LIBTESTFUNC(sec, putprpwnam)
840 AC_LIBTESTFUNC(security, set_auth_parameters)
841 AC_LIBTESTFUNC(sec, set_auth_parameters)
843 # UnixWare 7.x has its getspnam in -lgen
844 AC_LIBTESTFUNC(gen, getspnam)
846 AC_LIBTESTFUNC(security, getspnam)
847 AC_LIBTESTFUNC(sec, getspnam)
849 AC_LIBTESTFUNC(security, bigcrypt)
850 AC_LIBTESTFUNC(sec, bigcrypt)
852 AC_LIBTESTFUNC(security, getprpwnam)
853 AC_LIBTESTFUNC(sec, getprpwnam)
855 # this bit needs to be modified for each OS that is suported by
856 # smbwrapper. You need to specify how to created a shared library and
857 # how to compile C code to produce PIC object files
859 # these are the defaults, good for lots of systems
867 # Assume non-shared by default and override below
869 AC_MSG_CHECKING([ability to build shared libraries])
871 # and these are for particular systems
873 *linux*) AC_DEFINE(LINUX)
876 DYNEXP="-Wl,--export-dynamic"
878 SONAMEFLAG="-Wl,-soname="
879 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
881 *solaris*) AC_DEFINE(SUNOS5)
885 if test "${GCC}" = "yes"; then
887 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
892 ## ${CFLAGS} added for building 64-bit shared
893 ## libs using Sun's Compiler
894 LDSHFLAGS="-G \${CFLAGS}"
898 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
899 AC_DEFINE(BROKEN_GETGRNAM)
901 *sunos*) AC_DEFINE(SUNOS4)
905 PICFLAG="-KPIC" # Is this correct for SunOS
906 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
907 AC_DEFINE(BROKEN_GETGRNAM)
909 *freebsd*) BLDSHARED="true"
911 DYNEXP="-Wl,--export-dynamic"
912 SONAMEFLAG="-Wl,-soname,"
913 PICFLAG="-fPIC -DPIC"
914 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
915 AC_DEFINE(BROKEN_GETGRNAM)
917 *openbsd*) BLDSHARED="true"
919 DYNEXP="-Wl,-Bdynamic"
920 SONAMEFLAG="-Wl,-soname,"
922 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
923 AC_DEFINE(BROKEN_GETGRNAM)
925 *irix*) AC_DEFINE(IRIX)
927 *irix6*) AC_DEFINE(IRIX6)
930 ATTEMPT_WRAP32_BUILD=yes
932 LDSHFLAGS="-set_version sgi1.0 -shared"
933 SONAMEFLAG="-soname "
935 if test "${GCC}" = "yes"; then
940 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
942 *aix*) AC_DEFINE(AIX)
944 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
945 DYNEXP="-Wl,-brtl,-bexpall"
947 if test "${GCC}" != "yes"; then
948 ## for funky AIX compiler using strncpy()
949 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
952 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE)
954 *hpux*) AC_DEFINE(HPUX)
956 # Use special PIC flags for the native HP-UX compiler.
957 if test $ac_cv_prog_cc_Ae = yes; then
960 LDSHFLAGS="-B symbolic -b -z"
965 AC_DEFINE(STAT_ST_BLOCKSIZE,8192)
966 AC_DEFINE(POSIX_ACL_NEEDS_MASK)
968 *qnx*) AC_DEFINE(QNX)
969 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
971 *osf*) AC_DEFINE(OSF1)
974 SONAMEFLAG="-Wl,-soname,"
976 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
977 AC_DEFINE(BROKEN_GETGRNAM)
979 *sco*) AC_DEFINE(SCO)
980 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
982 *unixware*) AC_DEFINE(UNIXWARE)
985 SONAMEFLAG="-Wl,-soname,"
987 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
989 *next2*) AC_DEFINE(NEXT2)
990 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
992 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
993 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
997 *-univel-*) if [ test "$GCC" != yes ]; then
998 AC_DEFINE(HAVE_MEMSET)
1003 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
1005 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1008 if [ test "$GCC" != yes ]; then
1009 AC_DEFINE(HAVE_MEMSET)
1012 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1014 *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
1019 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1023 AC_MSG_RESULT($BLDSHARED)
1024 AC_MSG_CHECKING([linker flags for shared libraries])
1025 AC_MSG_RESULT([$LDSHFLAGS])
1026 AC_MSG_CHECKING([compiler flags for position-independent code])
1027 AC_MSG_RESULT([$PICFLAGS])
1029 # try to work out how to produce pic code with this compiler
1030 if test x$PICFLAG = x; then
1031 AC_PROG_CC_FLAG(fpic)
1032 if test $ac_cv_prog_cc_fpic = yes; then
1036 if test x$PICFLAG = x; then
1037 AC_PROG_CC_FLAG(KPIC)
1038 if test $ac_cv_prog_cc_KPIC = yes; then
1042 if test x$PICFLAG = x; then
1043 AC_PROG_CC_FLAG(Kpic)
1044 if test $ac_cv_prog_cc_Kpic = yes; then
1051 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1052 AC_TRY_RUN([#include <stdio.h>
1053 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1054 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1055 if test x"$samba_cv_have_longlong" = x"yes"; then
1056 AC_DEFINE(HAVE_LONGLONG)
1060 # Check if the compiler supports the LL prefix on long long integers.
1063 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1064 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1065 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1066 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1067 AC_DEFINE(COMPILER_SUPPORTS_LL)
1071 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1072 AC_TRY_RUN([#include <stdio.h>
1073 #include <sys/stat.h>
1074 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1075 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1076 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1077 AC_DEFINE(SIZEOF_OFF_T,8)
1080 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1082 #if defined(HAVE_UNISTD_H)
1086 #include <sys/stat.h>
1087 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1088 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1089 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1090 AC_DEFINE(HAVE_OFF64_T)
1093 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1094 AC_TRY_RUN([#include <stdio.h>
1095 #include <sys/stat.h>
1096 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1097 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1098 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1099 AC_DEFINE(SIZEOF_INO_T,8)
1102 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1104 #if defined(HAVE_UNISTD_H)
1108 #include <sys/stat.h>
1109 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1110 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1111 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1112 AC_DEFINE(HAVE_INO64_T)
1115 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1117 #if defined(HAVE_UNISTD_H)
1121 #include <sys/stat.h>
1122 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1123 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1124 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1125 AC_DEFINE(HAVE_DEV64_T)
1128 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1130 #if defined(HAVE_UNISTD_H)
1133 #include <sys/types.h>
1134 #include <dirent.h>],
1135 [struct dirent64 de;],
1136 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1137 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1138 AC_DEFINE(HAVE_STRUCT_DIRENT64)
1141 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1143 #if defined(HAVE_UNISTD_H)
1146 #include <sys/types.h>
1147 main() { dev_t dev; int i = major(dev); return 0; }],
1148 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1149 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1150 AC_DEFINE(HAVE_DEVICE_MAJOR_FN)
1153 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1155 #if defined(HAVE_UNISTD_H)
1158 #include <sys/types.h>
1159 main() { dev_t dev; int i = minor(dev); return 0; }],
1160 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1161 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1162 AC_DEFINE(HAVE_DEVICE_MINOR_FN)
1165 AC_CACHE_CHECK([for makedev macro],samba_cv_HAVE_MAKEDEV_FN,[
1167 #if defined(HAVE_UNISTD_H)
1170 #include <sys/types.h>
1171 main() { dev_t dev = makedev(1,2); return 0; }],
1172 samba_cv_HAVE_MAKEDEV_FN=yes,samba_cv_HAVE_MAKEDEV_FN=no,samba_cv_HAVE_MAKEDEV_FN=cross)])
1173 if test x"$samba_cv_HAVE_MAKEDEV_FN" = x"yes"; then
1174 AC_DEFINE(MAKEDEV_FN)
1177 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1178 AC_TRY_RUN([#include <stdio.h>
1179 main() { char c; c=250; exit((c > 0)?0:1); }],
1180 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1181 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1182 AC_DEFINE(HAVE_UNSIGNED_CHAR)
1185 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1186 AC_TRY_COMPILE([#include <sys/types.h>
1187 #include <sys/socket.h>
1188 #include <netinet/in.h>],
1189 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1190 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1191 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1192 AC_DEFINE(HAVE_SOCK_SIN_LEN)
1195 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1196 AC_TRY_COMPILE([#include <sys/types.h>
1198 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1199 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1200 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1201 AC_DEFINE(SEEKDIR_RETURNS_VOID)
1204 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
1205 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
1206 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
1207 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
1208 AC_DEFINE(HAVE_FILE_MACRO)
1211 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1212 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1213 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1214 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1215 AC_DEFINE(HAVE_FUNCTION_MACRO)
1218 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1220 #include <sys/time.h>
1222 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1223 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1224 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1225 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
1228 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE_VA_COPY,[
1229 AC_TRY_LINK([#include <stdarg.h>
1230 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1231 samba_cv_HAVE_VA_COPY=yes,samba_cv_HAVE_VA_COPY=no)])
1232 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1233 AC_DEFINE(HAVE_VA_COPY)
1236 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1238 #include <sys/types.h>
1240 void foo(const char *format, ...) {
1245 va_start(ap, format);
1246 len = vsnprintf(buf, 0, format, ap);
1248 if (len != 5) exit(1);
1250 va_start(ap, format);
1251 len = vsnprintf(0, 0, format, ap);
1253 if (len != 5) exit(1);
1255 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1259 main() { foo("hello"); }
1261 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1262 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1263 AC_DEFINE(HAVE_C99_VSNPRINTF)
1266 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1267 AC_TRY_RUN([#include <sys/types.h>
1269 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1270 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1271 di->d_name[0] == 0) exit(0); exit(1);} ],
1272 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1273 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1274 AC_DEFINE(HAVE_BROKEN_READDIR)
1277 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1278 AC_TRY_COMPILE([#include <sys/types.h>
1279 #include <utime.h>],
1280 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1281 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1282 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1283 AC_DEFINE(HAVE_UTIMBUF)
1286 dnl utmp and utmpx come in many flavours
1287 dnl We need to check for many of them
1288 dnl But we don't need to do each and every one, because our code uses
1289 dnl mostly just the utmp (not utmpx) fields.
1291 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1293 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1294 AC_TRY_COMPILE([#include <sys/types.h>
1296 [struct utmp ut; ut.ut_name[0] = 'a';],
1297 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1298 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1299 AC_DEFINE(HAVE_UT_UT_NAME)
1302 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1303 AC_TRY_COMPILE([#include <sys/types.h>
1305 [struct utmp ut; ut.ut_user[0] = 'a';],
1306 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1307 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1308 AC_DEFINE(HAVE_UT_UT_USER)
1311 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1312 AC_TRY_COMPILE([#include <sys/types.h>
1314 [struct utmp ut; ut.ut_id[0] = 'a';],
1315 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1316 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1317 AC_DEFINE(HAVE_UT_UT_ID)
1320 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1321 AC_TRY_COMPILE([#include <sys/types.h>
1323 [struct utmp ut; ut.ut_host[0] = 'a';],
1324 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1325 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1326 AC_DEFINE(HAVE_UT_UT_HOST)
1329 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1330 AC_TRY_COMPILE([#include <sys/types.h>
1332 [struct utmp ut; time_t t; ut.ut_time = t;],
1333 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1334 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1335 AC_DEFINE(HAVE_UT_UT_TIME)
1338 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1339 AC_TRY_COMPILE([#include <sys/types.h>
1341 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
1342 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1343 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1344 AC_DEFINE(HAVE_UT_UT_TV)
1347 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1348 AC_TRY_COMPILE([#include <sys/types.h>
1350 [struct utmp ut; ut.ut_type = 0;],
1351 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1352 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1353 AC_DEFINE(HAVE_UT_UT_TYPE)
1356 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1357 AC_TRY_COMPILE([#include <sys/types.h>
1359 [struct utmp ut; ut.ut_pid = 0;],
1360 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1361 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1362 AC_DEFINE(HAVE_UT_UT_PID)
1365 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1366 AC_TRY_COMPILE([#include <sys/types.h>
1368 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1369 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1370 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1371 AC_DEFINE(HAVE_UT_UT_EXIT)
1374 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1375 AC_TRY_COMPILE([#include <sys/types.h>
1377 [struct utmp ut; ut.ut_addr = 0;],
1378 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1379 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1380 AC_DEFINE(HAVE_UT_UT_ADDR)
1383 if test x$ac_cv_func_pututline = xyes ; then
1384 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1385 AC_TRY_COMPILE([#include <sys/types.h>
1387 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1388 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1389 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1390 AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
1394 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1395 AC_TRY_COMPILE([#include <sys/types.h>
1396 #include <utmpx.h>],
1397 [struct utmpx ux; ux.ut_syslen = 0;],
1398 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1399 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1400 AC_DEFINE(HAVE_UX_UT_SYSLEN)
1403 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1405 #include <sys/types.h>
1408 #define F_GETLEASE 1025
1411 int fd = open("/dev/null", O_RDONLY);
1412 return fcntl(fd, F_GETLEASE, 0) == -1;
1415 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1416 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1417 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1420 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1422 #include <sys/types.h>
1426 #define F_NOTIFY 1026
1429 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1432 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1433 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes" && test x"$target_cpu" != x"s390"; then
1434 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1437 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1439 #include <sys/types.h>
1442 #include <sys/file.h>
1444 #define LOCK_MAND 32
1445 #define LOCK_READ 64
1448 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1451 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1452 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1453 AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1459 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1460 AC_TRY_COMPILE([#include <sys/types.h>
1461 #include <fcntl.h>],
1462 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1463 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1464 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1465 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1468 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1469 AC_TRY_RUN([#include <sys/types.h>
1470 #include <sys/capability.h>
1473 if ((cap = cap_get_proc()) == NULL)
1475 cap->cap_effective |= CAP_NETWORK_MGT;
1476 cap->cap_inheritable |= CAP_NETWORK_MGT;
1481 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1482 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1483 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1487 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1488 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1491 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1492 AC_TRY_COMPILE([#include <sys/types.h>
1493 #if defined(HAVE_RPC_RPC_H)
1494 #include <rpc/rpc.h>
1497 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1498 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1499 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1502 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1503 AC_TRY_COMPILE([#include <sys/types.h>
1504 #if defined(HAVE_RPC_RPC_H)
1505 #include <rpc/rpc.h>
1508 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1509 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1510 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1513 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1514 AC_TRY_COMPILE([#include <sys/types.h>
1515 #if defined(HAVE_RPC_RPC_H)
1516 #include <rpc/rpc.h>
1519 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1520 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1521 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1524 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1525 AC_TRY_COMPILE([#include <sys/types.h>
1526 #if defined(HAVE_RPC_RPC_H)
1527 #include <rpc/rpc.h>
1530 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1531 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1532 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1536 dnl Some systems (SCO) have a problem including
1537 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1538 dnl as a #define in <prot.h> and as part of an enum
1542 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1543 AC_TRY_COMPILE([#include <sys/types.h>
1544 #ifdef HAVE_SYS_SECURITY_H
1545 #include <sys/security.h>
1547 #endif /* HAVE_SYS_SECURITY_H */
1548 #if defined(HAVE_RPC_RPC_H)
1549 #include <rpc/rpc.h>
1552 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1553 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1554 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1557 AC_MSG_CHECKING([for test routines])
1558 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1560 AC_MSG_ERROR([cant find test code. Aborting config]),
1561 AC_MSG_WARN([cannot run when cross-compiling]))
1563 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1564 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1565 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1566 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1567 AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1570 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1571 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1572 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1573 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1574 AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1577 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1578 SAVE_CPPFLAGS="$CPPFLAGS"
1579 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper"
1581 #define REPLACE_GETPASS 1
1582 #define NO_CONFIG_H 1
1583 #define main dont_declare_main
1584 #include "${srcdir-.}/lib/getsmbpass.c"
1586 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1587 CPPFLAGS="$SAVE_CPPFLAGS"
1589 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1590 AC_DEFINE(REPLACE_GETPASS)
1593 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1596 #include <sys/types.h>
1597 #include <netinet/in.h>
1598 #ifdef HAVE_ARPA_INET_H
1599 #include <arpa/inet.h>
1601 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1602 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1603 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1605 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1606 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1607 AC_DEFINE(REPLACE_INET_NTOA)
1610 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1611 AC_TRY_RUN([#include <stdlib.h>
1612 #include <sys/types.h>
1613 #include <sys/stat.h>
1617 char tpl[20]="/tmp/test.XXXXXX";
1618 int fd = mkstemp(tpl);
1619 if (fd == -1) exit(1);
1621 if (fstat(fd, &st) != 0) exit(1);
1622 if ((st.st_mode & 0777) != 0600) exit(1);
1625 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1626 samba_cv_HAVE_SECURE_MKSTEMP=no,
1627 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1628 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1629 AC_DEFINE(HAVE_SECURE_MKSTEMP)
1632 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1633 AC_TRY_RUN([#include <unistd.h>
1634 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1635 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1636 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1637 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1640 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1641 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1642 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1643 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1644 AC_DEFINE(HAVE_ROOT)
1646 AC_MSG_WARN(running as non-root will disable some tests)
1650 # look for a method of finding the list of network interfaces
1652 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1654 #define HAVE_IFACE_AIX 1
1655 #define AUTOCONF_TEST 1
1656 #include "confdefs.h"
1657 #include "${srcdir-.}/lib/interfaces.c"],
1658 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1659 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1660 iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1663 if test $iface = no; then
1664 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1666 #define HAVE_IFACE_IFCONF 1
1667 #define AUTOCONF_TEST 1
1668 #include "confdefs.h"
1669 #include "${srcdir-.}/lib/interfaces.c"],
1670 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1671 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1672 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1676 if test $iface = no; then
1677 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1679 #define HAVE_IFACE_IFREQ 1
1680 #define AUTOCONF_TEST 1
1681 #include "confdefs.h"
1682 #include "${srcdir-.}/lib/interfaces.c"],
1683 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1684 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1685 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1690 ################################################
1691 # look for a method of setting the effective uid
1693 if test $seteuid = no; then
1694 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1696 #define AUTOCONF_TEST 1
1697 #define USE_SETRESUID 1
1698 #include "confdefs.h"
1699 #include "${srcdir-.}/lib/util_sec.c"],
1700 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1701 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1702 seteuid=yes;AC_DEFINE(USE_SETRESUID)
1707 if test $seteuid = no; then
1708 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1710 #define AUTOCONF_TEST 1
1711 #define USE_SETREUID 1
1712 #include "confdefs.h"
1713 #include "${srcdir-.}/lib/util_sec.c"],
1714 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1715 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1716 seteuid=yes;AC_DEFINE(USE_SETREUID)
1720 if test $seteuid = no; then
1721 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1723 #define AUTOCONF_TEST 1
1724 #define USE_SETEUID 1
1725 #include "confdefs.h"
1726 #include "${srcdir-.}/lib/util_sec.c"],
1727 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1728 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1729 seteuid=yes;AC_DEFINE(USE_SETEUID)
1733 if test $seteuid = no; then
1734 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1736 #define AUTOCONF_TEST 1
1737 #define USE_SETUIDX 1
1738 #include "confdefs.h"
1739 #include "${srcdir-.}/lib/util_sec.c"],
1740 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1741 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1742 seteuid=yes;AC_DEFINE(USE_SETUIDX)
1747 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1748 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1749 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1750 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1751 AC_DEFINE(HAVE_MMAP)
1754 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1755 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1756 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1757 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1758 AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1761 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1762 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1763 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1764 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1765 AC_DEFINE(HAVE_FCNTL_LOCK)
1768 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1769 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1770 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1771 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1772 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1777 dnl Don't check for 64 bit fcntl locking if we know that the
1778 dnl glibc2.1 broken check has succeeded.
1781 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1783 #if defined(HAVE_UNISTD_H)
1793 #ifdef HAVE_SYS_FCNTL_H
1794 #include <sys/fcntl.h>
1796 main() { struct flock64 fl64;
1797 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1803 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1805 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1806 AC_DEFINE(HAVE_STRUCT_FLOCK64)
1810 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
1811 AC_TRY_COMPILE([#include <sys/types.h>
1812 #include <sys/stat.h>
1813 #include <unistd.h>],
1814 [struct stat st; st.st_blocks = 0;],
1815 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
1816 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
1817 AC_DEFINE(HAVE_STAT_ST_BLOCKS)
1820 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
1821 AC_TRY_COMPILE([#include <sys/types.h>
1822 #include <sys/stat.h>
1823 #include <unistd.h>],
1824 [struct stat st; st.st_blksize = 0;],
1825 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
1826 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
1827 AC_DEFINE(HAVE_STAT_ST_BLKSIZE)
1832 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
1834 #ifdef HAVE_SYS_VFS_H
1835 #include <sys/vfs.h>
1837 #ifdef HAVE_SYS_CAPABILITY_H
1838 #include <sys/capability.h>
1841 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
1842 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
1843 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS)
1848 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1849 AC_TRY_COMPILE([#include <sys/acl.h>
1850 #if defined(HAVE_RPCSVC_NIS_H)
1851 #include <rpcsvc/nis.h>
1854 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1855 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1856 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1860 #################################################
1861 # check for smbwrapper support
1862 AC_MSG_CHECKING(whether to use smbwrapper)
1863 AC_ARG_WITH(smbwrapper,
1864 [ --with-smbwrapper Include SMB wrapper support (default=no)],
1865 [ case "$withval" in
1868 AC_DEFINE(WITH_SMBWRAPPER)
1869 WRAPPROG="bin/smbsh"
1870 WRAP="bin/smbwrapper.$SHLIBEXT"
1872 if test x$ATTEMPT_WRAP32_BUILD = x; then
1875 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1878 # Conditions under which smbwrapper should not be built.
1880 if test x$PICFLAG = x; then
1881 echo No support for PIC code - disabling smbwrapper and smbsh
1885 elif test x$ac_cv_func_syscall = xno; then
1886 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1899 #################################################
1900 # check for the AFS filesystem
1901 AC_MSG_CHECKING(whether to use AFS)
1903 [ --with-afs Include AFS support (default=no)],
1904 [ case "$withval" in
1917 #################################################
1918 # check for the DFS auth system
1919 AC_MSG_CHECKING(whether to use DCE/DFS auth)
1921 [ --with-dce-dfs Include DCE/DFS support (default=no)],
1922 [ case "$withval" in
1934 #################################################
1935 # check for Kerberos IV auth system
1936 AC_MSG_CHECKING(whether to use Kerberos IV)
1938 [ --with-krb4=base-dir Include Kerberos IV support (default=no)],
1939 [ case "$withval" in
1942 AC_DEFINE(KRB4_AUTH)
1943 AC_CHECK_LIB(resolv, dn_expand)
1944 LIBS="$LIBS -lkrb -ldes"
1945 CFLAGS="$CFLAGS -I$withval/include"
1946 LDFLAGS="$LDFLAGS -L$withval/lib"
1955 #################################################
1956 # check for Kerberos 5 auth system
1957 AC_MSG_CHECKING(whether to use Kerberos 5)
1959 [ --with-krb5=base-dir Include Kerberos 5 support (default=no)],
1960 [ case "$withval" in
1963 AC_DEFINE(KRB5_AUTH)
1964 LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1965 CFLAGS="$CFLAGS -I$withval/include"
1966 LDFLAGS="$LDFLAGS -L$withval/lib"
1975 #################################################
1976 # check for automount support
1977 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1978 AC_ARG_WITH(automount,
1979 [ --with-automount Include AUTOMOUNT support (default=no)],
1980 [ case "$withval" in
1983 AC_DEFINE(WITH_AUTOMOUNT)
1992 #################################################
1993 # check for smbmount support
1994 AC_MSG_CHECKING(whether to use SMBMOUNT)
1995 AC_ARG_WITH(smbmount,
1996 [ --with-smbmount Include SMBMOUNT (Linux only) support (default=no)],
1997 [ case "$withval" in
2002 AC_DEFINE(WITH_SMBMOUNT)
2003 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
2006 AC_MSG_ERROR(not on a linux system!)
2020 #################################################
2021 # check for a PAM password database
2022 with_pam_for_crypt=no
2023 AC_MSG_CHECKING(whether to use PAM password database)
2025 [ --with-pam Include PAM password database support (default=no)],
2026 [ case "$withval" in
2031 with_pam_for_crypt=yes
2040 # we can't build a pam module if we don't have pam.
2041 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
2043 #################################################
2044 # check for pam_smbpass support
2045 AC_MSG_CHECKING(whether to use pam_smbpass)
2046 AC_ARG_WITH(pam_smbpass,
2047 [ --with-pam_smbpass Include the smbpass PAM module (default=no)],
2048 [ case "$withval" in
2052 # Conditions under which pam_smbpass should not be built.
2054 if test x$PICFLAG = x; then
2055 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
2057 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
2058 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
2061 AC_DEFINE(WITH_PAM_SMBPASS)
2062 PAM_MOD="bin/pam_smbpass.so"
2073 ###############################################
2074 # test for where we get crypt() from, but only
2076 if test $with_pam_for_crypt = no; then
2077 AC_CHECK_FUNCS(crypt)
2078 if test x"$ac_cv_func_crypt" = x"no"; then
2079 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
2080 AC_DEFINE(HAVE_CRYPT)])
2085 ## moved after the check for -lcrypt in order to
2086 ## ensure that the necessary libraries are included
2087 ## check checking for truncated salt. Wrapped by the
2088 ## $with_pam_for_crypt variable as above --jerry
2090 if test $with_pam_for_crypt = no; then
2091 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2092 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2093 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
2094 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2095 AC_DEFINE(HAVE_TRUNCATED_SALT)
2100 ########################################################################################
2102 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
2104 ########################################################################################
2106 ## set the with_smbpasswd_sam as the default
2107 with_smbpasswd_sam=yes
2111 #################################################
2112 # check for a TDB password database
2113 AC_MSG_CHECKING(whether to use TDB SAM database)
2115 [ --with-tdbsam Include experimental TDB SAM support (default=no)],
2116 [ case "$withval" in
2119 AC_DEFINE(WITH_TDB_SAM)
2120 with_smbpasswd_sam=no
2129 #################################################
2130 # check for a LDAP password database
2131 AC_MSG_CHECKING(whether to use LDAP SAM database)
2132 AC_ARG_WITH(ldapsam,
2133 [ --with-ldapsam Include experimental LDAP SAM support (default=no)],
2134 [ case "$withval" in
2137 AC_DEFINE(WITH_LDAP_SAM)
2139 AC_CHECK_LIB(lber, ber_bvfree, [LDAPLIBS="$LDAPLIBS -llber"])
2140 ## remove -lresolv as this should be included by the -lsasl dependency
2141 ## in the OpenLDAP clients. By not requiring it specifically, we avoid
2142 ## issues on platforms that don't have it
2143 LDAPLIBS="$LDAPLIBS"
2144 old_LDFLAGS="$LDFLAGS"
2145 LDFLAGS="$LDFLAGS $LDAPLIBS"
2146 AC_CHECK_FUNCS(ldap_start_tls_s)
2147 LDFLAGS="$old_LDFLAGS"
2148 with_smbpasswd_sam=no
2150 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, samba_cv_ldap_set_rebind_proc, [
2153 #include <ldap.h>], [ldap_set_rebind_proc(0, 0, 0);], [samba_cv_ldap_set_rebind_proc=3], [samba_cv_ldap_set_rebind_proc=2]) ])
2154 if test x"$samba_cv_ldap_set_rebind_proc" = x"3"; then
2155 AC_DEFINE(LDAP_SET_REBIND_PROC_ARGS,3)
2157 AC_DEFINE(LDAP_SET_REBIND_PROC_ARGS,2)
2168 #################################################
2169 # check for a NISPLUS password database
2170 AC_MSG_CHECKING(whether to use NISPLUS SAM database)
2171 AC_ARG_WITH(nisplussam,
2172 [ --with-nisplussam Include NISPLUS SAM support (default=no)],
2173 [ case "$withval" in
2176 AC_DEFINE(WITH_NISPLUS_SAM)
2177 with_smbpasswd_sam=no
2186 ################################################
2187 # This test should come last because the
2188 # smbpasswd SAM is only used if another format
2189 # has not been defined
2190 AC_MSG_CHECKING(whether to use traditional smbpasswd file)
2191 if test $with_smbpasswd_sam = yes; then
2193 AC_DEFINE(WITH_SMBPASSWD_SAM)
2200 ########################################################################################
2202 ## END OF TESTS FOR SAM BACKENDS.
2204 ########################################################################################
2206 #################################################
2207 # check for a NISPLUS_HOME support
2208 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
2209 AC_ARG_WITH(nisplus-home,
2210 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
2211 [ case "$withval" in
2214 AC_DEFINE(WITH_NISPLUS_HOME)
2223 #################################################
2224 # check for the secure socket layer
2225 AC_MSG_CHECKING(whether to use SSL)
2227 [ --with-ssl Include SSL support (default=no)
2228 --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl/include)
2229 --with-ssllib=DIR Where the SSL libraries are (defaults to /usr/local/ssl/lib)],
2230 [ case "$withval" in
2234 withval="/usr/local/ssl" # default
2236 if test "${with_sslinc+set}" = set; then
2238 withval="$with_sslinc"
2241 echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
2242 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
2245 CFLAGS="-I${withval} $CFLAGS"
2251 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
2255 if test "${with_ssllib+set}" = set; then
2257 withval="$with_ssllib"
2260 echo "configure: warning: --with-ssllib called without argument - will use default" 1>&w
2261 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
2264 LDFLAGS="-L${withval}/lib $LDFLAGS"
2270 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
2274 LIBS="-lssl -lcrypto $LIBS"
2276 # if test ! -d ${withval}; then
2277 # echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
2281 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own
2291 #################################################
2292 # check for syslog logging
2293 AC_MSG_CHECKING(whether to use syslog logging)
2295 [ --with-syslog Include experimental SYSLOG support (default=no)],
2296 [ case "$withval" in
2299 AC_DEFINE(WITH_SYSLOG)
2308 #################################################
2309 # check for a shared memory profiling support
2310 AC_MSG_CHECKING(whether to use profiling)
2311 AC_ARG_WITH(profiling-data,
2312 [ --with-profiling-data Include gathering source code profile information (default=no)],
2313 [ case "$withval" in
2316 AC_DEFINE(WITH_PROFILE)
2326 #################################################
2327 # check for experimental disk-quotas support
2328 QUOTAOBJS=smbd/noquotas.o
2330 AC_MSG_CHECKING(whether to support disk-quotas)
2332 [ --with-quotas Include experimental disk-quota support (default=no)],
2333 [ case "$withval" in
2336 QUOTAOBJS=smbd/quotas.o
2346 #################################################
2347 # check for experimental utmp accounting
2349 AC_MSG_CHECKING(whether to support utmp accounting)
2351 [ --with-utmp Include experimental utmp accounting (default=no)],
2352 [ case "$withval" in
2355 AC_DEFINE(WITH_UTMP)
2364 #################################################
2365 # check for MS Dfs support
2367 AC_MSG_CHECKING(whether to support Microsoft Dfs)
2369 [ --with-msdfs Include MS Dfs support (default=no)],
2370 [ case "$withval" in
2373 AC_DEFINE(WITH_MSDFS)
2382 #################################################
2383 # should we build libsmbclient?
2385 INSTALLCLIENTCMD_SH=:
2386 INSTALLCLIENTCMD_A=:
2387 LIBSMBCLIENT_SHARED=
2389 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
2390 AC_ARG_WITH(libsmbclient,
2391 [ --with-libsmbclient Build the libsmbclient shared library (default=no)],
2392 [ case "$withval" in
2394 if test $BLDSHARED = true; then
2395 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
2396 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
2397 LIBSMBCLIENT=libsmbclient
2400 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
2401 LIBSMBCLIENT=libsmbclient
2402 AC_MSG_RESULT(no shared library support -- will supply static library)
2412 #################################################
2413 # these tests are taken from the GNU fileutils package
2414 AC_CHECKING(how to get filesystem space usage)
2417 # Test for statvfs64.
2418 if test $space = no; then
2420 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2422 #if defined(HAVE_UNISTD_H)
2425 #include <sys/types.h>
2426 #include <sys/statvfs.h>
2429 struct statvfs64 fsd;
2430 exit (statvfs64 (".", &fsd));
2432 fu_cv_sys_stat_statvfs64=yes,
2433 fu_cv_sys_stat_statvfs64=no,
2434 fu_cv_sys_stat_statvfs64=cross)])
2435 if test $fu_cv_sys_stat_statvfs64 = yes; then
2437 AC_DEFINE(STAT_STATVFS64)
2441 # Perform only the link test since it seems there are no variants of the
2442 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2443 # because that got a false positive on SCO OSR5. Adding the declaration
2444 # of a `struct statvfs' causes this test to fail (as it should) on such
2445 # systems. That system is reported to work fine with STAT_STATFS4 which
2446 # is what it gets when this test fails.
2447 if test $space = no; then
2449 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2450 [AC_TRY_LINK([#include <sys/types.h>
2451 #include <sys/statvfs.h>],
2452 [struct statvfs fsd; statvfs (0, &fsd);],
2453 fu_cv_sys_stat_statvfs=yes,
2454 fu_cv_sys_stat_statvfs=no)])
2455 if test $fu_cv_sys_stat_statvfs = yes; then
2457 AC_DEFINE(STAT_STATVFS)
2461 if test $space = no; then
2462 # DEC Alpha running OSF/1
2463 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2464 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2466 #include <sys/param.h>
2467 #include <sys/types.h>
2468 #include <sys/mount.h>
2473 exit (statfs (".", &fsd, sizeof (struct statfs)));
2475 fu_cv_sys_stat_statfs3_osf1=yes,
2476 fu_cv_sys_stat_statfs3_osf1=no,
2477 fu_cv_sys_stat_statfs3_osf1=no)])
2478 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2479 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2481 AC_DEFINE(STAT_STATFS3_OSF1)
2485 if test $space = no; then
2487 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2488 member (AIX, 4.3BSD)])
2489 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2491 #ifdef HAVE_SYS_PARAM_H
2492 #include <sys/param.h>
2494 #ifdef HAVE_SYS_MOUNT_H
2495 #include <sys/mount.h>
2497 #ifdef HAVE_SYS_VFS_H
2498 #include <sys/vfs.h>
2504 exit (statfs (".", &fsd));
2506 fu_cv_sys_stat_statfs2_bsize=yes,
2507 fu_cv_sys_stat_statfs2_bsize=no,
2508 fu_cv_sys_stat_statfs2_bsize=no)])
2509 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2510 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2512 AC_DEFINE(STAT_STATFS2_BSIZE)
2516 if test $space = no; then
2518 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2519 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2520 [AC_TRY_RUN([#include <sys/types.h>
2521 #include <sys/statfs.h>
2525 exit (statfs (".", &fsd, sizeof fsd, 0));
2527 fu_cv_sys_stat_statfs4=yes,
2528 fu_cv_sys_stat_statfs4=no,
2529 fu_cv_sys_stat_statfs4=no)])
2530 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2531 if test $fu_cv_sys_stat_statfs4 = yes; then
2533 AC_DEFINE(STAT_STATFS4)
2537 if test $space = no; then
2539 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2540 member (4.4BSD and NetBSD)])
2541 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2542 [AC_TRY_RUN([#include <sys/types.h>
2543 #ifdef HAVE_SYS_PARAM_H
2544 #include <sys/param.h>
2546 #ifdef HAVE_SYS_MOUNT_H
2547 #include <sys/mount.h>
2553 exit (statfs (".", &fsd));
2555 fu_cv_sys_stat_statfs2_fsize=yes,
2556 fu_cv_sys_stat_statfs2_fsize=no,
2557 fu_cv_sys_stat_statfs2_fsize=no)])
2558 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2559 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2561 AC_DEFINE(STAT_STATFS2_FSIZE)
2565 if test $space = no; then
2567 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2568 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2569 [AC_TRY_RUN([#include <sys/types.h>
2570 #ifdef HAVE_SYS_PARAM_H
2571 #include <sys/param.h>
2573 #ifdef HAVE_SYS_MOUNT_H
2574 #include <sys/mount.h>
2576 #ifdef HAVE_SYS_FS_TYPES_H
2577 #include <sys/fs_types.h>
2582 /* Ultrix's statfs returns 1 for success,
2583 0 for not mounted, -1 for failure. */
2584 exit (statfs (".", &fsd) != 1);
2586 fu_cv_sys_stat_fs_data=yes,
2587 fu_cv_sys_stat_fs_data=no,
2588 fu_cv_sys_stat_fs_data=no)])
2589 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2590 if test $fu_cv_sys_stat_fs_data = yes; then
2592 AC_DEFINE(STAT_STATFS2_FS_DATA)
2597 # As a gating factor for large file support, in order to
2598 # use <4GB files we must have the following minimal support
2600 # long long, and a 64 bit off_t or off64_t.
2601 # If we don't have all of these then disable large
2604 AC_MSG_CHECKING(if large file support can be enabled)
2606 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2607 #include <sys/types.h>
2613 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2614 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2616 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2621 AC_ARG_WITH(spinlocks,
2622 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no)])
2623 if test "x$with_spinlocks" = "xyes"; then
2624 AC_DEFINE(USE_SPINLOCKS)
2628 AC_DEFINE(SPARC_SPINLOCKS)
2631 i386|i486|i586|i686)
2632 AC_DEFINE(INTEL_SPINLOCKS)
2636 AC_DEFINE(MIPS_SPINLOCKS)
2640 AC_DEFINE(POWERPC_SPINLOCKS)
2645 #################################################
2646 # check for ACL support
2648 AC_MSG_CHECKING(whether to support ACLs)
2649 AC_ARG_WITH(acl-support,
2650 [ --with-acl-support Include ACL support (default=no)],
2651 [ case "$withval" in
2656 AC_MSG_RESULT(Using UnixWare ACLs)
2657 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2660 AC_MSG_RESULT(Using solaris ACLs)
2661 AC_DEFINE(HAVE_SOLARIS_ACLS)
2664 AC_MSG_RESULT(Using HPUX ACLs)
2665 AC_DEFINE(HAVE_HPUX_ACLS)
2668 AC_MSG_RESULT(Using IRIX ACLs)
2669 AC_DEFINE(HAVE_IRIX_ACLS)
2672 AC_MSG_RESULT(Using AIX ACLs)
2673 AC_DEFINE(HAVE_AIX_ACLS)
2676 AC_MSG_RESULT(Using Tru64 ACLs)
2677 AC_DEFINE(HAVE_TRU64_ACLS)
2681 AC_CHECK_LIB(acl,acl_get_file)
2682 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2683 AC_TRY_LINK([#include <sys/types.h>
2684 #include <sys/acl.h>],
2685 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2686 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2687 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2688 AC_MSG_RESULT(Using posix ACLs)
2689 AC_DEFINE(HAVE_POSIX_ACLS)
2690 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2691 AC_TRY_LINK([#include <sys/types.h>
2692 #include <sys/acl.h>],
2693 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2694 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2695 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2696 AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2704 AC_DEFINE(HAVE_NO_ACLS)
2707 AC_DEFINE(HAVE_NO_ACLS)
2711 #################################################
2712 # check for the historical SAMBA installation
2714 if test "x$prefix" = xNONE -a "$sbindir" = "\${exec_prefix}/sbin"; then
2715 # Put all binaries under the /usr/local/samba/bin directory.
2719 #################################################
2720 # check for sendfile support
2722 AC_MSG_CHECKING(whether to check for support sendfile)
2723 AC_ARG_WITH(sendfile-support,
2724 [ --with-sendfile-support Check for sendfile support (default=no)],
2725 [ case "$withval" in
2732 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2733 AC_TRY_LINK([#include <sys/sendfile.h>],
2738 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
2740 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2742 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
2743 AC_TRY_LINK([#include <sys/sendfile.h>],
2748 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2750 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2752 # Try and cope with broken Linux sendfile....
2753 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
2755 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
2756 #undef _FILE_OFFSET_BITS
2758 #include <sys/sendfile.h>],
2763 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2765 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
2767 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2768 AC_DEFINE(HAVE_SENDFILE64)
2769 AC_DEFINE(LINUX_SENDFILE_API)
2770 AC_DEFINE(WITH_SENDFILE)
2771 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2772 AC_DEFINE(HAVE_SENDFILE)
2773 AC_DEFINE(LINUX_SENDFILE_API)
2774 AC_DEFINE(WITH_SENDFILE)
2775 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
2776 AC_DEFINE(LINUX_BROKEN_SENDFILE_API)
2777 AC_DEFINE(WITH_SENDFILE)
2784 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
2786 #include <sys/types.h>
2787 #include <sys/socket.h>
2788 #include <sys/uio.h>],
2790 #define NULL (void *)0
2791 int fromfd, tofd, ret, total;
2792 off_t offset, nwritten;
2794 struct iovec *headers;
2796 struct iovec *trailers;
2800 hdr.headers = &hdtrl;
2802 hdr.trailers = NULL;
2804 hdtrl.iov_base = NULL;
2806 ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
2808 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2810 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2811 AC_DEFINE(HAVE_SENDFILE)
2812 AC_DEFINE(FREEBSD_SENDFILE_API)
2813 AC_DEFINE(WITH_SENDFILE)
2820 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2822 #include <sys/socket.h>
2823 #include <sys/uio.h>],
2827 struct iovec hdtrl[2];
2831 hdtrl[0].iov_base = 0;
2832 hdtrl[0].iov_len = 0;
2834 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
2836 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2837 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2838 AC_DEFINE(HAVE_SENDFILE64)
2839 AC_DEFINE(HPUX_SENDFILE_API)
2840 AC_DEFINE(WITH_SENDFILE)
2845 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
2847 #include <sys/socket.h>
2848 #include <sys/uio.h>],
2852 struct iovec hdtrl[2];
2856 hdtrl[0].iov_base = 0;
2857 hdtrl[0].iov_len = 0;
2859 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
2861 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2862 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2863 AC_DEFINE(HAVE_SENDFILE)
2864 AC_DEFINE(HPUX_SENDFILE_API)
2865 AC_DEFINE(WITH_SENDFILE)
2872 LIBS="$LIBS -lsendfile"
2873 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
2875 #include <sys/sendfile.h>],
2879 struct sendfilevec vec[2];
2885 vec[0].sfv_fd = SFV_FD_SELF;
2886 vec[0].sfv_flag = 0;
2891 vec[1].sfv_flag = 0;
2894 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
2896 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
2898 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
2899 AC_DEFINE(HAVE_SENDFILEV64)
2900 AC_DEFINE(SOLARIS_SENDFILE_API)
2901 AC_DEFINE(WITH_SENDFILE)
2906 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
2908 #include <sys/sendfile.h>],
2912 struct sendfilevec vec[2];
2918 vec[0].sfv_fd = SFV_FD_SELF;
2919 vec[0].sfv_flag = 0;
2924 vec[1].sfv_flag = 0;
2927 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
2929 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
2931 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
2932 AC_DEFINE(HAVE_SENDFILEV)
2933 AC_DEFINE(SOLARIS_SENDFILE_API)
2934 AC_DEFINE(WITH_SENDFILE)
2951 #################################################
2952 # Check whether winbind is supported on this platform. If so we need to
2953 # build and install client programs (WINBIND_TARGETS), sbin programs
2954 # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS).
2956 AC_MSG_CHECKING(whether to build winbind)
2958 # Initially, the value of $host_os decides whether winbind is supported
2966 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2967 WINBIND_NSS_EXTRA_LIBS="-lsocket"
2971 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2978 winbind_no_reason=", unsupported on $host_os"
2982 # Check the setting of --with-winbindd
2984 AC_ARG_WITH(winbind,
2985 [ --with-winbind Build winbind (default, if supported by OS)],
2998 # We need unix domain sockets for winbind
3000 if test x"$HAVE_WINBIND" = x"yes"; then
3001 if test x"$samba_cv_unixsocket" = x"no"; then
3002 winbind_no_reason=", no unix domain socket support on $host_os"
3007 # Display test results
3009 if test x"$HAVE_WINBIND" = x"yes"; then
3013 AC_MSG_CHECKING(whether to enable winbind auth challenge/response code)
3014 AC_ARG_WITH(winbind-auth-challenge,
3015 [ --with-winbind-auth-challenge Enable winbindd_pam_auth_crap() functionality (default no)],
3019 AC_DEFINE(WITH_WINBIND_AUTH_CRAP)
3029 # Check for FreeBSD problem with getgroups
3031 WINBIND_TARGETS="bin/wbinfo"
3032 WINBIND_STARGETS="bin/winbindd"
3035 WINBIND_LTARGETS="nsswitch/libns_winbind.so"
3038 WINBIND_LTARGETS="nsswitch/libnss_winbind.so"
3045 WINBIND_PAM_TARGETS="nsswitch/pam_winbind.so"
3049 # Check for Horrible winbindd ldap hack.
3051 AC_MSG_CHECKING(whether to enable winbind ldap hack)
3052 AC_ARG_WITH(winbind-ldap-hack,
3053 [ --with-winbind-ldap-hack Enable winbindd_ldap_hack() functionality (default no)],
3057 AC_DEFINE(WITH_HORRIBLE_LDAP_NATIVE_MODE_HACK)
3058 LIBS="$LIBS -lldap";
3069 AC_MSG_RESULT(no$winbind_no_reason)
3074 WINBIND_PAM_TARGETS=""
3078 # Check for FreeBSD problem with getgroups
3079 # It returns EGID too many times in the list of groups
3080 # and causes a security problem
3081 AC_CACHE_CHECK([whether or not getgroups returns EGID too many times],
3082 samba_cv_have_getgroups_too_many_egids,[AC_TRY_RUN([
3083 #include <sys/types.h>
3086 int main(int argc, char *argv[])
3091 n = getgroups(n, &groups);
3092 /* Could actually pass back the number of EGIDs there ... */
3093 exit((n > 1 && groups[0] == getegid() && groups[1] == getegid()) ? 1 : 0);
3095 samba_cv_have_getgroups_too_many_egids=no,samba_cv_have_getgroups_too_many_egids=yes, samba_cv_have_getgroups_too_many_egids=cross)])
3096 if test x"$samba_cv_have_getgroups_too_many_egids" = x"yes"; then
3097 AC_DEFINE(HAVE_GETGROUPS_TOO_MANY_EGIDS)
3100 # Substitution time!
3102 AC_SUBST(WINBIND_TARGETS)
3103 AC_SUBST(WINBIND_STARGETS)
3104 AC_SUBST(WINBIND_LTARGETS)
3105 AC_SUBST(WINBIND_PAM_TARGETS)
3106 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
3107 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
3109 # Solaris has some extra fields in struct passwd that need to be
3110 # initialised otherwise nscd crashes. Unfortunately autoconf < 2.50
3111 # doesn't have the AC_CHECK_MEMBER macro which would be handy for checking
3114 #AC_CHECK_MEMBER(struct passwd.pw_comment,
3115 # AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),
3116 # [#include <pwd.h>])
3118 AC_CACHE_CHECK([whether struct passwd has pw_comment],samba_cv_passwd_pw_comment, [
3119 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_comment;],
3120 samba_cv_passwd_pw_comment=yes,samba_cv_passwd_pw_comment=no)])
3121 if test x"$samba_cv_passwd_pw_comment" = x"yes"; then
3122 AC_DEFINE(HAVE_PASSWD_PW_COMMENT)
3125 #AC_CHECK_MEMBER(struct passwd.pw_age,
3126 # AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),
3127 # [#include <pwd.h>])
3129 AC_CACHE_CHECK([whether struct passwd has pw_age],samba_cv_passwd_pw_age, [
3130 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_age;],
3131 samba_cv_passwd_pw_age=yes,samba_cv_passwd_pw_age=no)])
3132 if test x"$samba_cv_passwd_pw_age" = x"yes"; then
3133 AC_DEFINE(HAVE_PASSWD_PW_AGE)
3136 #################################################
3137 # Check to see if we should use the included popt
3139 AC_ARG_WITH(included-popt,
3140 [ --with-included-popt use bundled popt library, not from system],
3151 if test x"$INCLUDED_POPT" != x"yes"; then
3152 AC_CHECK_LIB(popt, poptGetContext,
3153 INCLUDED_POPT=no, INCLUDED_POPT=yes)
3156 AC_MSG_CHECKING(whether to use included popt)
3157 if test x"$INCLUDED_POPT" = x"yes"; then
3158 AC_MSG_RESULT($srcdir/popt)
3159 BUILD_POPT='$(POPT_OBJS)'
3160 FLAGS1="-I$srcdir/popt"
3165 AC_SUBST(BUILD_POPT)
3168 #################################################
3169 # final configure stuff
3170 AC_MSG_CHECKING([configure summary])
3171 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
3173 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
3174 AC_MSG_WARN([cannot run when cross-compiling]))
3179 AC_OUTPUT(include/stamp-h Makefile script/findsmb)