1 dnl -*- mode: m4-mode -*-
2 dnl Process this file with autoconf to produce a configure script.
4 dnl disabled 2.53 requirement - we do work with 2.52 on suse 7.3 for example
8 AC_INIT(include/includes.h)
9 AC_CONFIG_HEADER(include/config.h)
14 #################################################
15 # Directory handling stuff to support both the
16 # legacy SAMBA directories and FHS compliant
18 AC_PREFIX_DEFAULT(/usr/local/samba)
21 [ --with-fhs Use FHS-compliant paths (default=no)],
22 configdir="${sysconfdir}/samba"
23 lockdir="\${VARDIR}/cache/samba"
24 piddir="\${VARDIR}/run/samba"
25 logfilebase="\${VARDIR}/log/samba"
26 privatedir="\${CONFIGDIR}/private"
27 libdir="\${prefix}/lib/samba"
28 swatdir="\${DATADIR}/samba/swat",
29 configdir="\${LIBDIR}"
30 logfilebase="\${VARDIR}"
31 lockdir="\${VARDIR}/locks"
32 piddir="\${VARDIR}/locks"
33 privatedir="\${prefix}/private"
34 swatdir="\${prefix}/swat")
36 #################################################
37 # set private directory location
38 AC_ARG_WITH(privatedir,
39 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
43 # Just in case anybody calls it without argument
45 AC_MSG_WARN([--with-privatedir called without argument - will use default])
52 #################################################
53 # set lock directory location
55 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
59 # Just in case anybody calls it without argument
61 AC_MSG_WARN([--with-lockdir called without argument - will use default])
68 #################################################
69 # set pid directory location
71 [ --with-piddir=DIR Where to put pid files ($ac_default_prefix/var/locks)],
75 # Just in case anybody calls it without argument
77 AC_MSG_WARN([--with-piddir called without argument - will use default])
84 #################################################
85 # set SWAT directory location
87 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
91 # Just in case anybody does it
93 AC_MSG_WARN([--with-swatdir called without argument - will use default])
100 #################################################
101 # set configuration directory location
102 AC_ARG_WITH(configdir,
103 [ --with-configdir=DIR Where to put configuration files (\$libdir)],
107 # Just in case anybody does it
109 AC_MSG_WARN([--with-configdir called without argument - will use default])
116 #################################################
117 # set log directory location
118 AC_ARG_WITH(logfilebase,
119 [ --with-logfilebase=DIR Where to put log files (\$(VARDIR))],
123 # Just in case anybody does it
125 AC_MSG_WARN([--with-logfilebase called without argument - will use default])
128 logfilebase="$withval"
135 AC_SUBST(logfilebase)
141 dnl Unique-to-Samba variables we'll be playing with.
151 AC_SUBST(INSTALLCLIENTCMD_SH)
152 AC_SUBST(INSTALLCLIENTCMD_A)
153 AC_SUBST(LIBSMBCLIENT_SHARED)
154 AC_SUBST(LIBSMBCLIENT)
158 AC_SUBST(SHLIB_PROGS)
160 AC_SUBST(EXTRA_BIN_PROGS)
161 AC_SUBST(EXTRA_SBIN_PROGS)
162 AC_SUBST(EXTRA_ALL_TARGETS)
165 [ --enable-debug Turn on compiler debugging information (default=no)],
166 [if eval "test x$enable_debug = xyes"; then
167 CFLAGS="${CFLAGS} -gstabs"
170 AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings and debugging (default=no)],
171 [if eval "test x$enable_developer = xyes"; then
173 CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
176 AC_ARG_ENABLE(krb5developer, [ --enable-krb5developer Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
177 [if eval "test x$enable_krb5developer = xyes"; then
179 CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
182 AC_ARG_ENABLE(dmalloc, [ --enable-dmalloc Enable heap debugging [default=no]])
184 if test "x$enable_dmalloc" = xyes
186 AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
187 AC_DEFINE(DMALLOC_FUNC_CHECK, 1,
188 [Define to check invariants around some common functions])
189 LIBS="$LIBS -ldmalloc"
192 dnl Checks for programs.
195 AC_PATH_PROG(PERL, perl)
197 # compile with optimization and without debugging by default, but
198 # allow people to set their own preference.
199 if test "x$CFLAGS" = x
201 CFLAGS="-O ${CFLAGS}"
204 dnl Check if we use GNU ld
208 dnl needed before AC_TRY_COMPILE
211 dnl look for executable suffix
214 dnl Check if C compiler understands -c and -o at the same time
216 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
223 AC_CACHE_CHECK([that the C compiler can precompile header files],samba_cv_precompiled_headers, [
224 dnl Check whether the compiler can generate precompiled headers
226 if ${CC-cc} conftest.h && test -f conftest.h.gch; then
227 samba_cv_precompiled_headers=yes
229 samba_cv_precompiled_headers=no
232 if test x"$samba_cv_precompiled_headers" = x"yes"; then
235 AC_SUBST(PCH_AVAILABLE)
238 dnl Check if the C compiler understands volatile (it should, being ANSI).
239 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
240 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
241 samba_cv_volatile=yes,samba_cv_volatile=no)])
242 if test x"$samba_cv_volatile" = x"yes"; then
243 AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
249 dnl Add #include for broken IRIX header files
251 *irix6*) AC_ADD_INCLUDE(<standards.h>)
255 AC_VALIDATE_CACHE_SYSTEM_TYPE
259 dnl Add modules that have to be built by default here
260 dnl These have to be built static:
261 default_static_modules="pdb_smbpasswd auth_sam auth_unix auth_builtin ntvfs_ipc ntvfs_simple ntvfs_print ntvfs_cifs"
263 dnl These are preferably build shared, and static if dlopen() is not available
264 default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_netatalk vfs_fake_perms"
266 if test "x$developer" = xyes; then
267 default_static_modules="$default_static_modules"
268 default_shared_modules="$default_shared_modules charset_weird"
272 # Config CPPFLAG settings for strange OS's that must be set
273 # before other tests.
276 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
280 # mmap on HPUX is completely broken...
281 AC_DEFINE(MMAP_BLACKLIST, 1, [Whether MMAP is broken])
282 if test $ac_cv_prog_cc_Ae = yes; then
283 CPPFLAGS="$CPPFLAGS -Ae"
286 # Defines needed for HPUX support.
287 # HPUX has bigcrypt but (sometimes?) doesn't use it for
288 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
292 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
293 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
294 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
295 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
296 AC_DEFINE(_ALIGNMENT_REQUIRED,1,[Required alignment])
297 AC_DEFINE(_MAX_ALIGNMENT,4,[Maximum alignment])
300 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
301 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
302 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
303 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
304 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to use large file support])
305 AC_DEFINE(_ALIGNMENT_REQUIRED, 1, [Required alignment])
306 AC_DEFINE(_MAX_ALIGNMENT, 4, [Maximum alignment])
313 # CRAY Unicos has broken const handling
315 AC_MSG_RESULT([disabling const])
316 CPPFLAGS="$CPPFLAGS -Dconst="
320 # AIX4.x doesn't even admit to having large
321 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
324 AC_MSG_RESULT([enabling large file support])
325 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
326 AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
329 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
330 # to the existance of large files..
331 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
332 # recommendations on large file support, however it makes the
333 # compile work using gcc 2.7 and 2.8, whereas using the Sun
334 # recommendation makes the compile fail on gcc2.7. JRA.
338 5.0*|5.1*|5.2*|5.3*|5.5*)
339 AC_MSG_RESULT([no large file support])
342 AC_MSG_RESULT([enabling large file support])
343 if test "$ac_cv_prog_gcc" = yes; then
344 ${CC-cc} -v >conftest.c 2>&1
345 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
347 case "$ac_cv_gcc_compiler_version_number" in
348 *"gcc version 2.6"*|*"gcc version 2.7"*)
349 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
350 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
353 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
354 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
355 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
359 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
360 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
361 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
367 # VOS may need to have POSIX support and System V compatibility enabled.
374 CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=199506L"
375 AC_DEFINE(_POSIX_C_SOURCE, 199506L, [Whether to enable POSIX support])
379 *-D_SYSV*|*-D_SVID_SOURCE*)
382 CPPFLAGS="$CPPFLAGS -D_SYSV"
383 AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
387 # Tests needed for SINIX large file support.
390 if test $host = mips-sni-sysv4 ; then
391 AC_MSG_CHECKING([for LFS support])
392 old_CPPFLAGS="$CPPFLAGS"
393 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
397 #if _LFS64_LARGEFILE == 1
402 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
403 CPPFLAGS="$old_CPPFLAGS"
404 if test x$SINIX_LFS_SUPPORT = xyes ; then
405 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
406 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
407 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
408 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
409 LIBS="`getconf LFS64_LIBS` $LIBS"
411 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
415 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
418 AC_MSG_CHECKING([for LFS support])
419 old_CPPFLAGS="$CPPFLAGS"
420 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
423 #include <sys/utsname.h>
425 #if _LFS64_LARGEFILE == 1
430 /* Ensure this is glibc 2.2 or higher */
431 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
432 int libc_major = __GLIBC__;
433 int libc_minor = __GLIBC_MINOR__;
441 /* Ensure this is kernel 2.4 or higher */
444 release = uts.release;
445 major = atoi(strsep(&release, "."));
446 minor = atoi(strsep(&release, "."));
448 if (major > 2 || (major == 2 && minor > 3))
455 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
456 CPPFLAGS="$old_CPPFLAGS"
457 if test x$LINUX_LFS_SUPPORT = xyes ; then
458 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
459 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
460 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
461 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
463 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
467 AC_MSG_CHECKING([for LFS support])
468 old_CPPFLAGS="$CPPFLAGS"
469 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
473 #if _LFS64_LARGEFILE == 1
478 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
479 CPPFLAGS="$old_CPPFLAGS"
480 if test x$GLIBC_LFS_SUPPORT = xyes ; then
481 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
482 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
483 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
485 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
495 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
496 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
497 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
498 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
499 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
500 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
501 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
502 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h ldap.h lber.h dlfcn.h)
503 AC_CHECK_HEADERS(sys/syslog.h syslog.h)
506 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
507 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
511 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
512 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
513 if test x"$ac_cv_header_shadow_h" = x"yes"; then
514 AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
518 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
519 AC_CHECK_HEADERS(nss.h nss_common.h ns_api.h sys/security.h security/pam_appl.h security/pam_modules.h)
520 AC_CHECK_HEADERS(stropts.h poll.h)
521 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
522 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
524 # For experimental utmp support (lastlog on some BSD-like systems)
525 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
527 # For quotas on Veritas VxFS filesystems
528 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
530 # For quotas on Linux XFS filesystems
531 AC_CHECK_HEADERS(linux/xqm.h)
532 AC_CHECK_HEADERS(xfs/xqm.h)
534 AC_CHECK_SIZEOF(int,cross)
535 AC_CHECK_SIZEOF(long,cross)
536 AC_CHECK_SIZEOF(short,cross)
551 AC_CHECK_TYPE(ino_t,unsigned)
552 AC_CHECK_TYPE(loff_t,off_t)
553 AC_CHECK_TYPE(offset_t,loff_t)
554 AC_CHECK_TYPE(ssize_t, int)
555 AC_CHECK_TYPE(wchar_t, unsigned short)
557 ############################################
558 # for cups support we need libcups, and a handful of header files
561 [ --enable-cups Turn on CUPS support (default=auto)])
563 if test x$enable_cups != xno; then
564 AC_PATH_PROG(CUPS_CONFIG, cups-config)
566 if test "x$CUPS_CONFIG" != x; then
567 AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
568 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
569 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
570 PRINTLIBS="$PRINTLIBS `$CUPS_CONFIG --libs`"
574 ############################################
575 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code
576 AC_SEARCH_LIBS(dlopen, [dl])
577 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
579 ############################################
580 # check if the compiler can do immediate structures
581 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
585 typedef struct {unsigned x;} FOOBAR;
586 #define X_FOOBAR(x) ((FOOBAR) { x })
587 #define FOO_ONE X_FOOBAR(1)
595 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
596 if test x"$samba_cv_immediate_structures" = x"yes"; then
597 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures])
600 ############################################
601 # check for unix domain sockets
602 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
604 #include <sys/types.h>
607 #include <sys/socket.h>
608 #include <sys/un.h>],
610 struct sockaddr_un sunaddr;
611 sunaddr.sun_family = AF_UNIX;
613 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
614 if test x"$samba_cv_unixsocket" = x"yes"; then
615 AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support])
619 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
621 #include <sys/types.h>
626 #include <sys/socket.h>],[socklen_t i = 0],
627 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
628 if test x"$samba_cv_socklen_t" = x"yes"; then
629 AC_DEFINE(HAVE_SOCKLEN_T_TYPE,1,[Whether we have the variable type socklen_t])
632 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
634 #include <sys/types.h>
639 #include <signal.h>],[sig_atomic_t i = 0],
640 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
641 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
642 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
645 # stupid headers have the functions but no declaration. grrrr.
646 AC_HAVE_DECL(errno, [#include <errno.h>])
647 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
648 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
649 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
650 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
651 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
652 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
654 # and glibc has setresuid under linux but the function does
655 # nothing until kernel 2.1.44! very dumb.
656 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
657 AC_TRY_RUN([#include <errno.h>
658 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
659 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
660 if test x"$samba_cv_have_setresuid" = x"yes"; then
661 AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
664 # Do the same check for setresguid...
666 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
667 AC_TRY_RUN([#include <unistd.h>
669 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
670 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
671 if test x"$samba_cv_have_setresgid" = x"yes"; then
672 AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
677 ###############################################
678 # Readline included by default unless explicitly asked not to
679 test "${with_readline+set}" != "set" && with_readline=yes
681 # test for where we get readline() from
682 AC_MSG_CHECKING(whether to use readline)
683 AC_ARG_WITH(readline,
684 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto) ],
685 [ case "$with_readline" in
689 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
690 AC_CHECK_HEADERS(readline/history.h)
692 AC_CHECK_HEADERS(readline.h readline/readline.h,[
693 for termlib in ncurses curses termcap terminfo termlib tinfo; do
694 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
696 AC_CHECK_LIB(readline, rl_callback_handler_install,
697 [TERMLIBS="-lreadline $TERMLIBS"
698 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
699 break], [TERMLIBS=], $TERMLIBS)])
707 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
708 # alternate readline path
710 _cppflags=${CPPFLAGS}
712 # Add additional search path
713 LDFLAGS="-L$with_readline/lib $LDFLAGS"
714 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
716 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
717 AC_CHECK_HEADERS(readline/history.h)
719 AC_CHECK_HEADERS(readline.h readline/readline.h,[
720 for termlib in ncurses curses termcap terminfo termlib; do
721 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
723 AC_CHECK_LIB(readline, rl_callback_handler_install,
724 [TERMLDFLAGS="-L$with_readline/lib"
725 TERMCPPFLAGS="-I$with_readline/include"
726 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
727 TERMLIBS="-lreadline $TERMLIBS"
728 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
729 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
737 AC_SUBST(TERMLDFLAGS)
739 # The readline API changed slightly from readline3 to readline4, so
740 # code will generate warnings on one of them unless we have a few
742 AC_CHECK_LIB(readline, rl_completion_matches,
743 [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
744 [Do we have rl_completion_matches?])],
748 # The following test taken from the cvs sources
749 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
750 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
751 # libsocket.so which has a bad implementation of gethostbyname (it
752 # only looks in /etc/hosts), so we only look for -lsocket if we need
754 AC_CHECK_FUNCS(connect)
755 if test x"$ac_cv_func_connect" = x"no"; then
758 *) AC_CHECK_LIB(nsl_s, printf) ;;
762 *) AC_CHECK_LIB(nsl, printf) ;;
766 *) AC_CHECK_LIB(socket, connect) ;;
770 *) AC_CHECK_LIB(inet, connect) ;;
772 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
774 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
775 test x"$ac_cv_lib_inet_connect" = x"yes"; then
776 # ac_cv_func_connect=yes
777 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
778 AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
782 ###############################################
783 # test for where we get yp_get_default_domain() from
784 AC_SEARCH_LIBS(yp_get_default_domain, [nsl])
785 AC_CHECK_FUNCS(yp_get_default_domain)
787 # Check if we have execl, if not we need to compile smbrun.
788 AC_CHECK_FUNCS(execl)
789 if test x"$ac_cv_func_execl" = x"no"; then
790 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)"
793 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
794 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid)
795 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
796 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
797 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
798 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
799 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
800 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
801 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
802 AC_CHECK_FUNCS(syslog vsyslog getgrouplist timegm)
803 # setbuffer, shmget, shm_open are needed for smbtorture
804 AC_CHECK_FUNCS(setbuffer shmget shm_open)
806 # syscall() is needed for smbwrapper.
807 AC_CHECK_FUNCS(syscall)
809 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
810 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
811 AC_CHECK_FUNCS(__getcwd _getcwd)
812 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
813 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
814 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
815 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
816 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
817 AC_CHECK_FUNCS(getdirentries _write __write _fork __fork)
818 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
819 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
820 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
821 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
822 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
825 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
828 if test x$ac_cv_func_stat64 = xno ; then
829 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
831 #if defined(HAVE_UNISTD_H)
834 #include <sys/stat.h>
835 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
836 AC_MSG_RESULT([$ac_cv_func_stat64])
837 if test x$ac_cv_func_stat64 = xyes ; then
838 AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
842 if test x$ac_cv_func_lstat64 = xno ; then
843 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
845 #if defined(HAVE_UNISTD_H)
848 #include <sys/stat.h>
849 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
850 AC_MSG_RESULT([$ac_cv_func_lstat64])
851 if test x$ac_cv_func_lstat64 = xyes ; then
852 AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
856 if test x$ac_cv_func_fstat64 = xno ; then
857 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
859 #if defined(HAVE_UNISTD_H)
862 #include <sys/stat.h>
863 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
864 AC_MSG_RESULT([$ac_cv_func_fstat64])
865 if test x$ac_cv_func_fstat64 = xyes ; then
866 AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
870 #####################################
871 # we might need the resolv library on some systems
872 AC_CHECK_LIB(resolv, dn_expand)
875 # Check for the functions putprpwnam, set_auth_parameters,
876 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
877 # Needed for OSF1 and HPUX.
880 AC_LIBTESTFUNC(security, putprpwnam)
881 AC_LIBTESTFUNC(sec, putprpwnam)
883 AC_LIBTESTFUNC(security, set_auth_parameters)
884 AC_LIBTESTFUNC(sec, set_auth_parameters)
886 # UnixWare 7.x has its getspnam in -lgen
887 AC_LIBTESTFUNC(gen, getspnam)
889 AC_LIBTESTFUNC(security, getspnam)
890 AC_LIBTESTFUNC(sec, getspnam)
892 AC_LIBTESTFUNC(security, bigcrypt)
893 AC_LIBTESTFUNC(sec, bigcrypt)
895 AC_LIBTESTFUNC(security, getprpwnam)
896 AC_LIBTESTFUNC(sec, getprpwnam)
898 # Assume non-shared by default and override below
901 # these are the defaults, good for lots of systems
911 if test "$enable_shared" = "yes"; then
912 # this bit needs to be modified for each OS that is suported by
913 # smbwrapper. You need to specify how to created a shared library and
914 # how to compile C code to produce PIC object files
916 AC_MSG_CHECKING([ability to build shared libraries])
918 # and these are for particular systems
920 *linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux])
923 DYNEXP="-Wl,--export-dynamic"
925 SONAMEFLAG="-Wl,-soname="
926 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
928 *solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
932 if test "${GCC}" = "yes"; then
934 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
939 ## ${CFLAGS} added for building 64-bit shared
940 ## libs using Sun's Compiler
941 LDSHFLAGS="-G \${CFLAGS}"
945 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
947 *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
951 PICFLAG="-KPIC" # Is this correct for SunOS
952 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
954 *netbsd* | *freebsd*) BLDSHARED="true"
956 DYNEXP="-Wl,--export-dynamic"
957 SONAMEFLAG="-Wl,-soname,"
958 PICFLAG="-fPIC -DPIC"
959 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
961 *openbsd*) BLDSHARED="true"
963 DYNEXP="-Wl,-Bdynamic"
964 SONAMEFLAG="-Wl,-soname,"
966 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
968 *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
970 *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
973 ATTEMPT_WRAP32_BUILD=yes
975 LDSHFLAGS="-set_version sgi1.0 -shared"
976 SONAMEFLAG="-soname "
978 if test "${GCC}" = "yes"; then
983 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
985 *aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
987 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
988 DYNEXP="-Wl,-brtl,-bexpall"
990 if test "${GCC}" != "yes"; then
991 ## for funky AIX compiler using strncpy()
992 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
995 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
997 *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
999 # Use special PIC flags for the native HP-UX compiler.
1000 if test $ac_cv_prog_cc_Ae = yes; then
1003 LDSHFLAGS="-B symbolic -b -z"
1008 AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
1010 *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx])
1011 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1013 *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
1016 SONAMEFLAG="-Wl,-soname,"
1018 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1020 *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix])
1021 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1023 *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
1026 SONAMEFLAG="-Wl,-soname,"
1028 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1030 *next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
1031 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1033 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
1034 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1036 *sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1038 *-univel-*) if [ test "$GCC" != yes ]; then
1039 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1044 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
1046 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1049 *sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1050 if [ test "$GCC" != yes ]; then
1051 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1054 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1056 *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
1061 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1065 AC_MSG_RESULT($BLDSHARED)
1066 AC_MSG_CHECKING([linker flags for shared libraries])
1067 AC_MSG_RESULT([$LDSHFLAGS])
1068 AC_MSG_CHECKING([compiler flags for position-independent code])
1069 AC_MSG_RESULT([$PICFLAGS])
1072 #######################################################
1073 # test whether building a shared library actually works
1074 if test $BLDSHARED = true; then
1075 AC_CACHE_CHECK([whether building shared libraries actually works],
1076 [ac_cv_shlib_works],[
1077 ac_cv_shlib_works=no
1078 # try building a trivial shared library
1079 if test "$PICSUFFIX" = "po"; then
1080 $CC $CPPFLAGS $CFLAGS $PICFLAG -c -o shlib.po ${srcdir-.}/tests/shlib.c &&
1081 $CC $CPPFLAGS $CFLAGS `eval echo $LDSHFLAGS` -o shlib.so shlib.po &&
1082 ac_cv_shlib_works=yes
1084 $CC $CPPFLAGS $CFLAGS $PICFLAG -c -o shlib.$PICSUFFIX ${srcdir-.}/tests/shlib.c &&
1085 mv shlib.$PICSUFFIX shlib.po &&
1086 $CC $CPPFLAGS $CFLAGS `eval echo $LDSHFLAGS` -o shlib.so shlib.po &&
1087 ac_cv_shlib_works=yes
1089 rm -f shlib.so shlib.po
1091 if test $ac_cv_shlib_works = no; then
1098 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1099 AC_TRY_RUN([#include <stdio.h>
1100 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1101 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1102 if test x"$samba_cv_have_longlong" = x"yes"; then
1103 AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1107 # Check if the compiler supports the LL prefix on long long integers.
1110 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1111 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1112 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1113 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1114 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
1118 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1119 AC_TRY_RUN([#include <stdio.h>
1120 #include <sys/stat.h>
1121 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1122 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1123 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1124 AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1127 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1129 #if defined(HAVE_UNISTD_H)
1133 #include <sys/stat.h>
1134 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1135 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1136 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1137 AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1140 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1141 AC_TRY_RUN([#include <stdio.h>
1142 #include <sys/stat.h>
1143 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1144 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1145 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1146 AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1149 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1151 #if defined(HAVE_UNISTD_H)
1155 #include <sys/stat.h>
1156 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1157 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1158 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1159 AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1162 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1164 #if defined(HAVE_UNISTD_H)
1168 #include <sys/stat.h>
1169 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1170 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1171 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1172 AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
1175 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1177 #if defined(HAVE_UNISTD_H)
1180 #include <sys/types.h>
1181 #include <dirent.h>],
1182 [struct dirent64 de;],
1183 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1184 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1185 AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1188 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1190 #if defined(HAVE_UNISTD_H)
1193 #include <sys/types.h>
1194 main() { dev_t dev; int i = major(dev); return 0; }],
1195 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1196 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1197 AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
1200 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1202 #if defined(HAVE_UNISTD_H)
1205 #include <sys/types.h>
1206 main() { dev_t dev; int i = minor(dev); return 0; }],
1207 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1208 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1209 AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
1212 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1213 AC_TRY_RUN([#include <stdio.h>
1214 main() { char c; c=250; exit((c > 0)?0:1); }],
1215 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1216 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1217 AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1220 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1221 AC_TRY_COMPILE([#include <sys/types.h>
1222 #include <sys/socket.h>
1223 #include <netinet/in.h>],
1224 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1225 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1226 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1227 AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
1230 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1231 AC_TRY_COMPILE([#include <sys/types.h>
1233 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1234 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1235 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1236 AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
1239 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1240 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1241 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1242 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1243 AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
1246 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1248 #include <sys/time.h>
1250 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1251 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1252 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1253 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available])
1256 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE_VA_COPY,[
1257 AC_TRY_LINK([#include <stdarg.h>
1258 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1259 samba_cv_HAVE_VA_COPY=yes,samba_cv_HAVE_VA_COPY=no)])
1260 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1261 AC_DEFINE(HAVE_VA_COPY,1,[Whether __va_copy() is available])
1264 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1266 #include <sys/types.h>
1268 void foo(const char *format, ...) {
1273 va_start(ap, format);
1274 len = vsnprintf(buf, 0, format, ap);
1276 if (len != 5) exit(1);
1278 va_start(ap, format);
1279 len = vsnprintf(0, 0, format, ap);
1281 if (len != 5) exit(1);
1283 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1287 main() { foo("hello"); }
1289 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1290 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1291 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
1294 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1295 AC_TRY_RUN([#include <sys/types.h>
1297 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1298 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1299 di->d_name[0] == 0) exit(0); exit(1);} ],
1300 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1301 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1302 AC_DEFINE(HAVE_BROKEN_READDIR,1,[Whether readdir() is broken])
1305 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1306 AC_TRY_COMPILE([#include <sys/types.h>
1307 #include <utime.h>],
1308 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1309 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1310 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1311 AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
1314 dnl utmp and utmpx come in many flavours
1315 dnl We need to check for many of them
1316 dnl But we don't need to do each and every one, because our code uses
1317 dnl mostly just the utmp (not utmpx) fields.
1319 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1321 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1322 AC_TRY_COMPILE([#include <sys/types.h>
1324 [struct utmp ut; ut.ut_name[0] = 'a';],
1325 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1326 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1327 AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
1330 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1331 AC_TRY_COMPILE([#include <sys/types.h>
1333 [struct utmp ut; ut.ut_user[0] = 'a';],
1334 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1335 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1336 AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
1339 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1340 AC_TRY_COMPILE([#include <sys/types.h>
1342 [struct utmp ut; ut.ut_id[0] = 'a';],
1343 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1344 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1345 AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
1348 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1349 AC_TRY_COMPILE([#include <sys/types.h>
1351 [struct utmp ut; ut.ut_host[0] = 'a';],
1352 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1353 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1354 AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
1357 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1358 AC_TRY_COMPILE([#include <sys/types.h>
1360 [struct utmp ut; time_t t; ut.ut_time = t;],
1361 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1362 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1363 AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
1366 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1367 AC_TRY_COMPILE([#include <sys/types.h>
1369 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
1370 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1371 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1372 AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
1375 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1376 AC_TRY_COMPILE([#include <sys/types.h>
1378 [struct utmp ut; ut.ut_type = 0;],
1379 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1380 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1381 AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
1384 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1385 AC_TRY_COMPILE([#include <sys/types.h>
1387 [struct utmp ut; ut.ut_pid = 0;],
1388 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1389 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1390 AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
1393 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1394 AC_TRY_COMPILE([#include <sys/types.h>
1396 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1397 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1398 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1399 AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
1402 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1403 AC_TRY_COMPILE([#include <sys/types.h>
1405 [struct utmp ut; ut.ut_addr = 0;],
1406 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1407 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1408 AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
1411 if test x$ac_cv_func_pututline = xyes ; then
1412 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1413 AC_TRY_COMPILE([#include <sys/types.h>
1415 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1416 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1417 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1418 AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
1422 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1423 AC_TRY_COMPILE([#include <sys/types.h>
1424 #include <utmpx.h>],
1425 [struct utmpx ux; ux.ut_syslen = 0;],
1426 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1427 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1428 AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
1432 ICONV_LOCATION=standard
1433 LOOK_DIRS="/usr /usr/local /sw"
1434 AC_ARG_WITH(libiconv,
1435 [ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1437 if test "$withval" = "no" ; then
1438 AC_MSG_ERROR(I won't take no for an answer)
1440 if test "$withval" != "yes" ; then
1441 LOOK_DIRS="$withval $LOOK_DIRS"
1447 for i in $LOOK_DIRS ; do
1449 save_LDFLAGS=$LDFLAGS
1450 save_CPPFLAGS=$CPPFLAGS
1451 CPPFLAGS="-I$i/include"
1454 export LDFLAGS LIBS CPPFLAGS
1455 dnl Try to find iconv(3)
1458 CPPFLAGS=$save_CPPFLAGS
1459 if test -n "$ICONV_FOUND" ; then
1460 LDFLAGS=$save_LDFLAGS
1461 LIB_ADD_DIR(LDFLAGS, "$i/lib")
1462 CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
1463 LIBS="$save_LIBS $LIBS"
1465 export LDFLAGS LIBS CPPFLAGS
1468 LDFLAGS=$save_LDFLAGS
1470 export LDFLAGS LIBS CPPFLAGS
1475 # check for iconv in libc
1476 AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1480 iconv_t cd = iconv_open("ASCII", "UCS-2LE");
1481 if (cd == 0 || cd == (iconv_t)-1) return -1;
1485 samba_cv_HAVE_NATIVE_ICONV=yes,samba_cv_HAVE_NATIVE_ICONV=no,samba_cv_HAVE_NATIVE_ICONV=cross)])
1486 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1487 AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
1490 if test x"$ICONV_FOUND" = x"no" -o x"$samba_cv_HAVE_NATIVE_ICONV" != x"yes" ; then
1491 AC_MSG_WARN([Sufficient support for iconv function was not found.
1492 Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!])
1496 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1498 #include <sys/types.h>
1501 #define F_GETLEASE 1025
1504 int fd = open("/dev/null", O_RDONLY);
1505 return fcntl(fd, F_GETLEASE, 0) == -1;
1508 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1509 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1510 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
1513 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1515 #include <sys/types.h>
1519 #define F_NOTIFY 1026
1522 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1525 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1526 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1527 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
1530 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1532 #include <sys/types.h>
1535 #include <sys/file.h>
1537 #define LOCK_MAND 32
1538 #define LOCK_READ 64
1541 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1544 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1545 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1546 AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
1552 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1553 AC_TRY_COMPILE([#include <sys/types.h>
1554 #include <fcntl.h>],
1555 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1556 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1557 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1558 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
1561 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1562 AC_TRY_RUN([#include <sys/types.h>
1563 #include <sys/capability.h>
1566 if ((cap = cap_get_proc()) == NULL)
1568 cap->cap_effective |= CAP_NETWORK_MGT;
1569 cap->cap_inheritable |= CAP_NETWORK_MGT;
1574 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1575 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1576 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES,1,[Whether IRIX specific capabilities are available])
1580 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1581 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1584 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1585 AC_TRY_COMPILE([#include <sys/types.h>
1586 #if defined(HAVE_RPC_RPC_H)
1587 #include <rpc/rpc.h>
1590 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1591 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1592 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
1595 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1596 AC_TRY_COMPILE([#include <sys/types.h>
1597 #if defined(HAVE_RPC_RPC_H)
1598 #include <rpc/rpc.h>
1601 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1602 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1603 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
1606 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1607 AC_TRY_COMPILE([#include <sys/types.h>
1608 #if defined(HAVE_RPC_RPC_H)
1609 #include <rpc/rpc.h>
1612 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1613 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1614 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
1617 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1618 AC_TRY_COMPILE([#include <sys/types.h>
1619 #if defined(HAVE_RPC_RPC_H)
1620 #include <rpc/rpc.h>
1623 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1624 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1625 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
1629 dnl Some systems (SCO) have a problem including
1630 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1631 dnl as a #define in <prot.h> and as part of an enum
1635 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1636 AC_TRY_COMPILE([#include <sys/types.h>
1637 #ifdef HAVE_SYS_SECURITY_H
1638 #include <sys/security.h>
1640 #endif /* HAVE_SYS_SECURITY_H */
1641 #if defined(HAVE_RPC_RPC_H)
1642 #include <rpc/rpc.h>
1645 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1646 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1647 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
1650 AC_MSG_CHECKING([for test routines])
1651 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1653 AC_MSG_ERROR([cant find test code. Aborting config]),
1654 AC_MSG_WARN([cannot run when cross-compiling]))
1656 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1657 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1658 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1659 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1660 AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
1663 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1664 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1665 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1666 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1667 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1668 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1670 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1673 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1674 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1675 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1676 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1677 AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
1680 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1681 SAVE_CPPFLAGS="$CPPFLAGS"
1682 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper"
1684 #define REPLACE_GETPASS 1
1685 #define NO_CONFIG_H 1
1686 #define main dont_declare_main
1687 #include "${srcdir-.}/lib/getsmbpass.c"
1689 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1690 CPPFLAGS="$SAVE_CPPFLAGS"
1692 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1693 AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced])
1696 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1699 #include <sys/types.h>
1700 #include <netinet/in.h>
1701 #ifdef HAVE_ARPA_INET_H
1702 #include <arpa/inet.h>
1704 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1705 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1706 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1708 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1709 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1710 AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced])
1713 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1714 AC_TRY_RUN([#include <stdlib.h>
1715 #include <sys/types.h>
1716 #include <sys/stat.h>
1720 char tpl[20]="/tmp/test.XXXXXX";
1721 int fd = mkstemp(tpl);
1722 if (fd == -1) exit(1);
1724 if (fstat(fd, &st) != 0) exit(1);
1725 if ((st.st_mode & 0777) != 0600) exit(1);
1728 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1729 samba_cv_HAVE_SECURE_MKSTEMP=no,
1730 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1731 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1732 AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
1735 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1736 AC_TRY_RUN([#include <unistd.h>
1737 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1738 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1739 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1740 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX,1,[Whether sysconf(_SC_NGROUPS_MAX) is available])
1743 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1744 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1745 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1746 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1747 AC_DEFINE(HAVE_ROOT,1,[Whether current user is root])
1749 AC_MSG_WARN(running as non-root will disable some tests)
1753 # look for a method of finding the list of network interfaces
1755 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1757 #define HAVE_IFACE_AIX 1
1758 #define AUTOCONF_TEST 1
1759 #include "confdefs.h"
1760 #include "${srcdir-.}/lib/interfaces.c"],
1761 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1762 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1763 iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
1766 if test $iface = no; then
1767 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1769 #define HAVE_IFACE_IFCONF 1
1770 #define AUTOCONF_TEST 1
1771 #include "confdefs.h"
1772 #include "${srcdir-.}/lib/interfaces.c"],
1773 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1774 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1775 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
1779 if test $iface = no; then
1780 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1782 #define HAVE_IFACE_IFREQ 1
1783 #define AUTOCONF_TEST 1
1784 #include "confdefs.h"
1785 #include "${srcdir-.}/lib/interfaces.c"],
1786 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1787 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1788 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
1793 ################################################
1794 # look for a method of setting the effective uid
1796 if test $seteuid = no; then
1797 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1799 #define AUTOCONF_TEST 1
1800 #define USE_SETRESUID 1
1801 #include "confdefs.h"
1802 #include "${srcdir-.}/lib/util_sec.c"],
1803 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1804 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1805 seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
1810 if test $seteuid = no; then
1811 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1813 #define AUTOCONF_TEST 1
1814 #define USE_SETREUID 1
1815 #include "confdefs.h"
1816 #include "${srcdir-.}/lib/util_sec.c"],
1817 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1818 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1819 seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
1823 if test $seteuid = no; then
1824 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1826 #define AUTOCONF_TEST 1
1827 #define USE_SETEUID 1
1828 #include "confdefs.h"
1829 #include "${srcdir-.}/lib/util_sec.c"],
1830 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1831 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1832 seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
1836 if test $seteuid = no; then
1837 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1839 #define AUTOCONF_TEST 1
1840 #define USE_SETUIDX 1
1841 #include "confdefs.h"
1842 #include "${srcdir-.}/lib/util_sec.c"],
1843 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1844 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1845 seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
1850 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1851 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1852 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1853 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1854 AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
1857 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1858 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1859 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1860 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1861 AC_DEFINE(FTRUNCATE_NEEDS_ROOT,1,[Whether ftruncate() needs root])
1864 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1865 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1866 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1867 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1868 AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
1871 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1872 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1873 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1874 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1875 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
1880 dnl Don't check for 64 bit fcntl locking if we know that the
1881 dnl glibc2.1 broken check has succeeded.
1884 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1886 #if defined(HAVE_UNISTD_H)
1896 #ifdef HAVE_SYS_FCNTL_H
1897 #include <sys/fcntl.h>
1899 main() { struct flock64 fl64;
1900 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1906 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1908 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1909 AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
1913 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
1914 AC_TRY_COMPILE([#include <sys/types.h>
1915 #include <sys/stat.h>
1916 #include <unistd.h>],
1917 [struct stat st; st.st_blocks = 0;],
1918 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
1919 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
1920 AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
1923 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
1924 AC_TRY_COMPILE([#include <sys/types.h>
1925 #include <sys/stat.h>
1926 #include <unistd.h>],
1927 [struct stat st; st.st_blksize = 0;],
1928 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
1929 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
1930 AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
1935 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
1937 #ifdef HAVE_SYS_VFS_H
1938 #include <sys/vfs.h>
1940 #ifdef HAVE_SYS_CAPABILITY_H
1941 #include <sys/capability.h>
1944 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
1945 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
1946 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
1951 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1952 AC_TRY_COMPILE([#include <sys/acl.h>
1953 #if defined(HAVE_RPCSVC_NIS_H)
1954 #include <rpcsvc/nis.h>
1957 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1958 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1959 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
1963 #################################################
1964 # check for smbwrapper support
1965 AC_MSG_CHECKING(whether to use smbwrapper)
1966 AC_ARG_WITH(smbwrapper,
1967 [ --with-smbwrapper Include SMB wrapper support (default=no) ],
1968 [ case "$withval" in
1971 AC_DEFINE(WITH_SMBWRAPPER,1,[Whether to include smbwrapper support])
1972 WRAPPROG="bin/smbsh\$(EXEEXT)"
1973 WRAP="bin/smbwrapper.$SHLIBEXT"
1975 if test x$ATTEMPT_WRAP32_BUILD = x; then
1978 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1981 # Conditions under which smbwrapper should not be built.
1983 if test x$PICFLAG = x; then
1984 echo No support for PIC code - disabling smbwrapper and smbsh
1988 elif test x$ac_cv_func_syscall = xno; then
1989 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1994 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $WRAPPROG $WRAP $WRAP32"
1995 SMBWRAPPER="$WRAPPROG $WRAP $WRAP32"
2004 #################################################
2005 # check for AFS clear-text auth support
2006 AC_MSG_CHECKING(whether to use AFS clear-text auth)
2008 [ --with-afs Include AFS clear-text auth support (default=no) ],
2009 [ case "$withval" in
2012 AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
2021 #################################################
2022 # check for pthread support
2023 AC_MSG_CHECKING(whether to use pthreads)
2024 AC_ARG_WITH(pthreads,
2025 [ --with-pthreads Include pthreads (default=no) ],
2026 [ case "$withval" in
2029 AC_DEFINE(WITH_PTHREADS,1,[Whether to use pthreads])
2030 SMBD_EXTRA_OBJS="smbd/process_thread.o"
2031 SMBD_EXTRA_LIBS="-lpthread"
2040 AC_SUBST(SMBD_EXTRA_OBJS)
2041 AC_SUBST(SMBD_EXTRA_LIBS)
2044 #################################################
2045 # check for the DFS clear-text auth system
2046 AC_MSG_CHECKING(whether to use DFS clear-text auth)
2048 [ --with-dce-dfs Include DCE/DFS clear-text auth support (default=no)],
2049 [ case "$withval" in
2052 AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
2061 #################################################
2062 # active directory support
2064 with_ads_support=yes
2065 AC_MSG_CHECKING([whether to use Active Directory])
2068 [ --with-ads Active Directory support (default yes)],
2069 [ case "$withval" in
2075 if test x"$with_ads_support" = x"yes"; then
2076 AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
2079 AC_MSG_RESULT($with_ads_support)
2082 if test x"$with_ads_support" = x"yes"; then
2084 #################################################
2085 # check for krb5-config from recent MIT and Heimdal kerberos 5
2086 AC_PATH_PROG(KRB5_CONFIG, krb5-config)
2087 AC_MSG_CHECKING(for working krb5-config)
2088 if test -x "$KRB5_CONFIG"; then
2089 LIBS="$LIBS `$KRB5_CONFIG --libs`"
2090 CFLAGS="$CFLAGS `$KRB5_CONFIG --cflags`"
2091 CPPFLAGS="$CPPFLAGS `$KRB5_CONFIG --cflags`"
2095 AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
2098 if test x$FOUND_KRB5 = x"no"; then
2099 #################################################
2100 # check for location of Kerberos 5 install
2101 AC_MSG_CHECKING(for kerberos 5 install path)
2103 [ --with-krb5=base-dir Locate Kerberos 5 support (default=/usr)],
2104 [ case "$withval" in
2111 CFLAGS="$CFLAGS -I$withval/include"
2112 CPPFLAGS="$CPPFLAGS -I$withval/include"
2113 LDFLAGS="$LDFLAGS -L$withval/lib"
2121 if test x$FOUND_KRB5 = x"no"; then
2122 #################################################
2123 # see if this box has the SuSE location for the heimdal kerberos implementation
2124 AC_MSG_CHECKING(for /usr/include/heimdal)
2125 if test -d /usr/include/heimdal; then
2126 if test -f /usr/lib/heimdal/lib/libkrb5.a; then
2128 CFLAGS="$CFLAGS -I/usr/include/heimdal"
2129 CPPFLAGS="$CPPFLAGS -I/usr/include/heimdal"
2130 LDFLAGS="$LDFLAGS -L/usr/lib/heimdal/lib"
2134 CFLAGS="$CFLAGS -I/usr/include/heimdal"
2135 CPPFLAGS="$CPPFLAGS -I/usr/include/heimdal"
2145 if test x$FOUND_KRB5 = x"no"; then
2146 #################################################
2147 # see if this box has the RedHat location for kerberos
2148 AC_MSG_CHECKING(for /usr/kerberos)
2149 if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
2151 LDFLAGS="$LDFLAGS -L/usr/kerberos/lib"
2152 CFLAGS="$CFLAGS -I/usr/kerberos/include"
2153 CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
2160 # now check for krb5.h. Some systems have the libraries without the headers!
2161 # note that this check is done here to allow for different kerberos
2163 AC_CHECK_HEADERS(krb5.h)
2165 # now check for gssapi headers. This is also done here to allow for
2166 # different kerberos include paths
2167 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h com_err.h)
2169 ##################################################################
2170 # we might need the k5crypto and com_err libraries on some systems
2171 AC_CHECK_LIB(com_err, _et_list, [LIBS="$LIBS -lcom_err"])
2172 AC_CHECK_LIB(k5crypto, krb5_encrypt_data, [LIBS="$LIBS -lk5crypto"])
2174 AC_CHECK_LIB(crypto, des_set_key, [LIBS="$LIBS -lcrypto"])
2175 AC_CHECK_LIB(asn1, copy_Authenticator, [LIBS="$LIBS -lasn1 -lroken"])
2176 # Heimdal checks. On static Heimdal gssapi must be linked before krb5.
2177 AC_CHECK_LIB(gssapi, gss_display_status, [LIBS="$LIBS -lgssapi -lkrb5 -lasn1";
2178 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])])
2180 AC_CHECK_LIB(krb5, krb5_set_real_time, [AC_DEFINE(HAVE_KRB5_SET_REAL_TIME,1,[Whether krb5_set_real_time is available])])
2181 AC_CHECK_LIB(krb5, krb5_set_default_in_tkt_etypes, [AC_DEFINE(HAVE_KRB5_SET_DEFAULT_IN_TKT_ETYPES,1,[Whether krb5_set_default_in_tkt_etypes, is available])])
2182 AC_CHECK_LIB(krb5, krb5_set_default_tgs_ktypes, [AC_DEFINE(HAVE_KRB5_SET_DEFAULT_TGS_KTYPES,1,[Whether krb5_set_default_tgs_ktypes is available])])
2184 AC_CHECK_LIB(krb5, krb5_principal2salt, [AC_DEFINE(HAVE_KRB5_PRINCIPAL2SALT,1,[Whether krb5_principal2salt is available])])
2185 AC_CHECK_LIB(krb5, krb5_use_enctype, [AC_DEFINE(HAVE_KRB5_USE_ENCTYPE,1,[Whether krb5_use_enctype is available])])
2186 AC_CHECK_LIB(krb5, krb5_string_to_key, [AC_DEFINE(HAVE_KRB5_STRING_TO_KEY,1,[Whether krb5_string_to_key is available])])
2187 AC_CHECK_LIB(krb5, krb5_get_pw_salt, [AC_DEFINE(HAVE_KRB5_GET_PW_SALT,1,[Whether krb5_get_pw_salt is available])])
2188 AC_CHECK_LIB(krb5, krb5_string_to_key_salt, [AC_DEFINE(HAVE_KRB5_STRING_TO_KEY_SALT,1,[Whether krb5_string_to_key_salt is available])])
2189 AC_CHECK_LIB(krb5, krb5_auth_con_setkey, [AC_DEFINE(HAVE_KRB5_AUTH_CON_SETKEY,1,[Whether krb5_auth_con_setkey is available])])
2190 AC_CHECK_LIB(krb5, krb5_auth_con_setuseruserkey, [AC_DEFINE(HAVE_KRB5_AUTH_CON_SETUSERUSERKEY,1,[Whether krb5_auth_con_setuseruserkey is available])])
2191 AC_CHECK_LIB(krb5, krb5_locate_kdc, [AC_DEFINE(HAVE_KRB5_LOCATE_KDC,1,[Whether krb5_locate_kdc is available])])
2192 AC_CHECK_LIB(krb5, krb5_get_permitted_enctypes, [AC_DEFINE(HAVE_KRB5_GET_PERMITTED_ENCTYPES,1,[Whether krb5_get_permitted_enctypes is available])])
2193 AC_CHECK_LIB(krb5, krb5_get_default_in_tkt_etypes, [AC_DEFINE(HAVE_KRB5_GET_DEFAULT_IN_TKT_ETYPES,1,[Whether krb5_get_default_in_tkt_etypes is available])])
2194 AC_CHECK_LIB(krb5, krb5_free_ktypes, [AC_DEFINE(HAVE_KRB5_FREE_KTYPES,1,[Whether krb5_free_ktypes is available])])
2196 AC_CACHE_CHECK([for addrtype in krb5_address],samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS,[
2197 AC_TRY_COMPILE([#include <krb5.h>],
2198 [krb5_address kaddr; kaddr.addrtype = ADDRTYPE_INET;],
2199 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=yes,samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=no)])
2200 if test x"$samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS" = x"yes"; then
2201 AC_DEFINE(HAVE_ADDRTYPE_IN_KRB5_ADDRESS,1,[Whether the krb5_address struct has a addrtype property])
2204 AC_CACHE_CHECK([for addr_type in krb5_address],samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,[
2205 AC_TRY_COMPILE([#include <krb5.h>],
2206 [krb5_address kaddr; kaddr.addr_type = KRB5_ADDRESS_INET;],
2207 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=yes,samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=no)])
2208 if test x"$samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS" = x"yes"; then
2209 AC_DEFINE(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,1,[Whether the krb5_address struct has a addr_type property])
2212 AC_CACHE_CHECK([for enc_part2 in krb5_ticket],samba_cv_HAVE_KRB5_TKT_ENC_PART2,[
2213 AC_TRY_COMPILE([#include <krb5.h>],
2214 [krb5_ticket tkt; tkt.enc_part2->authorization_data[0]->contents = NULL;],
2215 samba_cv_HAVE_KRB5_TKT_ENC_PART2=yes,samba_cv_HAVE_KRB5_TKT_ENC_PART2=no)])
2216 if test x"$samba_cv_HAVE_KRB5_TKT_ENC_PART2" = x"yes"; then
2217 AC_DEFINE(HAVE_KRB5_TKT_ENC_PART2,1,[Whether the krb5_ticket struct has a enc_part2 property])
2220 AC_CACHE_CHECK([for keyvalue in krb5_keyblock],samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE,[
2221 AC_TRY_COMPILE([#include <krb5.h>],
2222 [krb5_keyblock key; key.keyvalue.data = NULL;],
2223 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=yes,samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=no)])
2224 if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE" = x"yes"; then
2225 AC_DEFINE(HAVE_KRB5_KEYBLOCK_KEYVALUE,1,[Whether the krb5_keyblock struct has a keyvalue property])
2228 AC_CACHE_CHECK([for ENCTYPE_ARCFOUR_HMAC_MD5],samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,[
2229 AC_TRY_COMPILE([#include <krb5.h>],
2230 [krb5_enctype enctype; enctype = ENCTYPE_ARCFOUR_HMAC_MD5;],
2231 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=yes,samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=no)])
2232 if test x"$samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5" = x"yes"; then
2233 AC_DEFINE(HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,1,[Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available])
2236 ########################################################
2237 # now see if we can find the krb5 libs in standard paths
2238 # or as specified above
2239 AC_CHECK_LIB(krb5, krb5_mk_req_extended, [LIBS="$LIBS -lkrb5";
2240 AC_DEFINE(HAVE_KRB5,1,[Whether KRB5 is available])])
2242 ########################################################
2243 # now see if we can find the gssapi libs in standard paths
2244 AC_CHECK_LIB(gssapi_krb5, gss_display_status, [LIBS="$LIBS -lgssapi_krb5";
2245 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])])
2249 ########################################################
2250 # Compile with LDAP support?
2252 with_ldap_support=yes
2253 AC_MSG_CHECKING([whether to use LDAP])
2256 [ --with-ldap LDAP support (default yes)],
2257 [ case "$withval" in
2259 with_ldap_support=no
2263 AC_MSG_RESULT($with_ldap_support)
2265 if test x"$with_ldap_support" = x"yes"; then
2267 ##################################################################
2268 # we might need the lber lib on some systems. To avoid link errors
2269 # this test must be before the libldap test
2270 AC_CHECK_LIB(lber, ber_scanf, [LIBS="$LIBS -llber"])
2272 ########################################################
2273 # now see if we can find the ldap libs in standard paths
2274 if test x$have_ldap != xyes; then
2275 AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LIBS="$LIBS -lldap";
2276 AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])])
2278 ########################################################
2279 # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
2280 # Check found in pam_ldap 145.
2281 AC_CHECK_FUNCS(ldap_set_rebind_proc)
2282 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, pam_ldap_cv_ldap_set_rebind_proc, [
2285 #include <ldap.h>], [ldap_set_rebind_proc(0, 0, 0);], [pam_ldap_cv_ldap_set_rebind_proc=3], [pam_ldap_cv_ldap_set_rebind_proc=2]) ])
2286 AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $pam_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
2290 ########################################################
2291 # Compile with MySQL support?
2292 AM_PATH_MYSQL([0.11.0],[MODULE_MYSQL=bin/mysql.so],[MODULE_MYSQL=])
2293 CFLAGS="$CFLAGS $MYSQL_CFLAGS"
2294 AC_SUBST(MODULE_MYSQL)
2296 ########################################################
2297 # Compile with XML support?
2298 AM_PATH_XML2([2.0.0],[MODULE_XML=bin/xml.so],[MODULE_XML=])
2299 CFLAGS="$CFLAGS $XML_CFLAGS"
2300 AC_SUBST(MODULE_XML)
2302 #################################################
2303 # check for automount support
2304 AC_MSG_CHECKING(whether to use automount)
2305 AC_ARG_WITH(automount,
2306 [ --with-automount Include automount support (default=no)],
2307 [ case "$withval" in
2310 AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
2319 #################################################
2320 # check for smbmount support
2321 AC_MSG_CHECKING(whether to use smbmount)
2322 AC_ARG_WITH(smbmount,
2323 [ --with-smbmount Include smbmount (Linux only) support (default=no)],
2324 [ case "$withval" in
2329 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
2330 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbmount bin/smbmnt bin/smbumount"
2333 AC_MSG_ERROR(not on a linux system!)
2345 #################################################
2346 # check for a PAM clear-text auth, accounts, password and session support
2347 with_pam_for_crypt=no
2348 AC_MSG_CHECKING(whether to use PAM)
2350 [ --with-pam Include PAM support (default=no)],
2351 [ case "$withval" in
2354 AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
2355 AUTHLIBS="$AUTHLIBS -lpam"
2356 with_pam_for_crypt=yes
2365 # we can't build a pam module if we don't have pam.
2366 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
2368 #################################################
2369 # check for pam_smbpass support
2370 AC_MSG_CHECKING(whether to use pam_smbpass)
2371 AC_ARG_WITH(pam_smbpass,
2372 [ --with-pam_smbpass Build a PAM module to allow other applications to use our smbpasswd file (default=no)],
2373 [ case "$withval" in
2377 # Conditions under which pam_smbpass should not be built.
2379 if test x$PICFLAG = x; then
2380 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
2381 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
2382 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
2384 SHLIB_PROGS="$SHLIB_PROGS bin/pam_smbpass.so"
2395 ###############################################
2396 # test for where we get crypt() from
2397 AC_SEARCH_LIBS(crypt, [crypt],
2398 [test "$ac_cv_search_crypt" = "none required" || AUTHLIBS="-lcrypt $AUTHLIBS"
2399 AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
2402 ## moved after the check for -lcrypt in order to
2403 ## ensure that the necessary libraries are included
2404 ## check checking for truncated salt. Wrapped by the
2405 ## $with_pam_for_crypt variable as above --jerry
2407 if test $with_pam_for_crypt = no; then
2408 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2410 LIBS="$AUTHLIBS $LIBS"
2411 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2412 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
2413 LIBS="$crypt_LIBS"])
2414 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2415 AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
2419 #################################################
2420 # check for a NISPLUS_HOME support
2421 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
2422 AC_ARG_WITH(nisplus-home,
2423 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
2424 [ case "$withval" in
2427 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
2436 #################################################
2437 # check for syslog logging
2438 AC_MSG_CHECKING(whether to use syslog logging)
2440 [ --with-syslog Include experimental SYSLOG support (default=no)],
2441 [ case "$withval" in
2444 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
2453 #################################################
2454 # check for a shared memory profiling support
2455 AC_MSG_CHECKING(whether to use profiling)
2456 AC_ARG_WITH(profiling-data,
2457 [ --with-profiling-data Include gathering source code profile information (default=no)],
2458 [ case "$withval" in
2461 AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
2470 ########################################################################################
2472 ## END OF TESTS FOR SAM BACKENDS.
2474 ########################################################################################
2476 #################################################
2477 # check for a NISPLUS_HOME support
2478 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
2479 AC_ARG_WITH(nisplus-home,
2480 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
2481 [ case "$withval" in
2484 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
2493 #################################################
2494 # check for syslog logging
2495 AC_MSG_CHECKING(whether to use syslog logging)
2497 [ --with-syslog Include experimental SYSLOG support (default=no)],
2498 [ case "$withval" in
2501 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
2511 #################################################
2512 # check for experimental disk-quotas support
2513 QUOTAOBJS=smbd/noquotas.o
2515 AC_MSG_CHECKING(whether to support disk-quotas)
2517 [ --with-quotas Include experimental disk-quota support (default=no)],
2518 [ case "$withval" in
2523 # Check for kernel 2.4.x quota braindamage...
2524 AC_CACHE_CHECK([for linux 2.4.x quota braindamage..],samba_cv_linux_2_4_quota_braindamage, [
2525 AC_TRY_COMPILE([#include <stdio.h>
2526 #include <sys/types.h>
2527 #include <asm/types.h>
2528 #include <linux/quota.h>
2530 #include <linux/unistd.h>],[struct mem_dqblk D;],
2531 samba_cv_linux_2_4_quota_braindamage=yes,samba_cv_linux_2_4_quota_braindamage=no)])
2532 if test x"$samba_cv_linux_2_4_quota_braindamage" = x"yes"; then
2533 AC_DEFINE(LINUX_QUOTAS_2,1,[linux 2.4.x quota braindamage])
2535 AC_DEFINE(LINUX_QUOTAS_1,1,[linux quotas])
2541 QUOTAOBJS=smbd/quotas.o
2542 AC_DEFINE(WITH_QUOTAS,1,[Whether to include experimental quota support])
2552 #################################################
2553 # check for experimental utmp accounting
2555 AC_MSG_CHECKING(whether to support utmp accounting)
2557 [ --with-utmp Include experimental utmp accounting (default=no)],
2558 [ case "$withval" in
2561 AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
2570 #################################################
2571 # choose native language(s) of man pages
2572 AC_MSG_CHECKING(chosen man pages' language(s))
2573 AC_ARG_WITH(manpages-langs,
2574 [ --with-manpages-langs={en,ja,pl} Choose man pages' language(s). (en)],
2575 [ case "$withval" in
2577 AC_MSG_WARN(--with-manpages-langs called without argument - will use default)
2585 AC_MSG_RESULT($manlangs)
2586 manlangs=`echo $manlangs | sed "s/,/ /g"` # replacing commas with spaces to produce a list
2587 AC_SUBST(manlangs)],
2590 AC_MSG_RESULT($manlangs)
2594 #################################################
2595 # should we build libsmbclient?
2597 INSTALLCLIENTCMD_SH=:
2598 INSTALLCLIENTCMD_A=:
2599 LIBSMBCLIENT_SHARED=
2601 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
2602 AC_ARG_WITH(libsmbclient,
2603 [ --with-libsmbclient Build the libsmbclient shared library (default=yes if shared libs supported)],
2604 [ case "$withval" in
2609 if test $BLDSHARED = true; then
2610 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
2611 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
2612 LIBSMBCLIENT=libsmbclient
2616 AC_MSG_RESULT(no shared library support -- will supply static library)
2618 if test $enable_static = yes; then
2619 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
2620 LIBSMBCLIENT=libsmbclient
2625 # if unspecified, default is to built it iff possible.
2626 if test $BLDSHARED = true; then
2627 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
2628 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
2629 LIBSMBCLIENT=libsmbclient
2633 AC_MSG_RESULT(no shared library support -- will supply static library)
2635 if test $enable_static = yes; then
2636 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
2637 LIBSMBCLIENT=libsmbclient
2642 #################################################
2643 # these tests are taken from the GNU fileutils package
2644 AC_CHECKING(how to get filesystem space usage)
2647 # Test for statvfs64.
2648 if test $space = no; then
2650 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2652 #if defined(HAVE_UNISTD_H)
2655 #include <sys/types.h>
2656 #include <sys/statvfs.h>
2659 struct statvfs64 fsd;
2660 exit (statvfs64 (".", &fsd));
2662 fu_cv_sys_stat_statvfs64=yes,
2663 fu_cv_sys_stat_statvfs64=no,
2664 fu_cv_sys_stat_statvfs64=cross)])
2665 if test $fu_cv_sys_stat_statvfs64 = yes; then
2667 AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
2671 # Perform only the link test since it seems there are no variants of the
2672 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2673 # because that got a false positive on SCO OSR5. Adding the declaration
2674 # of a `struct statvfs' causes this test to fail (as it should) on such
2675 # systems. That system is reported to work fine with STAT_STATFS4 which
2676 # is what it gets when this test fails.
2677 if test $space = no; then
2679 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2680 [AC_TRY_LINK([#include <sys/types.h>
2681 #include <sys/statvfs.h>],
2682 [struct statvfs fsd; statvfs (0, &fsd);],
2683 fu_cv_sys_stat_statvfs=yes,
2684 fu_cv_sys_stat_statvfs=no)])
2685 if test $fu_cv_sys_stat_statvfs = yes; then
2687 AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
2691 if test $space = no; then
2692 # DEC Alpha running OSF/1
2693 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2694 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2696 #include <sys/param.h>
2697 #include <sys/types.h>
2698 #include <sys/mount.h>
2703 exit (statfs (".", &fsd, sizeof (struct statfs)));
2705 fu_cv_sys_stat_statfs3_osf1=yes,
2706 fu_cv_sys_stat_statfs3_osf1=no,
2707 fu_cv_sys_stat_statfs3_osf1=no)])
2708 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2709 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2711 AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
2715 if test $space = no; then
2717 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2718 member (AIX, 4.3BSD)])
2719 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2721 #ifdef HAVE_SYS_PARAM_H
2722 #include <sys/param.h>
2724 #ifdef HAVE_SYS_MOUNT_H
2725 #include <sys/mount.h>
2727 #ifdef HAVE_SYS_VFS_H
2728 #include <sys/vfs.h>
2734 exit (statfs (".", &fsd));
2736 fu_cv_sys_stat_statfs2_bsize=yes,
2737 fu_cv_sys_stat_statfs2_bsize=no,
2738 fu_cv_sys_stat_statfs2_bsize=no)])
2739 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2740 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2742 AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
2746 if test $space = no; then
2748 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2749 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2750 [AC_TRY_RUN([#include <sys/types.h>
2751 #include <sys/statfs.h>
2755 exit (statfs (".", &fsd, sizeof fsd, 0));
2757 fu_cv_sys_stat_statfs4=yes,
2758 fu_cv_sys_stat_statfs4=no,
2759 fu_cv_sys_stat_statfs4=no)])
2760 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2761 if test $fu_cv_sys_stat_statfs4 = yes; then
2763 AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
2767 if test $space = no; then
2769 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2770 member (4.4BSD and NetBSD)])
2771 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2772 [AC_TRY_RUN([#include <sys/types.h>
2773 #ifdef HAVE_SYS_PARAM_H
2774 #include <sys/param.h>
2776 #ifdef HAVE_SYS_MOUNT_H
2777 #include <sys/mount.h>
2783 exit (statfs (".", &fsd));
2785 fu_cv_sys_stat_statfs2_fsize=yes,
2786 fu_cv_sys_stat_statfs2_fsize=no,
2787 fu_cv_sys_stat_statfs2_fsize=no)])
2788 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2789 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2791 AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
2795 if test $space = no; then
2797 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2798 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2799 [AC_TRY_RUN([#include <sys/types.h>
2800 #ifdef HAVE_SYS_PARAM_H
2801 #include <sys/param.h>
2803 #ifdef HAVE_SYS_MOUNT_H
2804 #include <sys/mount.h>
2806 #ifdef HAVE_SYS_FS_TYPES_H
2807 #include <sys/fs_types.h>
2812 /* Ultrix's statfs returns 1 for success,
2813 0 for not mounted, -1 for failure. */
2814 exit (statfs (".", &fsd) != 1);
2816 fu_cv_sys_stat_fs_data=yes,
2817 fu_cv_sys_stat_fs_data=no,
2818 fu_cv_sys_stat_fs_data=no)])
2819 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2820 if test $fu_cv_sys_stat_fs_data = yes; then
2822 AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
2827 # As a gating factor for large file support, in order to
2828 # use <4GB files we must have the following minimal support
2830 # long long, and a 64 bit off_t or off64_t.
2831 # If we don't have all of these then disable large
2834 AC_MSG_CHECKING([if large file support can be enabled])
2836 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2837 #include <sys/types.h>
2843 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2844 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2845 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
2847 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2849 #################################################
2850 # check for ACL support
2852 AC_MSG_CHECKING(whether to support ACLs)
2853 AC_ARG_WITH(acl-support,
2854 [ --with-acl-support Include ACL support (default=no)],
2855 [ case "$withval" in
2860 AC_MSG_RESULT(Using UnixWare ACLs)
2861 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
2864 AC_MSG_RESULT(Using solaris ACLs)
2865 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
2868 AC_MSG_RESULT(Using HPUX ACLs)
2869 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
2872 AC_MSG_RESULT(Using IRIX ACLs)
2873 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
2876 AC_MSG_RESULT(Using AIX ACLs)
2877 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
2880 AC_MSG_RESULT(Using Tru64 ACLs)
2881 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
2882 ACLLIBS="$ACLLIBS -lpacl"
2885 AC_CHECK_LIB(acl,acl_get_file,[ACLLIBS="$ACLLIBS -lacl"])
2886 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2889 AC_TRY_LINK([#include <sys/types.h>
2890 #include <sys/acl.h>],
2891 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2892 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
2894 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2895 AC_MSG_RESULT(Using posix ACLs)
2896 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
2897 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2900 AC_TRY_LINK([#include <sys/types.h>
2901 #include <sys/acl.h>],
2902 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2903 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
2905 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2906 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
2914 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
2917 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
2921 #################################################
2922 # check for sendfile support
2924 with_sendfile_support=yes
2925 AC_MSG_CHECKING(whether to check to support sendfile)
2926 AC_ARG_WITH(sendfile-support,
2927 [ --with-sendfile-support Check for sendfile support (default=yes)],
2928 [ case "$withval" in
2935 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2936 AC_TRY_LINK([#include <sys/sendfile.h>],
2941 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
2943 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2945 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
2946 AC_TRY_LINK([#include <sys/sendfile.h>],
2951 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2953 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2955 # Try and cope with broken Linux sendfile....
2956 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
2958 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
2959 #undef _FILE_OFFSET_BITS
2961 #include <sys/sendfile.h>],
2966 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2968 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
2970 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2971 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
2972 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
2973 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
2974 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2975 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
2976 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
2977 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
2978 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
2979 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
2980 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
2987 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
2989 #include <sys/types.h>
2991 #include <sys/socket.h>
2992 #include <sys/uio.h>],
2994 int fromfd, tofd, ret, total=0;
2995 off_t offset, nwritten;
2998 hdr.headers = &hdtrl;
3000 hdr.trailers = NULL;
3002 hdtrl.iov_base = NULL;
3004 ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
3006 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
3008 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
3009 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
3010 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
3011 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
3018 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
3020 #include <sys/socket.h>
3021 #include <sys/uio.h>],
3025 struct iovec hdtrl[2];
3029 hdtrl[0].iov_base = 0;
3030 hdtrl[0].iov_len = 0;
3032 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
3034 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
3035 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
3036 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
3037 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
3038 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
3043 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
3045 #include <sys/socket.h>
3046 #include <sys/uio.h>],
3050 struct iovec hdtrl[2];
3054 hdtrl[0].iov_base = 0;
3055 hdtrl[0].iov_len = 0;
3057 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
3059 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
3060 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
3061 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
3062 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
3063 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
3070 AC_CHECK_LIB(sendfile,sendfilev)
3071 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
3073 #include <sys/sendfile.h>],
3077 struct sendfilevec vec[2];
3083 vec[0].sfv_fd = SFV_FD_SELF;
3084 vec[0].sfv_flag = 0;
3089 vec[1].sfv_flag = 0;
3092 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
3094 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
3096 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
3097 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
3098 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
3099 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
3104 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
3106 #include <sys/sendfile.h>],
3110 struct sendfilevec vec[2];
3116 vec[0].sfv_fd = SFV_FD_SELF;
3117 vec[0].sfv_flag = 0;
3122 vec[1].sfv_flag = 0;
3125 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
3127 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
3129 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
3130 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
3131 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
3132 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
3150 #################################################
3151 # Check whether winbind is supported on this platform. If so we need to
3152 # build and install client programs, sbin programs and shared libraries
3154 AC_MSG_CHECKING(whether to build winbind)
3156 # Initially, the value of $host_os decides whether winbind is supported
3164 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
3165 WINBIND_NSS_EXTRA_LIBS="-lsocket"
3169 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
3173 winbind_no_reason=", unsupported on $host_os"
3177 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
3178 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
3180 # Check the setting of --with-winbindd
3182 AC_ARG_WITH(winbind,
3183 [ --with-winbind Build winbind (default, if supported by OS)],
3196 # We need unix domain sockets for winbind
3198 if test x"$HAVE_WINBIND" = x"yes"; then
3199 if test x"$samba_cv_unixsocket" = x"no"; then
3200 winbind_no_reason=", no unix domain socket support on $host_os"
3205 # Display test results
3207 if test x"$HAVE_WINBIND" = x"yes"; then
3209 AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
3211 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)"
3212 EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)"
3213 if test x"$BLDSHARED" = x"true"; then
3216 SHLIB_PROGS="$SHLIB_PROGS nsswitch/libns_winbind.so"
3219 SHLIB_PROGS="$SHLIB_PROGS nsswitch/libnss_winbind.so"
3222 if test x"$with_pam" = x"yes"; then
3223 SHLIB_PROGS="$SHLIB_PROGS nsswitch/pam_winbind.so"
3227 AC_MSG_RESULT(no$winbind_no_reason)
3230 # Solaris has some extra fields in struct passwd that need to be
3231 # initialised otherwise nscd crashes. Unfortunately autoconf < 2.50
3232 # doesn't have the AC_CHECK_MEMBER macro which would be handy for checking
3235 #AC_CHECK_MEMBER(struct passwd.pw_comment,
3236 # AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),
3237 # [#include <pwd.h>])
3239 AC_CACHE_CHECK([whether struct passwd has pw_comment],samba_cv_passwd_pw_comment, [
3240 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_comment;],
3241 samba_cv_passwd_pw_comment=yes,samba_cv_passwd_pw_comment=no)])
3242 if test x"$samba_cv_passwd_pw_comment" = x"yes"; then
3243 AC_DEFINE(HAVE_PASSWD_PW_COMMENT,1,[Whether struct passwd has pw_comment])
3246 #AC_CHECK_MEMBER(struct passwd.pw_age,
3247 # AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),
3248 # [#include <pwd.h>])
3250 AC_CACHE_CHECK([whether struct passwd has pw_age],samba_cv_passwd_pw_age, [
3251 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_age;],
3252 samba_cv_passwd_pw_age=yes,samba_cv_passwd_pw_age=no)])
3253 if test x"$samba_cv_passwd_pw_age" = x"yes"; then
3254 AC_DEFINE(HAVE_PASSWD_PW_AGE,1,[Whether struct passwd has pw_age])
3257 #################################################
3258 # Check to see if we should use the included popt
3260 AC_ARG_WITH(included-popt,
3261 [ --with-included-popt use bundled popt library, not from system],
3272 if test x"$INCLUDED_POPT" != x"yes"; then
3273 AC_CHECK_LIB(popt, poptGetContext,
3274 INCLUDED_POPT=no, INCLUDED_POPT=yes)
3277 AC_MSG_CHECKING(whether to use included popt)
3278 if test x"$INCLUDED_POPT" = x"yes"; then
3280 BUILD_POPT='$(POPT_OBJS)'
3281 FLAGS1="-I$srcdir/popt"
3286 AC_SUBST(BUILD_POPT)
3289 #################################################
3290 # Check if the user wants Python
3292 # At the moment, you can use this to set which Python binary to link
3293 # against. (Libraries built for Python2.2 can't be used by 2.1,
3294 # though they can coexist in different directories.) In the future
3295 # this might make the Python stuff be built by default.
3297 # Defaulting python breaks the clean target if python isn't installed
3302 [ --with-python=PYTHONNAME build Python libraries],
3303 [ case "${withval-python}" in
3306 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS python_ext"
3312 PYTHON=${withval-python}
3317 for i in `echo $default_static_modules | sed -e's/,/ /g'`
3319 eval MODULE_DEFAULT_$i=STATIC
3322 for i in `echo $default_shared_modules | sed -e's/,/ /g'`
3324 dnl Fall back to static if dlopen() is not available
3325 eval MODULE_DEFAULT_$i=STATIC
3327 if test x"$ac_cv_func_dlopen" = xyes; then
3328 eval MODULE_DEFAULT_$i=SHARED
3332 dnl Always built these modules static
3333 MODULE_pdb_guest=STATIC
3334 MODULE_idmap_tdb=STATIC
3336 AC_ARG_WITH(static-modules,
3337 [ --with-static-modules=MODULES Comma-seperated list of names of modules to statically link in],
3338 [ if test $withval; then
3339 for i in `echo $withval | sed -e's/,/ /g'`
3341 eval MODULE_$i=STATIC
3345 AC_ARG_WITH(shared-modules,
3346 [ --with-shared-modules=MODULES Comma-seperated list of names of modules to build shared],
3347 [ if test $withval; then
3348 for i in `echo $withval | sed -e's/,/ /g'`
3350 eval MODULE_$i=SHARED
3354 SMB_MODULE(charset_weird, modules/weird.o, "bin/weird.$SHLIBEXT", CHARSET)
3355 SMB_SUBSYSTEM(CHARSET,lib/iconv.o)
3357 SMB_MODULE(ntvfs_cifs, \$(NTVFS_CIFS_OBJ), "bin/cifs.$SHLIBEXT$", NTVFS)
3358 SMB_MODULE(ntvfs_simple, \$(NTVFS_SIMPLE_OBJ), "bin/ntvfs_simple.$SHLIBEXT$", NTVFS)
3359 SMB_MODULE(ntvfs_print, \$(NTVFS_PRINT_OBJ), "bin/ntvfs_print.$SHLIBEXT$", NTVFS)
3360 SMB_MODULE(ntvfs_ipc, \$(NTVFS_IPC_OBJ), "bin/ntvfs_ipc.$SHLIBEXT$", NTVFS)
3361 SMB_MODULE(ntvfs_posix, \$(NTVFS_POSIX_OBJ), "bin/ntvfs_posix.$SHLIBEXT$", NTVFS)
3364 SMB_MODULE(ntvfs_csm, \$(NTVFS_CSM_OBJ), "bin/ntvfs_csm.$SHLIBEXT$", NTVFS)
3366 if test "$MODULE_ntvfs_csm"; then
3367 SMBD_EXTRA_LIBS="$SMBD_EXTRA_LIBS \$\(STFS_LIBS\)"
3370 AC_SUBST(STFS_ENABLED)
3372 SMB_SUBSYSTEM(NTVFS,ntvfs/ntvfs_base.o)
3374 AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules])
3376 #################################################
3377 # do extra things if we are running insure
3379 if test "${ac_cv_prog_CC}" = "insure"; then
3380 CPPFLAGS="$CPPFLAGS -D__INSURE__"
3383 #################################################
3384 # final configure stuff
3386 AC_MSG_CHECKING([configure summary])
3387 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
3389 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
3390 AC_MSG_WARN([cannot run when cross-compiling]))
3395 dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
3396 LIB_REMOVE_USR_LIB(LDFLAGS)
3397 LIB_REMOVE_USR_LIB(LIBS)
3399 dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
3400 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
3401 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
3403 AC_OUTPUT(include/stamp-h Makefile script/findsmb)
3405 #################################################
3406 # Print very concise instructions on building/use
3407 if test "x$enable_dmalloc" = xyes
3409 AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
3410 AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])