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/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 ############################################
315 # check for unix domain sockets
316 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
318 #include <sys/types.h>
321 #include <sys/socket.h>
322 #include <sys/un.h>],
324 struct sockaddr_un sunaddr;
325 sunaddr.sun_family = AF_UNIX;
327 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
328 if test x"$samba_cv_unixsocket" = x"yes"; then
329 AC_DEFINE(HAVE_UNIXSOCKET)
333 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
335 #include <sys/types.h>
340 #include <sys/socket.h>],[socklen_t i = 0],
341 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
342 if test x"$samba_cv_socklen_t" = x"yes"; then
343 AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
346 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
348 #include <sys/types.h>
353 #include <signal.h>],[sig_atomic_t i = 0],
354 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
355 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
356 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
359 # stupid headers have the functions but no declaration. grrrr.
360 AC_HAVE_DECL(errno, [#include <errno.h>])
361 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
362 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
363 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
364 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
365 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
366 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
368 # and glibc has setresuid under linux but the function does
369 # nothing until kernel 2.1.44! very dumb.
370 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
371 AC_TRY_RUN([#include <errno.h>
372 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
373 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
374 if test x"$samba_cv_have_setresuid" = x"yes"; then
375 AC_DEFINE(HAVE_SETRESUID)
378 # Do the same check for setresguid...
380 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
381 AC_TRY_RUN([#include <unistd.h>
383 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
384 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
385 if test x"$samba_cv_have_setresgid" = x"yes"; then
386 AC_DEFINE(HAVE_SETRESGID)
391 ###############################################
392 # test for where we get crypt() from
393 AC_CHECK_FUNCS(crypt)
394 if test x"$ac_cv_func_crypt" = x"no"; then
395 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
396 AC_DEFINE(HAVE_CRYPT)])
400 ###############################################
401 # Readline included by default unless explicitly asked not to
402 test "${with_readline+set}" != "set" && with_readline=yes
404 # test for where we get readline() from
405 AC_MSG_CHECKING(whether to use readline)
406 AC_ARG_WITH(readline,
407 [ --with-readline[=DIR] Look for readline include/libs in DIR
408 --without-readline Don't include readline support],
409 [ case "$with_readline" in
413 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
414 AC_CHECK_HEADERS(readline/history.h)
416 AC_CHECK_HEADERS(readline.h readline/readline.h,[
417 for termlib in ncurses curses termcap terminfo termlib; do
418 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
420 AC_CHECK_LIB(readline, rl_callback_handler_install,
421 [TERMLIBS="-lreadline $TERMLIBS"
422 AC_DEFINE(HAVE_LIBREADLINE)
423 break], [TERMLIBS=], $TERMLIBS)])
431 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
432 # alternate readline path
434 _cppflags=${CPPFLAGS}
436 # Add additional search path
437 LDFLAGS="-L$with_readline/lib $LDFLAGS"
438 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
440 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
441 AC_CHECK_HEADERS(readline/history.h)
443 AC_CHECK_HEADERS(readline.h readline/readline.h,[
444 for termlib in ncurses curses termcap terminfo termlib; do
445 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
447 AC_CHECK_LIB(readline, rl_callback_handler_install,
448 [TERMLDFLAGS="-L$with_readline/lib"
449 TERMCPPFLAGS="-I$with_readline/include"
450 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
451 TERMLIBS="-lreadline $TERMLIBS"
452 AC_DEFINE(HAVE_LIBREADLINE)
453 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
461 AC_SUBST(TERMLDFLAGS)
463 # The following test taken from the cvs sources
464 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
465 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
466 # libsocket.so which has a bad implementation of gethostbyname (it
467 # only looks in /etc/hosts), so we only look for -lsocket if we need
469 AC_CHECK_FUNCS(connect)
470 if test x"$ac_cv_func_connect" = x"no"; then
473 *) AC_CHECK_LIB(nsl_s, printf) ;;
477 *) AC_CHECK_LIB(nsl, printf) ;;
481 *) AC_CHECK_LIB(socket, connect) ;;
485 *) AC_CHECK_LIB(inet, connect) ;;
487 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
489 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
490 test x"$ac_cv_lib_inet_connect" = x"yes"; then
491 # ac_cv_func_connect=yes
492 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
493 AC_DEFINE(HAVE_CONNECT)
497 ###############################################
498 # test for where we get get_yp_default_domain() from
499 AC_CHECK_FUNCS(yp_get_default_domain)
500 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
501 AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
502 AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)])
505 # Check if we have execl, if not we need to compile smbrun.
506 AC_CHECK_FUNCS(execl)
507 if test x"$ac_cv_func_execl" = x"no"; then
513 AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown fchown chmod fchmod chroot)
514 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset)
515 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
516 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr setnetgrent getnetgrent endnetgrent)
517 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf)
518 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
519 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
520 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
521 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
522 # setbuffer is needed for smbtorture
523 AC_CHECK_FUNCS(setbuffer)
525 # syscall() is needed for smbwrapper.
526 AC_CHECK_FUNCS(syscall)
528 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
529 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
530 AC_CHECK_FUNCS(__getcwd _getcwd)
531 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
532 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
533 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
534 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
535 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
536 AC_CHECK_FUNCS(_write __write _fork __fork)
537 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
538 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
539 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
540 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
541 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
544 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
547 if test x$ac_cv_func_stat64 = xno ; then
548 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
550 #if defined(HAVE_UNISTD_H)
553 #include <sys/stat.h>
554 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
555 AC_MSG_RESULT([$ac_cv_func_stat64])
556 if test x$ac_cv_func_stat64 = xyes ; then
557 AC_DEFINE(HAVE_STAT64)
561 if test x$ac_cv_func_lstat64 = xno ; then
562 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
564 #if defined(HAVE_UNISTD_H)
567 #include <sys/stat.h>
568 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
569 AC_MSG_RESULT([$ac_cv_func_lstat64])
570 if test x$ac_cv_func_lstat64 = xyes ; then
571 AC_DEFINE(HAVE_LSTAT64)
575 if test x$ac_cv_func_fstat64 = xno ; then
576 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
578 #if defined(HAVE_UNISTD_H)
581 #include <sys/stat.h>
582 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
583 AC_MSG_RESULT([$ac_cv_func_fstat64])
584 if test x$ac_cv_func_fstat64 = xyes ; then
585 AC_DEFINE(HAVE_FSTAT64)
590 # If no strcasecmp, check for it in some known places
591 # It is in -lresolv on ReliantUNIX and UnixWare
592 # -lresolve *must* follow -lnsl for name resolution to work properly
595 if test x$ac_cv_func_strcasecmp = xno ; then
596 AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
597 AC_DEFINE(HAVE_STRCASECMP))
601 # Check for the functions putprpwnam, set_auth_parameters,
602 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
603 # Needed for OSF1 and HPUX.
606 AC_LIBTESTFUNC(security, putprpwnam)
607 AC_LIBTESTFUNC(sec, putprpwnam)
609 AC_LIBTESTFUNC(security, set_auth_parameters)
610 AC_LIBTESTFUNC(sec, set_auth_parameters)
612 # UnixWare 7.x has its getspnam in -lgen
613 AC_LIBTESTFUNC(gen, getspnam)
615 AC_LIBTESTFUNC(security, getspnam)
616 AC_LIBTESTFUNC(sec, getspnam)
618 AC_LIBTESTFUNC(security, bigcrypt)
619 AC_LIBTESTFUNC(sec, bigcrypt)
621 AC_LIBTESTFUNC(security, getprpwnam)
622 AC_LIBTESTFUNC(sec, getprpwnam)
624 # this bit needs to be modified for each OS that is suported by
625 # smbwrapper. You need to specify how to created a shared library and
626 # how to compile C code to produce PIC object files
628 # these are the defaults, good for lots of systems
638 # and these are for particular systems
640 *linux*) AC_DEFINE(LINUX)
645 *solaris*) AC_DEFINE(SUNOS5)
647 LDSHFLAGS="-Wl,-h,\$@.so -G"
648 if test "${ac_cv_prog_CC}" = "gcc"; then
656 *sunos*) AC_DEFINE(SUNOS4)
658 LDSHFLAGS="-Wl,-h,\$@ -G"
659 PICFLAG="-KPIC -O2" # Is this correct for SunOS
661 *bsd*) BLDSHARED="true"
662 LDSHFLAGS="-Wl,-soname,\$@ -shared"
665 *irix*) AC_DEFINE(IRIX)
667 *irix6*) AC_DEFINE(IRIX6)
670 ATTEMPT_WRAP32_BUILD=yes
672 LDSHFLAGS="-Wl,-soname,\$@ -shared"
673 if test "${ac_cv_prog_CC}" = "gcc"; then
679 *aix*) AC_DEFINE(AIX)
681 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
682 PICFLAG="-O2 -qmaxmem=6000"
684 *hpux*) AC_DEFINE(HPUX)
686 # Use special PIC flags for the native HP-UX compiler.
687 if test $ac_cv_prog_cc_Ae = yes; then
689 LDSHFLAGS="-b -z +h \$@"
693 *qnx*) AC_DEFINE(QNX);;
694 *osf*) AC_DEFINE(OSF1)
696 LDSHFLAGS="-Wl,-soname,\$@ -shared"
699 *sco*) AC_DEFINE(SCO);;
700 *unixware*) AC_DEFINE(UNIXWARE)
702 LDSHFLAGS="-Wl,-soname,\$@ -shared"
705 *next2*) AC_DEFINE(NEXT2);;
706 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
709 *-univel-*) if [ test "$GCC" != yes ]; then
710 AC_DEFINE(HAVE_MEMSET)
714 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
718 if [ test "$GCC" != yes ]; then
719 AC_DEFINE(HAVE_MEMSET)
727 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
728 AC_TRY_RUN([#include <stdio.h>
729 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
730 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
731 if test x"$samba_cv_have_longlong" = x"yes"; then
732 AC_DEFINE(HAVE_LONGLONG)
736 # Check if the compiler supports the LL prefix on long long integers.
739 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
740 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
741 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
742 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
743 AC_DEFINE(COMPILER_SUPPORTS_LL)
747 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
748 AC_TRY_RUN([#include <stdio.h>
749 #include <sys/stat.h>
750 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
751 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
752 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
753 AC_DEFINE(SIZEOF_OFF_T,8)
756 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
758 #if defined(HAVE_UNISTD_H)
762 #include <sys/stat.h>
763 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
764 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
765 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
766 AC_DEFINE(HAVE_OFF64_T)
769 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
770 AC_TRY_RUN([#include <stdio.h>
771 #include <sys/stat.h>
772 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
773 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
774 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
775 AC_DEFINE(SIZEOF_INO_T,8)
778 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
780 #if defined(HAVE_UNISTD_H)
784 #include <sys/stat.h>
785 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
786 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
787 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
788 AC_DEFINE(HAVE_INO64_T)
791 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
793 #if defined(HAVE_UNISTD_H)
796 #include <sys/types.h>
797 #include <dirent.h>],
798 [struct dirent64 de;],
799 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
800 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
801 AC_DEFINE(HAVE_STRUCT_DIRENT64)
804 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
805 AC_TRY_RUN([#include <stdio.h>
806 main() { char c; c=250; exit((c > 0)?0:1); }],
807 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
808 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
809 AC_DEFINE(HAVE_UNSIGNED_CHAR)
812 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
813 AC_TRY_COMPILE([#include <sys/types.h>
814 #include <sys/socket.h>
815 #include <netinet/in.h>],
816 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
817 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
818 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
819 AC_DEFINE(HAVE_SOCK_SIN_LEN)
822 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
823 AC_TRY_COMPILE([#include <sys/types.h>
825 void seekdir(DIR *d, long loc) { return; }],[return 0;],
826 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
827 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
828 AC_DEFINE(SEEKDIR_RETURNS_VOID)
831 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
832 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
833 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
834 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
835 AC_DEFINE(HAVE_FILE_MACRO)
838 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
839 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
840 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
841 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
842 AC_DEFINE(HAVE_FUNCTION_MACRO)
845 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
847 #include <sys/time.h>
849 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
850 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
851 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
852 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
855 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
857 #include <sys/types.h>
859 void foo(const char *format, ...) {
864 va_start(ap, format);
865 len = vsnprintf(0, 0, format, ap);
867 if (len != 5) exit(1);
869 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
873 main() { foo("hello"); }
875 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
876 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
877 AC_DEFINE(HAVE_C99_VSNPRINTF)
880 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
881 AC_TRY_RUN([#include <sys/types.h>
883 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
884 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
885 di->d_name[0] == 0) exit(0); exit(1);} ],
886 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
887 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
888 AC_DEFINE(HAVE_BROKEN_READDIR)
891 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
892 AC_TRY_COMPILE([#include <sys/types.h>
894 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
895 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
896 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
897 AC_DEFINE(HAVE_UTIMBUF)
900 dnl utmp and utmpx come in many flavours
901 dnl We need to check for many of them
902 dnl But we don't need to do each and every one, because our code uses
903 dnl mostly just the utmp (not utmpx) fields.
905 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
907 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
908 AC_TRY_COMPILE([#include <sys/types.h>
910 [struct utmp ut; ut.ut_name[0] = 'a';],
911 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
912 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
913 AC_DEFINE(HAVE_UT_UT_NAME)
916 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
917 AC_TRY_COMPILE([#include <sys/types.h>
919 [struct utmp ut; ut.ut_user[0] = 'a';],
920 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
921 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
922 AC_DEFINE(HAVE_UT_UT_USER)
925 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
926 AC_TRY_COMPILE([#include <sys/types.h>
928 [struct utmp ut; ut.ut_id[0] = 'a';],
929 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
930 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
931 AC_DEFINE(HAVE_UT_UT_ID)
934 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
935 AC_TRY_COMPILE([#include <sys/types.h>
937 [struct utmp ut; ut.ut_host[0] = 'a';],
938 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
939 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
940 AC_DEFINE(HAVE_UT_UT_HOST)
943 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
944 AC_TRY_COMPILE([#include <sys/types.h>
946 [struct utmp ut; time_t t; ut.ut_time = t;],
947 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
948 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
949 AC_DEFINE(HAVE_UT_UT_TIME)
952 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
953 AC_TRY_COMPILE([#include <sys/types.h>
955 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
956 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
957 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
958 AC_DEFINE(HAVE_UT_UT_TV)
961 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
962 AC_TRY_COMPILE([#include <sys/types.h>
964 [struct utmp ut; ut.ut_type = 0;],
965 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
966 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
967 AC_DEFINE(HAVE_UT_UT_TYPE)
970 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
971 AC_TRY_COMPILE([#include <sys/types.h>
973 [struct utmp ut; ut.ut_pid = 0;],
974 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
975 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
976 AC_DEFINE(HAVE_UT_UT_PID)
979 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
980 AC_TRY_COMPILE([#include <sys/types.h>
982 [struct utmp ut; ut.ut_exit.e_exit = 0;],
983 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
984 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
985 AC_DEFINE(HAVE_UT_UT_EXIT)
988 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
989 AC_TRY_COMPILE([#include <sys/types.h>
991 [struct utmp ut; ut.ut_addr = 0;],
992 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
993 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
994 AC_DEFINE(HAVE_UT_UT_ADDR)
997 if test x$ac_cv_func_pututline = xyes ; then
998 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
999 AC_TRY_COMPILE([#include <sys/types.h>
1001 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1002 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1003 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1004 AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
1008 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1009 AC_TRY_COMPILE([#include <sys/types.h>
1010 #include <utmpx.h>],
1011 [struct utmpx ux; ux.ut_syslen = 0;],
1012 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1013 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1014 AC_DEFINE(HAVE_UX_UT_SYSLEN)
1018 #################################################
1019 # check for libiconv support
1020 AC_MSG_CHECKING(whether to use libiconv)
1021 AC_ARG_WITH(libiconv,
1022 [ --with-libiconv=BASEDIR use libiconv in BASEDIR/lib and BASEDIR/include
1023 --without-libiconv Don't use libiconv library],
1024 [ case "$withval" in
1030 CFLAGS="$CFLAGS -I$withval/include"
1031 LDFLAGS="$LDFLAGS -L$withval/lib"
1032 AC_CHECK_LIB(iconv, iconv_open)
1040 # check for iconv in libc
1041 AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1045 iconv_t cd = iconv_open("ASCII", "UCS-2LE");
1046 if (cd == 0 || cd == (iconv_t)-1) return -1;
1050 samba_cv_HAVE_NATIVE_ICONV=yes,samba_cv_HAVE_NATIVE_ICONV=no,samba_cv_HAVE_NATIVE_ICONV=cross)])
1051 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1052 AC_DEFINE(HAVE_NATIVE_ICONV)
1056 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1058 #include <sys/types.h>
1061 #define F_GETLEASE 1025
1064 int fd = open("/dev/null", O_RDONLY);
1065 return fcntl(fd, F_GETLEASE, 0) == -1;
1068 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1069 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1070 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1073 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1075 #include <sys/types.h>
1079 #define F_NOTIFY 1026
1082 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1085 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1086 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1087 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1090 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1092 #include <sys/types.h>
1095 #include <sys/file.h>
1097 #define LOCK_MAND 32
1098 #define LOCK_READ 64
1101 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1104 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1105 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1106 AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1112 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1113 AC_TRY_COMPILE([#include <sys/types.h>
1114 #include <fcntl.h>],
1115 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1116 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1117 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1118 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1121 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1122 AC_TRY_RUN([#include <sys/types.h>
1123 #include <sys/capability.h>
1126 if ((cap = cap_get_proc()) == NULL)
1128 cap->cap_effective |= CAP_NETWORK_MGT;
1129 cap->cap_inheritable |= CAP_NETWORK_MGT;
1134 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1135 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1136 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1140 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1141 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1144 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1145 AC_TRY_COMPILE([#include <sys/types.h>
1146 #if defined(HAVE_RPC_RPC_H)
1147 #include <rpc/rpc.h>
1150 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1151 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1152 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1155 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1156 AC_TRY_COMPILE([#include <sys/types.h>
1157 #if defined(HAVE_RPC_RPC_H)
1158 #include <rpc/rpc.h>
1161 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1162 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1163 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1166 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1167 AC_TRY_COMPILE([#include <sys/types.h>
1168 #if defined(HAVE_RPC_RPC_H)
1169 #include <rpc/rpc.h>
1172 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1173 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1174 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1177 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1178 AC_TRY_COMPILE([#include <sys/types.h>
1179 #if defined(HAVE_RPC_RPC_H)
1180 #include <rpc/rpc.h>
1183 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1184 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1185 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1189 dnl Some systems (SCO) have a problem including
1190 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1191 dnl as a #define in <prot.h> and as part of an enum
1195 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1196 AC_TRY_COMPILE([#include <sys/types.h>
1197 #ifdef HAVE_SYS_SECURITY_H
1198 #include <sys/security.h>
1200 #endif /* HAVE_SYS_SECURITY_H */
1201 #if defined(HAVE_RPC_RPC_H)
1202 #include <rpc/rpc.h>
1205 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1206 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1207 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1210 AC_MSG_CHECKING([for test routines])
1211 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1213 AC_MSG_ERROR([cant find test code. Aborting config]),
1214 AC_MSG_WARN([cannot run when cross-compiling]))
1216 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1217 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1218 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1219 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1220 AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1223 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1224 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1225 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1226 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1227 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1228 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1230 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1233 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1234 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1235 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1236 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1237 AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1240 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1241 SAVE_CPPFLAGS="$CPPFLAGS"
1242 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1244 #define REPLACE_GETPASS 1
1245 #define NO_CONFIG_H 1
1246 #define main dont_declare_main
1247 #include "${srcdir-.}/lib/getsmbpass.c"
1249 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1250 CPPFLAGS="$SAVE_CPPFLAGS"
1252 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1253 AC_DEFINE(REPLACE_GETPASS)
1256 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1259 #include <sys/types.h>
1260 #include <netinet/in.h>
1261 #ifdef HAVE_ARPA_INET_H
1262 #include <arpa/inet.h>
1264 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1265 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1266 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1268 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1269 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1270 AC_DEFINE(REPLACE_INET_NTOA)
1273 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1274 AC_TRY_RUN([#include <stdlib.h>
1275 #include <sys/types.h>
1276 #include <sys/stat.h>
1280 char tpl[20]="/tmp/test.XXXXXX";
1281 int fd = mkstemp(tpl);
1282 if (fd == -1) exit(1);
1284 if (fstat(fd, &st) != 0) exit(1);
1285 if ((st.st_mode & 0777) != 0600) exit(1);
1288 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1289 samba_cv_HAVE_SECURE_MKSTEMP=no,
1290 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1291 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1292 AC_DEFINE(HAVE_SECURE_MKSTEMP)
1295 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1296 AC_TRY_RUN([#include <unistd.h>
1297 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1298 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1299 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1300 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1303 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1304 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1305 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1306 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1307 AC_DEFINE(HAVE_ROOT)
1309 AC_MSG_WARN(running as non-root will disable some tests)
1313 # look for a method of finding the list of network interfaces
1315 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1317 #define HAVE_IFACE_AIX 1
1318 #define AUTOCONF_TEST 1
1319 #include "confdefs.h"
1320 #include "${srcdir-.}/lib/interfaces.c"],
1321 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1322 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1323 iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1326 if test $iface = no; then
1327 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1329 #define HAVE_IFACE_IFCONF 1
1330 #define AUTOCONF_TEST 1
1331 #include "confdefs.h"
1332 #include "${srcdir-.}/lib/interfaces.c"],
1333 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1334 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1335 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1339 if test $iface = no; then
1340 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1342 #define HAVE_IFACE_IFREQ 1
1343 #define AUTOCONF_TEST 1
1344 #include "confdefs.h"
1345 #include "${srcdir-.}/lib/interfaces.c"],
1346 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1347 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1348 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1353 ################################################
1354 # look for a method of setting the effective uid
1356 if test $seteuid = no; then
1357 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1359 #define AUTOCONF_TEST 1
1360 #define USE_SETRESUID 1
1361 #include "confdefs.h"
1362 #include "${srcdir-.}/lib/util_sec.c"],
1363 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1364 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1365 seteuid=yes;AC_DEFINE(USE_SETRESUID)
1370 if test $seteuid = no; then
1371 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1373 #define AUTOCONF_TEST 1
1374 #define USE_SETREUID 1
1375 #include "confdefs.h"
1376 #include "${srcdir-.}/lib/util_sec.c"],
1377 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1378 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1379 seteuid=yes;AC_DEFINE(USE_SETREUID)
1383 if test $seteuid = no; then
1384 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1386 #define AUTOCONF_TEST 1
1387 #define USE_SETEUID 1
1388 #include "confdefs.h"
1389 #include "${srcdir-.}/lib/util_sec.c"],
1390 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1391 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1392 seteuid=yes;AC_DEFINE(USE_SETEUID)
1396 if test $seteuid = no; then
1397 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1399 #define AUTOCONF_TEST 1
1400 #define USE_SETUIDX 1
1401 #include "confdefs.h"
1402 #include "${srcdir-.}/lib/util_sec.c"],
1403 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1404 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1405 seteuid=yes;AC_DEFINE(USE_SETUIDX)
1410 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1411 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1412 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1413 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1414 AC_DEFINE(HAVE_MMAP)
1417 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1418 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1419 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1420 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1421 AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1424 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1425 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1426 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1427 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1428 AC_DEFINE(HAVE_FCNTL_LOCK)
1431 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1432 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1433 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1434 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1435 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1440 dnl Don't check for 64 bit fcntl locking if we know that the
1441 dnl glibc2.1 broken check has succeeded.
1444 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1446 #if defined(HAVE_UNISTD_H)
1456 #ifdef HAVE_SYS_FCNTL_H
1457 #include <sys/fcntl.h>
1459 main() { struct flock64 fl64;
1460 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1466 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1468 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1469 AC_DEFINE(HAVE_STRUCT_FLOCK64)
1473 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1474 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1475 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1476 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1477 AC_DEFINE(HAVE_TRUNCATED_SALT)
1480 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1481 AC_TRY_COMPILE([#include <sys/acl.h>
1482 #if defined(HAVE_RPCSVC_NIS_H)
1483 #include <rpcsvc/nis.h>
1486 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1487 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1488 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1492 #################################################
1493 # check for smbwrapper support
1494 AC_MSG_CHECKING(whether to use smbwrapper)
1495 AC_ARG_WITH(smbwrapper,
1496 [ --with-smbwrapper Include SMB wrapper support
1497 --without-smbwrapper Don't include SMB wrapper support (default)],
1498 [ case "$withval" in
1501 AC_DEFINE(WITH_SMBWRAPPER)
1502 WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1504 if test x$ATTEMPT_WRAP32_BUILD = x; then
1507 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1510 # Conditions under which smbwrapper should not be built.
1512 if test x$PICFLAG = x; then
1513 echo No support for PIC code - disabling smbwrapper and smbsh
1516 elif test x$ac_cv_func_syscall = xno; then
1517 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1529 #################################################
1530 # check for the AFS filesystem
1531 AC_MSG_CHECKING(whether to use AFS)
1533 [ --with-afs Include AFS support
1534 --without-afs Don't include AFS support (default)],
1535 [ case "$withval" in
1548 #################################################
1549 # check for the DFS auth system
1550 AC_MSG_CHECKING(whether to use DFS auth)
1552 [ --with-dfs Include DFS support
1553 --without-dfs Don't include DFS support (default)],
1554 [ case "$withval" in
1566 #################################################
1567 # check for Kerberos IV auth system
1568 AC_MSG_CHECKING(whether to use Kerberos IV)
1570 [ --with-krb4=base-dir Include Kerberos IV support
1571 --without-krb4 Don't include Kerberos IV support (default)],
1572 [ case "$withval" in
1575 AC_DEFINE(KRB4_AUTH)
1576 AC_CHECK_LIB(resolv, dn_expand)
1577 LIBS="$LIBS -lkrb -ldes"
1578 CFLAGS="$CFLAGS -I$withval/include"
1579 LDFLAGS="$LDFLAGS -L$withval/lib"
1588 #################################################
1589 # check for Kerberos 5 auth system
1590 AC_MSG_CHECKING(whether to use Kerberos 5)
1592 [ --with-krb5=base-dir Include Kerberos 5 support
1593 --without-krb5 Don't include Kerberos 5 support (default)],
1594 [ case "$withval" in
1597 AC_DEFINE(KRB5_AUTH)
1598 LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1599 CFLAGS="$CFLAGS -I$withval/include"
1600 LDFLAGS="$LDFLAGS -L$withval/lib"
1609 #################################################
1610 # check for automount support
1611 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1612 AC_ARG_WITH(automount,
1613 [ --with-automount Include AUTOMOUNT support
1614 --without-automount Don't include AUTOMOUNT support (default)],
1615 [ case "$withval" in
1618 AC_DEFINE(WITH_AUTOMOUNT)
1627 #################################################
1628 # check for smbmount support
1629 AC_MSG_CHECKING(whether to use SMBMOUNT)
1630 AC_ARG_WITH(smbmount,
1631 [ --with-smbmount Include SMBMOUNT (Linux only) support
1632 --without-smbmount Don't include SMBMOUNT support (default)],
1633 [ case "$withval" in
1636 AC_DEFINE(WITH_SMBMOUNT)
1637 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1649 #################################################
1650 # check for a PAM password database
1652 AC_MSG_CHECKING(whether to use PAM password database)
1654 [ --with-pam Include PAM password database support
1655 --without-pam Don't include PAM password database support (default)],
1656 [ case "$withval" in
1669 # we can't build a pam module if we don't have pam.
1670 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
1672 #################################################
1673 # check for pam_smbpass support
1674 AC_MSG_CHECKING(whether to use pam_smbpass)
1675 AC_ARG_WITH(pam_smbpass,
1676 [ --with-pam_smbpass Include the smbpass PAM module
1677 --without-pam_smbpass Don't include the smbpass PAM module (default)],
1678 [ case "$withval" in
1682 # Conditions under which pam_smbpass should not be built.
1684 if test x$PICFLAG = x; then
1685 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
1687 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
1688 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
1691 AC_DEFINE(WITH_PAM_SMBPASS)
1692 PAM_MOD="bin/pam_smbpass.so"
1703 ###############################################
1704 # test for where we get crypt() from, but only
1706 if test "$with_pam" != yes; then
1707 AC_CHECK_FUNCS(crypt)
1708 if test x"$ac_cv_func_crypt" = x"no"; then
1709 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
1710 AC_DEFINE(HAVE_CRYPT)])
1715 #################################################
1716 # check for a TDB password database
1717 AC_MSG_CHECKING(whether to use TDB password database)
1719 [ --with-tdbsam Include experimental TDB password database
1720 --without-tdbsam Don't include experimental TDB password database (default)],
1721 [ case "$withval" in
1724 AC_DEFINE(WITH_TDBPWD)
1725 # AC_MSG_ERROR([TDB password database not supported in this version.])
1734 #################################################
1735 # check for a LDAP password database
1736 AC_MSG_CHECKING(whether to use LDAP password database)
1738 [ --with-ldap Include LDAP support
1739 --without-ldap Don't include LDAP support (default)],
1740 [ case "$withval" in
1743 AC_DEFINE(WITH_LDAP)
1744 AC_MSG_ERROR([LDAP password database not supported in this version.])
1753 #################################################
1754 # check for a NISPLUS password database
1755 AC_MSG_CHECKING(whether to use NISPLUS password database)
1756 AC_ARG_WITH(nisplus,
1757 [ --with-nisplus Include NISPLUS password database support
1758 --without-nisplus Don't include NISPLUS password database support (default)],
1759 [ case "$withval" in
1762 AC_DEFINE(WITH_NISPLUS)
1771 #################################################
1772 # check for a NISPLUS_HOME support
1773 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1774 AC_ARG_WITH(nisplus-home,
1775 [ --with-nisplus-home Include NISPLUS_HOME support
1776 --without-nisplus-home Don't include NISPLUS_HOME support (default)],
1777 [ case "$withval" in
1780 AC_DEFINE(WITH_NISPLUS_HOME)
1789 #################################################
1790 # check for the secure socket layer
1791 AC_MSG_CHECKING(whether to use SSL)
1793 [ --with-ssl Include SSL support
1794 --without-ssl Don't include SSL support (default)
1795 --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl)],
1796 [ case "$withval" in
1800 withval="/usr/local/ssl" # default
1802 if test "${with_sslinc+set}" = set; then
1804 withval="$with_sslinc"
1807 echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1808 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1809 LIBS="-lssl -lcrypto $LIBS"
1810 LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
1813 CFLAGS="-I${withval} $CFLAGS"
1814 LIBS="-lssl -lcrypto $LIBS"
1815 LDFLAGS="-L${withval}/lib $LDFLAGS"
1821 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1822 LIBS="-lssl -lcrypto $LIBS"
1823 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1827 if test ! -d ${withval}; then
1828 echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1832 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own
1842 #################################################
1843 # check for syslog logging
1844 AC_MSG_CHECKING(whether to use syslog logging)
1846 [ --with-syslog Include experimental SYSLOG support
1847 --without-syslog Don't include SYSLOG support (default)],
1848 [ case "$withval" in
1851 AC_DEFINE(WITH_SYSLOG)
1860 #################################################
1861 # check for a shared memory profiling support
1862 AC_MSG_CHECKING(whether to use profiling)
1863 AC_ARG_WITH(profile,
1864 [ --with-profile Include profile support
1865 --without-profile Don't include profile support (default)],
1866 [ case "$withval" in
1869 AC_DEFINE(WITH_PROFILE)
1879 #################################################
1880 # check for experimental netatalk resource fork support
1881 AC_MSG_CHECKING(whether to support netatalk)
1882 AC_ARG_WITH(netatalk,
1883 [ --with-netatalk Include experimental Netatalk support
1884 --without-netatalk Don't include experimental Netatalk support (default)],
1885 [ case "$withval" in
1888 AC_DEFINE(WITH_NETATALK)
1897 #################################################
1898 # check for experimental disk-quotas support
1899 QUOTAOBJS=smbd/noquotas.o
1901 AC_MSG_CHECKING(whether to support disk-quotas)
1903 [ --with-quotas Include experimental disk-quota support
1904 --without-quotas Don't include experimental disk-quota support (default)],
1905 [ case "$withval" in
1908 QUOTAOBJS=smbd/quotas.o
1918 #################################################
1919 # check for experimental utmp accounting
1921 AC_MSG_CHECKING(whether to support utmp accounting)
1923 [ --with-utmp Include experimental utmp accounting
1924 --without-utmp Don't include experimental utmp accounting (default)],
1925 [ case "$withval" in
1928 AC_DEFINE(WITH_UTMP)
1937 #################################################
1938 # check for MS Dfs support
1940 AC_MSG_CHECKING(whether to support Microsoft Dfs)
1942 [ --with-msdfs Include MS Dfs support
1943 --without-msdfs Don't include MS Dfs support (default)],
1944 [ case "$withval" in
1947 AC_DEFINE(WITH_MSDFS)
1956 #################################################
1957 # set private directory location
1958 AC_ARG_WITH(privatedir,
1959 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
1960 [ case "$withval" in
1963 # Just in case anybody calls it without argument
1965 AC_MSG_WARN([--with-privatedir called without argument - will use default])
1966 privatedir='${prefix}/private'
1969 privatedir="$withval"
1972 AC_SUBST(privatedir)],
1973 [privatedir='${prefix}/private'
1974 AC_SUBST(privatedir)]
1977 #################################################
1978 # set lock directory location
1979 AC_ARG_WITH(lockdir,
1980 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
1981 [ case "$withval" in
1984 # Just in case anybody calls it without argument
1986 AC_MSG_WARN([--with-lockdir called without argument - will use default])
1987 lockdir='$(VARDIR)/locks'
1994 [lockdir='$(VARDIR)/locks'
1998 #################################################
1999 # set SWAT directory location
2000 AC_ARG_WITH(swatdir,
2001 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
2002 [ case "$withval" in
2005 # Just in case anybody does it
2007 AC_MSG_WARN([--with-swatdir called without argument - will use default])
2008 swatdir='${prefix}/swat'
2015 [swatdir='${prefix}/swat'
2019 #################################################
2020 # these tests are taken from the GNU fileutils package
2021 AC_CHECKING(how to get filesystem space usage)
2024 # Test for statvfs64.
2025 if test $space = no; then
2027 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2029 #if defined(HAVE_UNISTD_H)
2032 #include <sys/types.h>
2033 #include <sys/statvfs.h>
2036 struct statvfs64 fsd;
2037 exit (statvfs64 (".", &fsd));
2039 fu_cv_sys_stat_statvfs64=yes,
2040 fu_cv_sys_stat_statvfs64=no,
2041 fu_cv_sys_stat_statvfs64=cross)])
2042 if test $fu_cv_sys_stat_statvfs64 = yes; then
2044 AC_DEFINE(STAT_STATVFS64)
2048 # Perform only the link test since it seems there are no variants of the
2049 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2050 # because that got a false positive on SCO OSR5. Adding the declaration
2051 # of a `struct statvfs' causes this test to fail (as it should) on such
2052 # systems. That system is reported to work fine with STAT_STATFS4 which
2053 # is what it gets when this test fails.
2054 if test $space = no; then
2056 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2057 [AC_TRY_LINK([#include <sys/types.h>
2058 #include <sys/statvfs.h>],
2059 [struct statvfs fsd; statvfs (0, &fsd);],
2060 fu_cv_sys_stat_statvfs=yes,
2061 fu_cv_sys_stat_statvfs=no)])
2062 if test $fu_cv_sys_stat_statvfs = yes; then
2064 AC_DEFINE(STAT_STATVFS)
2068 if test $space = no; then
2069 # DEC Alpha running OSF/1
2070 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2071 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2073 #include <sys/param.h>
2074 #include <sys/types.h>
2075 #include <sys/mount.h>
2080 exit (statfs (".", &fsd, sizeof (struct statfs)));
2082 fu_cv_sys_stat_statfs3_osf1=yes,
2083 fu_cv_sys_stat_statfs3_osf1=no,
2084 fu_cv_sys_stat_statfs3_osf1=no)])
2085 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2086 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2088 AC_DEFINE(STAT_STATFS3_OSF1)
2092 if test $space = no; then
2094 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2095 member (AIX, 4.3BSD)])
2096 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2098 #ifdef HAVE_SYS_PARAM_H
2099 #include <sys/param.h>
2101 #ifdef HAVE_SYS_MOUNT_H
2102 #include <sys/mount.h>
2104 #ifdef HAVE_SYS_VFS_H
2105 #include <sys/vfs.h>
2111 exit (statfs (".", &fsd));
2113 fu_cv_sys_stat_statfs2_bsize=yes,
2114 fu_cv_sys_stat_statfs2_bsize=no,
2115 fu_cv_sys_stat_statfs2_bsize=no)])
2116 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2117 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2119 AC_DEFINE(STAT_STATFS2_BSIZE)
2123 if test $space = no; then
2125 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2126 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2127 [AC_TRY_RUN([#include <sys/types.h>
2128 #include <sys/statfs.h>
2132 exit (statfs (".", &fsd, sizeof fsd, 0));
2134 fu_cv_sys_stat_statfs4=yes,
2135 fu_cv_sys_stat_statfs4=no,
2136 fu_cv_sys_stat_statfs4=no)])
2137 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2138 if test $fu_cv_sys_stat_statfs4 = yes; then
2140 AC_DEFINE(STAT_STATFS4)
2144 if test $space = no; then
2146 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2147 member (4.4BSD and NetBSD)])
2148 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2149 [AC_TRY_RUN([#include <sys/types.h>
2150 #ifdef HAVE_SYS_PARAM_H
2151 #include <sys/param.h>
2153 #ifdef HAVE_SYS_MOUNT_H
2154 #include <sys/mount.h>
2160 exit (statfs (".", &fsd));
2162 fu_cv_sys_stat_statfs2_fsize=yes,
2163 fu_cv_sys_stat_statfs2_fsize=no,
2164 fu_cv_sys_stat_statfs2_fsize=no)])
2165 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2166 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2168 AC_DEFINE(STAT_STATFS2_FSIZE)
2172 if test $space = no; then
2174 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2175 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2176 [AC_TRY_RUN([#include <sys/types.h>
2177 #ifdef HAVE_SYS_PARAM_H
2178 #include <sys/param.h>
2180 #ifdef HAVE_SYS_MOUNT_H
2181 #include <sys/mount.h>
2183 #ifdef HAVE_SYS_FS_TYPES_H
2184 #include <sys/fs_types.h>
2189 /* Ultrix's statfs returns 1 for success,
2190 0 for not mounted, -1 for failure. */
2191 exit (statfs (".", &fsd) != 1);
2193 fu_cv_sys_stat_fs_data=yes,
2194 fu_cv_sys_stat_fs_data=no,
2195 fu_cv_sys_stat_fs_data=no)])
2196 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2197 if test $fu_cv_sys_stat_fs_data = yes; then
2199 AC_DEFINE(STAT_STATFS2_FS_DATA)
2204 # As a gating factor for large file support, in order to
2205 # use <4GB files we must have the following minimal support
2207 # long long, and a 64 bit off_t or off64_t.
2208 # If we don't have all of these then disable large
2211 AC_MSG_CHECKING([if large file support can be enabled])
2213 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2214 #include <sys/types.h>
2220 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2221 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2222 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2224 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2226 AC_ARG_WITH(spinlocks, [ --with-spinlocks use spin locks instead of fcntl locks ])
2227 if test "x$with_spinlocks" = "xyes"; then
2228 AC_DEFINE(USE_SPINLOCKS)
2232 AC_DEFINE(SPARC_SPINLOCKS)
2235 i386|i486|i586|i686)
2236 AC_DEFINE(INTEL_SPINLOCKS)
2240 AC_DEFINE(MIPS_SPINLOCKS)
2244 AC_DEFINE(POWERPC_SPINLOCKS)
2249 #################################################
2250 # check for ACL support
2252 AC_MSG_CHECKING(whether to support ACLs)
2253 AC_ARG_WITH(acl-support,
2254 [ --with-acl-support Include ACL support
2255 --without-acl-support Don't include ACL support (default)],
2256 [ case "$withval" in
2261 AC_MSG_RESULT(Using UnixWare ACLs)
2262 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2265 AC_MSG_RESULT(Using solaris ACLs)
2266 AC_DEFINE(HAVE_SOLARIS_ACLS)
2269 AC_MSG_RESULT(Using IRIX ACLs)
2270 AC_DEFINE(HAVE_IRIX_ACLS)
2273 AC_MSG_RESULT(Using AIX ACLs)
2274 AC_DEFINE(HAVE_AIX_ACLS)
2277 AC_CHECK_LIB(acl,acl_get_file)
2278 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2279 AC_TRY_LINK([#include <sys/types.h>
2280 #include <sys/acl.h>],
2281 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2282 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2283 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2284 AC_MSG_RESULT(Using posix ACLs)
2285 AC_DEFINE(HAVE_POSIX_ACLS)
2286 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2287 AC_TRY_LINK([#include <sys/types.h>
2288 #include <sys/acl.h>],
2289 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2290 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2291 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2292 AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2300 AC_DEFINE(HAVE_NO_ACLS)
2303 AC_DEFINE(HAVE_NO_ACLS)
2307 #################################################
2308 # check whether winbind is supported on this platform
2310 AC_MSG_CHECKING(whether to compile winbind)
2314 WINBIND_TARGETS="\$(WINBIND_PROGS)"
2315 WINBIND_STARGETS="\$(WINBIND_SPROGS)"
2318 WINBIND_STARGETS="$WINBIND_STARGETS \$(WINBIND_PAM_PROGS)"
2324 winbind_no_reason=", unsupported on $host_os"
2328 AC_ARG_WITH(winbind,
2329 [ --with-winbind Build winbind library (default, if supported by OS)
2330 --without-winbind Don't build winbind library],
2341 if test x"$WINBIND_TARGETS" = x; then
2342 AC_MSG_RESULT(no$winbind_no_reason)
2347 AC_SUBST(WINBIND_TARGETS)
2348 AC_SUBST(WINBIND_STARGETS)
2350 #################################################
2351 # final configure stuff
2353 echo "checking configure summary"
2354 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2355 echo "configure OK";,
2356 AC_MSG_ERROR([summary failure. Aborting config]),:)
2361 AC_OUTPUT(include/stamp-h Makefile)