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)
11 AC_ARG_WITH(fhs, [ --with-fhs use FHS-compliant paths [default=no]],
12 codepagedir="\$(DATADIR)/samba/codepages"
13 configdir="${sysconfdir}/samba"
14 lockdir="\${VARDIR}/cache/samba"
15 logfilebase="\${VARDIR}/log/samba"
16 privatedir="\${CONFIGDIR}/private"
17 swatdir="\${DATADIR}/samba/swat",
18 codepagedir="\$(LIBDIR)/codepages"
19 configdir="\$(LIBDIR)"
20 lockdir="\$(VARDIR)/locks"
21 logfilebase="\$(VARDIR)"
22 privatedir="\${prefix}/private"
23 swatdir="\${prefix}/swat")
25 #################################################
26 # set private directory location
27 AC_ARG_WITH(privatedir,
28 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
32 # Just in case anybody calls it without argument
34 AC_MSG_WARN([--with-privatedir called without argument - will use default])
41 #################################################
42 # set lock directory location
44 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
48 # Just in case anybody calls it without argument
50 AC_MSG_WARN([--with-lockdir called without argument - will use default])
57 #################################################
58 # set SWAT directory location
60 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
64 # Just in case anybody does it
66 AC_MSG_WARN([--with-swatdir called without argument - will use default])
73 #################################################
74 # set configuration directory location
75 AC_ARG_WITH(configdir,
76 [ --with-configdir=DIR Where to put configuration files (\$libdir)],
80 # Just in case anybody does it
82 AC_MSG_WARN([--with-configdir called without argument - will use default])
89 #################################################
90 # set codepage directory location
91 AC_ARG_WITH(codepagedir,
92 [ --with-codepagedir=DIR Where to put codepage files (\$libdir/codepages)],
96 # Just in case anybody does it
98 AC_MSG_WARN([--with-codepagedir called without argument - will use default])
101 codepagedir="$withval"
106 AC_SUBST(codepagedir)
109 AC_SUBST(logfilebase)
115 dnl Unique-to-Samba variables we'll be playing with.
127 # compile with optimization and without debugging by default
128 CFLAGS="-O ${CFLAGS}"
130 AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],
131 [if eval "test x$enable_debug = xyes"; then
132 CFLAGS="${CFLAGS} -g"
137 dnl Checks for programs.
142 dnl Check if C compiler understands -c and -o at the same time
144 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
151 dnl Check if the C compiler understands volatile (it should, being ANSI).
152 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
153 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
154 samba_cv_volatile=yes,samba_cv_volatile=no)])
155 if test x"$samba_cv_volatile" = x"yes"; then
156 AC_DEFINE(HAVE_VOLATILE)
163 dnl Add #include for broken IRIX header files
165 *irix6*) AC_ADD_INCLUDE(<standards.h>)
169 AC_VALIDATE_CACHE_SYSTEM_TYPE
172 # Config CPPFLAG settings for strange OS's that must be set
173 # before other tests.
176 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
179 if test $ac_cv_prog_cc_Ae = yes; then
180 CPPFLAGS="$CPPFLAGS -Ae"
183 # Defines needed for HPUX support.
184 # HPUX has bigcrypt but (sometimes?) doesn't use it for
185 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
189 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
190 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
193 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
194 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
199 # AIX4.x doesn't even admit to having large
200 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
203 AC_MSG_RESULT([enabling large file support])
204 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
207 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
208 # to the existance of large files..
209 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
210 # recommendations on large file support, however it makes the
211 # compile work using gcc 2.7 and 2.8, whereas using the Sun
212 # recommendation makes the compile fail on gcc2.7. JRA.
217 AC_MSG_RESULT([enabling large file support])
218 if test "$ac_cv_prog_gcc" = yes; then
219 ${CC-cc} -v >conftest.c 2>&1
220 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
222 case "$ac_cv_gcc_compiler_version_number" in
223 *"gcc version 2.6"*|*"gcc version 2.7"*)
224 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
227 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
231 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
237 # Tests needed for SINIX large file support.
240 if test $host = mips-sni-sysv4 ; then
241 AC_MSG_CHECKING([for LFS support])
242 old_CPPFLAGS="$CPPFLAGS"
243 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
247 #if _LFS64_LARGEFILE == 1
252 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
253 CPPFLAGS="$old_CPPFLAGS"
254 if test x$SINIX_LFS_SUPPORT = xyes ; then
255 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
256 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
257 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
258 LIBS="`getconf LFS64_LIBS` $LIBS"
260 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
264 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
267 AC_MSG_CHECKING([for LFS support])
268 old_CPPFLAGS="$CPPFLAGS"
269 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
272 #include <sys/utsname.h>
274 #if _LFS64_LARGEFILE == 1
279 /* Ensure this is glibc 2.2 or higher */
280 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
281 int libc_major = __GLIBC__;
282 int libc_minor = __GLIBC_MINOR__;
290 /* Ensure this is kernel 2.4 or higher */
293 release = uts.release;
294 major = atoi(strsep(&release, "."));
295 minor = atoi(strsep(&release, "."));
297 if (major > 2 || (major == 2 && minor > 3))
304 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
305 CPPFLAGS="$old_CPPFLAGS"
306 if test x$LINUX_LFS_SUPPORT = xyes ; then
307 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
309 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
313 AC_MSG_CHECKING([for LFS support])
314 old_CPPFLAGS="$CPPFLAGS"
315 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
319 #if _LFS64_LARGEFILE == 1
324 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
325 CPPFLAGS="$old_CPPFLAGS"
326 if test x$GLIBC_LFS_SUPPORT = xyes ; then
327 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
329 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
339 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
340 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
341 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
342 AC_CHECK_HEADERS(sys/param.h ctype.h sys/un.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
343 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
344 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
345 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
346 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h)
349 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
350 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
354 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
355 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
356 if test x"$ac_cv_header_shadow_h" = x"yes"; then
357 AC_DEFINE(HAVE_SHADOW_H)
361 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
362 AC_CHECK_HEADERS(nss.h nss_common.h sys/security.h security/pam_appl.h security/pam_modules.h)
363 AC_CHECK_HEADERS(stropts.h poll.h)
364 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
365 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
367 # For experimental utmp support (lastlog on some BSD-like systems)
368 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
370 # For quotas on Veritas VxFS filesystems
371 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
373 AC_CHECK_SIZEOF(int,cross)
374 AC_CHECK_SIZEOF(long,cross)
375 AC_CHECK_SIZEOF(short,cross)
390 AC_CHECK_TYPE(ino_t,unsigned)
391 AC_CHECK_TYPE(loff_t,off_t)
392 AC_CHECK_TYPE(offset_t,loff_t)
393 AC_CHECK_TYPE(ssize_t, int)
394 AC_CHECK_TYPE(wchar_t, unsigned short)
396 # we need libcups for CUPS support...
397 AC_CHECK_LIB(cups,httpConnect)
399 # we need libdl for PAM and the new VFS code
400 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
401 AC_DEFINE(HAVE_LIBDL)])
403 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
405 #include <sys/types.h>
410 #include <sys/socket.h>],[socklen_t i = 0],
411 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
412 if test x"$samba_cv_socklen_t" = x"yes"; then
413 AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
416 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
418 #include <sys/types.h>
423 #include <signal.h>],[sig_atomic_t i = 0],
424 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
425 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
426 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
429 # stupid headers have the functions but no declaration. grrrr.
430 AC_HAVE_DECL(errno, [#include <errno.h>])
431 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
432 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
433 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
434 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
435 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
436 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
438 # and glibc has setresuid under linux but the function does
439 # nothing until kernel 2.1.44! very dumb.
440 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
441 AC_TRY_RUN([#include <errno.h>
442 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
443 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
444 if test x"$samba_cv_have_setresuid" = x"yes"; then
445 AC_DEFINE(HAVE_SETRESUID)
448 # Do the same check for setresguid...
450 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
451 AC_TRY_RUN([#include <unistd.h>
453 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
454 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
455 if test x"$samba_cv_have_setresgid" = x"yes"; then
456 AC_DEFINE(HAVE_SETRESGID)
461 ###############################################
462 # Readline included by default unless explicitly asked not to
463 test "${with_readline+set}" != "set" && with_readline=yes
465 # test for where we get readline() from
466 AC_MSG_CHECKING(whether to use readline)
467 AC_ARG_WITH(readline,
468 [ --with-readline[=DIR] Look for readline include/libs in DIR
469 --without-readline Don't include readline support],
470 [ case "$with_readline" in
474 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
475 AC_CHECK_HEADERS(readline/history.h)
477 AC_CHECK_HEADERS(readline.h readline/readline.h,[
478 for termlib in ncurses curses termcap terminfo termlib; do
479 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
481 AC_CHECK_LIB(readline, rl_callback_handler_install,
482 [TERMLIBS="-lreadline $TERMLIBS"
483 AC_DEFINE(HAVE_LIBREADLINE)
484 break], [TERMLIBS=], $TERMLIBS)])
492 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
493 # alternate readline path
495 _cppflags=${CPPFLAGS}
497 # Add additional search path
498 LDFLAGS="-L$with_readline/lib $LDFLAGS"
499 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
501 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
502 AC_CHECK_HEADERS(readline/history.h)
504 AC_CHECK_HEADERS(readline.h readline/readline.h,[
505 for termlib in ncurses curses termcap terminfo termlib; do
506 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
508 AC_CHECK_LIB(readline, rl_callback_handler_install,
509 [TERMLDFLAGS="-L$with_readline/lib"
510 TERMCPPFLAGS="-I$with_readline/include"
511 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
512 TERMLIBS="-lreadline $TERMLIBS"
513 AC_DEFINE(HAVE_LIBREADLINE)
514 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
522 AC_SUBST(TERMLDFLAGS)
524 # The following test taken from the cvs sources
525 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
526 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
527 # libsocket.so which has a bad implementation of gethostbyname (it
528 # only looks in /etc/hosts), so we only look for -lsocket if we need
530 AC_CHECK_FUNCS(connect)
531 if test x"$ac_cv_func_connect" = x"no"; then
534 *) AC_CHECK_LIB(nsl_s, printf) ;;
538 *) AC_CHECK_LIB(nsl, printf) ;;
542 *) AC_CHECK_LIB(socket, connect) ;;
546 *) AC_CHECK_LIB(inet, connect) ;;
548 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
550 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
551 test x"$ac_cv_lib_inet_connect" = x"yes"; then
552 # ac_cv_func_connect=yes
553 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
554 AC_DEFINE(HAVE_CONNECT)
558 ###############################################
559 # test for where we get get_yp_default_domain() from
560 AC_CHECK_FUNCS(yp_get_default_domain)
561 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
562 AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
563 AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)])
566 # Check if we have execl, if not we need to compile smbrun.
567 AC_CHECK_FUNCS(execl)
568 if test x"$ac_cv_func_execl" = x"no"; then
574 AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown fchown chmod fchmod chroot)
575 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset)
576 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
577 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr setnetgrent getnetgrent endnetgrent)
578 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf)
579 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
580 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
581 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
582 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
584 # syscall() is needed for smbwrapper.
585 AC_CHECK_FUNCS(syscall)
587 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
588 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
589 AC_CHECK_FUNCS(__getcwd _getcwd)
590 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
591 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
592 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
593 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
594 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
595 AC_CHECK_FUNCS(_write __write _fork __fork)
596 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
597 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
598 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
599 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
600 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
603 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
606 if test x$ac_cv_func_stat64 = xno ; then
607 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
609 #if defined(HAVE_UNISTD_H)
612 #include <sys/stat.h>
613 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
614 AC_MSG_RESULT([$ac_cv_func_stat64])
615 if test x$ac_cv_func_stat64 = xyes ; then
616 AC_DEFINE(HAVE_STAT64)
620 if test x$ac_cv_func_lstat64 = xno ; then
621 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
623 #if defined(HAVE_UNISTD_H)
626 #include <sys/stat.h>
627 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
628 AC_MSG_RESULT([$ac_cv_func_lstat64])
629 if test x$ac_cv_func_lstat64 = xyes ; then
630 AC_DEFINE(HAVE_LSTAT64)
634 if test x$ac_cv_func_fstat64 = xno ; then
635 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
637 #if defined(HAVE_UNISTD_H)
640 #include <sys/stat.h>
641 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
642 AC_MSG_RESULT([$ac_cv_func_fstat64])
643 if test x$ac_cv_func_fstat64 = xyes ; then
644 AC_DEFINE(HAVE_FSTAT64)
649 # If no strcasecmp, check for it in some known places
650 # It is in -lresolv on ReliantUNIX and UnixWare
651 # -lresolve *must* follow -lnsl for name resolution to work properly
654 if test x$ac_cv_func_strcasecmp = xno ; then
655 AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
656 AC_DEFINE(HAVE_STRCASECMP))
660 # Check for the functions putprpwnam, set_auth_parameters,
661 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
662 # Needed for OSF1 and HPUX.
665 AC_LIBTESTFUNC(security, putprpwnam)
666 AC_LIBTESTFUNC(sec, putprpwnam)
668 AC_LIBTESTFUNC(security, set_auth_parameters)
669 AC_LIBTESTFUNC(sec, set_auth_parameters)
671 # UnixWare 7.x has its getspnam in -lgen
672 AC_LIBTESTFUNC(gen, getspnam)
674 AC_LIBTESTFUNC(security, getspnam)
675 AC_LIBTESTFUNC(sec, getspnam)
677 AC_LIBTESTFUNC(security, bigcrypt)
678 AC_LIBTESTFUNC(sec, bigcrypt)
680 AC_LIBTESTFUNC(security, getprpwnam)
681 AC_LIBTESTFUNC(sec, getprpwnam)
683 # this bit needs to be modified for each OS that is suported by
684 # smbwrapper. You need to specify how to created a shared library and
685 # how to compile C code to produce PIC object files
687 # these are the defaults, good for lots of systems
693 # and these are for particular systems
695 *linux*) AC_DEFINE(LINUX);;
696 *solaris*) AC_DEFINE(SUNOS5)
699 *sunos*) AC_DEFINE(SUNOS4)
702 *bsd*) LDSHFLAGS="-shared -Bshareable"
704 *irix*) AC_DEFINE(IRIX)
706 *irix6*) AC_DEFINE(IRIX6)
709 ATTEMPT_WRAP32_BUILD=yes
711 *aix*) AC_DEFINE(AIX);;
712 *hpux*) AC_DEFINE(HPUX)
714 # Use special PIC flags for the native HP-UX compiler.
715 if test $ac_cv_prog_cc_Ae = yes; then
720 *qnx*) AC_DEFINE(QNX);;
721 *osf*) AC_DEFINE(OSF1);;
722 *sco*) AC_DEFINE(SCO);;
723 *next2*) AC_DEFINE(NEXT2);;
724 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
727 *-univel-*) if [ test "$GCC" != yes ]; then
728 AC_DEFINE(HAVE_MEMSET)
732 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
736 if [ test "$GCC" != yes ]; then
737 AC_DEFINE(HAVE_MEMSET)
743 # try to work out how to produce pic code with this compiler
744 AC_PROG_CC_FLAG(fpic)
745 if test $ac_cv_prog_cc_fpic = yes; then
748 if test x$PICFLAG = x; then
749 AC_PROG_CC_FLAG(KPIC)
750 if test $ac_cv_prog_cc_KPIC = yes; then
754 if test x$PICFLAG = x; then
755 AC_PROG_CC_FLAG(Kpic)
756 if test $ac_cv_prog_cc_Kpic = yes; then
763 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
764 AC_TRY_RUN([#include <stdio.h>
765 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
766 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
767 if test x"$samba_cv_have_longlong" = x"yes"; then
768 AC_DEFINE(HAVE_LONGLONG)
772 # Check if the compiler supports the LL prefix on long long integers.
775 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
776 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
777 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
778 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
779 AC_DEFINE(COMPILER_SUPPORTS_LL)
783 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
784 AC_TRY_RUN([#include <stdio.h>
785 #include <sys/stat.h>
786 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
787 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
788 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
789 AC_DEFINE(SIZEOF_OFF_T,8)
792 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
794 #if defined(HAVE_UNISTD_H)
798 #include <sys/stat.h>
799 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
800 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
801 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
802 AC_DEFINE(HAVE_OFF64_T)
805 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
806 AC_TRY_RUN([#include <stdio.h>
807 #include <sys/stat.h>
808 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
809 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
810 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
811 AC_DEFINE(SIZEOF_INO_T,8)
814 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
816 #if defined(HAVE_UNISTD_H)
820 #include <sys/stat.h>
821 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
822 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
823 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
824 AC_DEFINE(HAVE_INO64_T)
827 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
829 #if defined(HAVE_UNISTD_H)
832 #include <sys/types.h>
833 #include <dirent.h>],
834 [struct dirent64 de;],
835 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
836 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
837 AC_DEFINE(HAVE_STRUCT_DIRENT64)
840 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
841 AC_TRY_RUN([#include <stdio.h>
842 main() { char c; c=250; exit((c > 0)?0:1); }],
843 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
844 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
845 AC_DEFINE(HAVE_UNSIGNED_CHAR)
848 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
849 AC_TRY_COMPILE([#include <sys/types.h>
850 #include <sys/socket.h>
851 #include <netinet/in.h>],
852 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
853 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
854 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
855 AC_DEFINE(HAVE_SOCK_SIN_LEN)
858 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
859 AC_TRY_COMPILE([#include <sys/types.h>
861 void seekdir(DIR *d, long loc) { return; }],[return 0;],
862 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
863 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
864 AC_DEFINE(SEEKDIR_RETURNS_VOID)
867 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
868 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
869 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
870 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
871 AC_DEFINE(HAVE_FILE_MACRO)
874 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
875 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
876 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
877 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
878 AC_DEFINE(HAVE_FUNCTION_MACRO)
881 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
883 #include <sys/time.h>
885 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
886 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
887 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
888 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
891 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
893 #include <sys/types.h>
895 void foo(const char *format, ...) {
900 va_start(ap, format);
901 len = vsnprintf(0, 0, format, ap);
903 if (len != 5) exit(1);
905 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
909 main() { foo("hello"); }
911 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
912 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
913 AC_DEFINE(HAVE_C99_VSNPRINTF)
916 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
917 AC_TRY_RUN([#include <sys/types.h>
919 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
920 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
921 di->d_name[0] == 0) exit(0); exit(1);} ],
922 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
923 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
924 AC_DEFINE(HAVE_BROKEN_READDIR)
927 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
928 AC_TRY_COMPILE([#include <sys/types.h>
930 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
931 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
932 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
933 AC_DEFINE(HAVE_UTIMBUF)
936 dnl utmp and utmpx come in many flavours
937 dnl We need to check for many of them
938 dnl But we don't need to do each and every one, because our code uses
939 dnl mostly just the utmp (not utmpx) fields.
941 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
943 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
944 AC_TRY_COMPILE([#include <sys/types.h>
946 [struct utmp ut; ut.ut_name[0] = 'a';],
947 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
948 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
949 AC_DEFINE(HAVE_UT_UT_NAME)
952 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
953 AC_TRY_COMPILE([#include <sys/types.h>
955 [struct utmp ut; ut.ut_user[0] = 'a';],
956 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
957 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
958 AC_DEFINE(HAVE_UT_UT_USER)
961 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
962 AC_TRY_COMPILE([#include <sys/types.h>
964 [struct utmp ut; ut.ut_id[0] = 'a';],
965 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
966 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
967 AC_DEFINE(HAVE_UT_UT_ID)
970 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
971 AC_TRY_COMPILE([#include <sys/types.h>
973 [struct utmp ut; ut.ut_host[0] = 'a';],
974 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
975 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
976 AC_DEFINE(HAVE_UT_UT_HOST)
979 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
980 AC_TRY_COMPILE([#include <sys/types.h>
982 [struct utmp ut; time_t t; ut.ut_time = t;],
983 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
984 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
985 AC_DEFINE(HAVE_UT_UT_TIME)
988 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
989 AC_TRY_COMPILE([#include <sys/types.h>
991 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
992 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
993 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
994 AC_DEFINE(HAVE_UT_UT_TV)
997 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
998 AC_TRY_COMPILE([#include <sys/types.h>
1000 [struct utmp ut; ut.ut_type = 0;],
1001 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1002 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1003 AC_DEFINE(HAVE_UT_UT_TYPE)
1006 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1007 AC_TRY_COMPILE([#include <sys/types.h>
1009 [struct utmp ut; ut.ut_pid = 0;],
1010 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1011 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1012 AC_DEFINE(HAVE_UT_UT_PID)
1015 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1016 AC_TRY_COMPILE([#include <sys/types.h>
1018 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1019 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1020 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1021 AC_DEFINE(HAVE_UT_UT_EXIT)
1024 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1025 AC_TRY_COMPILE([#include <sys/types.h>
1027 [struct utmp ut; ut.ut_addr = 0;],
1028 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1029 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1030 AC_DEFINE(HAVE_UT_UT_ADDR)
1033 if test x$ac_cv_func_pututline = xyes ; then
1034 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1035 AC_TRY_COMPILE([#include <sys/types.h>
1037 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1038 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1039 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1040 AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
1044 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1045 AC_TRY_COMPILE([#include <sys/types.h>
1046 #include <utmpx.h>],
1047 [struct utmpx ux; ux.ut_syslen = 0;],
1048 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1049 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1050 AC_DEFINE(HAVE_UX_UT_SYSLEN)
1053 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1055 #include <sys/types.h>
1058 #define F_GETLEASE 1025
1061 int fd = open("/dev/null", O_RDONLY);
1062 return fcntl(fd, F_GETLEASE, 0) == -1;
1065 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1066 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1067 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1070 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1072 #include <sys/types.h>
1076 #define F_NOTIFY 1026
1079 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1082 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1083 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1084 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1087 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1089 #include <sys/types.h>
1092 #include <sys/file.h>
1094 #define LOCK_MAND 32
1095 #define LOCK_READ 64
1098 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1101 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1102 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1103 AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1109 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1110 AC_TRY_COMPILE([#include <sys/types.h>
1111 #include <fcntl.h>],
1112 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1113 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1114 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1115 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1118 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1119 AC_TRY_RUN([#include <sys/types.h>
1120 #include <sys/capability.h>
1123 if ((cap = cap_get_proc()) == NULL)
1125 cap->cap_effective |= CAP_NETWORK_MGT;
1126 cap->cap_inheritable |= CAP_NETWORK_MGT;
1131 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1132 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1133 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1137 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1138 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1141 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1142 AC_TRY_COMPILE([#include <sys/types.h>
1143 #if defined(HAVE_RPC_RPC_H)
1144 #include <rpc/rpc.h>
1147 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1148 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1149 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1152 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1153 AC_TRY_COMPILE([#include <sys/types.h>
1154 #if defined(HAVE_RPC_RPC_H)
1155 #include <rpc/rpc.h>
1158 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1159 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1160 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1163 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1164 AC_TRY_COMPILE([#include <sys/types.h>
1165 #if defined(HAVE_RPC_RPC_H)
1166 #include <rpc/rpc.h>
1169 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1170 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1171 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1174 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1175 AC_TRY_COMPILE([#include <sys/types.h>
1176 #if defined(HAVE_RPC_RPC_H)
1177 #include <rpc/rpc.h>
1180 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1181 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1182 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1186 dnl Some systems (SCO) have a problem including
1187 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1188 dnl as a #define in <prot.h> and as part of an enum
1192 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1193 AC_TRY_COMPILE([#include <sys/types.h>
1194 #ifdef HAVE_SYS_SECURITY_H
1195 #include <sys/security.h>
1197 #endif /* HAVE_SYS_SECURITY_H */
1198 #if defined(HAVE_RPC_RPC_H)
1199 #include <rpc/rpc.h>
1202 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1203 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1204 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1207 AC_MSG_CHECKING([for test routines])
1208 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1210 AC_MSG_ERROR([cant find test code. Aborting config]),
1211 AC_MSG_WARN([cannot run when cross-compiling]))
1213 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1214 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1215 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1216 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1217 AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1220 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1221 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1222 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1223 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1224 AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1227 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1228 SAVE_CPPFLAGS="$CPPFLAGS"
1229 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1231 #define REPLACE_GETPASS 1
1232 #define NO_CONFIG_H 1
1233 #define main dont_declare_main
1234 #include "${srcdir-.}/lib/getsmbpass.c"
1236 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1237 CPPFLAGS="$SAVE_CPPFLAGS"
1239 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1240 AC_DEFINE(REPLACE_GETPASS)
1243 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1246 #include <sys/types.h>
1247 #include <netinet/in.h>
1248 #ifdef HAVE_ARPA_INET_H
1249 #include <arpa/inet.h>
1251 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1252 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1253 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1255 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1256 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1257 AC_DEFINE(REPLACE_INET_NTOA)
1260 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1261 AC_TRY_RUN([#include <stdlib.h>
1262 #include <sys/types.h>
1263 #include <sys/stat.h>
1267 char tpl[20]="/tmp/test.XXXXXX";
1268 int fd = mkstemp(tpl);
1269 if (fd == -1) exit(1);
1271 if (fstat(fd, &st) != 0) exit(1);
1272 if ((st.st_mode & 0777) != 0600) exit(1);
1275 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1276 samba_cv_HAVE_SECURE_MKSTEMP=no,
1277 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1278 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1279 AC_DEFINE(HAVE_SECURE_MKSTEMP)
1282 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1283 AC_TRY_RUN([#include <unistd.h>
1284 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1285 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1286 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1287 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1290 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1291 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1292 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1293 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1294 AC_DEFINE(HAVE_ROOT)
1296 AC_MSG_WARN(running as non-root will disable some tests)
1300 # look for a method of finding the list of network interfaces
1302 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1304 #define HAVE_IFACE_AIX 1
1305 #define AUTOCONF_TEST 1
1306 #include "confdefs.h"
1307 #include "${srcdir-.}/lib/interfaces.c"],
1308 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1309 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1310 iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1313 if test $iface = no; then
1314 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1316 #define HAVE_IFACE_IFCONF 1
1317 #define AUTOCONF_TEST 1
1318 #include "confdefs.h"
1319 #include "${srcdir-.}/lib/interfaces.c"],
1320 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1321 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1322 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1326 if test $iface = no; then
1327 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1329 #define HAVE_IFACE_IFREQ 1
1330 #define AUTOCONF_TEST 1
1331 #include "confdefs.h"
1332 #include "${srcdir-.}/lib/interfaces.c"],
1333 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1334 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1335 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1340 ################################################
1341 # look for a method of setting the effective uid
1343 if test $seteuid = no; then
1344 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1346 #define AUTOCONF_TEST 1
1347 #define USE_SETRESUID 1
1348 #include "confdefs.h"
1349 #include "${srcdir-.}/lib/util_sec.c"],
1350 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1351 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1352 seteuid=yes;AC_DEFINE(USE_SETRESUID)
1357 if test $seteuid = no; then
1358 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1360 #define AUTOCONF_TEST 1
1361 #define USE_SETREUID 1
1362 #include "confdefs.h"
1363 #include "${srcdir-.}/lib/util_sec.c"],
1364 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1365 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1366 seteuid=yes;AC_DEFINE(USE_SETREUID)
1370 if test $seteuid = no; then
1371 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1373 #define AUTOCONF_TEST 1
1374 #define USE_SETEUID 1
1375 #include "confdefs.h"
1376 #include "${srcdir-.}/lib/util_sec.c"],
1377 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1378 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1379 seteuid=yes;AC_DEFINE(USE_SETEUID)
1383 if test $seteuid = no; then
1384 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1386 #define AUTOCONF_TEST 1
1387 #define USE_SETUIDX 1
1388 #include "confdefs.h"
1389 #include "${srcdir-.}/lib/util_sec.c"],
1390 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1391 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1392 seteuid=yes;AC_DEFINE(USE_SETUIDX)
1397 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1398 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1399 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1400 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1401 AC_DEFINE(HAVE_MMAP)
1404 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1405 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1406 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1407 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1408 AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1411 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1412 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1413 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1414 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1415 AC_DEFINE(HAVE_FCNTL_LOCK)
1418 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1419 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1420 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1421 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1422 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1427 dnl Don't check for 64 bit fcntl locking if we know that the
1428 dnl glibc2.1 broken check has succeeded.
1431 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1433 #if defined(HAVE_UNISTD_H)
1443 #ifdef HAVE_SYS_FCNTL_H
1444 #include <sys/fcntl.h>
1446 main() { struct flock64 fl64;
1447 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1453 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1455 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1456 AC_DEFINE(HAVE_STRUCT_FLOCK64)
1460 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1461 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1462 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1463 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1464 AC_DEFINE(HAVE_TRUNCATED_SALT)
1467 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1468 AC_TRY_COMPILE([#include <sys/acl.h>
1469 #if defined(HAVE_RPCSVC_NIS_H)
1470 #include <rpcsvc/nis.h>
1473 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1474 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1475 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1479 #################################################
1480 # check for smbwrapper support
1481 AC_MSG_CHECKING(whether to use smbwrapper)
1482 AC_ARG_WITH(smbwrapper,
1483 [ --with-smbwrapper Include SMB wrapper support
1484 --without-smbwrapper Don't include SMB wrapper support (default)],
1485 [ case "$withval" in
1488 AC_DEFINE(WITH_SMBWRAPPER)
1489 WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1491 if test x$ATTEMPT_WRAP32_BUILD = x; then
1494 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1497 # Conditions under which smbwrapper should not be built.
1499 if test x$PICFLAG = x; then
1500 echo No support for PIC code - disabling smbwrapper and smbsh
1503 elif test x$ac_cv_func_syscall = xno; then
1504 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1516 #################################################
1517 # check for the AFS filesystem
1518 AC_MSG_CHECKING(whether to use AFS)
1520 [ --with-afs Include AFS support
1521 --without-afs Don't include AFS support (default)],
1522 [ case "$withval" in
1535 #################################################
1536 # check for the DFS auth system
1537 AC_MSG_CHECKING(whether to use DFS auth)
1539 [ --with-dfs Include DFS support
1540 --without-dfs Don't include DFS support (default)],
1541 [ case "$withval" in
1553 #################################################
1554 # check for Kerberos IV auth system
1555 AC_MSG_CHECKING(whether to use Kerberos IV)
1557 [ --with-krb4=base-dir Include Kerberos IV support
1558 --without-krb4 Don't include Kerberos IV support (default)],
1559 [ case "$withval" in
1562 AC_DEFINE(KRB4_AUTH)
1563 AC_CHECK_LIB(resolv, dn_expand)
1564 LIBS="$LIBS -lkrb -ldes"
1565 CFLAGS="$CFLAGS -I$withval/include"
1566 LDFLAGS="$LDFLAGS -L$withval/lib"
1575 #################################################
1576 # check for Kerberos 5 auth system
1577 AC_MSG_CHECKING(whether to use Kerberos 5)
1579 [ --with-krb5=base-dir Include Kerberos 5 support
1580 --without-krb5 Don't include Kerberos 5 support (default)],
1581 [ case "$withval" in
1584 AC_DEFINE(KRB5_AUTH)
1585 LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1586 CFLAGS="$CFLAGS -I$withval/include"
1587 LDFLAGS="$LDFLAGS -L$withval/lib"
1596 #################################################
1597 # check for automount support
1598 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1599 AC_ARG_WITH(automount,
1600 [ --with-automount Include AUTOMOUNT support
1601 --without-automount Don't include AUTOMOUNT support (default)],
1602 [ case "$withval" in
1605 AC_DEFINE(WITH_AUTOMOUNT)
1614 #################################################
1615 # check for smbmount support
1616 AC_MSG_CHECKING(whether to use SMBMOUNT)
1617 AC_ARG_WITH(smbmount,
1618 [ --with-smbmount Include SMBMOUNT (Linux only) support
1619 --without-smbmount Don't include SMBMOUNT support (default)],
1620 [ case "$withval" in
1623 AC_DEFINE(WITH_SMBMOUNT)
1624 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1636 #################################################
1637 # check for a PAM password database
1638 with_pam_for_crypt=no
1639 AC_MSG_CHECKING(whether to use PAM password database)
1641 [ --with-pam Include PAM password database support
1642 --without-pam Don't include PAM password database support (default)],
1643 [ case "$withval" in
1648 with_pam_for_crypt=yes
1657 # we can't build a pam module if we don't have pam.
1658 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
1660 #################################################
1661 # check for pam_smbpass support
1662 AC_MSG_CHECKING(whether to use pam_smbpass)
1663 AC_ARG_WITH(pam_smbpass,
1664 [ --with-pam_smbpass Include the smbpass PAM module
1665 --without-pam_smbpass Don't include the smbpass PAM module (default)],
1666 [ case "$withval" in
1670 # Conditions under which pam_smbpass should not be built.
1672 if test x$PICFLAG = x; then
1673 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
1675 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
1676 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
1679 AC_DEFINE(WITH_PAM_SMBPASS)
1680 PAM_MOD="bin/pam_smbpass.so"
1691 ###############################################
1692 # test for where we get crypt() from, but only
1694 if test $with_pam_for_crypt = no; then
1695 AC_CHECK_FUNCS(crypt)
1696 if test x"$ac_cv_func_crypt" = x"no"; then
1697 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
1698 AC_DEFINE(HAVE_CRYPT)])
1703 #################################################
1704 # removed until we get the code actually working
1706 # check for a TDB password database
1707 # AC_MSG_CHECKING(whether to use TDB password database)
1708 #AC_ARG_WITH(tdbpwd,
1709 #[ --with-tdbpwd Include TDB password database
1710 # --without-tdbpwd Don't include TDB password database (default)],
1711 #[ case "$withval" in
1713 # AC_MSG_RESULT(yes)
1714 # AC_DEFINE(WITH_TDBPWD)
1715 # AC_MSG_ERROR([TDB password database not supported in this version.])
1724 #################################################
1725 # removed until we get the code actually working
1728 # check for a LDAP password database
1729 #AC_MSG_CHECKING(whether to use LDAP password database)
1731 #[ --with-ldap Include LDAP support
1732 # --without-ldap Don't include LDAP support (default)],
1733 #[ case "$withval" in
1735 # AC_MSG_RESULT(yes)
1736 # AC_DEFINE(WITH_LDAP)
1737 # AC_MSG_ERROR([LDAP password database not supported in this version.])
1746 #################################################
1747 # check for a NISPLUS password database
1748 AC_MSG_CHECKING(whether to use NISPLUS password database)
1749 AC_ARG_WITH(nisplus,
1750 [ --with-nisplus Include NISPLUS password database support
1751 --without-nisplus Don't include NISPLUS password database support (default)],
1752 [ case "$withval" in
1755 AC_DEFINE(WITH_NISPLUS)
1764 #################################################
1765 # check for a NISPLUS_HOME support
1766 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1767 AC_ARG_WITH(nisplus-home,
1768 [ --with-nisplus-home Include NISPLUS_HOME support
1769 --without-nisplus-home Don't include NISPLUS_HOME support (default)],
1770 [ case "$withval" in
1773 AC_DEFINE(WITH_NISPLUS_HOME)
1782 #################################################
1783 # check for the secure socket layer
1784 AC_MSG_CHECKING(whether to use SSL)
1786 [ --with-ssl Include SSL support
1787 --without-ssl Don't include SSL support (default)
1788 --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl)],
1789 [ case "$withval" in
1793 withval="/usr/local/ssl" # default
1795 if test "${with_sslinc+set}" = set; then
1797 withval="$with_sslinc"
1800 echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1801 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1802 LIBS="-lssl -lcrypto $LIBS"
1803 LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
1806 CFLAGS="-I${withval} $CFLAGS"
1807 LIBS="-lssl -lcrypto $LIBS"
1808 LDFLAGS="-L${withval}/lib $LDFLAGS"
1814 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1815 LIBS="-lssl -lcrypto $LIBS"
1816 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1820 if test ! -d ${withval}; then
1821 echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1825 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own
1835 #################################################
1836 # check for syslog logging
1837 AC_MSG_CHECKING(whether to use syslog logging)
1839 [ --with-syslog Include experimental SYSLOG support
1840 --without-syslog Don't include SYSLOG support (default)],
1841 [ case "$withval" in
1844 AC_DEFINE(WITH_SYSLOG)
1853 #################################################
1854 # check for a shared memory profiling support
1855 AC_MSG_CHECKING(whether to use profiling)
1856 AC_ARG_WITH(profile,
1857 [ --with-profile Include profile support
1858 --without-profile Don't include profile support (default)],
1859 [ case "$withval" in
1862 AC_DEFINE(WITH_PROFILE)
1872 #################################################
1873 # check for experimental netatalk resource fork support
1874 AC_MSG_CHECKING(whether to support netatalk)
1875 AC_ARG_WITH(netatalk,
1876 [ --with-netatalk Include experimental Netatalk support
1877 --without-netatalk Don't include experimental Netatalk support (default)],
1878 [ case "$withval" in
1881 AC_DEFINE(WITH_NETATALK)
1890 #################################################
1891 # check for experimental disk-quotas support
1892 QUOTAOBJS=smbd/noquotas.o
1894 AC_MSG_CHECKING(whether to support disk-quotas)
1896 [ --with-quotas Include experimental disk-quota support
1897 --without-quotas Don't include experimental disk-quota support (default)],
1898 [ case "$withval" in
1901 QUOTAOBJS=smbd/quotas.o
1911 #################################################
1912 # check for experimental utmp accounting
1914 AC_MSG_CHECKING(whether to support utmp accounting)
1916 [ --with-utmp Include experimental utmp accounting
1917 --without-utmp Don't include experimental utmp accounting (default)],
1918 [ case "$withval" in
1921 AC_DEFINE(WITH_UTMP)
1930 #################################################
1931 # check for MS Dfs support
1933 AC_MSG_CHECKING(whether to support Microsoft Dfs)
1935 [ --with-msdfs Include MS Dfs support
1936 --without-msdfs Don't include MS Dfs support (default)],
1937 [ case "$withval" in
1940 AC_DEFINE(WITH_MSDFS)
1949 #################################################
1950 # check for Samba VFS support
1952 AC_MSG_CHECKING(whether to support the experimantal Samba vfs)
1954 [ --with-vfs Include Samba vfs support
1955 --without-vfs Don't include Samba vfs support (default)],
1956 [ case "$withval" in
1968 #################################################
1969 # these tests are taken from the GNU fileutils package
1970 AC_CHECKING(how to get filesystem space usage)
1973 # Test for statvfs64.
1974 if test $space = no; then
1976 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
1978 #if defined(HAVE_UNISTD_H)
1981 #include <sys/types.h>
1982 #include <sys/statvfs.h>
1985 struct statvfs64 fsd;
1986 exit (statvfs64 (".", &fsd));
1988 fu_cv_sys_stat_statvfs64=yes,
1989 fu_cv_sys_stat_statvfs64=no,
1990 fu_cv_sys_stat_statvfs64=cross)])
1991 if test $fu_cv_sys_stat_statvfs64 = yes; then
1993 AC_DEFINE(STAT_STATVFS64)
1997 # Perform only the link test since it seems there are no variants of the
1998 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
1999 # because that got a false positive on SCO OSR5. Adding the declaration
2000 # of a `struct statvfs' causes this test to fail (as it should) on such
2001 # systems. That system is reported to work fine with STAT_STATFS4 which
2002 # is what it gets when this test fails.
2003 if test $space = no; then
2005 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2006 [AC_TRY_LINK([#include <sys/types.h>
2007 #include <sys/statvfs.h>],
2008 [struct statvfs fsd; statvfs (0, &fsd);],
2009 fu_cv_sys_stat_statvfs=yes,
2010 fu_cv_sys_stat_statvfs=no)])
2011 if test $fu_cv_sys_stat_statvfs = yes; then
2013 AC_DEFINE(STAT_STATVFS)
2017 if test $space = no; then
2018 # DEC Alpha running OSF/1
2019 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2020 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2022 #include <sys/param.h>
2023 #include <sys/types.h>
2024 #include <sys/mount.h>
2029 exit (statfs (".", &fsd, sizeof (struct statfs)));
2031 fu_cv_sys_stat_statfs3_osf1=yes,
2032 fu_cv_sys_stat_statfs3_osf1=no,
2033 fu_cv_sys_stat_statfs3_osf1=no)])
2034 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2035 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2037 AC_DEFINE(STAT_STATFS3_OSF1)
2041 if test $space = no; then
2043 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2044 member (AIX, 4.3BSD)])
2045 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2047 #ifdef HAVE_SYS_PARAM_H
2048 #include <sys/param.h>
2050 #ifdef HAVE_SYS_MOUNT_H
2051 #include <sys/mount.h>
2053 #ifdef HAVE_SYS_VFS_H
2054 #include <sys/vfs.h>
2060 exit (statfs (".", &fsd));
2062 fu_cv_sys_stat_statfs2_bsize=yes,
2063 fu_cv_sys_stat_statfs2_bsize=no,
2064 fu_cv_sys_stat_statfs2_bsize=no)])
2065 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2066 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2068 AC_DEFINE(STAT_STATFS2_BSIZE)
2072 if test $space = no; then
2074 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2075 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2076 [AC_TRY_RUN([#include <sys/types.h>
2077 #include <sys/statfs.h>
2081 exit (statfs (".", &fsd, sizeof fsd, 0));
2083 fu_cv_sys_stat_statfs4=yes,
2084 fu_cv_sys_stat_statfs4=no,
2085 fu_cv_sys_stat_statfs4=no)])
2086 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2087 if test $fu_cv_sys_stat_statfs4 = yes; then
2089 AC_DEFINE(STAT_STATFS4)
2093 if test $space = no; then
2095 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2096 member (4.4BSD and NetBSD)])
2097 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2098 [AC_TRY_RUN([#include <sys/types.h>
2099 #ifdef HAVE_SYS_PARAM_H
2100 #include <sys/param.h>
2102 #ifdef HAVE_SYS_MOUNT_H
2103 #include <sys/mount.h>
2109 exit (statfs (".", &fsd));
2111 fu_cv_sys_stat_statfs2_fsize=yes,
2112 fu_cv_sys_stat_statfs2_fsize=no,
2113 fu_cv_sys_stat_statfs2_fsize=no)])
2114 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2115 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2117 AC_DEFINE(STAT_STATFS2_FSIZE)
2121 if test $space = no; then
2123 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2124 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2125 [AC_TRY_RUN([#include <sys/types.h>
2126 #ifdef HAVE_SYS_PARAM_H
2127 #include <sys/param.h>
2129 #ifdef HAVE_SYS_MOUNT_H
2130 #include <sys/mount.h>
2132 #ifdef HAVE_SYS_FS_TYPES_H
2133 #include <sys/fs_types.h>
2138 /* Ultrix's statfs returns 1 for success,
2139 0 for not mounted, -1 for failure. */
2140 exit (statfs (".", &fsd) != 1);
2142 fu_cv_sys_stat_fs_data=yes,
2143 fu_cv_sys_stat_fs_data=no,
2144 fu_cv_sys_stat_fs_data=no)])
2145 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2146 if test $fu_cv_sys_stat_fs_data = yes; then
2148 AC_DEFINE(STAT_STATFS2_FS_DATA)
2153 # As a gating factor for large file support, in order to
2154 # use <4GB files we must have the following minimal support
2156 # long long, and a 64 bit off_t or off64_t.
2157 # If we don't have all of these then disable large
2160 AC_MSG_CHECKING(checking if large file support can be enabled)
2162 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2163 #include <sys/types.h>
2169 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2170 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2172 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2177 AC_ARG_WITH(spinlocks, [ --with-spinlocks use spin locks instead of fcntl locks ])
2178 if test "x$with_spinlocks" = "xyes"; then
2179 AC_DEFINE(USE_SPINLOCKS)
2183 AC_DEFINE(SPARC_SPINLOCKS)
2186 i386|i486|i586|i686)
2187 AC_DEFINE(INTEL_SPINLOCKS)
2191 AC_DEFINE(MIPS_SPINLOCKS)
2195 AC_DEFINE(POWERPC_SPINLOCKS)
2200 #################################################
2201 # check for ACL support
2203 AC_MSG_CHECKING(whether to support ACLs)
2204 AC_ARG_WITH(acl-support,
2205 [ --with-acl-support Include ACL support
2206 --without-acl-support Don't include ACL support (default)],
2207 [ case "$withval" in
2212 AC_MSG_RESULT(Using UnixWare ACLs)
2213 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2216 AC_MSG_RESULT(Using solaris ACLs)
2217 AC_DEFINE(HAVE_SOLARIS_ACLS)
2220 AC_MSG_RESULT(Using IRIX ACLs)
2221 AC_DEFINE(HAVE_IRIX_ACLS)
2224 AC_MSG_RESULT(Using AIX ACLs)
2225 AC_DEFINE(HAVE_AIX_ACLS)
2228 AC_MSG_RESULT(Using Draft 13 Posix ACLs)
2229 AC_DEFINE(HAVE_DRAFT13_POSIX_ACLS)
2233 AC_CHECK_LIB(acl,acl_get_file)
2234 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2235 AC_TRY_LINK([#include <sys/types.h>
2236 #include <sys/acl.h>],
2237 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2238 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2239 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2240 AC_MSG_RESULT(Using posix ACLs)
2241 AC_DEFINE(HAVE_POSIX_ACLS)
2242 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2243 AC_TRY_LINK([#include <sys/types.h>
2244 #include <sys/acl.h>],
2245 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2246 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2247 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2248 AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2256 AC_DEFINE(HAVE_NO_ACLS)
2259 AC_DEFINE(HAVE_NO_ACLS)
2263 #################################################
2264 # check for the historical SAMBA installation
2266 if test "x$prefix" = xNONE -a "$sbindir" = "\${exec_prefix}/sbin"; then
2267 # Put all binaries under the /usr/local/samba/bin directory.
2271 #################################################
2272 # check whether winbind is supported on this platform
2274 AC_MSG_CHECKING(whether to compile winbind)
2278 WINBIND_TARGETS="\$(WINBIND_PROGS)"
2279 WINBIND_STARGETS="\$(WINBIND_SPROGS)"
2282 WINBIND_STARGETS="$WINBIND_STARGETS \$(WINBIND_PAM_PROGS)"
2288 winbind_no_reason=", unsupported on $host_os"
2292 AC_ARG_WITH(winbind,
2293 [ --with-winbind Build winbind library (default, if supported by OS)
2294 --without-winbind Don't build winbind library],
2305 if test x"$WINBIND_TARGETS" = x; then
2306 AC_MSG_RESULT(no$winbind_no_reason)
2311 AC_SUBST(WINBIND_TARGETS)
2312 AC_SUBST(WINBIND_STARGETS)
2314 #################################################
2315 # final configure stuff
2316 echo "checking configure summary"
2317 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2318 echo "configure OK";,
2319 AC_MSG_ERROR([summary failure. Aborting config]),:)
2324 AC_OUTPUT(include/stamp-h Makefile)