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 dnl look for executable suffix
192 AC_PATH_PROG(passwd_program, passwd, /bin/passwd)
193 AC_SUBST(passwd_program)
195 dnl Check if C compiler understands -c and -o at the same time
197 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
204 dnl Check if the C compiler understands volatile (it should, being ANSI).
205 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
206 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
207 samba_cv_volatile=yes,samba_cv_volatile=no)])
208 if test x"$samba_cv_volatile" = x"yes"; then
209 AC_DEFINE(HAVE_VOLATILE)
216 dnl Add #include for broken IRIX header files
218 *irix6*) AC_ADD_INCLUDE(<standards.h>)
222 AC_VALIDATE_CACHE_SYSTEM_TYPE
227 # Config CPPFLAG settings for strange OS's that must be set
228 # before other tests.
231 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
234 # mmap on HPUX is completely broken...
235 AC_DEFINE(MMAP_BLACKLIST)
236 if test $ac_cv_prog_cc_Ae = yes; then
237 CPPFLAGS="$CPPFLAGS -Ae"
240 # Defines needed for HPUX support.
241 # HPUX has bigcrypt but (sometimes?) doesn't use it for
242 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
246 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
247 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
248 AC_DEFINE(_HPUX_SOURCE)
249 AC_DEFINE(_POSIX_SOURCE)
250 AC_DEFINE(_ALIGNMENT_REQUIRED,1)
251 AC_DEFINE(_MAX_ALIGNMENT,4)
254 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
255 AC_DEFINE(_HPUX_SOURCE)
256 AC_DEFINE(_POSIX_SOURCE)
257 AC_DEFINE(_LARGEFILE64_SOURCE)
258 AC_DEFINE(POSIX_ACL_NEEDS_MASK)
259 AC_DEFINE(_ALIGNMENT_REQUIRED,1)
260 AC_DEFINE(_MAX_ALIGNMENT,4)
261 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
269 # CRAY Unicos has broken const handling
271 AC_MSG_RESULT([disabling const])
272 CPPFLAGS="$CPPFLAGS -Dconst="
276 # AIX4.x doesn't even admit to having large
277 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
280 AC_MSG_RESULT([enabling large file support])
281 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
282 AC_DEFINE(_LARGE_FILES)
285 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
286 # to the existance of large files..
287 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
288 # recommendations on large file support, however it makes the
289 # compile work using gcc 2.7 and 2.8, whereas using the Sun
290 # recommendation makes the compile fail on gcc2.7. JRA.
294 5.0*|5.1*|5.2*|5.3*|5.5*)
295 AC_MSG_RESULT([no large file support])
298 AC_MSG_RESULT([enabling large file support])
299 if test "$ac_cv_prog_gcc" = yes; then
300 ${CC-cc} -v >conftest.c 2>&1
301 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
303 case "$ac_cv_gcc_compiler_version_number" in
304 *"gcc version 2.6"*|*"gcc version 2.7"*)
305 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
306 AC_DEFINE(_LARGEFILE64_SOURCE)
309 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
310 AC_DEFINE(_LARGEFILE64_SOURCE)
311 AC_DEFINE(_FILE_OFFSET_BITS,64)
315 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
316 AC_DEFINE(_LARGEFILE64_SOURCE)
317 AC_DEFINE(_FILE_OFFSET_BITS,64)
323 # VOS may need to have POSIX support and System V compatibility enabled.
330 CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=199506L"
331 AC_DEFINE(_POSIX_C_SOURCE, 199506L, [Whether to enable POSIX support])
335 *-D_SYSV*|*-D_SVID_SOURCE*)
338 CPPFLAGS="$CPPFLAGS -D_SYSV"
339 AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
343 # Tests needed for SINIX large file support.
346 if test $host = mips-sni-sysv4 ; then
347 AC_MSG_CHECKING([for LFS support])
348 old_CPPFLAGS="$CPPFLAGS"
349 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
353 #if _LFS64_LARGEFILE == 1
358 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
359 CPPFLAGS="$old_CPPFLAGS"
360 if test x$SINIX_LFS_SUPPORT = xyes ; then
361 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
362 AC_DEFINE(_LARGEFILE64_SOURCE)
363 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
364 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
365 LIBS="`getconf LFS64_LIBS` $LIBS"
367 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
371 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
374 AC_MSG_CHECKING([for LFS support])
375 old_CPPFLAGS="$CPPFLAGS"
376 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
379 #include <sys/utsname.h>
381 #if _LFS64_LARGEFILE == 1
386 /* Ensure this is glibc 2.2 or higher */
387 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
388 int libc_major = __GLIBC__;
389 int libc_minor = __GLIBC_MINOR__;
397 /* Ensure this is kernel 2.4 or higher */
400 release = uts.release;
401 major = atoi(strsep(&release, "."));
402 minor = atoi(strsep(&release, "."));
404 if (major > 2 || (major == 2 && minor > 3))
411 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
412 CPPFLAGS="$old_CPPFLAGS"
413 if test x$LINUX_LFS_SUPPORT = xyes ; then
414 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
415 AC_DEFINE(_LARGEFILE64_SOURCE)
416 AC_DEFINE(_FILE_OFFSET_BITS,64)
417 AC_DEFINE(_GNU_SOURCE)
419 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
423 AC_MSG_CHECKING([for LFS support])
424 old_CPPFLAGS="$CPPFLAGS"
425 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
429 #if _LFS64_LARGEFILE == 1
434 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
435 CPPFLAGS="$old_CPPFLAGS"
436 if test x$GLIBC_LFS_SUPPORT = xyes ; then
437 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
438 AC_DEFINE(_LARGEFILE64_SOURCE)
439 AC_DEFINE(_GNU_SOURCE)
441 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
451 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
452 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
453 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
454 AC_CHECK_HEADERS(stdlib.h string.h strings.h syslog.h sys/file.h)
455 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
456 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h sys/socket.h)
457 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)
458 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
459 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h dlfcn.h synch.h pthread.h nsswitch.h)
462 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
463 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
467 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
468 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
469 if test x"$ac_cv_header_shadow_h" = x"yes"; then
470 AC_DEFINE(HAVE_SHADOW_H)
474 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
475 AC_CHECK_HEADERS(nss.h nss_common.h ns_api.h sys/security.h security/pam_appl.h security/pam_modules.h)
476 AC_CHECK_HEADERS(stropts.h poll.h)
477 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
478 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
480 # For experimental utmp support (lastlog on some BSD-like systems)
481 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
483 # For quotas on Veritas VxFS filesystems
484 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
486 # For quotas on Linux XFS filesystems
487 AC_CHECK_HEADERS(linux/xqm.h)
489 AC_CHECK_SIZEOF(int,cross)
490 AC_CHECK_SIZEOF(long,cross)
491 AC_CHECK_SIZEOF(short,cross)
506 AC_CHECK_TYPE(ino_t,unsigned)
507 AC_CHECK_TYPE(loff_t,off_t)
508 AC_CHECK_TYPE(offset_t,loff_t)
509 AC_CHECK_TYPE(ssize_t, int)
510 AC_CHECK_TYPE(wchar_t, unsigned short)
512 ############################################
513 # for cups support we need libcups, and a handful of header files
516 [ --enable-cups Turn on CUPS support (default=auto)])
518 if test x$enable_cups != xno; then
519 AC_PATH_PROG(CUPS_CONFIG, cups-config)
521 if test "x$CUPS_CONFIG" != x; then
523 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
524 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
525 LIBS="$LIBS `$CUPS_CONFIG --libs`"
529 ############################################
530 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the new VFS code
531 AC_CHECK_FUNCS(dlopen)
532 if test x"$ac_cv_func_dlopen" = x"no"; then
533 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
534 AC_DEFINE(HAVE_DLOPEN)])
536 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
538 ############################################
539 # check if the compiler can do immediate structures
540 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
544 typedef struct {unsigned x;} FOOBAR;
545 #define X_FOOBAR(x) ((FOOBAR) { x })
546 #define FOO_ONE X_FOOBAR(1)
554 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
555 if test x"$samba_cv_immediate_structures" = x"yes"; then
556 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES)
559 ############################################
560 # check for unix domain sockets
561 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
563 #include <sys/types.h>
566 #include <sys/socket.h>
567 #include <sys/un.h>],
569 struct sockaddr_un sunaddr;
570 sunaddr.sun_family = AF_UNIX;
572 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
573 if test x"$samba_cv_unixsocket" = x"yes"; then
574 AC_DEFINE(HAVE_UNIXSOCKET)
577 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
579 #include <sys/types.h>
584 #include <sys/socket.h>],[socklen_t i = 0],
585 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
586 if test x"$samba_cv_socklen_t" = x"yes"; then
587 AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
590 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
592 #include <sys/types.h>
597 #include <signal.h>],[sig_atomic_t i = 0],
598 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
599 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
600 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
603 # stupid headers have the functions but no declaration. grrrr.
604 AC_HAVE_DECL(errno, [#include <errno.h>])
605 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
606 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
607 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
608 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
609 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
610 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
612 # and glibc has setresuid under linux but the function does
613 # nothing until kernel 2.1.44! very dumb.
614 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
615 AC_TRY_RUN([#include <errno.h>
616 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
617 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
618 if test x"$samba_cv_have_setresuid" = x"yes"; then
619 AC_DEFINE(HAVE_SETRESUID)
622 # Do the same check for setresguid...
624 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
625 AC_TRY_RUN([#include <unistd.h>
627 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
628 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
629 if test x"$samba_cv_have_setresgid" = x"yes"; then
630 AC_DEFINE(HAVE_SETRESGID)
635 ###############################################
636 # Readline included by default unless explicitly asked not to
637 test "${with_readline+set}" != "set" && with_readline=yes
639 # test for where we get readline() from
640 AC_MSG_CHECKING(whether to use readline)
641 AC_ARG_WITH(readline,
642 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto)],
643 [ case "$with_readline" in
647 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
648 AC_CHECK_HEADERS(readline/history.h)
650 AC_CHECK_HEADERS(readline.h readline/readline.h,[
651 for termlib in ncurses curses termcap terminfo termlib; do
652 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
654 AC_CHECK_LIB(readline, rl_callback_handler_install,
655 [TERMLIBS="-lreadline $TERMLIBS"
656 AC_DEFINE(HAVE_LIBREADLINE)
657 break], [TERMLIBS=], $TERMLIBS)])
665 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
666 # alternate readline path
668 _cppflags=${CPPFLAGS}
670 # Add additional search path
671 LDFLAGS="-L$with_readline/lib $LDFLAGS"
672 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
674 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
675 AC_CHECK_HEADERS(readline/history.h)
677 AC_CHECK_HEADERS(readline.h readline/readline.h,[
678 for termlib in ncurses curses termcap terminfo termlib; do
679 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
681 AC_CHECK_LIB(readline, rl_callback_handler_install,
682 [TERMLDFLAGS="-L$with_readline/lib"
683 TERMCPPFLAGS="-I$with_readline/include"
684 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
685 TERMLIBS="-lreadline $TERMLIBS"
686 AC_DEFINE(HAVE_LIBREADLINE)
687 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
695 AC_SUBST(TERMLDFLAGS)
697 # The following test taken from the cvs sources
698 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
699 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
700 # libsocket.so which has a bad implementation of gethostbyname (it
701 # only looks in /etc/hosts), so we only look for -lsocket if we need
703 AC_CHECK_FUNCS(connect)
704 if test x"$ac_cv_func_connect" = x"no"; then
707 *) AC_CHECK_LIB(nsl_s, printf) ;;
711 *) AC_CHECK_LIB(nsl, printf) ;;
715 *) AC_CHECK_LIB(socket, connect) ;;
719 *) AC_CHECK_LIB(inet, connect) ;;
721 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
723 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
724 test x"$ac_cv_lib_inet_connect" = x"yes"; then
725 # ac_cv_func_connect=yes
726 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
727 AC_DEFINE(HAVE_CONNECT)
731 ###############################################
732 # test for where we get get_yp_default_domain() from
733 AC_CHECK_FUNCS(yp_get_default_domain)
734 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
735 AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
736 AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)])
739 # Check if we have execl, if not we need to compile smbrun.
740 AC_CHECK_FUNCS(execl)
741 if test x"$ac_cv_func_execl" = x"no"; then
742 RUNPROG="bin/smbrun\$(EXEEXT)"
747 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link)
748 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid mknod mknod64)
749 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
750 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
751 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
752 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
753 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
754 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
755 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
756 AC_CHECK_FUNCS(syslog vsyslog)
758 # syscall() is needed for smbwrapper.
759 AC_CHECK_FUNCS(syscall)
761 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
762 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
763 AC_CHECK_FUNCS(__getcwd _getcwd)
764 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
765 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
766 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
767 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
768 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
769 AC_CHECK_FUNCS(_write __write _fork __fork)
770 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
771 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
772 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
773 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
774 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
777 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
780 if test x$ac_cv_func_stat64 = xno ; then
781 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
783 #if defined(HAVE_UNISTD_H)
786 #include <sys/stat.h>
787 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
788 AC_MSG_RESULT([$ac_cv_func_stat64])
789 if test x$ac_cv_func_stat64 = xyes ; then
790 AC_DEFINE(HAVE_STAT64)
794 if test x$ac_cv_func_lstat64 = xno ; then
795 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
797 #if defined(HAVE_UNISTD_H)
800 #include <sys/stat.h>
801 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
802 AC_MSG_RESULT([$ac_cv_func_lstat64])
803 if test x$ac_cv_func_lstat64 = xyes ; then
804 AC_DEFINE(HAVE_LSTAT64)
808 if test x$ac_cv_func_fstat64 = xno ; then
809 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
811 #if defined(HAVE_UNISTD_H)
814 #include <sys/stat.h>
815 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
816 AC_MSG_RESULT([$ac_cv_func_fstat64])
817 if test x$ac_cv_func_fstat64 = xyes ; then
818 AC_DEFINE(HAVE_FSTAT64)
823 # If no strcasecmp, check for it in some known places
824 # It is in -lresolv on ReliantUNIX and UnixWare
825 # -lresolve *must* follow -lnsl for name resolution to work properly
828 if test x$ac_cv_func_strcasecmp = xno ; then
829 AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
830 AC_DEFINE(HAVE_STRCASECMP))
834 # Check for the functions putprpwnam, set_auth_parameters,
835 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
836 # Needed for OSF1 and HPUX.
839 AC_LIBTESTFUNC(security, putprpwnam)
840 AC_LIBTESTFUNC(sec, putprpwnam)
842 AC_LIBTESTFUNC(security, set_auth_parameters)
843 AC_LIBTESTFUNC(sec, set_auth_parameters)
845 # UnixWare 7.x has its getspnam in -lgen
846 AC_LIBTESTFUNC(gen, getspnam)
848 AC_LIBTESTFUNC(security, getspnam)
849 AC_LIBTESTFUNC(sec, getspnam)
851 AC_LIBTESTFUNC(security, bigcrypt)
852 AC_LIBTESTFUNC(sec, bigcrypt)
854 AC_LIBTESTFUNC(security, getprpwnam)
855 AC_LIBTESTFUNC(sec, getprpwnam)
857 # this bit needs to be modified for each OS that is suported by
858 # smbwrapper. You need to specify how to created a shared library and
859 # how to compile C code to produce PIC object files
861 # these are the defaults, good for lots of systems
869 # Assume non-shared by default and override below
871 AC_MSG_CHECKING([ability to build shared libraries])
873 # and these are for particular systems
875 *linux*) AC_DEFINE(LINUX)
878 DYNEXP="-Wl,--export-dynamic"
880 SONAMEFLAG="-Wl,-soname="
881 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
883 *solaris*) AC_DEFINE(SUNOS5)
887 if test "${GCC}" = "yes"; then
889 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
894 ## ${CFLAGS} added for building 64-bit shared
895 ## libs using Sun's Compiler
896 LDSHFLAGS="-G \${CFLAGS}"
900 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
901 AC_DEFINE(BROKEN_GETGRNAM)
903 *sunos*) AC_DEFINE(SUNOS4)
907 PICFLAG="-KPIC" # Is this correct for SunOS
908 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
909 AC_DEFINE(BROKEN_GETGRNAM)
911 *freebsd*) BLDSHARED="true"
913 DYNEXP="-Wl,--export-dynamic"
914 SONAMEFLAG="-Wl,-soname,"
915 PICFLAG="-fPIC -DPIC"
916 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
917 AC_DEFINE(BROKEN_GETGRNAM)
919 *openbsd*) BLDSHARED="true"
921 DYNEXP="-Wl,-Bdynamic"
922 SONAMEFLAG="-Wl,-soname,"
924 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
925 AC_DEFINE(BROKEN_GETGRNAM)
927 *irix*) AC_DEFINE(IRIX)
929 *irix6*) AC_DEFINE(IRIX6)
932 ATTEMPT_WRAP32_BUILD=yes
934 LDSHFLAGS="-set_version sgi1.0 -shared"
935 SONAMEFLAG="-soname "
937 if test "${GCC}" = "yes"; then
942 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
944 *aix*) AC_DEFINE(AIX)
946 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
947 DYNEXP="-Wl,-brtl,-bexpall"
949 if test "${GCC}" != "yes"; then
950 ## for funky AIX compiler using strncpy()
951 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
954 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE)
956 *hpux*) AC_DEFINE(HPUX)
958 # Use special PIC flags for the native HP-UX compiler.
959 if test $ac_cv_prog_cc_Ae = yes; then
962 LDSHFLAGS="-B symbolic -b -z"
967 AC_DEFINE(STAT_ST_BLOCKSIZE,8192)
968 AC_DEFINE(POSIX_ACL_NEEDS_MASK)
970 *qnx*) AC_DEFINE(QNX)
971 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
973 *osf*) AC_DEFINE(OSF1)
976 SONAMEFLAG="-Wl,-soname,"
978 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
979 AC_DEFINE(BROKEN_GETGRNAM)
981 *sco*) AC_DEFINE(SCO)
982 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
984 *unixware*) AC_DEFINE(UNIXWARE)
987 SONAMEFLAG="-Wl,-soname,"
989 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
991 *next2*) AC_DEFINE(NEXT2)
992 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
994 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
995 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
999 *-univel-*) if [ test "$GCC" != yes ]; then
1000 AC_DEFINE(HAVE_MEMSET)
1005 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
1007 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1010 if [ test "$GCC" != yes ]; then
1011 AC_DEFINE(HAVE_MEMSET)
1014 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1016 *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
1021 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1025 AC_MSG_RESULT($BLDSHARED)
1026 AC_MSG_CHECKING([linker flags for shared libraries])
1027 AC_MSG_RESULT([$LDSHFLAGS])
1028 AC_MSG_CHECKING([compiler flags for position-independent code])
1029 AC_MSG_RESULT([$PICFLAGS])
1031 # try to work out how to produce pic code with this compiler
1032 if test x$PICFLAG = x; then
1033 AC_PROG_CC_FLAG(fpic)
1034 if test $ac_cv_prog_cc_fpic = yes; then
1038 if test x$PICFLAG = x; then
1039 AC_PROG_CC_FLAG(KPIC)
1040 if test $ac_cv_prog_cc_KPIC = yes; then
1044 if test x$PICFLAG = x; then
1045 AC_PROG_CC_FLAG(Kpic)
1046 if test $ac_cv_prog_cc_Kpic = yes; then
1053 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1054 AC_TRY_RUN([#include <stdio.h>
1055 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1056 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1057 if test x"$samba_cv_have_longlong" = x"yes"; then
1058 AC_DEFINE(HAVE_LONGLONG)
1062 # Check if the compiler supports the LL prefix on long long integers.
1065 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1066 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1067 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1068 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1069 AC_DEFINE(COMPILER_SUPPORTS_LL)
1073 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1074 AC_TRY_RUN([#include <stdio.h>
1075 #include <sys/stat.h>
1076 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1077 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1078 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1079 AC_DEFINE(SIZEOF_OFF_T,8)
1082 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1084 #if defined(HAVE_UNISTD_H)
1088 #include <sys/stat.h>
1089 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1090 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1091 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1092 AC_DEFINE(HAVE_OFF64_T)
1095 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1096 AC_TRY_RUN([#include <stdio.h>
1097 #include <sys/stat.h>
1098 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1099 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1100 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1101 AC_DEFINE(SIZEOF_INO_T,8)
1104 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1106 #if defined(HAVE_UNISTD_H)
1110 #include <sys/stat.h>
1111 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1112 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1113 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1114 AC_DEFINE(HAVE_INO64_T)
1117 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1119 #if defined(HAVE_UNISTD_H)
1123 #include <sys/stat.h>
1124 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1125 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1126 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1127 AC_DEFINE(HAVE_DEV64_T)
1130 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1132 #if defined(HAVE_UNISTD_H)
1135 #include <sys/types.h>
1136 #include <dirent.h>],
1137 [struct dirent64 de;],
1138 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1139 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1140 AC_DEFINE(HAVE_STRUCT_DIRENT64)
1143 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1145 #if defined(HAVE_UNISTD_H)
1148 #include <sys/types.h>
1149 main() { dev_t dev; int i = major(dev); return 0; }],
1150 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1151 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1152 AC_DEFINE(HAVE_DEVICE_MAJOR_FN)
1155 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1157 #if defined(HAVE_UNISTD_H)
1160 #include <sys/types.h>
1161 main() { dev_t dev; int i = minor(dev); return 0; }],
1162 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1163 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1164 AC_DEFINE(HAVE_DEVICE_MINOR_FN)
1167 AC_CACHE_CHECK([for makedev macro],samba_cv_HAVE_MAKEDEV_FN,[
1169 #if defined(HAVE_UNISTD_H)
1172 #include <sys/types.h>
1173 main() { dev_t dev = makedev(1,2); return 0; }],
1174 samba_cv_HAVE_MAKEDEV_FN=yes,samba_cv_HAVE_MAKEDEV_FN=no,samba_cv_HAVE_MAKEDEV_FN=cross)])
1175 if test x"$samba_cv_HAVE_MAKEDEV_FN" = x"yes"; then
1176 AC_DEFINE(MAKEDEV_FN)
1179 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1180 AC_TRY_RUN([#include <stdio.h>
1181 main() { char c; c=250; exit((c > 0)?0:1); }],
1182 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1183 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1184 AC_DEFINE(HAVE_UNSIGNED_CHAR)
1187 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1188 AC_TRY_COMPILE([#include <sys/types.h>
1189 #include <sys/socket.h>
1190 #include <netinet/in.h>],
1191 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1192 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1193 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1194 AC_DEFINE(HAVE_SOCK_SIN_LEN)
1197 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1198 AC_TRY_COMPILE([#include <sys/types.h>
1200 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1201 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1202 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1203 AC_DEFINE(SEEKDIR_RETURNS_VOID)
1206 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
1207 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
1208 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
1209 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
1210 AC_DEFINE(HAVE_FILE_MACRO)
1213 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1214 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1215 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1216 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1217 AC_DEFINE(HAVE_FUNCTION_MACRO)
1220 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1222 #include <sys/time.h>
1224 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1225 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1226 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1227 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
1230 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE_VA_COPY,[
1231 AC_TRY_LINK([#include <stdarg.h>
1232 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1233 samba_cv_HAVE_VA_COPY=yes,samba_cv_HAVE_VA_COPY=no)])
1234 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1235 AC_DEFINE(HAVE_VA_COPY)
1238 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1240 #include <sys/types.h>
1242 void foo(const char *format, ...) {
1247 va_start(ap, format);
1248 len = vsnprintf(buf, 0, format, ap);
1250 if (len != 5) exit(1);
1252 va_start(ap, format);
1253 len = vsnprintf(0, 0, format, ap);
1255 if (len != 5) exit(1);
1257 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1261 main() { foo("hello"); }
1263 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1264 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1265 AC_DEFINE(HAVE_C99_VSNPRINTF)
1268 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1269 AC_TRY_RUN([#include <sys/types.h>
1271 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1272 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1273 di->d_name[0] == 0) exit(0); exit(1);} ],
1274 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1275 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1276 AC_DEFINE(HAVE_BROKEN_READDIR)
1279 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1280 AC_TRY_COMPILE([#include <sys/types.h>
1281 #include <utime.h>],
1282 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1283 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1284 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1285 AC_DEFINE(HAVE_UTIMBUF)
1288 dnl utmp and utmpx come in many flavours
1289 dnl We need to check for many of them
1290 dnl But we don't need to do each and every one, because our code uses
1291 dnl mostly just the utmp (not utmpx) fields.
1293 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1295 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1296 AC_TRY_COMPILE([#include <sys/types.h>
1298 [struct utmp ut; ut.ut_name[0] = 'a';],
1299 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1300 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1301 AC_DEFINE(HAVE_UT_UT_NAME)
1304 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1305 AC_TRY_COMPILE([#include <sys/types.h>
1307 [struct utmp ut; ut.ut_user[0] = 'a';],
1308 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1309 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1310 AC_DEFINE(HAVE_UT_UT_USER)
1313 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1314 AC_TRY_COMPILE([#include <sys/types.h>
1316 [struct utmp ut; ut.ut_id[0] = 'a';],
1317 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1318 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1319 AC_DEFINE(HAVE_UT_UT_ID)
1322 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1323 AC_TRY_COMPILE([#include <sys/types.h>
1325 [struct utmp ut; ut.ut_host[0] = 'a';],
1326 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1327 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1328 AC_DEFINE(HAVE_UT_UT_HOST)
1331 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1332 AC_TRY_COMPILE([#include <sys/types.h>
1334 [struct utmp ut; time_t t; ut.ut_time = t;],
1335 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1336 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1337 AC_DEFINE(HAVE_UT_UT_TIME)
1340 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1341 AC_TRY_COMPILE([#include <sys/types.h>
1343 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
1344 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1345 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1346 AC_DEFINE(HAVE_UT_UT_TV)
1349 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1350 AC_TRY_COMPILE([#include <sys/types.h>
1352 [struct utmp ut; ut.ut_type = 0;],
1353 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1354 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1355 AC_DEFINE(HAVE_UT_UT_TYPE)
1358 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1359 AC_TRY_COMPILE([#include <sys/types.h>
1361 [struct utmp ut; ut.ut_pid = 0;],
1362 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1363 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1364 AC_DEFINE(HAVE_UT_UT_PID)
1367 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1368 AC_TRY_COMPILE([#include <sys/types.h>
1370 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1371 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1372 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1373 AC_DEFINE(HAVE_UT_UT_EXIT)
1376 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1377 AC_TRY_COMPILE([#include <sys/types.h>
1379 [struct utmp ut; ut.ut_addr = 0;],
1380 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1381 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1382 AC_DEFINE(HAVE_UT_UT_ADDR)
1385 if test x$ac_cv_func_pututline = xyes ; then
1386 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1387 AC_TRY_COMPILE([#include <sys/types.h>
1389 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1390 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1391 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1392 AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
1396 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1397 AC_TRY_COMPILE([#include <sys/types.h>
1398 #include <utmpx.h>],
1399 [struct utmpx ux; ux.ut_syslen = 0;],
1400 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1401 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1402 AC_DEFINE(HAVE_UX_UT_SYSLEN)
1405 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1407 #include <sys/types.h>
1410 #define F_GETLEASE 1025
1413 int fd = open("/dev/null", O_RDONLY);
1414 return fcntl(fd, F_GETLEASE, 0) == -1;
1417 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1418 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1419 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1422 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1424 #include <sys/types.h>
1428 #define F_NOTIFY 1026
1431 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1434 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1435 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes" && test x"$target_cpu" != x"s390"; then
1436 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1439 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1441 #include <sys/types.h>
1444 #include <sys/file.h>
1446 #define LOCK_MAND 32
1447 #define LOCK_READ 64
1450 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1453 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1454 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1455 AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1461 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1462 AC_TRY_COMPILE([#include <sys/types.h>
1463 #include <fcntl.h>],
1464 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1465 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1466 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1467 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1470 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1471 AC_TRY_RUN([#include <sys/types.h>
1472 #include <sys/capability.h>
1475 if ((cap = cap_get_proc()) == NULL)
1477 cap->cap_effective |= CAP_NETWORK_MGT;
1478 cap->cap_inheritable |= CAP_NETWORK_MGT;
1483 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1484 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1485 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1489 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1490 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1493 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1494 AC_TRY_COMPILE([#include <sys/types.h>
1495 #if defined(HAVE_RPC_RPC_H)
1496 #include <rpc/rpc.h>
1499 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1500 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1501 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1504 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1505 AC_TRY_COMPILE([#include <sys/types.h>
1506 #if defined(HAVE_RPC_RPC_H)
1507 #include <rpc/rpc.h>
1510 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1511 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1512 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1515 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1516 AC_TRY_COMPILE([#include <sys/types.h>
1517 #if defined(HAVE_RPC_RPC_H)
1518 #include <rpc/rpc.h>
1521 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1522 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1523 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1526 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1527 AC_TRY_COMPILE([#include <sys/types.h>
1528 #if defined(HAVE_RPC_RPC_H)
1529 #include <rpc/rpc.h>
1532 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1533 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1534 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1538 dnl Some systems (SCO) have a problem including
1539 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1540 dnl as a #define in <prot.h> and as part of an enum
1544 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1545 AC_TRY_COMPILE([#include <sys/types.h>
1546 #ifdef HAVE_SYS_SECURITY_H
1547 #include <sys/security.h>
1549 #endif /* HAVE_SYS_SECURITY_H */
1550 #if defined(HAVE_RPC_RPC_H)
1551 #include <rpc/rpc.h>
1554 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1555 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1556 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1559 AC_MSG_CHECKING([for test routines])
1560 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1562 AC_MSG_ERROR([cant find test code. Aborting config]),
1563 AC_MSG_WARN([cannot run when cross-compiling]))
1565 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1566 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1567 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1568 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1569 AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1572 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1573 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1574 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1575 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1576 AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1579 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1580 SAVE_CPPFLAGS="$CPPFLAGS"
1581 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper"
1583 #define REPLACE_GETPASS 1
1584 #define NO_CONFIG_H 1
1585 #define main dont_declare_main
1586 #include "${srcdir-.}/lib/getsmbpass.c"
1588 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1589 CPPFLAGS="$SAVE_CPPFLAGS"
1591 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1592 AC_DEFINE(REPLACE_GETPASS)
1595 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1598 #include <sys/types.h>
1599 #include <netinet/in.h>
1600 #ifdef HAVE_ARPA_INET_H
1601 #include <arpa/inet.h>
1603 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1604 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1605 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1607 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1608 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1609 AC_DEFINE(REPLACE_INET_NTOA)
1612 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1613 AC_TRY_RUN([#include <stdlib.h>
1614 #include <sys/types.h>
1615 #include <sys/stat.h>
1619 char tpl[20]="/tmp/test.XXXXXX";
1620 int fd = mkstemp(tpl);
1621 if (fd == -1) exit(1);
1623 if (fstat(fd, &st) != 0) exit(1);
1624 if ((st.st_mode & 0777) != 0600) exit(1);
1627 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1628 samba_cv_HAVE_SECURE_MKSTEMP=no,
1629 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1630 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1631 AC_DEFINE(HAVE_SECURE_MKSTEMP)
1634 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1635 AC_TRY_RUN([#include <unistd.h>
1636 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1637 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1638 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1639 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1642 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1643 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1644 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1645 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1646 AC_DEFINE(HAVE_ROOT)
1648 AC_MSG_WARN(running as non-root will disable some tests)
1652 # look for a method of finding the list of network interfaces
1654 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1656 #define HAVE_IFACE_AIX 1
1657 #define AUTOCONF_TEST 1
1658 #include "confdefs.h"
1659 #include "${srcdir-.}/lib/interfaces.c"],
1660 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1661 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1662 iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1665 if test $iface = no; then
1666 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1668 #define HAVE_IFACE_IFCONF 1
1669 #define AUTOCONF_TEST 1
1670 #include "confdefs.h"
1671 #include "${srcdir-.}/lib/interfaces.c"],
1672 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1673 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1674 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1678 if test $iface = no; then
1679 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1681 #define HAVE_IFACE_IFREQ 1
1682 #define AUTOCONF_TEST 1
1683 #include "confdefs.h"
1684 #include "${srcdir-.}/lib/interfaces.c"],
1685 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1686 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1687 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1692 ################################################
1693 # look for a method of setting the effective uid
1695 if test $seteuid = no; then
1696 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1698 #define AUTOCONF_TEST 1
1699 #define USE_SETRESUID 1
1700 #include "confdefs.h"
1701 #include "${srcdir-.}/lib/util_sec.c"],
1702 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1703 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1704 seteuid=yes;AC_DEFINE(USE_SETRESUID)
1709 if test $seteuid = no; then
1710 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1712 #define AUTOCONF_TEST 1
1713 #define USE_SETREUID 1
1714 #include "confdefs.h"
1715 #include "${srcdir-.}/lib/util_sec.c"],
1716 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1717 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1718 seteuid=yes;AC_DEFINE(USE_SETREUID)
1722 if test $seteuid = no; then
1723 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1725 #define AUTOCONF_TEST 1
1726 #define USE_SETEUID 1
1727 #include "confdefs.h"
1728 #include "${srcdir-.}/lib/util_sec.c"],
1729 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1730 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1731 seteuid=yes;AC_DEFINE(USE_SETEUID)
1735 if test $seteuid = no; then
1736 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1738 #define AUTOCONF_TEST 1
1739 #define USE_SETUIDX 1
1740 #include "confdefs.h"
1741 #include "${srcdir-.}/lib/util_sec.c"],
1742 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1743 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1744 seteuid=yes;AC_DEFINE(USE_SETUIDX)
1749 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1750 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1751 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1752 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1753 AC_DEFINE(HAVE_MMAP)
1756 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1757 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1758 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1759 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1760 AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1763 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1764 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1765 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1766 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1767 AC_DEFINE(HAVE_FCNTL_LOCK)
1770 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1771 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1772 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1773 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1774 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1779 dnl Don't check for 64 bit fcntl locking if we know that the
1780 dnl glibc2.1 broken check has succeeded.
1783 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1785 #if defined(HAVE_UNISTD_H)
1795 #ifdef HAVE_SYS_FCNTL_H
1796 #include <sys/fcntl.h>
1798 main() { struct flock64 fl64;
1799 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1805 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1807 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1808 AC_DEFINE(HAVE_STRUCT_FLOCK64)
1812 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
1813 AC_TRY_COMPILE([#include <sys/types.h>
1814 #include <sys/stat.h>
1815 #include <unistd.h>],
1816 [struct stat st; st.st_blocks = 0;],
1817 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
1818 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
1819 AC_DEFINE(HAVE_STAT_ST_BLOCKS)
1822 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
1823 AC_TRY_COMPILE([#include <sys/types.h>
1824 #include <sys/stat.h>
1825 #include <unistd.h>],
1826 [struct stat st; st.st_blksize = 0;],
1827 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
1828 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
1829 AC_DEFINE(HAVE_STAT_ST_BLKSIZE)
1834 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
1836 #ifdef HAVE_SYS_VFS_H
1837 #include <sys/vfs.h>
1839 #ifdef HAVE_SYS_CAPABILITY_H
1840 #include <sys/capability.h>
1843 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
1844 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
1845 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS)
1850 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1851 AC_TRY_COMPILE([#include <sys/acl.h>
1852 #if defined(HAVE_RPCSVC_NIS_H)
1853 #include <rpcsvc/nis.h>
1856 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1857 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1858 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1862 #################################################
1863 # check for smbwrapper support
1864 AC_MSG_CHECKING(whether to use smbwrapper)
1865 AC_ARG_WITH(smbwrapper,
1866 [ --with-smbwrapper Include SMB wrapper support (default=no)],
1867 [ case "$withval" in
1870 AC_DEFINE(WITH_SMBWRAPPER)
1871 WRAPPROG="bin/smbsh\$(EXEEXT)"
1872 WRAP="bin/smbwrapper.$SHLIBEXT"
1874 if test x$ATTEMPT_WRAP32_BUILD = x; then
1877 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1880 # Conditions under which smbwrapper should not be built.
1882 if test x$PICFLAG = x; then
1883 echo No support for PIC code - disabling smbwrapper and smbsh
1887 elif test x$ac_cv_func_syscall = xno; then
1888 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1901 #################################################
1902 # check for the AFS filesystem
1903 AC_MSG_CHECKING(whether to use AFS)
1905 [ --with-afs Include AFS support (default=no)],
1906 [ case "$withval" in
1919 #################################################
1920 # check for the DFS auth system
1921 AC_MSG_CHECKING(whether to use DCE/DFS auth)
1923 [ --with-dce-dfs Include DCE/DFS support (default=no)],
1924 [ case "$withval" in
1936 #################################################
1937 # check for Kerberos IV auth system
1938 AC_MSG_CHECKING(whether to use Kerberos IV)
1940 [ --with-krb4=base-dir Include Kerberos IV support (default=no)],
1941 [ case "$withval" in
1944 AC_DEFINE(KRB4_AUTH)
1945 AC_CHECK_LIB(resolv, dn_expand)
1946 LIBS="$LIBS -lkrb -ldes"
1947 CFLAGS="$CFLAGS -I$withval/include"
1948 LDFLAGS="$LDFLAGS -L$withval/lib"
1957 #################################################
1958 # check for Kerberos 5 auth system
1959 AC_MSG_CHECKING(whether to use Kerberos 5)
1961 [ --with-krb5=base-dir Include Kerberos 5 support (default=no)],
1962 [ case "$withval" in
1965 AC_DEFINE(KRB5_AUTH)
1966 LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1967 CFLAGS="$CFLAGS -I$withval/include"
1968 LDFLAGS="$LDFLAGS -L$withval/lib"
1977 #################################################
1978 # check for automount support
1979 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1980 AC_ARG_WITH(automount,
1981 [ --with-automount Include AUTOMOUNT support (default=no)],
1982 [ case "$withval" in
1985 AC_DEFINE(WITH_AUTOMOUNT)
1994 #################################################
1995 # check for smbmount support
1996 AC_MSG_CHECKING(whether to use SMBMOUNT)
1997 AC_ARG_WITH(smbmount,
1998 [ --with-smbmount Include SMBMOUNT (Linux only) support (default=no)],
1999 [ case "$withval" in
2004 AC_DEFINE(WITH_SMBMOUNT)
2005 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
2008 AC_MSG_ERROR(not on a linux system!)
2022 #################################################
2023 # check for a PAM password database
2024 with_pam_for_crypt=no
2025 AC_MSG_CHECKING(whether to use PAM password database)
2027 [ --with-pam Include PAM password database support (default=no)],
2028 [ case "$withval" in
2033 with_pam_for_crypt=yes
2042 # we can't build a pam module if we don't have pam.
2043 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
2045 #################################################
2046 # check for pam_smbpass support
2047 AC_MSG_CHECKING(whether to use pam_smbpass)
2048 AC_ARG_WITH(pam_smbpass,
2049 [ --with-pam_smbpass Include the smbpass PAM module (default=no)],
2050 [ case "$withval" in
2054 # Conditions under which pam_smbpass should not be built.
2056 if test x$PICFLAG = x; then
2057 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
2059 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
2060 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
2063 AC_DEFINE(WITH_PAM_SMBPASS)
2064 PAM_MOD="bin/pam_smbpass.so"
2075 ###############################################
2076 # test for where we get crypt() from, but only
2078 if test $with_pam_for_crypt = no; then
2079 AC_CHECK_FUNCS(crypt)
2080 if test x"$ac_cv_func_crypt" = x"no"; then
2081 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
2082 AC_DEFINE(HAVE_CRYPT)])
2087 ## moved after the check for -lcrypt in order to
2088 ## ensure that the necessary libraries are included
2089 ## check checking for truncated salt. Wrapped by the
2090 ## $with_pam_for_crypt variable as above --jerry
2092 if test $with_pam_for_crypt = no; then
2093 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2094 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2095 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
2096 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2097 AC_DEFINE(HAVE_TRUNCATED_SALT)
2102 ########################################################################################
2104 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
2106 ########################################################################################
2108 ## set the with_smbpasswd_sam as the default
2109 with_smbpasswd_sam=yes
2113 #################################################
2114 # check for a TDB password database
2115 AC_MSG_CHECKING(whether to use TDB SAM database)
2117 [ --with-tdbsam Include experimental TDB SAM support (default=no)],
2118 [ case "$withval" in
2121 AC_DEFINE(WITH_TDB_SAM)
2122 with_smbpasswd_sam=no
2131 #################################################
2132 # check for a LDAP password database
2133 AC_MSG_CHECKING(whether to use LDAP SAM database)
2134 AC_ARG_WITH(ldapsam,
2135 [ --with-ldapsam Include experimental LDAP SAM support (default=no)],
2136 [ case "$withval" in
2139 AC_DEFINE(WITH_LDAP_SAM)
2141 AC_CHECK_LIB(lber, ber_bvfree, [LDAPLIBS="$LDAPLIBS -llber"])
2142 ## remove -lresolv as this should be included by the -lsasl dependency
2143 ## in the OpenLDAP clients. By not requiring it specifically, we avoid
2144 ## issues on platforms that don't have it
2145 LDAPLIBS="$LDAPLIBS"
2146 old_LDFLAGS="$LDFLAGS"
2147 LDFLAGS="$LDFLAGS $LDAPLIBS"
2148 AC_CHECK_FUNCS(ldap_start_tls_s)
2149 LDFLAGS="$old_LDFLAGS"
2150 with_smbpasswd_sam=no
2152 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, samba_cv_ldap_set_rebind_proc, [
2155 #include <ldap.h>], [ldap_set_rebind_proc(0, 0, 0);], [samba_cv_ldap_set_rebind_proc=3], [samba_cv_ldap_set_rebind_proc=2]) ])
2156 if test x"$samba_cv_ldap_set_rebind_proc" = x"3"; then
2157 AC_DEFINE(LDAP_SET_REBIND_PROC_ARGS,3)
2159 AC_DEFINE(LDAP_SET_REBIND_PROC_ARGS,2)
2170 #################################################
2171 # check for a NISPLUS password database
2172 AC_MSG_CHECKING(whether to use NISPLUS SAM database)
2173 AC_ARG_WITH(nisplussam,
2174 [ --with-nisplussam Include NISPLUS SAM support (default=no)],
2175 [ case "$withval" in
2178 AC_DEFINE(WITH_NISPLUS_SAM)
2179 with_smbpasswd_sam=no
2188 ################################################
2189 # This test should come last because the
2190 # smbpasswd SAM is only used if another format
2191 # has not been defined
2192 AC_MSG_CHECKING(whether to use traditional smbpasswd file)
2193 if test $with_smbpasswd_sam = yes; then
2195 AC_DEFINE(WITH_SMBPASSWD_SAM)
2199 PDBEDIT="bin/pdbedit\$(EXEEXT)"
2202 ########################################################################################
2204 ## END OF TESTS FOR SAM BACKENDS.
2206 ########################################################################################
2208 #################################################
2209 # check for a NISPLUS_HOME support
2210 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
2211 AC_ARG_WITH(nisplus-home,
2212 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
2213 [ case "$withval" in
2216 AC_DEFINE(WITH_NISPLUS_HOME)
2225 #################################################
2226 # check for the secure socket layer
2227 AC_MSG_CHECKING(whether to use SSL)
2229 [ --with-ssl Include SSL support (default=no)
2230 --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl/include)
2231 --with-ssllib=DIR Where the SSL libraries are (defaults to /usr/local/ssl/lib)],
2232 [ case "$withval" in
2236 withval="/usr/local/ssl" # default
2238 if test "${with_sslinc+set}" = set; then
2240 withval="$with_sslinc"
2243 echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
2244 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
2247 CFLAGS="-I${withval} $CFLAGS"
2253 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
2257 if test "${with_ssllib+set}" = set; then
2259 withval="$with_ssllib"
2262 echo "configure: warning: --with-ssllib called without argument - will use default" 1>&w
2263 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
2266 LDFLAGS="-L${withval}/lib $LDFLAGS"
2272 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
2276 LIBS="-lssl -lcrypto $LIBS"
2278 # if test ! -d ${withval}; then
2279 # echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
2283 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own
2293 #################################################
2294 # check for syslog logging
2295 AC_MSG_CHECKING(whether to use syslog logging)
2297 [ --with-syslog Include experimental SYSLOG support (default=no)],
2298 [ case "$withval" in
2301 AC_DEFINE(WITH_SYSLOG)
2310 #################################################
2311 # check for a shared memory profiling support
2312 AC_MSG_CHECKING(whether to use profiling)
2313 AC_ARG_WITH(profiling-data,
2314 [ --with-profiling-data Include gathering source code profile information (default=no)],
2315 [ case "$withval" in
2318 AC_DEFINE(WITH_PROFILE)
2328 #################################################
2329 # check for experimental disk-quotas support
2330 QUOTAOBJS=smbd/noquotas.o
2332 AC_MSG_CHECKING(whether to support disk-quotas)
2334 [ --with-quotas Include experimental disk-quota support (default=no)],
2335 [ case "$withval" in
2338 QUOTAOBJS=smbd/quotas.o
2348 #################################################
2349 # check for experimental utmp accounting
2351 AC_MSG_CHECKING(whether to support utmp accounting)
2353 [ --with-utmp Include experimental utmp accounting (default=no)],
2354 [ case "$withval" in
2357 AC_DEFINE(WITH_UTMP)
2366 #################################################
2367 # check for MS Dfs support
2369 AC_MSG_CHECKING(whether to support Microsoft Dfs)
2371 [ --with-msdfs Include MS Dfs support (default=no)],
2372 [ case "$withval" in
2375 AC_DEFINE(WITH_MSDFS)
2384 #################################################
2385 # should we build libsmbclient?
2387 INSTALLCLIENTCMD_SH=:
2388 INSTALLCLIENTCMD_A=:
2389 LIBSMBCLIENT_SHARED=
2391 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
2392 AC_ARG_WITH(libsmbclient,
2393 [ --with-libsmbclient Build the libsmbclient shared library (default=no)],
2394 [ case "$withval" in
2396 if test $BLDSHARED = true; then
2397 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
2398 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
2399 LIBSMBCLIENT=libsmbclient
2402 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
2403 LIBSMBCLIENT=libsmbclient
2404 AC_MSG_RESULT(no shared library support -- will supply static library)
2414 #################################################
2415 # these tests are taken from the GNU fileutils package
2416 AC_CHECKING(how to get filesystem space usage)
2419 # Test for statvfs64.
2420 if test $space = no; then
2422 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2424 #if defined(HAVE_UNISTD_H)
2427 #include <sys/types.h>
2428 #include <sys/statvfs.h>
2431 struct statvfs64 fsd;
2432 exit (statvfs64 (".", &fsd));
2434 fu_cv_sys_stat_statvfs64=yes,
2435 fu_cv_sys_stat_statvfs64=no,
2436 fu_cv_sys_stat_statvfs64=cross)])
2437 if test $fu_cv_sys_stat_statvfs64 = yes; then
2439 AC_DEFINE(STAT_STATVFS64)
2443 # Perform only the link test since it seems there are no variants of the
2444 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2445 # because that got a false positive on SCO OSR5. Adding the declaration
2446 # of a `struct statvfs' causes this test to fail (as it should) on such
2447 # systems. That system is reported to work fine with STAT_STATFS4 which
2448 # is what it gets when this test fails.
2449 if test $space = no; then
2451 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2452 [AC_TRY_LINK([#include <sys/types.h>
2453 #include <sys/statvfs.h>],
2454 [struct statvfs fsd; statvfs (0, &fsd);],
2455 fu_cv_sys_stat_statvfs=yes,
2456 fu_cv_sys_stat_statvfs=no)])
2457 if test $fu_cv_sys_stat_statvfs = yes; then
2459 AC_DEFINE(STAT_STATVFS)
2463 if test $space = no; then
2464 # DEC Alpha running OSF/1
2465 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2466 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2468 #include <sys/param.h>
2469 #include <sys/types.h>
2470 #include <sys/mount.h>
2475 exit (statfs (".", &fsd, sizeof (struct statfs)));
2477 fu_cv_sys_stat_statfs3_osf1=yes,
2478 fu_cv_sys_stat_statfs3_osf1=no,
2479 fu_cv_sys_stat_statfs3_osf1=no)])
2480 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2481 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2483 AC_DEFINE(STAT_STATFS3_OSF1)
2487 if test $space = no; then
2489 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2490 member (AIX, 4.3BSD)])
2491 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
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_VFS_H
2500 #include <sys/vfs.h>
2506 exit (statfs (".", &fsd));
2508 fu_cv_sys_stat_statfs2_bsize=yes,
2509 fu_cv_sys_stat_statfs2_bsize=no,
2510 fu_cv_sys_stat_statfs2_bsize=no)])
2511 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2512 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2514 AC_DEFINE(STAT_STATFS2_BSIZE)
2518 if test $space = no; then
2520 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2521 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2522 [AC_TRY_RUN([#include <sys/types.h>
2523 #include <sys/statfs.h>
2527 exit (statfs (".", &fsd, sizeof fsd, 0));
2529 fu_cv_sys_stat_statfs4=yes,
2530 fu_cv_sys_stat_statfs4=no,
2531 fu_cv_sys_stat_statfs4=no)])
2532 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2533 if test $fu_cv_sys_stat_statfs4 = yes; then
2535 AC_DEFINE(STAT_STATFS4)
2539 if test $space = no; then
2541 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2542 member (4.4BSD and NetBSD)])
2543 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2544 [AC_TRY_RUN([#include <sys/types.h>
2545 #ifdef HAVE_SYS_PARAM_H
2546 #include <sys/param.h>
2548 #ifdef HAVE_SYS_MOUNT_H
2549 #include <sys/mount.h>
2555 exit (statfs (".", &fsd));
2557 fu_cv_sys_stat_statfs2_fsize=yes,
2558 fu_cv_sys_stat_statfs2_fsize=no,
2559 fu_cv_sys_stat_statfs2_fsize=no)])
2560 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2561 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2563 AC_DEFINE(STAT_STATFS2_FSIZE)
2567 if test $space = no; then
2569 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2570 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2571 [AC_TRY_RUN([#include <sys/types.h>
2572 #ifdef HAVE_SYS_PARAM_H
2573 #include <sys/param.h>
2575 #ifdef HAVE_SYS_MOUNT_H
2576 #include <sys/mount.h>
2578 #ifdef HAVE_SYS_FS_TYPES_H
2579 #include <sys/fs_types.h>
2584 /* Ultrix's statfs returns 1 for success,
2585 0 for not mounted, -1 for failure. */
2586 exit (statfs (".", &fsd) != 1);
2588 fu_cv_sys_stat_fs_data=yes,
2589 fu_cv_sys_stat_fs_data=no,
2590 fu_cv_sys_stat_fs_data=no)])
2591 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2592 if test $fu_cv_sys_stat_fs_data = yes; then
2594 AC_DEFINE(STAT_STATFS2_FS_DATA)
2599 # As a gating factor for large file support, in order to
2600 # use <4GB files we must have the following minimal support
2602 # long long, and a 64 bit off_t or off64_t.
2603 # If we don't have all of these then disable large
2606 AC_MSG_CHECKING(if large file support can be enabled)
2608 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2609 #include <sys/types.h>
2615 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2616 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2618 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2623 AC_ARG_WITH(spinlocks,
2624 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no)])
2625 if test "x$with_spinlocks" = "xyes"; then
2626 AC_DEFINE(USE_SPINLOCKS)
2630 AC_DEFINE(SPARC_SPINLOCKS)
2633 i386|i486|i586|i686)
2634 AC_DEFINE(INTEL_SPINLOCKS)
2638 AC_DEFINE(MIPS_SPINLOCKS)
2642 AC_DEFINE(POWERPC_SPINLOCKS)
2647 #################################################
2648 # check for ACL support
2650 AC_MSG_CHECKING(whether to support ACLs)
2651 AC_ARG_WITH(acl-support,
2652 [ --with-acl-support Include ACL support (default=no)],
2653 [ case "$withval" in
2658 AC_MSG_RESULT(Using UnixWare ACLs)
2659 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2662 AC_MSG_RESULT(Using solaris ACLs)
2663 AC_DEFINE(HAVE_SOLARIS_ACLS)
2666 AC_MSG_RESULT(Using HPUX ACLs)
2667 AC_DEFINE(HAVE_HPUX_ACLS)
2670 AC_MSG_RESULT(Using IRIX ACLs)
2671 AC_DEFINE(HAVE_IRIX_ACLS)
2674 AC_MSG_RESULT(Using AIX ACLs)
2675 AC_DEFINE(HAVE_AIX_ACLS)
2678 AC_MSG_RESULT(Using Tru64 ACLs)
2679 AC_DEFINE(HAVE_TRU64_ACLS)
2683 AC_CHECK_LIB(acl,acl_get_file)
2684 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2685 AC_TRY_LINK([#include <sys/types.h>
2686 #include <sys/acl.h>],
2687 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2688 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2689 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2690 AC_MSG_RESULT(Using posix ACLs)
2691 AC_DEFINE(HAVE_POSIX_ACLS)
2692 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2693 AC_TRY_LINK([#include <sys/types.h>
2694 #include <sys/acl.h>],
2695 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2696 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2697 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2698 AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2706 AC_DEFINE(HAVE_NO_ACLS)
2709 AC_DEFINE(HAVE_NO_ACLS)
2713 #################################################
2714 # check for the historical SAMBA installation
2716 if test "x$prefix" = xNONE -a "$sbindir" = "\${exec_prefix}/sbin"; then
2717 # Put all binaries under the /usr/local/samba/bin directory.
2721 #################################################
2722 # check for sendfile support
2724 AC_MSG_CHECKING(whether to check for support sendfile)
2725 AC_ARG_WITH(sendfile-support,
2726 [ --with-sendfile-support Check for sendfile support (default=no)],
2727 [ case "$withval" in
2734 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2735 AC_TRY_LINK([#include <sys/sendfile.h>],
2740 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
2742 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2744 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
2745 AC_TRY_LINK([#include <sys/sendfile.h>],
2750 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2752 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2754 # Try and cope with broken Linux sendfile....
2755 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
2757 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
2758 #undef _FILE_OFFSET_BITS
2760 #include <sys/sendfile.h>],
2765 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2767 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
2769 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2770 AC_DEFINE(HAVE_SENDFILE64)
2771 AC_DEFINE(LINUX_SENDFILE_API)
2772 AC_DEFINE(WITH_SENDFILE)
2773 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2774 AC_DEFINE(HAVE_SENDFILE)
2775 AC_DEFINE(LINUX_SENDFILE_API)
2776 AC_DEFINE(WITH_SENDFILE)
2777 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
2778 AC_DEFINE(LINUX_BROKEN_SENDFILE_API)
2779 AC_DEFINE(WITH_SENDFILE)
2786 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
2788 #include <sys/types.h>
2789 #include <sys/socket.h>
2790 #include <sys/uio.h>],
2792 #define NULL (void *)0
2793 int fromfd, tofd, ret, total;
2794 off_t offset, nwritten;
2796 struct iovec *headers;
2798 struct iovec *trailers;
2802 hdr.headers = &hdtrl;
2804 hdr.trailers = NULL;
2806 hdtrl.iov_base = NULL;
2808 ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
2810 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2812 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2813 AC_DEFINE(HAVE_SENDFILE)
2814 AC_DEFINE(FREEBSD_SENDFILE_API)
2815 AC_DEFINE(WITH_SENDFILE)
2822 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2824 #include <sys/socket.h>
2825 #include <sys/uio.h>],
2829 struct iovec hdtrl[2];
2833 hdtrl[0].iov_base = 0;
2834 hdtrl[0].iov_len = 0;
2836 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
2838 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2839 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2840 AC_DEFINE(HAVE_SENDFILE64)
2841 AC_DEFINE(HPUX_SENDFILE_API)
2842 AC_DEFINE(WITH_SENDFILE)
2847 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
2849 #include <sys/socket.h>
2850 #include <sys/uio.h>],
2854 struct iovec hdtrl[2];
2858 hdtrl[0].iov_base = 0;
2859 hdtrl[0].iov_len = 0;
2861 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
2863 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2864 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2865 AC_DEFINE(HAVE_SENDFILE)
2866 AC_DEFINE(HPUX_SENDFILE_API)
2867 AC_DEFINE(WITH_SENDFILE)
2874 LIBS="$LIBS -lsendfile"
2875 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
2877 #include <sys/sendfile.h>],
2881 struct sendfilevec vec[2];
2887 vec[0].sfv_fd = SFV_FD_SELF;
2888 vec[0].sfv_flag = 0;
2893 vec[1].sfv_flag = 0;
2896 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
2898 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
2900 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
2901 AC_DEFINE(HAVE_SENDFILEV64)
2902 AC_DEFINE(SOLARIS_SENDFILE_API)
2903 AC_DEFINE(WITH_SENDFILE)
2908 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
2910 #include <sys/sendfile.h>],
2914 struct sendfilevec vec[2];
2920 vec[0].sfv_fd = SFV_FD_SELF;
2921 vec[0].sfv_flag = 0;
2926 vec[1].sfv_flag = 0;
2929 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
2931 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
2933 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
2934 AC_DEFINE(HAVE_SENDFILEV)
2935 AC_DEFINE(SOLARIS_SENDFILE_API)
2936 AC_DEFINE(WITH_SENDFILE)
2953 #################################################
2954 # Check whether winbind is supported on this platform. If so we need to
2955 # build and install client programs (WINBIND_TARGETS), sbin programs
2956 # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS).
2958 AC_MSG_CHECKING(whether to build winbind)
2960 # Initially, the value of $host_os decides whether winbind is supported
2968 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2969 WINBIND_NSS_EXTRA_LIBS="-lsocket"
2973 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2980 winbind_no_reason=", unsupported on $host_os"
2984 # Check the setting of --with-winbindd
2986 AC_ARG_WITH(winbind,
2987 [ --with-winbind Build winbind (default, if supported by OS)],
3000 # We need unix domain sockets for winbind
3002 if test x"$HAVE_WINBIND" = x"yes"; then
3003 if test x"$samba_cv_unixsocket" = x"no"; then
3004 winbind_no_reason=", no unix domain socket support on $host_os"
3009 # Display test results
3011 if test x"$HAVE_WINBIND" = x"yes"; then
3015 AC_MSG_CHECKING(whether to enable winbind auth challenge/response code)
3016 AC_ARG_WITH(winbind-auth-challenge,
3017 [ --with-winbind-auth-challenge Enable winbindd_pam_auth_crap() functionality (default no)],
3021 AC_DEFINE(WITH_WINBIND_AUTH_CRAP)
3031 # Check for FreeBSD problem with getgroups
3033 WINBIND_TARGETS="bin/wbinfo\$(EXEEXT)"
3034 WINBIND_STARGETS="bin/winbindd\$(EXEEXT)"
3037 WINBIND_LTARGETS="nsswitch/libns_winbind.so"
3040 WINBIND_LTARGETS="nsswitch/libnss_winbind.so"
3047 WINBIND_PAM_TARGETS="nsswitch/pam_winbind.so"
3051 # Check for Horrible winbindd ldap hack.
3053 AC_MSG_CHECKING(whether to enable winbind ldap hack)
3054 AC_ARG_WITH(winbind-ldap-hack,
3055 [ --with-winbind-ldap-hack Enable winbindd_ldap_hack() functionality (default no)],
3059 AC_DEFINE(WITH_HORRIBLE_LDAP_NATIVE_MODE_HACK)
3060 LIBS="$LIBS -lldap";
3071 AC_MSG_RESULT(no$winbind_no_reason)
3076 WINBIND_PAM_TARGETS=""
3080 # Check for FreeBSD problem with getgroups
3081 # It returns EGID too many times in the list of groups
3082 # and causes a security problem
3083 AC_CACHE_CHECK([whether or not getgroups returns EGID too many times],
3084 samba_cv_have_getgroups_too_many_egids,[AC_TRY_RUN([
3085 #include <sys/types.h>
3088 int main(int argc, char *argv[])
3093 n = getgroups(n, &groups);
3094 /* Could actually pass back the number of EGIDs there ... */
3095 exit((n > 1 && groups[0] == getegid() && groups[1] == getegid()) ? 1 : 0);
3097 samba_cv_have_getgroups_too_many_egids=no,samba_cv_have_getgroups_too_many_egids=yes, samba_cv_have_getgroups_too_many_egids=cross)])
3098 if test x"$samba_cv_have_getgroups_too_many_egids" = x"yes"; then
3099 AC_DEFINE(HAVE_GETGROUPS_TOO_MANY_EGIDS)
3102 # Substitution time!
3104 AC_SUBST(WINBIND_TARGETS)
3105 AC_SUBST(WINBIND_STARGETS)
3106 AC_SUBST(WINBIND_LTARGETS)
3107 AC_SUBST(WINBIND_PAM_TARGETS)
3108 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
3109 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
3111 # Solaris has some extra fields in struct passwd that need to be
3112 # initialised otherwise nscd crashes. Unfortunately autoconf < 2.50
3113 # doesn't have the AC_CHECK_MEMBER macro which would be handy for checking
3116 #AC_CHECK_MEMBER(struct passwd.pw_comment,
3117 # AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),
3118 # [#include <pwd.h>])
3120 AC_CACHE_CHECK([whether struct passwd has pw_comment],samba_cv_passwd_pw_comment, [
3121 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_comment;],
3122 samba_cv_passwd_pw_comment=yes,samba_cv_passwd_pw_comment=no)])
3123 if test x"$samba_cv_passwd_pw_comment" = x"yes"; then
3124 AC_DEFINE(HAVE_PASSWD_PW_COMMENT)
3127 #AC_CHECK_MEMBER(struct passwd.pw_age,
3128 # AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),
3129 # [#include <pwd.h>])
3131 AC_CACHE_CHECK([whether struct passwd has pw_age],samba_cv_passwd_pw_age, [
3132 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_age;],
3133 samba_cv_passwd_pw_age=yes,samba_cv_passwd_pw_age=no)])
3134 if test x"$samba_cv_passwd_pw_age" = x"yes"; then
3135 AC_DEFINE(HAVE_PASSWD_PW_AGE)
3138 #################################################
3139 # Check to see if we should use the included popt
3141 AC_ARG_WITH(included-popt,
3142 [ --with-included-popt use bundled popt library, not from system],
3153 if test x"$INCLUDED_POPT" != x"yes"; then
3154 AC_CHECK_LIB(popt, poptGetContext,
3155 INCLUDED_POPT=no, INCLUDED_POPT=yes)
3158 AC_MSG_CHECKING(whether to use included popt)
3159 if test x"$INCLUDED_POPT" = x"yes"; then
3160 AC_MSG_RESULT($srcdir/popt)
3161 BUILD_POPT='$(POPT_OBJS)'
3162 FLAGS1="-I$srcdir/popt"
3167 AC_SUBST(BUILD_POPT)
3170 #################################################
3171 # final configure stuff
3172 AC_MSG_CHECKING([configure summary])
3173 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
3175 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
3176 AC_MSG_WARN([cannot run when cross-compiling]))
3181 AC_OUTPUT(include/stamp-h Makefile script/findsmb)