1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT(include/includes.h)
3 AC_CONFIG_HEADER(include/config.h)
4 # we want to be compatibe with older versions of Samba
5 AC_PREFIX_DEFAULT(/usr/local/samba)
7 dnl Unique-to-Samba variables we'll be playing with.
23 # compile with optimisation and without debugging by default
26 AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],
27 [if eval "test x$enable_debug = xyes"; then
32 dnl Checks for programs.
37 dnl Check if C compiler understands -c and -o at the same time
39 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
46 dnl Check if the C compiler understands volatile (it should, being ANSI).
47 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
48 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
49 samba_cv_volatile=yes,samba_cv_volatile=no)])
50 if test x"$samba_cv_volatile" = x"yes"; then
51 AC_DEFINE(HAVE_VOLATILE)
55 #################################################
56 # set codepage directory location
57 AC_ARG_WITH(codepagedir,
58 [ --with-codepagedir=DIR Where to put codepage files (\$libdir/codepages)],
62 # Just in case anybody does it
64 AC_MSG_WARN([--with-codepagedir called without argument - will use default])
67 codepagedir="$withval"
74 dnl Add #include for broken IRIX header files
76 *irix6*) AC_ADD_INCLUDE(<standards.h>)
80 AC_VALIDATE_CACHE_SYSTEM_TYPE
83 # Config CPPFLAG settings for strange OS's that must be set
87 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
90 if test $ac_cv_prog_cc_Ae = yes; then
91 CPPFLAGS="$CPPFLAGS -Ae"
94 # Defines needed for HPUX support.
95 # HPUX has bigcrypt but (sometimes?) doesn't use it for
96 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
100 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
101 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
104 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
105 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
110 # AIX4.x doesn't even admit to having large
111 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
114 AC_MSG_RESULT([enabling large file support])
115 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
118 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
119 # to the existance of large files..
120 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
121 # recommendations on large file support, however it makes the
122 # compile work using gcc 2.7 and 2.8, whereas using the Sun
123 # recommendation makes the compile fail on gcc2.7. JRA.
128 AC_MSG_RESULT([enabling large file support])
129 if test "$ac_cv_prog_gcc" = yes; then
130 ${CC-cc} -v >conftest.c 2>&1
131 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
133 case "$ac_cv_gcc_compiler_version_number" in
134 *"gcc version 2.6"*|*"gcc version 2.7"*)
135 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
138 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
142 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
148 # Tests needed for SINIX large file support.
151 if test $host = mips-sni-sysv4 ; then
152 AC_MSG_CHECKING([for LFS support])
153 old_CPPFLAGS="$CPPFLAGS"
154 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
158 #if _LFS64_LARGEFILE == 1
163 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
164 CPPFLAGS="$old_CPPFLAGS"
165 if test x$SINIX_LFS_SUPPORT = xyes ; then
166 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
167 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
168 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
169 LIBS="`getconf LFS64_LIBS` $LIBS"
171 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
175 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
178 AC_MSG_CHECKING([for LFS support])
179 old_CPPFLAGS="$CPPFLAGS"
180 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
183 #include <sys/utsname.h>
185 #if _LFS64_LARGEFILE == 1
190 /* Ensure this is glibc 2.2 or higher */
191 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
192 int libc_major = __GLIBC__;
193 int libc_minor = __GLIBC_MINOR__;
201 /* Ensure this is kernel 2.4 or higher */
204 release = uts.release;
205 major = atoi(strsep(&release, "."));
206 minor = atoi(strsep(&release, "."));
208 if (major > 2 || (major == 2 && minor > 3))
215 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
216 CPPFLAGS="$old_CPPFLAGS"
217 if test x$LINUX_LFS_SUPPORT = xyes ; then
218 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
220 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
224 AC_MSG_CHECKING([for LFS support])
225 old_CPPFLAGS="$CPPFLAGS"
226 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
230 #if _LFS64_LARGEFILE == 1
235 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
236 CPPFLAGS="$old_CPPFLAGS"
237 if test x$GLIBC_LFS_SUPPORT = xyes ; then
238 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
240 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
250 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
251 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
252 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
253 AC_CHECK_HEADERS(sys/param.h ctype.h sys/un.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
254 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
255 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
256 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
257 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h)
260 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
261 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
265 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
266 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
267 if test x"$ac_cv_header_shadow_h" = x"yes"; then
268 AC_DEFINE(HAVE_SHADOW_H)
272 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
273 AC_CHECK_HEADERS(nss.h nss_common.h sys/security.h security/pam_appl.h security/pam_modules.h)
274 AC_CHECK_HEADERS(stropts.h poll.h)
275 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
276 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
278 # For experimental utmp support (lastlog on some BSD-like systems)
279 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
281 # For quotas on Veritas VxFS filesystems
282 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
284 AC_CHECK_SIZEOF(int,cross)
285 AC_CHECK_SIZEOF(long,cross)
286 AC_CHECK_SIZEOF(short,cross)
301 AC_CHECK_TYPE(ino_t,unsigned)
302 AC_CHECK_TYPE(loff_t,off_t)
303 AC_CHECK_TYPE(offset_t,loff_t)
304 AC_CHECK_TYPE(ssize_t, int)
305 AC_CHECK_TYPE(wchar_t, unsigned short)
307 # we need libcups for CUPS support...
308 AC_CHECK_LIB(cups,httpConnect)
310 # we need libdl for PAM and the new VFS code
311 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
312 AC_DEFINE(HAVE_LIBDL)])
314 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
316 #include <sys/types.h>
321 #include <sys/socket.h>],[socklen_t i = 0],
322 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
323 if test x"$samba_cv_socklen_t" = x"yes"; then
324 AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
327 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
329 #include <sys/types.h>
334 #include <signal.h>],[sig_atomic_t i = 0],
335 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
336 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
337 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
340 # stupid headers have the functions but no declaration. grrrr.
341 AC_HAVE_DECL(errno, [#include <errno.h>])
342 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
343 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
344 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
345 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
346 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
347 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
349 # and glibc has setresuid under linux but the function does
350 # nothing until kernel 2.1.44! very dumb.
351 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
352 AC_TRY_RUN([#include <errno.h>
353 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
354 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
355 if test x"$samba_cv_have_setresuid" = x"yes"; then
356 AC_DEFINE(HAVE_SETRESUID)
359 # Do the same check for setresguid...
361 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
362 AC_TRY_RUN([#include <unistd.h>
364 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
365 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
366 if test x"$samba_cv_have_setresgid" = x"yes"; then
367 AC_DEFINE(HAVE_SETRESGID)
372 ###############################################
373 # test for where we get crypt() from
374 AC_CHECK_FUNCS(crypt)
375 if test x"$ac_cv_func_crypt" = x"no"; then
376 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
377 AC_DEFINE(HAVE_CRYPT)])
381 ###############################################
382 # Readline included by default unless explicitly asked not to
383 test "${with_readline+set}" != "set" && with_readline=yes
385 # test for where we get readline() from
386 AC_MSG_CHECKING(whether to use readline)
387 AC_ARG_WITH(readline,
388 [ --with-readline[=DIR] Look for readline include/libs in DIR
389 --without-readline Don't include readline support],
390 [ case "$with_readline" in
394 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
395 AC_CHECK_HEADERS(readline/history.h)
397 AC_CHECK_HEADERS(readline.h readline/readline.h,[
398 for termlib in ncurses curses termcap terminfo termlib; do
399 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
401 AC_CHECK_LIB(readline, rl_callback_handler_install,
402 [TERMLIBS="-lreadline $TERMLIBS"
403 AC_DEFINE(HAVE_LIBREADLINE)
404 break], [TERMLIBS=], $TERMLIBS)])
412 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
413 # alternate readline path
415 _cppflags=${CPPFLAGS}
417 # Add additional search path
418 LDFLAGS="-L$with_readline/lib $LDFLAGS"
419 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
421 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
422 AC_CHECK_HEADERS(readline/history.h)
424 AC_CHECK_HEADERS(readline.h readline/readline.h,[
425 for termlib in ncurses curses termcap terminfo termlib; do
426 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
428 AC_CHECK_LIB(readline, rl_callback_handler_install,
429 [TERMLDFLAGS="-L$with_readline/lib"
430 TERMCPPFLAGS="-I$with_readline/include"
431 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
432 TERMLIBS="-lreadline $TERMLIBS"
433 AC_DEFINE(HAVE_LIBREADLINE)
434 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
442 AC_SUBST(TERMLDFLAGS)
444 # The following test taken from the cvs sources
445 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
446 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
447 # libsocket.so which has a bad implementation of gethostbyname (it
448 # only looks in /etc/hosts), so we only look for -lsocket if we need
450 AC_CHECK_FUNCS(connect)
451 if test x"$ac_cv_func_connect" = x"no"; then
454 *) AC_CHECK_LIB(nsl_s, printf) ;;
458 *) AC_CHECK_LIB(nsl, printf) ;;
462 *) AC_CHECK_LIB(socket, connect) ;;
466 *) AC_CHECK_LIB(inet, connect) ;;
468 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
470 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
471 test x"$ac_cv_lib_inet_connect" = x"yes"; then
472 # ac_cv_func_connect=yes
473 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
474 AC_DEFINE(HAVE_CONNECT)
478 ###############################################
479 # test for where we get get_yp_default_domain() from
480 AC_CHECK_FUNCS(yp_get_default_domain)
481 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
482 AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
483 AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)])
486 # Check if we have execl, if not we need to compile smbrun.
487 AC_CHECK_FUNCS(execl)
488 if test x"$ac_cv_func_execl" = x"no"; then
494 AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown fchown chmod fchmod chroot)
495 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset)
496 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
497 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr setnetgrent getnetgrent endnetgrent)
498 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf)
499 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
500 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
501 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
502 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
503 # setbuffer is needed for smbtorture
504 AC_CHECK_FUNCS(setbuffer)
506 # syscall() is needed for smbwrapper.
507 AC_CHECK_FUNCS(syscall)
509 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
510 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
511 AC_CHECK_FUNCS(__getcwd _getcwd)
512 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
513 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
514 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
515 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
516 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
517 AC_CHECK_FUNCS(_write __write _fork __fork)
518 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
519 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
520 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
521 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
522 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
525 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
528 if test x$ac_cv_func_stat64 = xno ; then
529 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
531 #if defined(HAVE_UNISTD_H)
534 #include <sys/stat.h>
535 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
536 AC_MSG_RESULT([$ac_cv_func_stat64])
537 if test x$ac_cv_func_stat64 = xyes ; then
538 AC_DEFINE(HAVE_STAT64)
542 if test x$ac_cv_func_lstat64 = xno ; then
543 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
545 #if defined(HAVE_UNISTD_H)
548 #include <sys/stat.h>
549 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
550 AC_MSG_RESULT([$ac_cv_func_lstat64])
551 if test x$ac_cv_func_lstat64 = xyes ; then
552 AC_DEFINE(HAVE_LSTAT64)
556 if test x$ac_cv_func_fstat64 = xno ; then
557 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
559 #if defined(HAVE_UNISTD_H)
562 #include <sys/stat.h>
563 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
564 AC_MSG_RESULT([$ac_cv_func_fstat64])
565 if test x$ac_cv_func_fstat64 = xyes ; then
566 AC_DEFINE(HAVE_FSTAT64)
571 # If no strcasecmp, check for it in some known places
572 # It is in -lresolv on ReliantUNIX and UnixWare
573 # -lresolve *must* follow -lnsl for name resolution to work properly
576 if test x$ac_cv_func_strcasecmp = xno ; then
577 AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
578 AC_DEFINE(HAVE_STRCASECMP))
582 # Check for the functions putprpwnam, set_auth_parameters,
583 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
584 # Needed for OSF1 and HPUX.
587 AC_LIBTESTFUNC(security, putprpwnam)
588 AC_LIBTESTFUNC(sec, putprpwnam)
590 AC_LIBTESTFUNC(security, set_auth_parameters)
591 AC_LIBTESTFUNC(sec, set_auth_parameters)
593 # UnixWare 7.x has its getspnam in -lgen
594 AC_LIBTESTFUNC(gen, getspnam)
596 AC_LIBTESTFUNC(security, getspnam)
597 AC_LIBTESTFUNC(sec, getspnam)
599 AC_LIBTESTFUNC(security, bigcrypt)
600 AC_LIBTESTFUNC(sec, bigcrypt)
602 AC_LIBTESTFUNC(security, getprpwnam)
603 AC_LIBTESTFUNC(sec, getprpwnam)
605 # this bit needs to be modified for each OS that is suported by
606 # smbwrapper. You need to specify how to created a shared library and
607 # how to compile C code to produce PIC object files
609 # these are the defaults, good for lots of systems
619 # and these are for particular systems
621 *linux*) AC_DEFINE(LINUX)
626 *solaris*) AC_DEFINE(SUNOS5)
628 if test "${ac_cv_prog_CC}" = "gcc"; then
635 LDSHFLAGS="-Wl,-soname,\$@"
638 *sunos*) AC_DEFINE(SUNOS4)
640 LDSHFLAGS="-Wl,-h,\$@ -G"
641 PICFLAG="-KPIC -O2" # Is this correct for SunOS
643 *bsd*) BLDSHARED="true"
644 LDSHFLAGS="-Wl,-soname,\$@ -shared"
647 *irix*) AC_DEFINE(IRIX)
649 *irix6*) AC_DEFINE(IRIX6)
652 ATTEMPT_WRAP32_BUILD=yes
654 LDSHFLAGS="-Wl,-soname,\$@ -shared"
655 if test "${ac_cv_prog_CC}" = "gcc"; then
661 *aix*) AC_DEFINE(AIX)
663 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
664 PICFLAG="-O2 -qmaxmem=6000"
666 *hpux*) AC_DEFINE(HPUX)
668 # Use special PIC flags for the native HP-UX compiler.
669 if test $ac_cv_prog_cc_Ae = yes; then
671 LDSHFLAGS="-b -z +h \$@"
675 *qnx*) AC_DEFINE(QNX);;
676 *osf*) AC_DEFINE(OSF1)
678 LDSHFLAGS="-Wl,-soname,\$@ -shared"
681 *sco*) AC_DEFINE(SCO);;
682 *unixware*) AC_DEFINE(UNIXWARE)
684 LDSHFLAGS="-Wl,-soname,\$@ -shared"
687 *next2*) AC_DEFINE(NEXT2);;
688 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
691 *-univel-*) if [ test "$GCC" != yes ]; then
692 AC_DEFINE(HAVE_MEMSET)
696 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
700 if [ test "$GCC" != yes ]; then
701 AC_DEFINE(HAVE_MEMSET)
709 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
710 AC_TRY_RUN([#include <stdio.h>
711 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
712 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
713 if test x"$samba_cv_have_longlong" = x"yes"; then
714 AC_DEFINE(HAVE_LONGLONG)
718 # Check if the compiler supports the LL prefix on long long integers.
721 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
722 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
723 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
724 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
725 AC_DEFINE(COMPILER_SUPPORTS_LL)
729 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
730 AC_TRY_RUN([#include <stdio.h>
731 #include <sys/stat.h>
732 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
733 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
734 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
735 AC_DEFINE(SIZEOF_OFF_T,8)
738 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
740 #if defined(HAVE_UNISTD_H)
744 #include <sys/stat.h>
745 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
746 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
747 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
748 AC_DEFINE(HAVE_OFF64_T)
751 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
752 AC_TRY_RUN([#include <stdio.h>
753 #include <sys/stat.h>
754 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
755 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
756 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
757 AC_DEFINE(SIZEOF_INO_T,8)
760 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
762 #if defined(HAVE_UNISTD_H)
766 #include <sys/stat.h>
767 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
768 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
769 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
770 AC_DEFINE(HAVE_INO64_T)
773 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
775 #if defined(HAVE_UNISTD_H)
778 #include <sys/types.h>
779 #include <dirent.h>],
780 [struct dirent64 de;],
781 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
782 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
783 AC_DEFINE(HAVE_STRUCT_DIRENT64)
786 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
787 AC_TRY_RUN([#include <stdio.h>
788 main() { char c; c=250; exit((c > 0)?0:1); }],
789 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
790 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
791 AC_DEFINE(HAVE_UNSIGNED_CHAR)
794 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
795 AC_TRY_COMPILE([#include <sys/types.h>
796 #include <sys/socket.h>
797 #include <netinet/in.h>],
798 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
799 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
800 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
801 AC_DEFINE(HAVE_SOCK_SIN_LEN)
804 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
805 AC_TRY_COMPILE([#include <sys/types.h>
807 void seekdir(DIR *d, long loc) { return; }],[return 0;],
808 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
809 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
810 AC_DEFINE(SEEKDIR_RETURNS_VOID)
813 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
814 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
815 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
816 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
817 AC_DEFINE(HAVE_FILE_MACRO)
820 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
821 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
822 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
823 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
824 AC_DEFINE(HAVE_FUNCTION_MACRO)
827 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
829 #include <sys/time.h>
831 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
832 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
833 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
834 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
837 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
839 #include <sys/types.h>
841 void foo(const char *format, ...) {
846 va_start(ap, format);
847 len = vsnprintf(0, 0, format, ap);
849 if (len != 5) exit(1);
851 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
855 main() { foo("hello"); }
857 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
858 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
859 AC_DEFINE(HAVE_C99_VSNPRINTF)
862 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
863 AC_TRY_RUN([#include <sys/types.h>
865 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
866 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
867 di->d_name[0] == 0) exit(0); exit(1);} ],
868 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
869 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
870 AC_DEFINE(HAVE_BROKEN_READDIR)
873 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
874 AC_TRY_COMPILE([#include <sys/types.h>
876 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
877 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
878 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
879 AC_DEFINE(HAVE_UTIMBUF)
882 dnl utmp and utmpx come in many flavours
883 dnl We need to check for many of them
884 dnl But we don't need to do each and every one, because our code uses
885 dnl mostly just the utmp (not utmpx) fields.
887 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
889 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
890 AC_TRY_COMPILE([#include <sys/types.h>
892 [struct utmp ut; ut.ut_name[0] = 'a';],
893 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
894 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
895 AC_DEFINE(HAVE_UT_UT_NAME)
898 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
899 AC_TRY_COMPILE([#include <sys/types.h>
901 [struct utmp ut; ut.ut_user[0] = 'a';],
902 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
903 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
904 AC_DEFINE(HAVE_UT_UT_USER)
907 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
908 AC_TRY_COMPILE([#include <sys/types.h>
910 [struct utmp ut; ut.ut_id[0] = 'a';],
911 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
912 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
913 AC_DEFINE(HAVE_UT_UT_ID)
916 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
917 AC_TRY_COMPILE([#include <sys/types.h>
919 [struct utmp ut; ut.ut_host[0] = 'a';],
920 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
921 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
922 AC_DEFINE(HAVE_UT_UT_HOST)
925 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
926 AC_TRY_COMPILE([#include <sys/types.h>
928 [struct utmp ut; time_t t; ut.ut_time = t;],
929 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
930 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
931 AC_DEFINE(HAVE_UT_UT_TIME)
934 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
935 AC_TRY_COMPILE([#include <sys/types.h>
937 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
938 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
939 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
940 AC_DEFINE(HAVE_UT_UT_TV)
943 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
944 AC_TRY_COMPILE([#include <sys/types.h>
946 [struct utmp ut; ut.ut_type = 0;],
947 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
948 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
949 AC_DEFINE(HAVE_UT_UT_TYPE)
952 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
953 AC_TRY_COMPILE([#include <sys/types.h>
955 [struct utmp ut; ut.ut_pid = 0;],
956 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
957 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
958 AC_DEFINE(HAVE_UT_UT_PID)
961 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
962 AC_TRY_COMPILE([#include <sys/types.h>
964 [struct utmp ut; ut.ut_exit.e_exit = 0;],
965 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
966 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
967 AC_DEFINE(HAVE_UT_UT_EXIT)
970 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
971 AC_TRY_COMPILE([#include <sys/types.h>
973 [struct utmp ut; ut.ut_addr = 0;],
974 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
975 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
976 AC_DEFINE(HAVE_UT_UT_ADDR)
979 if test x$ac_cv_func_pututline = xyes ; then
980 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
981 AC_TRY_COMPILE([#include <sys/types.h>
983 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
984 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
985 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
986 AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
990 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
991 AC_TRY_COMPILE([#include <sys/types.h>
993 [struct utmpx ux; ux.ut_syslen = 0;],
994 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
995 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
996 AC_DEFINE(HAVE_UX_UT_SYSLEN)
1000 # check for iconv in libc, and if not then we build our own
1001 AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1005 iconv_t cd = iconv_open("ASCII", "UCS2");
1006 if (cd == 0 || cd == (iconv_t)-1) return -1;
1010 samba_cv_HAVE_NATIVE_ICONV=yes,samba_cv_HAVE_NATIVE_ICONV=no,samba_cv_HAVE_NATIVE_ICONV=cross)])
1011 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1012 AC_DEFINE(HAVE_NATIVE_ICONV)
1016 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1018 #include <sys/types.h>
1021 #define F_GETLEASE 1025
1024 int fd = open("/dev/null", O_RDONLY);
1025 return fcntl(fd, F_GETLEASE, 0) == -1;
1028 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1029 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1030 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1033 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1035 #include <sys/types.h>
1039 #define F_NOTIFY 1026
1042 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1045 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1046 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1047 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1050 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1052 #include <sys/types.h>
1055 #include <sys/file.h>
1057 #define LOCK_MAND 32
1058 #define LOCK_READ 64
1061 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1064 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1065 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1066 AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1072 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1073 AC_TRY_COMPILE([#include <sys/types.h>
1074 #include <fcntl.h>],
1075 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1076 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1077 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1078 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1081 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1082 AC_TRY_RUN([#include <sys/types.h>
1083 #include <sys/capability.h>
1086 if ((cap = cap_get_proc()) == NULL)
1088 cap->cap_effective |= CAP_NETWORK_MGT;
1089 cap->cap_inheritable |= CAP_NETWORK_MGT;
1094 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1095 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1096 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1100 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1101 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1104 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1105 AC_TRY_COMPILE([#include <sys/types.h>
1106 #if defined(HAVE_RPC_RPC_H)
1107 #include <rpc/rpc.h>
1110 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1111 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1112 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1115 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1116 AC_TRY_COMPILE([#include <sys/types.h>
1117 #if defined(HAVE_RPC_RPC_H)
1118 #include <rpc/rpc.h>
1121 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1122 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1123 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1126 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1127 AC_TRY_COMPILE([#include <sys/types.h>
1128 #if defined(HAVE_RPC_RPC_H)
1129 #include <rpc/rpc.h>
1132 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1133 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1134 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1137 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1138 AC_TRY_COMPILE([#include <sys/types.h>
1139 #if defined(HAVE_RPC_RPC_H)
1140 #include <rpc/rpc.h>
1143 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1144 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1145 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1149 dnl Some systems (SCO) have a problem including
1150 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1151 dnl as a #define in <prot.h> and as part of an enum
1155 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1156 AC_TRY_COMPILE([#include <sys/types.h>
1157 #ifdef HAVE_SYS_SECURITY_H
1158 #include <sys/security.h>
1160 #endif /* HAVE_SYS_SECURITY_H */
1161 #if defined(HAVE_RPC_RPC_H)
1162 #include <rpc/rpc.h>
1165 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1166 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1167 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1170 AC_MSG_CHECKING([for test routines])
1171 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1173 AC_MSG_ERROR([cant find test code. Aborting config]),
1174 AC_MSG_WARN([cannot run when cross-compiling]))
1176 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1177 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1178 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1179 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1180 AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1183 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1184 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1185 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1186 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1187 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1188 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1190 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1193 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1194 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1195 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1196 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1197 AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1200 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1201 SAVE_CPPFLAGS="$CPPFLAGS"
1202 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1204 #define REPLACE_GETPASS 1
1205 #define NO_CONFIG_H 1
1206 #define main dont_declare_main
1207 #include "${srcdir-.}/lib/getsmbpass.c"
1209 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1210 CPPFLAGS="$SAVE_CPPFLAGS"
1212 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1213 AC_DEFINE(REPLACE_GETPASS)
1216 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1219 #include <sys/types.h>
1220 #include <netinet/in.h>
1221 #ifdef HAVE_ARPA_INET_H
1222 #include <arpa/inet.h>
1224 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1225 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1226 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1228 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1229 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1230 AC_DEFINE(REPLACE_INET_NTOA)
1233 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1234 AC_TRY_RUN([#include <stdlib.h>
1235 #include <sys/types.h>
1236 #include <sys/stat.h>
1240 char tpl[20]="/tmp/test.XXXXXX";
1241 int fd = mkstemp(tpl);
1242 if (fd == -1) exit(1);
1244 if (fstat(fd, &st) != 0) exit(1);
1245 if ((st.st_mode & 0777) != 0600) exit(1);
1248 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1249 samba_cv_HAVE_SECURE_MKSTEMP=no,
1250 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1251 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1252 AC_DEFINE(HAVE_SECURE_MKSTEMP)
1255 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1256 AC_TRY_RUN([#include <unistd.h>
1257 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1258 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1259 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1260 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1263 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1264 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1265 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1266 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1267 AC_DEFINE(HAVE_ROOT)
1269 AC_MSG_WARN(running as non-root will disable some tests)
1273 # look for a method of finding the list of network interfaces
1275 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1277 #define HAVE_IFACE_AIX 1
1278 #define AUTOCONF_TEST 1
1279 #include "confdefs.h"
1280 #include "${srcdir-.}/lib/interfaces.c"],
1281 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1282 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1283 iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1286 if test $iface = no; then
1287 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1289 #define HAVE_IFACE_IFCONF 1
1290 #define AUTOCONF_TEST 1
1291 #include "confdefs.h"
1292 #include "${srcdir-.}/lib/interfaces.c"],
1293 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1294 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1295 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1299 if test $iface = no; then
1300 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1302 #define HAVE_IFACE_IFREQ 1
1303 #define AUTOCONF_TEST 1
1304 #include "confdefs.h"
1305 #include "${srcdir-.}/lib/interfaces.c"],
1306 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1307 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1308 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1313 ################################################
1314 # look for a method of setting the effective uid
1316 if test $seteuid = no; then
1317 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1319 #define AUTOCONF_TEST 1
1320 #define USE_SETRESUID 1
1321 #include "confdefs.h"
1322 #include "${srcdir-.}/lib/util_sec.c"],
1323 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1324 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1325 seteuid=yes;AC_DEFINE(USE_SETRESUID)
1330 if test $seteuid = no; then
1331 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1333 #define AUTOCONF_TEST 1
1334 #define USE_SETREUID 1
1335 #include "confdefs.h"
1336 #include "${srcdir-.}/lib/util_sec.c"],
1337 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1338 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1339 seteuid=yes;AC_DEFINE(USE_SETREUID)
1343 if test $seteuid = no; then
1344 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1346 #define AUTOCONF_TEST 1
1347 #define USE_SETEUID 1
1348 #include "confdefs.h"
1349 #include "${srcdir-.}/lib/util_sec.c"],
1350 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1351 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1352 seteuid=yes;AC_DEFINE(USE_SETEUID)
1356 if test $seteuid = no; then
1357 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1359 #define AUTOCONF_TEST 1
1360 #define USE_SETUIDX 1
1361 #include "confdefs.h"
1362 #include "${srcdir-.}/lib/util_sec.c"],
1363 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1364 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1365 seteuid=yes;AC_DEFINE(USE_SETUIDX)
1370 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1371 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1372 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1373 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1374 AC_DEFINE(HAVE_MMAP)
1377 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1378 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1379 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1380 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1381 AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1384 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1385 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1386 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1387 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1388 AC_DEFINE(HAVE_FCNTL_LOCK)
1391 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1392 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1393 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1394 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1395 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1400 dnl Don't check for 64 bit fcntl locking if we know that the
1401 dnl glibc2.1 broken check has succeeded.
1404 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1406 #if defined(HAVE_UNISTD_H)
1416 #ifdef HAVE_SYS_FCNTL_H
1417 #include <sys/fcntl.h>
1419 main() { struct flock64 fl64;
1420 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1426 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1428 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1429 AC_DEFINE(HAVE_STRUCT_FLOCK64)
1433 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1434 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1435 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1436 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1437 AC_DEFINE(HAVE_TRUNCATED_SALT)
1440 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1441 AC_TRY_COMPILE([#include <sys/acl.h>
1442 #if defined(HAVE_RPCSVC_NIS_H)
1443 #include <rpcsvc/nis.h>
1446 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1447 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1448 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1452 #################################################
1453 # check for smbwrapper support
1454 AC_MSG_CHECKING(whether to use smbwrapper)
1455 AC_ARG_WITH(smbwrapper,
1456 [ --with-smbwrapper Include SMB wrapper support
1457 --without-smbwrapper Don't include SMB wrapper support (default)],
1458 [ case "$withval" in
1461 AC_DEFINE(WITH_SMBWRAPPER)
1462 WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1464 if test x$ATTEMPT_WRAP32_BUILD = x; then
1467 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1470 # Conditions under which smbwrapper should not be built.
1472 if test x$PICFLAG = x; then
1473 echo No support for PIC code - disabling smbwrapper and smbsh
1476 elif test x$ac_cv_func_syscall = xno; then
1477 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1489 #################################################
1490 # check for the AFS filesystem
1491 AC_MSG_CHECKING(whether to use AFS)
1493 [ --with-afs Include AFS support
1494 --without-afs Don't include AFS support (default)],
1495 [ case "$withval" in
1508 #################################################
1509 # check for the DFS auth system
1510 AC_MSG_CHECKING(whether to use DFS auth)
1512 [ --with-dfs Include DFS support
1513 --without-dfs Don't include DFS support (default)],
1514 [ case "$withval" in
1526 #################################################
1527 # check for Kerberos IV auth system
1528 AC_MSG_CHECKING(whether to use Kerberos IV)
1530 [ --with-krb4=base-dir Include Kerberos IV support
1531 --without-krb4 Don't include Kerberos IV support (default)],
1532 [ case "$withval" in
1535 AC_DEFINE(KRB4_AUTH)
1536 AC_CHECK_LIB(resolv, dn_expand)
1537 LIBS="$LIBS -lkrb -ldes"
1538 CFLAGS="$CFLAGS -I$withval/include"
1539 LDFLAGS="$LDFLAGS -L$withval/lib"
1548 #################################################
1549 # check for Kerberos 5 auth system
1550 AC_MSG_CHECKING(whether to use Kerberos 5)
1552 [ --with-krb5=base-dir Include Kerberos 5 support
1553 --without-krb5 Don't include Kerberos 5 support (default)],
1554 [ case "$withval" in
1557 AC_DEFINE(KRB5_AUTH)
1558 LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1559 CFLAGS="$CFLAGS -I$withval/include"
1560 LDFLAGS="$LDFLAGS -L$withval/lib"
1569 #################################################
1570 # check for automount support
1571 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1572 AC_ARG_WITH(automount,
1573 [ --with-automount Include AUTOMOUNT support
1574 --without-automount Don't include AUTOMOUNT support (default)],
1575 [ case "$withval" in
1578 AC_DEFINE(WITH_AUTOMOUNT)
1587 #################################################
1588 # check for smbmount support
1589 AC_MSG_CHECKING(whether to use SMBMOUNT)
1590 AC_ARG_WITH(smbmount,
1591 [ --with-smbmount Include SMBMOUNT (Linux only) support
1592 --without-smbmount Don't include SMBMOUNT support (default)],
1593 [ case "$withval" in
1596 AC_DEFINE(WITH_SMBMOUNT)
1597 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1609 #################################################
1610 # check for a PAM password database
1612 AC_MSG_CHECKING(whether to use PAM password database)
1614 [ --with-pam Include PAM password database support
1615 --without-pam Don't include PAM password database support (default)],
1616 [ case "$withval" in
1629 # we can't build a pam module if we don't have pam.
1630 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
1632 #################################################
1633 # check for pam_smbpass support
1634 AC_MSG_CHECKING(whether to use pam_smbpass)
1635 AC_ARG_WITH(pam_smbpass,
1636 [ --with-pam_smbpass Include the smbpass PAM module
1637 --without-pam_smbpass Don't include the smbpass PAM module (default)],
1638 [ case "$withval" in
1642 # Conditions under which pam_smbpass should not be built.
1644 if test x$PICFLAG = x; then
1645 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
1647 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
1648 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
1651 AC_DEFINE(WITH_PAM_SMBPASS)
1652 PAM_MOD="bin/pam_smbpass.so"
1663 ###############################################
1664 # test for where we get crypt() from, but only
1666 if test "$with_pam" != yes; then
1667 AC_CHECK_FUNCS(crypt)
1668 if test x"$ac_cv_func_crypt" = x"no"; then
1669 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
1670 AC_DEFINE(HAVE_CRYPT)])
1675 #################################################
1676 # check for a TDB password database
1677 AC_MSG_CHECKING(whether to use TDB password database)
1679 [ --with-tdbsam Include experimental TDB password database
1680 --without-tdbsam Don't include experimental TDB password database (default)],
1681 [ case "$withval" in
1684 AC_DEFINE(WITH_TDBPWD)
1685 # AC_MSG_ERROR([TDB password database not supported in this version.])
1694 #################################################
1695 # check for a LDAP password database
1696 AC_MSG_CHECKING(whether to use LDAP password database)
1698 [ --with-ldap Include LDAP support
1699 --without-ldap Don't include LDAP support (default)],
1700 [ case "$withval" in
1703 AC_DEFINE(WITH_LDAP)
1704 AC_MSG_ERROR([LDAP password database not supported in this version.])
1713 #################################################
1714 # check for a NISPLUS password database
1715 AC_MSG_CHECKING(whether to use NISPLUS password database)
1716 AC_ARG_WITH(nisplus,
1717 [ --with-nisplus Include NISPLUS password database support
1718 --without-nisplus Don't include NISPLUS password database support (default)],
1719 [ case "$withval" in
1722 AC_DEFINE(WITH_NISPLUS)
1731 #################################################
1732 # check for a NISPLUS_HOME support
1733 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1734 AC_ARG_WITH(nisplus-home,
1735 [ --with-nisplus-home Include NISPLUS_HOME support
1736 --without-nisplus-home Don't include NISPLUS_HOME support (default)],
1737 [ case "$withval" in
1740 AC_DEFINE(WITH_NISPLUS_HOME)
1749 #################################################
1750 # check for the secure socket layer
1751 AC_MSG_CHECKING(whether to use SSL)
1753 [ --with-ssl Include SSL support
1754 --without-ssl Don't include SSL support (default)
1755 --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl)],
1756 [ case "$withval" in
1760 withval="/usr/local/ssl" # default
1762 if test "${with_sslinc+set}" = set; then
1764 withval="$with_sslinc"
1767 echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1768 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1769 LIBS="-lssl -lcrypto $LIBS"
1770 LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
1773 CFLAGS="-I${withval} $CFLAGS"
1774 LIBS="-lssl -lcrypto $LIBS"
1775 LDFLAGS="-L${withval}/lib $LDFLAGS"
1781 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1782 LIBS="-lssl -lcrypto $LIBS"
1783 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1787 if test ! -d ${withval}; then
1788 echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1792 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own
1802 #################################################
1803 # check for syslog logging
1804 AC_MSG_CHECKING(whether to use syslog logging)
1806 [ --with-syslog Include experimental SYSLOG support
1807 --without-syslog Don't include SYSLOG support (default)],
1808 [ case "$withval" in
1811 AC_DEFINE(WITH_SYSLOG)
1820 #################################################
1821 # check for a shared memory profiling support
1822 AC_MSG_CHECKING(whether to use profiling)
1823 AC_ARG_WITH(profile,
1824 [ --with-profile Include profile support
1825 --without-profile Don't include profile support (default)],
1826 [ case "$withval" in
1829 AC_DEFINE(WITH_PROFILE)
1839 #################################################
1840 # check for experimental netatalk resource fork support
1841 AC_MSG_CHECKING(whether to support netatalk)
1842 AC_ARG_WITH(netatalk,
1843 [ --with-netatalk Include experimental Netatalk support
1844 --without-netatalk Don't include experimental Netatalk support (default)],
1845 [ case "$withval" in
1848 AC_DEFINE(WITH_NETATALK)
1857 #################################################
1858 # check for experimental disk-quotas support
1859 QUOTAOBJS=smbd/noquotas.o
1861 AC_MSG_CHECKING(whether to support disk-quotas)
1863 [ --with-quotas Include experimental disk-quota support
1864 --without-quotas Don't include experimental disk-quota support (default)],
1865 [ case "$withval" in
1868 QUOTAOBJS=smbd/quotas.o
1878 #################################################
1879 # check for experimental utmp accounting
1881 AC_MSG_CHECKING(whether to support utmp accounting)
1883 [ --with-utmp Include experimental utmp accounting
1884 --without-utmp Don't include experimental utmp accounting (default)],
1885 [ case "$withval" in
1888 AC_DEFINE(WITH_UTMP)
1897 #################################################
1898 # check for MS Dfs support
1900 AC_MSG_CHECKING(whether to support Microsoft Dfs)
1902 [ --with-msdfs Include MS Dfs support
1903 --without-msdfs Don't include MS Dfs support (default)],
1904 [ case "$withval" in
1907 AC_DEFINE(WITH_MSDFS)
1916 #################################################
1917 # set private directory location
1918 AC_ARG_WITH(privatedir,
1919 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
1920 [ case "$withval" in
1923 # Just in case anybody calls it without argument
1925 AC_MSG_WARN([--with-privatedir called without argument - will use default])
1926 privatedir='${prefix}/private'
1929 privatedir="$withval"
1932 AC_SUBST(privatedir)],
1933 [privatedir='${prefix}/private'
1934 AC_SUBST(privatedir)]
1937 #################################################
1938 # set lock directory location
1939 AC_ARG_WITH(lockdir,
1940 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
1941 [ case "$withval" in
1944 # Just in case anybody calls it without argument
1946 AC_MSG_WARN([--with-lockdir called without argument - will use default])
1947 lockdir='$(VARDIR)/locks'
1954 [lockdir='$(VARDIR)/locks'
1958 #################################################
1959 # set SWAT directory location
1960 AC_ARG_WITH(swatdir,
1961 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
1962 [ case "$withval" in
1965 # Just in case anybody does it
1967 AC_MSG_WARN([--with-swatdir called without argument - will use default])
1968 swatdir='${prefix}/swat'
1975 [swatdir='${prefix}/swat'
1979 #################################################
1980 # these tests are taken from the GNU fileutils package
1981 AC_CHECKING(how to get filesystem space usage)
1984 # Test for statvfs64.
1985 if test $space = no; then
1987 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
1989 #if defined(HAVE_UNISTD_H)
1992 #include <sys/types.h>
1993 #include <sys/statvfs.h>
1996 struct statvfs64 fsd;
1997 exit (statvfs64 (".", &fsd));
1999 fu_cv_sys_stat_statvfs64=yes,
2000 fu_cv_sys_stat_statvfs64=no,
2001 fu_cv_sys_stat_statvfs64=cross)])
2002 if test $fu_cv_sys_stat_statvfs64 = yes; then
2004 AC_DEFINE(STAT_STATVFS64)
2008 # Perform only the link test since it seems there are no variants of the
2009 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2010 # because that got a false positive on SCO OSR5. Adding the declaration
2011 # of a `struct statvfs' causes this test to fail (as it should) on such
2012 # systems. That system is reported to work fine with STAT_STATFS4 which
2013 # is what it gets when this test fails.
2014 if test $space = no; then
2016 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2017 [AC_TRY_LINK([#include <sys/types.h>
2018 #include <sys/statvfs.h>],
2019 [struct statvfs fsd; statvfs (0, &fsd);],
2020 fu_cv_sys_stat_statvfs=yes,
2021 fu_cv_sys_stat_statvfs=no)])
2022 if test $fu_cv_sys_stat_statvfs = yes; then
2024 AC_DEFINE(STAT_STATVFS)
2028 if test $space = no; then
2029 # DEC Alpha running OSF/1
2030 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2031 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2033 #include <sys/param.h>
2034 #include <sys/types.h>
2035 #include <sys/mount.h>
2040 exit (statfs (".", &fsd, sizeof (struct statfs)));
2042 fu_cv_sys_stat_statfs3_osf1=yes,
2043 fu_cv_sys_stat_statfs3_osf1=no,
2044 fu_cv_sys_stat_statfs3_osf1=no)])
2045 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2046 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2048 AC_DEFINE(STAT_STATFS3_OSF1)
2052 if test $space = no; then
2054 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2055 member (AIX, 4.3BSD)])
2056 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2058 #ifdef HAVE_SYS_PARAM_H
2059 #include <sys/param.h>
2061 #ifdef HAVE_SYS_MOUNT_H
2062 #include <sys/mount.h>
2064 #ifdef HAVE_SYS_VFS_H
2065 #include <sys/vfs.h>
2071 exit (statfs (".", &fsd));
2073 fu_cv_sys_stat_statfs2_bsize=yes,
2074 fu_cv_sys_stat_statfs2_bsize=no,
2075 fu_cv_sys_stat_statfs2_bsize=no)])
2076 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2077 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2079 AC_DEFINE(STAT_STATFS2_BSIZE)
2083 if test $space = no; then
2085 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2086 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2087 [AC_TRY_RUN([#include <sys/types.h>
2088 #include <sys/statfs.h>
2092 exit (statfs (".", &fsd, sizeof fsd, 0));
2094 fu_cv_sys_stat_statfs4=yes,
2095 fu_cv_sys_stat_statfs4=no,
2096 fu_cv_sys_stat_statfs4=no)])
2097 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2098 if test $fu_cv_sys_stat_statfs4 = yes; then
2100 AC_DEFINE(STAT_STATFS4)
2104 if test $space = no; then
2106 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2107 member (4.4BSD and NetBSD)])
2108 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2109 [AC_TRY_RUN([#include <sys/types.h>
2110 #ifdef HAVE_SYS_PARAM_H
2111 #include <sys/param.h>
2113 #ifdef HAVE_SYS_MOUNT_H
2114 #include <sys/mount.h>
2120 exit (statfs (".", &fsd));
2122 fu_cv_sys_stat_statfs2_fsize=yes,
2123 fu_cv_sys_stat_statfs2_fsize=no,
2124 fu_cv_sys_stat_statfs2_fsize=no)])
2125 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2126 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2128 AC_DEFINE(STAT_STATFS2_FSIZE)
2132 if test $space = no; then
2134 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2135 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2136 [AC_TRY_RUN([#include <sys/types.h>
2137 #ifdef HAVE_SYS_PARAM_H
2138 #include <sys/param.h>
2140 #ifdef HAVE_SYS_MOUNT_H
2141 #include <sys/mount.h>
2143 #ifdef HAVE_SYS_FS_TYPES_H
2144 #include <sys/fs_types.h>
2149 /* Ultrix's statfs returns 1 for success,
2150 0 for not mounted, -1 for failure. */
2151 exit (statfs (".", &fsd) != 1);
2153 fu_cv_sys_stat_fs_data=yes,
2154 fu_cv_sys_stat_fs_data=no,
2155 fu_cv_sys_stat_fs_data=no)])
2156 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2157 if test $fu_cv_sys_stat_fs_data = yes; then
2159 AC_DEFINE(STAT_STATFS2_FS_DATA)
2164 # As a gating factor for large file support, in order to
2165 # use <4GB files we must have the following minimal support
2167 # long long, and a 64 bit off_t or off64_t.
2168 # If we don't have all of these then disable large
2171 AC_MSG_CHECKING([if large file support can be enabled])
2173 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2174 #include <sys/types.h>
2180 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2181 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2182 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2184 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2186 AC_ARG_WITH(spinlocks, [ --with-spinlocks use spin locks instead of fcntl locks ])
2187 if test "x$with_spinlocks" = "xyes"; then
2188 AC_DEFINE(USE_SPINLOCKS)
2192 AC_DEFINE(SPARC_SPINLOCKS)
2195 i386|i486|i586|i686)
2196 AC_DEFINE(INTEL_SPINLOCKS)
2200 AC_DEFINE(MIPS_SPINLOCKS)
2204 AC_DEFINE(POWERPC_SPINLOCKS)
2209 #################################################
2210 # check for ACL support
2212 AC_MSG_CHECKING(whether to support ACLs)
2213 AC_ARG_WITH(acl-support,
2214 [ --with-acl-support Include ACL support
2215 --without-acl-support Don't include ACL support (default)],
2216 [ case "$withval" in
2221 AC_MSG_RESULT(Using UnixWare ACLs)
2222 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2225 AC_MSG_RESULT(Using solaris ACLs)
2226 AC_DEFINE(HAVE_SOLARIS_ACLS)
2229 AC_MSG_RESULT(Using IRIX ACLs)
2230 AC_DEFINE(HAVE_IRIX_ACLS)
2233 AC_MSG_RESULT(Using AIX ACLs)
2234 AC_DEFINE(HAVE_AIX_ACLS)
2237 AC_CHECK_LIB(acl,acl_get_file)
2238 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2239 AC_TRY_LINK([#include <sys/types.h>
2240 #include <sys/acl.h>],
2241 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2242 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2243 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2244 AC_MSG_RESULT(Using posix ACLs)
2245 AC_DEFINE(HAVE_POSIX_ACLS)
2246 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2247 AC_TRY_LINK([#include <sys/types.h>
2248 #include <sys/acl.h>],
2249 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2250 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2251 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2252 AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2260 AC_DEFINE(HAVE_NO_ACLS)
2263 AC_DEFINE(HAVE_NO_ACLS)
2267 #################################################
2268 # check whether winbind is supported on this platform
2270 AC_MSG_CHECKING(whether to compile winbind)
2274 WINBIND_TARGETS="$WINBIND_TARGETS \$(WINBIND_PROGS)"
2277 WINBIND_TARGETS="$WINBIND_TARGETS \$(WINBIND_PAM_PROGS)"
2283 winbind_no_reason=", unsupported on $host_os"
2287 AC_ARG_WITH(winbind,
2288 [ --with-winbind Build winbind library (default, if supported by OS)
2289 --without-winbind Don't build winbind library],
2299 if test x"$WINBIND_TARGETS" = x; then
2300 AC_MSG_RESULT(no$winbind_no_reason)
2305 AC_SUBST(WINBIND_TARGETS)
2307 #################################################
2308 # final configure stuff
2310 echo "checking configure summary"
2311 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2312 echo "configure OK";,
2313 AC_MSG_ERROR([summary failure. Aborting config]),:)
2318 AC_OUTPUT(include/stamp-h Makefile)