1 dnl Process this file with autoconf to produce a configure script.
3 dnl We must use autotools 2.53 or above
5 AC_INIT(include/includes.h)
6 AC_CONFIG_HEADER(include/config.h)
11 SMB_VERSION_STRING=`cat $srcdir/include/version.h | grep 'SAMBA_VERSION_OFFICIAL_STRING' | cut -d '"' -f2`
12 echo "SAMBA VERSION: ${SMB_VERSION_STRING}"
14 SAMBA_VERSION_SVN_REVISION=`cat $srcdir/include/version.h | grep 'SAMBA_VERSION_SVN_REVISION' | cut -d ' ' -f3-`
15 if test -n "${SAMBA_VERSION_SVN_REVISION}";then
16 echo "BUILD REVISION: ${SAMBA_VERSION_SVN_REVISION}"
19 #################################################
20 # Directory handling stuff to support both the
21 # legacy SAMBA directories and FHS compliant
23 AC_PREFIX_DEFAULT(/usr/local/samba)
25 lockdir="\${VARDIR}/locks"
26 piddir="\${VARDIR}/locks"
27 mandir="\${prefix}/man"
28 logfilebase="\${VARDIR}"
29 privatedir="\${prefix}/private"
30 libdir="\${prefix}/lib"
31 configdir="\${LIBDIR}"
32 swatdir="\${prefix}/swat"
35 [ --with-fhs Use FHS-compliant paths (default=no)],
38 lockdir="\${VARDIR}/lib/samba"
39 piddir="\${VARDIR}/run"
40 mandir="\${prefix}/share/man"
41 logfilebase="\${VARDIR}/log/samba"
42 privatedir="\${CONFIGDIR}/private"
43 libdir="\${prefix}/lib/samba"
44 configdir="${sysconfdir}/samba"
45 swatdir="\${DATADIR}/samba/swat"
49 #################################################
50 # set private directory location
51 AC_ARG_WITH(privatedir,
52 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
56 # Just in case anybody calls it without argument
58 AC_MSG_WARN([--with-privatedir called without argument - will use default])
65 #################################################
66 # set lock directory location
68 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
72 # Just in case anybody calls it without argument
74 AC_MSG_WARN([--with-lockdir called without argument - will use default])
81 #################################################
82 # set pid directory location
84 [ --with-piddir=DIR Where to put pid files ($ac_default_prefix/var/locks)],
88 # Just in case anybody calls it without argument
90 AC_MSG_WARN([--with-piddir called without argument - will use default])
97 #################################################
98 # set SWAT directory location
100 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
104 # Just in case anybody does it
106 AC_MSG_WARN([--with-swatdir called without argument - will use default])
113 #################################################
114 # set configuration directory location
115 AC_ARG_WITH(configdir,
116 [ --with-configdir=DIR Where to put configuration files ($libdir)],
120 # Just in case anybody does it
122 AC_MSG_WARN([--with-configdir called without argument - will use default])
129 #################################################
130 # set log directory location
131 AC_ARG_WITH(logfilebase,
132 [ --with-logfilebase=DIR Where to put log files ($VARDIR)],
136 # Just in case anybody does it
138 AC_MSG_WARN([--with-logfilebase called without argument - will use default])
141 logfilebase="$withval"
145 #################################################
146 # set lib directory location
148 [ --with-libdir=DIR Where to put libdir ($libdir)],
152 # Just in case anybody does it
154 AC_MSG_WARN([--with-libdir without argument - will use default])
161 #################################################
162 # set lib directory location
164 [ --with-mandir=DIR Where to put man pages ($mandir)],
168 # Just in case anybody does it
170 AC_MSG_WARN([--with-mandir without argument - will use default])
178 [ --with-cfenc=HEADERDIR Use internal CoreFoundation encoding API
179 for optimization (Mac OS X/Darwin only)],
181 # May be in source $withval/CoreFoundation/StringEncodings.subproj.
182 # Should have been in framework $withval/CoreFoundation.framework/Headers.
184 $withval/CoreFoundation/StringEncodings.subproj \
185 $withval/StringEncodings.subproj \
186 $withval/CoreFoundation.framework/Headers \
190 if test -r $d/CFStringEncodingConverter.h; then
191 ln -sfh $d include/CoreFoundation
199 AC_SUBST(logfilebase)
205 dnl Unique-to-Samba variables we'll be playing with.
214 AC_SUBST(INSTALLCLIENT)
215 AC_SUBST(INSTALLCLIENTCMD_SH)
216 AC_SUBST(INSTALLCLIENTCMD_A)
217 AC_SUBST(LIBSMBCLIENT_SHARED)
218 AC_SUBST(LIBSMBCLIENT)
222 AC_SUBST(PASSDB_LIBS)
226 AC_SUBST(SHLIB_PROGS)
228 AC_SUBST(SMBWRAP_OBJS)
229 AC_SUBST(SMBWRAP_INC)
230 AC_SUBST(EXTRA_BIN_PROGS)
231 AC_SUBST(EXTRA_SBIN_PROGS)
232 AC_SUBST(EXTRA_ALL_TARGETS)
235 [ --enable-debug Turn on compiler debugging information (default=no)],
236 [if eval "test x$enable_debug = xyes"; then
237 CFLAGS="${CFLAGS} -g"
241 AC_ARG_ENABLE(socket-wrapper,
242 [ --enable-socket-wrapper Turn on socket wrapper library (default=no)],
243 [if eval "test x$enable_socket_wrapper = xyes"; then
244 AC_DEFINE(SOCKET_WRAPPER,1,[Use socket wrapper library])
245 SOCKWRAP="\$(SOCKET_WRAPPER_OBJ)"
248 # compile with optimization and without debugging by default, but
249 # allow people to set their own preference.
250 # do this here since AC_CACHE_CHECK apparently sets the CFLAGS to "-g -O2"
251 # if it has no value. This prevent *very* large debug binaries from occurring
253 if test "x$CFLAGS" = x; then
257 CFLAGS="${CFLAGS} -D_SAMBA_BUILD_"
259 AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings and debugging (default=no)],
260 [if eval "test x$enable_developer = xyes"; then
262 CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
263 # Add -Wdeclaration-after-statement if compiler supports it
265 [that the C compiler understands -Wdeclaration-after-statement],
266 samba_cv_HAVE_Wdeclaration_after_statement, [
271 }],[-Wdeclaration-after-statement],[$CPPFLAGS],[$LDFLAGS],
272 samba_cv_HAVE_Wdeclaration_after_statement=yes,
273 samba_cv_HAVE_Wdeclaration_after_statement=no,
274 samba_cv_HAVE_Wdeclaration_after_statement=cross)
276 if test x"$samba_cv_HAVE_Wdeclaration_after_statement" = x"yes"; then
277 CFLAGS="${CFLAGS} -Wdeclaration-after-statement"
281 AC_ARG_ENABLE(krb5developer, [ --enable-krb5developer Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
282 [if eval "test x$enable_krb5developer = xyes"; then
284 CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
287 AC_ARG_ENABLE(dmalloc, [ --enable-dmalloc Enable heap debugging [default=no]])
289 if test "x$enable_dmalloc" = xyes
291 AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
292 AC_DEFINE(DMALLOC_FUNC_CHECK, 1,
293 [Define to check invariants around some common functions])
294 LIBS="$LIBS -ldmalloc"
297 dnl Checks for programs.
300 ## for some reason this macro resets the CFLAGS
301 ## so save and restore
313 AC_PATH_PROG(PERL, perl)
315 AC_CHECK_TOOL(AR, ar)
317 dnl Check if we use GNU ld
321 dnl Certain versions of GNU ld the default is not to have the
322 dnl --allow-shlib-undefined flag defined. This causes a stackload of
323 dnl warnings when building modules.
324 if test "$ac_cv_prog_gnu_ld" = "yes"; then
325 ac_cv_gnu_ld_version=`$LD -v 2>/dev/null | head -1`
326 AC_MSG_CHECKING(GNU ld release date)
328 ac_cv_gnu_ld_date=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
330 AC_MSG_RESULT(${ac_cv_gnu_ld_date})
331 if test -n "$ac_cv_gnu_ld_date"; then
332 if test "$ac_cv_gnu_ld_date" -lt 20030217; then
333 ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
336 AC_MSG_CHECKING(GNU ld release version)
338 ac_cv_gnu_ld_vernr=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([1-9][0-9]*\.[0-9][0-9]*\).*$,\1,p'`
339 ac_cv_gnu_ld_vernr_major=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 1`
340 ac_cv_gnu_ld_vernr_minor=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 2`
342 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr})
343 AC_MSG_CHECKING(GNU ld release version major)
344 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_major})
345 AC_MSG_CHECKING(GNU ld release version minor)
346 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_minor})
347 if test "$ac_cv_gnu_ld_vernr_major" -lt 2 || test "$ac_cv_gnu_ld_vernr_minor" -lt 14; then
348 ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
353 dnl needed before AC_TRY_COMPILE
356 dnl look for executable suffix
359 dnl Check if C compiler understands -c and -o at the same time
361 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
368 dnl Check if the C compiler understands -Werror
369 AC_CACHE_CHECK([that the C compiler understands -Werror],samba_cv_HAVE_Werror, [
374 }],[-Werror],[$CPPFLAGS],[$LDFLAGS],
375 samba_cv_HAVE_Werror=yes,samba_cv_HAVE_Werror=no,samba_cv_HAVE_Werror=cross)])
376 if test x"$samba_cv_HAVE_Werror" = x"yes"; then
377 Werror_FLAGS="-Werror"
379 dnl Check if the C compiler understands -w2
380 AC_CACHE_CHECK([that the C compiler understands -w2],samba_cv_HAVE_w2, [
385 }],[-w2],[$CPPFLAGS],[$LDFLAGS],
386 samba_cv_HAVE_w2=yes,samba_cv_HAVE_w2=no,samba_cv_HAVE_w2=cross)])
387 if test x"$samba_cv_HAVE_w2" = x"yes"; then
392 dnl Check if the C compiler understands volatile (it should, being ANSI).
393 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
394 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
395 samba_cv_volatile=yes,samba_cv_volatile=no)])
396 if test x"$samba_cv_volatile" = x"yes"; then
397 AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
400 UNAME_S=`(uname -s) 2>/dev/null` || UNAME_S="unknown"
401 AC_MSG_CHECKING(uname -s)
402 AC_MSG_RESULT(${UNAME_S})
404 UNAME_R=`(uname -r) 2>/dev/null` || UNAME_R="unknown"
405 AC_MSG_CHECKING(uname -r)
406 AC_MSG_RESULT(${UNAME_R})
408 UNAME_M=`(uname -m) 2>/dev/null` || UNAME_M="unknown"
409 AC_MSG_CHECKING(uname -m)
410 AC_MSG_RESULT(${UNAME_M})
412 UNAME_P=`(uname -p) 2>/dev/null` || UNAME_P="unknown"
413 AC_MSG_CHECKING(uname -p)
414 AC_MSG_RESULT(${UNAME_P})
418 dnl Add #include for broken IRIX header files
420 *irix6*) AC_ADD_INCLUDE(<standards.h>)
424 AC_VALIDATE_CACHE_SYSTEM_TYPE
428 dnl Add modules that have to be built by default here
429 dnl These have to be built static:
430 default_static_modules="pdb_smbpasswd pdb_tdbsam rpc_lsa rpc_samr rpc_reg rpc_lsa_ds rpc_wks rpc_svcctl rpc_net rpc_dfs rpc_srv rpc_spoolss rpc_eventlog auth_rhosts auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin printerdb_file"
432 dnl These are preferably build shared, and static if dlopen() is not available
433 default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy charset_CP850 charset_CP437"
435 if test "x$developer" = xyes; then
436 default_static_modules="$default_static_modules rpc_echo"
437 default_shared_modules="$default_shared_modules charset_weird"
441 # Config CPPFLAG settings for strange OS's that must be set
442 # before other tests. Do NOT invoke AC_CHECK_HEADERS within this
443 # case statement; its first reference must be unconditional.
446 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
450 # mmap on HPUX is completely broken...
451 AC_DEFINE(MMAP_BLACKLIST, 1, [Whether MMAP is broken])
452 if test $ac_cv_prog_cc_Ae = yes; then
453 CPPFLAGS="$CPPFLAGS -Ae"
456 # Defines needed for HPUX support.
457 # HPUX has bigcrypt but (sometimes?) doesn't use it for
458 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
462 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
463 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
464 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
465 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
466 AC_DEFINE(_ALIGNMENT_REQUIRED,1,[Required alignment])
467 AC_DEFINE(_MAX_ALIGNMENT,4,[Maximum alignment])
470 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
471 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
472 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
473 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
474 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to use large file support])
475 AC_DEFINE(_ALIGNMENT_REQUIRED, 1, [Required alignment])
476 AC_DEFINE(_MAX_ALIGNMENT, 4, [Maximum alignment])
482 # CRAY Unicos has broken const handling
484 AC_MSG_RESULT([disabling const])
485 CPPFLAGS="$CPPFLAGS -Dconst="
489 # AIX4.x doesn't even admit to having large
490 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
493 AC_MSG_RESULT([enabling large file support])
494 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
495 AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
498 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
499 # to the existance of large files..
500 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
501 # recommendations on large file support, however it makes the
502 # compile work using gcc 2.7 and 2.8, whereas using the Sun
503 # recommendation makes the compile fail on gcc2.7. JRA.
505 # Solaris uses SYSV printing. Make sure to set that here. --jerry
508 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
510 5.0|5.0.*|5.1|5.1.*|5.2|5.2.*|5.3|5.3.*|5.5|5.5.*)
511 AC_MSG_RESULT([no large file support])
514 AC_MSG_RESULT([enabling large file support])
515 if test "$ac_cv_prog_gcc" = yes; then
516 ${CC-cc} -v >conftest.c 2>&1
517 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
519 case "$ac_cv_gcc_compiler_version_number" in
520 *"gcc version 2.6"*|*"gcc version 2.7"*)
521 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE -D_REENTRANT"
522 LDFLAGS="$LDFLAGS -lthread"
523 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
526 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
527 LDFLAGS="$LDFLAGS -lthread"
528 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
529 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
533 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
534 LDFLAGS="$LDFLAGS -lthread"
535 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
536 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
542 # IRIX uses SYSV printing. Make sure to set that here
545 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
547 *freebsd*|*dragonfly*)
548 AC_DEFINE(FREEBSD, 1, [Whether the host os is FreeBSD])
551 # VOS may need to have POSIX support and System V compatibility enabled.
558 CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L"
559 AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Whether to enable POSIX support])
563 *-D_SYSV*|*-D_SVID_SOURCE*)
566 CPPFLAGS="$CPPFLAGS -D_SYSV"
567 AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
571 # Tests needed for SINIX large file support.
574 if test $host = mips-sni-sysv4 ; then
575 AC_MSG_CHECKING([for LFS support])
576 old_CPPFLAGS="$CPPFLAGS"
577 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
581 #if _LFS64_LARGEFILE == 1
586 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
587 CPPFLAGS="$old_CPPFLAGS"
588 if test x$SINIX_LFS_SUPPORT = xyes ; then
589 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
590 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
591 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
592 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
593 LIBS="`getconf LFS64_LIBS` $LIBS"
595 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
599 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
602 AC_MSG_CHECKING([for LFS support])
603 old_CPPFLAGS="$CPPFLAGS"
604 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
607 #include <sys/utsname.h>
611 #if _LFS64_LARGEFILE == 1
616 /* Ensure this is glibc 2.2 or higher */
617 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
618 int libc_major = __GLIBC__;
619 int libc_minor = __GLIBC_MINOR__;
627 /* Ensure this is kernel 2.4 or higher */
630 release = strdup(uts.release);
631 major = atoi(strsep(&release, "."));
632 minor = atoi(strsep(&release, "."));
634 if (major > 2 || (major == 2 && minor > 3))
641 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
642 CPPFLAGS="$old_CPPFLAGS"
643 if test x$LINUX_LFS_SUPPORT = xyes ; then
644 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
645 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
646 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
647 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
649 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
653 # MacOS X is the *only* system that uses compose character in utf8. This
654 # is so horribly broken....
657 AC_DEFINE(BROKEN_UNICODE_COMPOSE_CHARACTERS, 1, [Does this system use unicode compose characters])
658 # Add Fink directories for various packages, like dlcompat.
659 # Note: iconv does that explicitly below, but other packages
661 CPPFLAGS="$CPPFLAGS -I/sw/include"
662 LDFLAGS="$LDFLAGS -L/sw/lib"
664 # If we have dlsym_prepend_underscore (from Fink's dlcompat),
665 # use that instead of plain dlsym.
667 AC_CHECK_LIB(dl,dlopen)
668 AC_CHECK_FUNCS(dlsym_prepend_underscore,[CPPFLAGS="$CPPFLAGS -Ddlsym=dlsym_prepend_underscore"])
670 # Add a system specific charset module.
672 default_shared_modules="$default_shared_modules charset_macosxfs"
675 AC_MSG_CHECKING([for LFS support])
676 old_CPPFLAGS="$CPPFLAGS"
677 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
681 #if _LFS64_LARGEFILE == 1
686 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
687 CPPFLAGS="$old_CPPFLAGS"
688 if test x$GLIBC_LFS_SUPPORT = xyes ; then
689 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
690 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
691 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
693 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
703 AC_CHECK_HEADERS(aio.h arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h rpc/nettype.h)
704 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h)
705 AC_CHECK_HEADERS(rpc/rpc.h rpcsvc/nis.h rpcsvc/ypclnt.h)
706 ## These fail to compile on IRIX so just check for their presence
707 AC_CHECK_HEADERS(rpcsvc/yp_prot.h, sys/mode.h, [], [] -)
708 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h)
709 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
710 AC_CHECK_HEADERS(sys/un.h)
711 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
712 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
713 AC_CHECK_HEADERS(sys/sysmacros.h security/_pam_macros.h dlfcn.h)
714 AC_CHECK_HEADERS(sys/syslog.h syslog.h execinfo.h)
715 AC_CHECK_HEADERS(langinfo.h locale.h)
717 # Look for Darwin headers
718 old_CPPFLAGS="$CPPFLAGS"
719 CPPFLAGS="-Iinclude $CPPFLAGS"
720 AC_CHECK_HEADERS([CoreFoundation/CFStringEncodingConverter.h], [], [AC_CHECK_HEADERS([CFStringEncodingConverter.h])])
721 CPPFLAGS="$old_CPPFLAGS"
723 # In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a
724 # subdirectory of headers.
725 AC_CHECK_HEADERS(valgrind.h valgrind/valgrind.h valgrind/memcheck.h)
728 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
729 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
733 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
734 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
735 if test x"$ac_cv_header_shadow_h" = x"yes"; then
736 AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
740 AC_CHECK_HEADERS(shadow.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
741 AC_CHECK_HEADERS(nss.h nss_common.h nsswitch.h ns_api.h sys/security.h security/pam_appl.h)
742 AC_CHECK_HEADERS(stropts.h poll.h)
743 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
744 AC_CHECK_HEADERS(sys/acl.h sys/attributes.h attr/xattr.h sys/xattr.h sys/extattr.h sys/uio.h)
745 AC_CHECK_HEADERS(sys/cdefs.h glob.h)
747 ## These faile to compile on Solaris so just check for their presence
748 AC_CHECK_HEADERS(security/pam_modules.h net/if.h netinet/ip.h, [], [], -)
750 # For experimental utmp support (lastlog on some BSD-like systems)
751 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
753 AC_CHECK_SIZEOF(int,cross)
754 AC_CHECK_SIZEOF(long,cross)
755 AC_CHECK_SIZEOF(short,cross)
770 AC_CHECK_TYPE(ino_t,unsigned)
771 AC_CHECK_TYPE(loff_t,off_t)
772 AC_CHECK_TYPE(offset_t,loff_t)
773 AC_CHECK_TYPE(ssize_t, int)
774 AC_CHECK_TYPE(wchar_t, unsigned short)
776 ############################################
777 # for cups support we need libcups, and a handful of header files
780 [ --enable-cups Turn on CUPS support (default=auto)])
782 if test x$enable_cups != xno; then
783 AC_PATH_PROG(CUPS_CONFIG, cups-config)
785 if test "x$CUPS_CONFIG" != x; then
786 AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
787 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
788 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
789 PRINT_LIBS="$PRINT_LIBS `$CUPS_CONFIG --libs`"
790 elif test x"$enable_cups" = x"yes"; then
791 AC_MSG_ERROR(Cups support required but cups-config not located. Make sure cups-devel related files are installed.)
795 ############################################
796 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code
797 AC_SEARCH_LIBS(dlopen, [dl])
798 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
800 ############################################
801 # check if the compiler can do immediate structures
802 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
806 typedef struct {unsigned x;} FOOBAR;
807 #define X_FOOBAR(x) ((FOOBAR) { x })
808 #define FOO_ONE X_FOOBAR(1)
816 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
817 if test x"$samba_cv_immediate_structures" = x"yes"; then
818 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures])
821 ############################################
822 # check if the compiler can do immediate structures
823 AC_CACHE_CHECK([if the compiler will optimize out function calls],samba_cv_optimize_out_funcation_calls, [
828 this_function_does_not_exist();
834 samba_cv_optimize_out_funcation_calls=yes,samba_cv_optimize_out_funcation_calls=no)])
835 if test x"$samba_cv_optimize_out_funcation_calls" = x"yes"; then
836 AC_DEFINE(HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS,1,[Whether the compiler will optimize out function calls])
839 ############################################
840 # check for unix domain sockets
841 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
843 #include <sys/types.h>
846 #include <sys/socket.h>
847 #include <sys/un.h>],
849 struct sockaddr_un sunaddr;
850 sunaddr.sun_family = AF_UNIX;
852 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
853 if test x"$samba_cv_unixsocket" = x"yes"; then
854 AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support])
858 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
860 #include <sys/types.h>
865 #include <sys/socket.h>],[socklen_t i = 0],
866 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
867 if test x"$samba_cv_socklen_t" = x"yes"; then
868 AC_DEFINE(HAVE_SOCKLEN_T_TYPE,1,[Whether we have the variable type socklen_t])
871 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
873 #include <sys/types.h>
878 #include <signal.h>],[sig_atomic_t i = 0],
879 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
880 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
881 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
884 AC_CACHE_CHECK([for struct timespec type],samba_cv_struct_timespec, [
886 #include <sys/types.h>
892 #include <aio.h>],[struct timespec ts;],
893 samba_cv_struct_timespec=yes,samba_cv_struct_timespec=no)])
894 if test x"$samba_cv_struct_timespec" = x"yes"; then
895 AC_DEFINE(HAVE_STRUCT_TIMESPEC,1,[Whether we have struct timespec])
898 # stupid headers have the functions but no declaration. grrrr.
899 AC_HAVE_DECL(errno, [#include <errno.h>])
900 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
901 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
902 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
903 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
904 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
905 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
907 # and glibc has setresuid under linux but the function does
908 # nothing until kernel 2.1.44! very dumb.
909 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
910 AC_TRY_RUN([#include <errno.h>
911 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
912 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
913 if test x"$samba_cv_have_setresuid" = x"yes"; then
914 AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
917 # Do the same check for setresguid...
919 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
920 AC_TRY_RUN([#include <unistd.h>
922 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
923 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
924 if test x"$samba_cv_have_setresgid" = x"yes"; then
925 AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
930 ###############################################
931 # Readline included by default unless explicitly asked not to
932 test "${with_readline+set}" != "set" && with_readline=yes
934 # test for where we get readline() from
935 AC_MSG_CHECKING(whether to use readline)
936 AC_ARG_WITH(readline,
937 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto) ],
938 [ case "$with_readline" in
942 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
943 AC_CHECK_HEADERS(readline/history.h)
945 AC_CHECK_HEADERS(readline.h readline/readline.h,[
946 for termlib in ncurses curses termcap terminfo termlib tinfo; do
947 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
949 AC_CHECK_LIB(readline, rl_callback_handler_install,
950 [TERMLIBS="-lreadline $TERMLIBS"
951 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
952 break], [TERMLIBS=], $TERMLIBS)])
960 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
961 # alternate readline path
963 _cppflags=${CPPFLAGS}
965 # Add additional search path
966 LDFLAGS="-L$with_readline/lib $LDFLAGS"
967 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
969 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
970 AC_CHECK_HEADERS(readline/history.h)
972 AC_CHECK_HEADERS(readline.h readline/readline.h,[
973 for termlib in ncurses curses termcap terminfo termlib; do
974 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
976 AC_CHECK_LIB(readline, rl_callback_handler_install,
977 [TERMLDFLAGS="-L$with_readline/lib"
978 TERMCPPFLAGS="-I$with_readline/include"
979 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
980 TERMLIBS="-lreadline $TERMLIBS"
981 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
982 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
990 AC_SUBST(TERMLDFLAGS)
992 # The readline API changed slightly from readline3 to readline4, so
993 # code will generate warnings on one of them unless we have a few
995 AC_CHECK_LIB(readline, rl_completion_matches,
996 [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
997 [Do we have rl_completion_matches?])],
1001 # The following test taken from the cvs sources
1002 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
1003 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
1004 # libsocket.so which has a bad implementation of gethostbyname (it
1005 # only looks in /etc/hosts), so we only look for -lsocket if we need
1007 AC_CHECK_FUNCS(connect)
1008 if test x"$ac_cv_func_connect" = x"no"; then
1011 *) AC_CHECK_LIB(nsl_s, printf) ;;
1015 *) AC_CHECK_LIB(nsl, printf) ;;
1019 *) AC_CHECK_LIB(socket, connect) ;;
1023 *) AC_CHECK_LIB(inet, connect) ;;
1025 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
1026 dnl has been cached.
1027 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
1028 test x"$ac_cv_lib_inet_connect" = x"yes"; then
1029 # ac_cv_func_connect=yes
1030 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
1031 AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
1035 ###############################################
1036 # test for where we get yp_get_default_domain() from
1037 AC_SEARCH_LIBS(yp_get_default_domain, [nsl])
1038 AC_CHECK_FUNCS(yp_get_default_domain)
1040 # Check if we have execl, if not we need to compile smbrun.
1041 AC_CHECK_FUNCS(execl)
1042 if test x"$ac_cv_func_execl" = x"no"; then
1043 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)"
1046 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
1047 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync memset strlcpy strlcat setpgid)
1048 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
1049 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
1050 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
1051 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate chsize stat64 fstat64)
1052 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
1053 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
1054 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
1055 AC_CHECK_FUNCS(syslog vsyslog timegm)
1056 AC_CHECK_FUNCS(setlocale nl_langinfo)
1057 AC_CHECK_FUNCS(nanosleep)
1058 # setbuffer, shmget, shm_open are needed for smbtorture
1059 AC_CHECK_FUNCS(setbuffer shmget shm_open backtrace_symbols)
1060 AC_CHECK_HEADERS(libexc.h)
1061 AC_CHECK_LIB(exc, trace_back_stack)
1063 # syscall() is needed for smbwrapper.
1064 AC_CHECK_FUNCS(syscall)
1066 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
1067 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
1068 AC_CHECK_FUNCS(__getcwd _getcwd)
1069 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
1070 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
1071 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
1072 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
1073 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
1074 AC_CHECK_FUNCS(getdirentries _write __write _fork __fork)
1075 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
1076 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
1077 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
1078 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
1079 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
1086 # glibc <= 2.3.2 has a broken getgrouplist
1089 #include <sys/utsname.h>
1091 /* glibc up to 2.3 has a broken getgrouplist */
1092 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
1093 int libc_major = __GLIBC__;
1094 int libc_minor = __GLIBC_MINOR__;
1098 if ((libc_major == 2) && (libc_minor <= 3))
1103 ], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no])
1104 if test x"$linux_getgrouplist_ok" = x"yes"; then
1105 AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
1109 AC_CHECK_FUNCS(getgrouplist)
1114 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
1117 if test x$ac_cv_func_stat64 = xno ; then
1118 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
1120 #if defined(HAVE_UNISTD_H)
1123 #include <sys/stat.h>
1124 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
1125 AC_MSG_RESULT([$ac_cv_func_stat64])
1126 if test x$ac_cv_func_stat64 = xyes ; then
1127 AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
1131 if test x$ac_cv_func_lstat64 = xno ; then
1132 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
1134 #if defined(HAVE_UNISTD_H)
1137 #include <sys/stat.h>
1138 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
1139 AC_MSG_RESULT([$ac_cv_func_lstat64])
1140 if test x$ac_cv_func_lstat64 = xyes ; then
1141 AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
1145 if test x$ac_cv_func_fstat64 = xno ; then
1146 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
1148 #if defined(HAVE_UNISTD_H)
1151 #include <sys/stat.h>
1152 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
1153 AC_MSG_RESULT([$ac_cv_func_fstat64])
1154 if test x$ac_cv_func_fstat64 = xyes ; then
1155 AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
1159 #####################################
1160 # we might need the resolv library on some systems
1161 AC_CHECK_LIB(resolv, dn_expand)
1164 # Check for the functions putprpwnam, set_auth_parameters,
1165 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
1166 # Needed for OSF1 and HPUX.
1169 AC_LIBTESTFUNC(security, putprpwnam)
1170 AC_LIBTESTFUNC(sec, putprpwnam)
1172 AC_LIBTESTFUNC(security, set_auth_parameters)
1173 AC_LIBTESTFUNC(sec, set_auth_parameters)
1175 # UnixWare 7.x has its getspnam in -lgen
1176 AC_LIBTESTFUNC(gen, getspnam)
1178 AC_LIBTESTFUNC(security, getspnam)
1179 AC_LIBTESTFUNC(sec, getspnam)
1181 AC_LIBTESTFUNC(security, bigcrypt)
1182 AC_LIBTESTFUNC(sec, bigcrypt)
1184 AC_LIBTESTFUNC(security, getprpwnam)
1185 AC_LIBTESTFUNC(sec, getprpwnam)
1187 ############################################
1188 # Check if we have libattr
1189 AC_SEARCH_LIBS(getxattr, [attr])
1190 AC_CHECK_FUNCS(getxattr lgetxattr fgetxattr listxattr llistxattr)
1191 AC_CHECK_FUNCS(flistxattr removexattr lremovexattr fremovexattr)
1192 AC_CHECK_FUNCS(setxattr lsetxattr fsetxattr)
1193 AC_CHECK_FUNCS(attr_get attr_list attr_set attr_remove)
1194 AC_CHECK_FUNCS(attr_getf attr_listf attr_setf attr_removef)
1195 # Check if we have extattr
1197 *freebsd4* | *dragonfly* )
1198 AC_DEFINE(BROKEN_EXTATTR, 1, [Does extattr API work])
1201 AC_CHECK_FUNCS(extattr_delete_fd extattr_delete_file extattr_delete_link)
1202 AC_CHECK_FUNCS(extattr_get_fd extattr_get_file extattr_get_link)
1203 AC_CHECK_FUNCS(extattr_list_fd extattr_list_file extattr_list_link)
1204 AC_CHECK_FUNCS(extattr_set_fd extattr_set_file extattr_set_link)
1208 # Assume non-shared by default and override below
1211 # these are the defaults, good for lots of systems
1215 SHLD="\${CC} \${CFLAGS}"
1220 if test "$enable_shared" = "yes"; then
1221 # this bit needs to be modified for each OS that is suported by
1222 # smbwrapper. You need to specify how to create a shared library and
1223 # how to compile C code to produce PIC object files
1225 AC_MSG_CHECKING([ability to build shared libraries])
1227 # and these are for particular systems
1229 *linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux])
1231 if test "${ac_cv_gnu_ld_no_default_allow_shlib_undefined}" = "yes"; then
1232 LDSHFLAGS="-shared -Wl,-Bsymbolic -Wl,--allow-shlib-undefined"
1234 LDSHFLAGS="-shared -Wl,-Bsymbolic"
1236 DYNEXP="-Wl,--export-dynamic"
1238 SONAMEFLAG="-Wl,-soname="
1239 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1241 *solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
1245 if test "${GCC}" = "yes"; then
1247 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
1252 ## ${CFLAGS} added for building 64-bit shared
1253 ## libs using Sun's Compiler
1254 LDSHFLAGS="-G \${CFLAGS}"
1257 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1258 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1260 *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
1263 SONAMEFLAG="-Wl,-h,"
1264 PICFLAGS="-KPIC" # Is this correct for SunOS
1265 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1266 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1268 *netbsd* | *freebsd* | *dragonfly* )
1271 DYNEXP="-Wl,--export-dynamic"
1272 SONAMEFLAG="-Wl,-soname,"
1273 PICFLAGS="-fPIC -DPIC"
1274 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1275 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1277 *openbsd*) BLDSHARED="true"
1279 DYNEXP="-Wl,-Bdynamic"
1280 SONAMEFLAG="-Wl,-soname,"
1282 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1283 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1285 *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
1287 *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
1291 LDSHFLAGS="-set_version sgi1.0 -shared"
1292 SONAMEFLAG="-soname "
1294 if test "${GCC}" = "yes"; then
1299 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1301 *aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
1303 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry,-berok"
1304 DYNEXP="-Wl,-brtl,-bexpall"
1306 if test "${GCC}" != "yes"; then
1307 ## for funky AIX compiler using strncpy()
1308 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
1311 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
1312 AC_DEFINE(BROKEN_STRNLEN,1,[Does strnlen work correctly])
1313 AC_DEFINE(BROKEN_STRNDUP,1,[Does strndup work correctly])
1315 *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
1317 # Use special PIC flags for the native HP-UX compiler.
1318 if test $ac_cv_prog_cc_Ae = yes; then
1321 LDSHFLAGS="-b -Wl,-B,symbolic,-b,-z"
1322 SONAMEFLAG="-Wl,+h "
1324 elif test "${GCC}" = "yes"; then
1328 AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
1329 AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element])
1331 *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx])
1332 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1334 *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
1337 SONAMEFLAG="-Wl,-soname,"
1339 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1340 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1342 *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix])
1343 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1345 *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
1348 SONAMEFLAG="-Wl,-soname,"
1350 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1352 *next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
1353 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1355 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
1356 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1358 *sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1360 *-univel-*) if [ test "$GCC" != yes ]; then
1361 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1366 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
1368 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1371 *sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1372 if [ test "$GCC" != yes ]; then
1373 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1376 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1378 *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
1383 *darwin*) AC_DEFINE(DARWINOS,1,[Whether the host os is Darwin/MacOSX])
1385 LDSHFLAGS="-bundle -flat_namespace -undefined suppress"
1387 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1391 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1395 AC_MSG_RESULT($BLDSHARED)
1396 AC_MSG_CHECKING([linker flags for shared libraries])
1397 AC_MSG_RESULT([$LDSHFLAGS])
1398 AC_MSG_CHECKING([compiler flags for position-independent code])
1399 AC_MSG_RESULT([$PICFLAGS])
1402 #######################################################
1403 # test whether building a shared library actually works
1404 if test $BLDSHARED = true; then
1405 AC_CACHE_CHECK([whether building shared libraries actually works],
1406 [ac_cv_shlib_works],[
1407 # try building a trivial shared library
1408 ac_cv_shlib_works=no
1409 # The $SHLD and $LDSHFLAGS variables may contain references to other
1410 # variables so they need to be eval'ed.
1411 $CC $CPPFLAGS $CFLAGS $PICFLAGS -c -o \
1412 shlib.$PICSUFFIX ${srcdir-.}/tests/shlib.c && \
1413 `eval echo $SHLD` `eval echo $LDSHFLAGS` -o "shlib.$SHLIBEXT" \
1414 shlib.$PICSUFFIX && ac_cv_shlib_works=yes
1415 rm -f "shlib.$SHLIBEXT" shlib.$PICSUFFIX
1417 if test $ac_cv_shlib_works = no; then
1424 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1425 AC_TRY_RUN([#include <stdio.h>
1426 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1427 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1428 if test x"$samba_cv_have_longlong" = x"yes"; then
1429 AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1433 # Check if the compiler supports the LL prefix on long long integers.
1436 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1437 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1438 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1439 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1440 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
1444 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1445 AC_TRY_RUN([#include <stdio.h>
1446 #include <sys/stat.h>
1447 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1448 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1449 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1450 AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1453 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1455 #if defined(HAVE_UNISTD_H)
1459 #include <sys/stat.h>
1460 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1461 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1462 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1463 AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1466 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1467 AC_TRY_RUN([#include <stdio.h>
1468 #include <sys/stat.h>
1469 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1470 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1471 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1472 AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1475 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1477 #if defined(HAVE_UNISTD_H)
1481 #include <sys/stat.h>
1482 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1483 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1484 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1485 AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1488 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1490 #if defined(HAVE_UNISTD_H)
1494 #include <sys/stat.h>
1495 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1496 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1497 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1498 AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
1501 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1503 #if defined(HAVE_UNISTD_H)
1506 #include <sys/types.h>
1507 #include <dirent.h>],
1508 [struct dirent64 de;],
1509 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1510 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1511 AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1514 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1516 #if defined(HAVE_UNISTD_H)
1519 #include <sys/types.h>
1520 main() { dev_t dev; int i = major(dev); return 0; }],
1521 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1522 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1523 AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
1526 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1528 #if defined(HAVE_UNISTD_H)
1531 #include <sys/types.h>
1532 main() { dev_t dev; int i = minor(dev); return 0; }],
1533 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1534 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1535 AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
1538 AC_CACHE_CHECK([for makedev macro],samba_cv_HAVE_MAKEDEV,[
1540 #if defined(HAVE_UNISTD_H)
1543 #include <sys/types.h>
1544 main() { dev_t dev = makedev(1,2); return 0; }],
1545 samba_cv_HAVE_MAKEDEV=yes,samba_cv_HAVE_MAKEDEV=no,samba_cv_HAVE_MAKEDEV=cross)])
1546 if test x"$samba_cv_HAVE_MAKEDEV" = x"yes"; then
1547 AC_DEFINE(HAVE_MAKEDEV,1,[Whether the macro for makedev is available])
1550 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1551 AC_TRY_RUN([#include <stdio.h>
1552 main() { char c; c=250; exit((c > 0)?0:1); }],
1553 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1554 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1555 AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1558 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1559 AC_TRY_COMPILE([#include <sys/types.h>
1560 #include <sys/socket.h>
1561 #include <netinet/in.h>],
1562 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1563 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1564 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1565 AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
1568 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1569 AC_TRY_COMPILE([#include <sys/types.h>
1571 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1572 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1573 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1574 AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
1577 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1578 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1579 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1580 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1581 AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
1584 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1586 #include <sys/time.h>
1588 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1589 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1590 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1591 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available])
1594 AC_CACHE_CHECK([for va_copy],samba_cv_HAVE_VA_COPY,[
1595 AC_TRY_LINK([#include <stdarg.h>
1596 va_list ap1,ap2;], [va_copy(ap1,ap2);],
1597 samba_cv_HAVE_VA_COPY=yes,
1598 samba_cv_HAVE_VA_COPY=no)])
1599 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1600 AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
1602 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE___VA_COPY,[
1603 AC_TRY_LINK([#include <stdarg.h>
1604 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1605 samba_cv_HAVE___VA_COPY=yes,
1606 samba_cv_HAVE___VA_COPY=no)])
1607 if test x"$samba_cv_HAVE___VA_COPY" = x"yes"; then
1608 AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
1612 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1614 #include <sys/types.h>
1616 void foo(const char *format, ...) {
1621 va_start(ap, format);
1622 len = vsnprintf(buf, 0, format, ap);
1624 if (len != 5) exit(1);
1626 va_start(ap, format);
1627 len = vsnprintf(0, 0, format, ap);
1629 if (len != 5) exit(1);
1631 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1635 main() { foo("hello"); }
1637 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1638 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1639 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
1642 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1643 AC_TRY_RUN([#include <sys/types.h>
1645 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1646 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1647 di->d_name[0] == 0) exit(0); exit(1);} ],
1648 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1649 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1650 AC_DEFINE(HAVE_BROKEN_READDIR,1,[Whether readdir() is broken])
1653 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1654 AC_TRY_COMPILE([#include <sys/types.h>
1655 #include <utime.h>],
1656 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1657 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1658 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1659 AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
1663 # Check utmp details, but only if our OS offers utmp.h
1664 if test x"$ac_cv_header_utmp_h" = x"yes"; then
1665 dnl utmp and utmpx come in many flavours
1666 dnl We need to check for many of them
1667 dnl But we don't need to do each and every one, because our code uses
1668 dnl mostly just the utmp (not utmpx) fields.
1670 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1672 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1673 AC_TRY_COMPILE([#include <sys/types.h>
1675 [struct utmp ut; ut.ut_name[0] = 'a';],
1676 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1677 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1678 AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
1681 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1682 AC_TRY_COMPILE([#include <sys/types.h>
1684 [struct utmp ut; ut.ut_user[0] = 'a';],
1685 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1686 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1687 AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
1690 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1691 AC_TRY_COMPILE([#include <sys/types.h>
1693 [struct utmp ut; ut.ut_id[0] = 'a';],
1694 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1695 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1696 AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
1699 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1700 AC_TRY_COMPILE([#include <sys/types.h>
1702 [struct utmp ut; ut.ut_host[0] = 'a';],
1703 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1704 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1705 AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
1708 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1709 AC_TRY_COMPILE([#include <sys/types.h>
1711 [struct utmp ut; time_t t; ut.ut_time = t;],
1712 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1713 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1714 AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
1717 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1718 AC_TRY_COMPILE([#include <sys/types.h>
1720 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
1721 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1722 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1723 AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
1726 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1727 AC_TRY_COMPILE([#include <sys/types.h>
1729 [struct utmp ut; ut.ut_type = 0;],
1730 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1731 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1732 AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
1735 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1736 AC_TRY_COMPILE([#include <sys/types.h>
1738 [struct utmp ut; ut.ut_pid = 0;],
1739 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1740 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1741 AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
1744 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1745 AC_TRY_COMPILE([#include <sys/types.h>
1747 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1748 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1749 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1750 AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
1753 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1754 AC_TRY_COMPILE([#include <sys/types.h>
1756 [struct utmp ut; ut.ut_addr = 0;],
1757 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1758 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1759 AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
1762 if test x$ac_cv_func_pututline = xyes ; then
1763 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1764 AC_TRY_COMPILE([#include <sys/types.h>
1766 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1767 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1768 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1769 AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
1773 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1774 AC_TRY_COMPILE([#include <sys/types.h>
1775 #include <utmpx.h>],
1776 [struct utmpx ux; ux.ut_syslen = 0;],
1777 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1778 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1779 AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
1786 ICONV_LOCATION=standard
1787 LOOK_DIRS="/usr /usr/local /sw /opt"
1788 AC_ARG_WITH(libiconv,
1789 [ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1791 if test "$withval" = "no" ; then
1792 AC_MSG_ERROR([argument to --with-libiconv must be a directory])
1794 if test "$withval" != "yes" ; then
1796 LOOK_DIRS="$withval"
1801 for i in $LOOK_DIRS ; do
1803 save_LDFLAGS=$LDFLAGS
1804 save_CPPFLAGS=$CPPFLAGS
1807 CPPFLAGS="$CPPFLAGS -I$i/include"
1808 dnl This is here to handle -withval stuff for --with-libiconv
1809 dnl Perhaps we should always add a -L
1811 dnl Check lib and lib32 library variants to cater for IRIX ABI-specific
1812 dnl installation paths. This gets a little tricky since we might have iconv
1813 dnl in both libiconv and in libc. In this case the jm_ICONV test will always
1814 dnl succeed when the header is found. To counter this, make sure the
1815 dnl library directory is there and check the ABI directory first (which
1816 dnl should be harmless on other systems.
1817 for l in "lib32" "lib" ; do
1818 if test -d "$i/$l" ; then
1819 LDFLAGS="$save_LDFLAGS -L$i/$l"
1821 export LDFLAGS LIBS CPPFLAGS
1822 dnl Try to find iconv(3)
1824 if test x"$ICONV_FOUND" = "xyes" ; then
1831 if test x"$ICONV_FOUND" = "xyes" ; then
1832 LDFLAGS=$save_LDFLAGS
1833 LIB_ADD_DIR(LDFLAGS, "$i/$libext")
1834 CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
1837 export LDFLAGS LIBS CPPFLAGS
1838 dnl Now, check for a working iconv ... we want to do it here because
1839 dnl there might be a working iconv further down the list of LOOK_DIRS
1842 # check for iconv in libc
1843 ic_save_LIBS="$LIBS"
1844 if test x"$ICONV_PATH_SPEC" = "xyes" ; then
1845 LIBS="$LIBS -L$ICONV_LOCATION/$libext"
1847 if test x"$jm_cv_lib_iconv" != x; then
1848 LIBS="$LIBS -l$jm_cv_lib_iconv"
1850 dnl AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1851 default_dos_charset=no
1852 default_display_charset=no
1853 default_unix_charset=no
1855 # check for default dos charset name
1856 for j in CP850 IBM850 ; do
1858 if test x"$ICONV_CHARSET" = x"$j"; then
1859 default_dos_charset="\"$j\""
1863 # check for default display charset name
1864 for j in ASCII 646 ; do
1866 if test x"$ICONV_CHARSET" = x"$j"; then
1867 default_display_charset="\"$j\""
1871 # check for default unix charset name
1872 for j in UTF-8 UTF8 ; do
1874 if test x"$ICONV_CHARSET" = x"$j"; then
1875 default_unix_charset="\"$j\""
1880 if test "$default_dos_charset" != "no" -a \
1881 "$default_dos_charset" != "cross" -a \
1882 "$default_display_charset" != "no" -a \
1883 "$default_display_charset" != "cross" -a \
1884 "$default_unix_charset" != "no" -a \
1885 "$default_unix_charset" != "cross"
1887 samba_cv_HAVE_NATIVE_ICONV=yes
1888 else if test "$default_dos_charset" = "cross" -o \
1889 "$default_display_charset" = "cross" -o \
1890 "$default_unix_charset" = "cross"
1892 samba_cv_HAVE_NATIVE_ICONV=cross
1894 samba_cv_HAVE_NATIVE_ICONV=no
1899 LIBS="$ic_save_LIBS"
1900 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1901 CPPFLAGS=$save_CPPFLAGS
1902 LDFLAGS=$save_LDFLAGS
1904 if test x"$jm_cv_lib_iconv" != x; then
1905 LIBS="$LIBS -l$jm_cv_lib_iconv"
1907 dnl Add the flags we need to CPPFLAGS and LDFLAGS
1908 CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
1909 LIB_ADD_DIR(LDFLAGS, "$i/$libext")
1911 AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
1912 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,$default_dos_charset,[Default dos charset name])
1913 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,$default_display_charset,[Default display charset name])
1914 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,$default_unix_charset,[Default unix charset name])
1917 dnl We didn't find a working iconv, so keep going
1919 dnl We only need to clean these up here for the next pass through the loop
1920 CPPFLAGS=$save_CPPFLAGS
1921 LDFLAGS=$save_LDFLAGS
1923 export LDFLAGS LIBS CPPFLAGS
1928 if test x"$ICONV_FOUND" = x"no" -o x"$samba_cv_HAVE_NATIVE_ICONV" != x"yes" ; then
1929 AC_MSG_WARN([Sufficient support for iconv function was not found.
1930 Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!])
1931 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,"ASCII",[Default dos charset name])
1932 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,"ASCII",[Default display charset name])
1933 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,"UTF8",[Default unix charset name])
1937 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1939 #include <sys/types.h>
1942 #define F_GETLEASE 1025
1945 int fd = open("/dev/null", O_RDONLY);
1946 return fcntl(fd, F_GETLEASE, 0) == -1;
1949 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1950 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1951 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
1954 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1956 #include <sys/types.h>
1960 #define F_NOTIFY 1026
1963 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1966 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1967 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1968 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
1971 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1973 #include <sys/types.h>
1976 #include <sys/file.h>
1978 #define LOCK_MAND 32
1979 #define LOCK_READ 64
1982 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1985 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1986 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1987 AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
1993 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1994 AC_TRY_COMPILE([#include <sys/types.h>
1995 #include <fcntl.h>],
1996 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1997 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1998 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1999 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
2002 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
2003 AC_TRY_RUN([#include <sys/types.h>
2004 #include <sys/capability.h>
2007 if ((cap = cap_get_proc()) == NULL)
2009 cap->cap_effective |= CAP_NETWORK_MGT;
2010 cap->cap_inheritable |= CAP_NETWORK_MGT;
2015 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
2016 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
2017 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES,1,[Whether IRIX specific capabilities are available])
2021 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
2022 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
2025 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
2026 AC_TRY_COMPILE([#include <sys/types.h>
2027 #if defined(HAVE_RPC_RPC_H)
2028 #include <rpc/rpc.h>
2031 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
2032 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
2033 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
2036 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
2037 AC_TRY_COMPILE([#include <sys/types.h>
2038 #if defined(HAVE_RPC_RPC_H)
2039 #include <rpc/rpc.h>
2042 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
2043 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
2044 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
2047 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
2048 AC_TRY_COMPILE([#include <sys/types.h>
2049 #if defined(HAVE_RPC_RPC_H)
2050 #include <rpc/rpc.h>
2053 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
2054 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
2055 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
2058 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
2059 AC_TRY_COMPILE([#include <sys/types.h>
2060 #if defined(HAVE_RPC_RPC_H)
2061 #include <rpc/rpc.h>
2064 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
2065 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
2066 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
2070 dnl Some systems (SCO) have a problem including
2071 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
2072 dnl as a #define in <prot.h> and as part of an enum
2076 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
2077 AC_TRY_COMPILE([#include <sys/types.h>
2078 #ifdef HAVE_SYS_SECURITY_H
2079 #include <sys/security.h>
2081 #endif /* HAVE_SYS_SECURITY_H */
2082 #if defined(HAVE_RPC_RPC_H)
2083 #include <rpc/rpc.h>
2086 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
2087 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
2088 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
2091 AC_MSG_CHECKING([for test routines])
2092 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
2094 AC_MSG_ERROR([cant find test code. Aborting config]),
2095 AC_MSG_WARN([cannot run when cross-compiling]))
2097 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
2098 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
2099 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
2100 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
2101 AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
2104 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
2105 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
2106 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
2107 samba_cv_HAVE_WORKING_AF_LOCAL=no,
2108 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
2109 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
2111 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
2114 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
2115 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
2116 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
2117 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
2118 AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
2121 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
2122 SAVE_CPPFLAGS="$CPPFLAGS"
2123 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt"
2125 #define REPLACE_GETPASS 1
2126 #define NO_PROTO_H 1
2127 #define NO_CONFIG_H 1
2128 #define main dont_declare_main
2129 #include "${srcdir-.}/lib/getsmbpass.c"
2131 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
2132 CPPFLAGS="$SAVE_CPPFLAGS"
2134 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
2135 AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced])
2138 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
2141 #include <sys/types.h>
2142 #include <netinet/in.h>
2143 #ifdef HAVE_ARPA_INET_H
2144 #include <arpa/inet.h>
2146 main() { struct in_addr ip; ip.s_addr = 0x12345678;
2147 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
2148 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
2150 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
2151 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
2152 AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced])
2155 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
2156 AC_TRY_RUN([#include <stdlib.h>
2157 #include <sys/types.h>
2158 #include <sys/stat.h>
2162 char tpl[20]="/tmp/test.XXXXXX";
2163 int fd = mkstemp(tpl);
2164 if (fd == -1) exit(1);
2166 if (fstat(fd, &st) != 0) exit(1);
2167 if ((st.st_mode & 0777) != 0600) exit(1);
2170 samba_cv_HAVE_SECURE_MKSTEMP=yes,
2171 samba_cv_HAVE_SECURE_MKSTEMP=no,
2172 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
2173 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
2174 AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
2177 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
2178 AC_TRY_RUN([#include <unistd.h>
2179 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
2180 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
2181 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
2182 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX,1,[Whether sysconf(_SC_NGROUPS_MAX) is available])
2185 AC_CACHE_CHECK([for sysconf(_SC_NPROC_ONLN)],samba_cv_SYSCONF_SC_NPROC_ONLN,[
2186 AC_TRY_RUN([#include <unistd.h>
2187 main() { exit(sysconf(_SC_NPROC_ONLN) == -1 ? 1 : 0); }],
2188 samba_cv_SYSCONF_SC_NPROC_ONLN=yes,samba_cv_SYSCONF_SC_NPROC_ONLN=no,samba_cv_SYSCONF_SC_NPROC_ONLN=cross)])
2189 if test x"$samba_cv_SYSCONF_SC_NPROC_ONLN" = x"yes"; then
2190 AC_DEFINE(SYSCONF_SC_NPROC_ONLN,1,[Whether sysconf(_SC_NPROC_ONLN) is available])
2193 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
2194 AC_TRY_RUN([main() { exit(getuid() != 0); }],
2195 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
2196 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
2197 AC_DEFINE(HAVE_ROOT,1,[Whether current user is root])
2199 AC_MSG_WARN(running as non-root will disable some tests)
2203 # look for a method of finding the list of network interfaces
2205 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
2207 #define HAVE_IFACE_AIX 1
2208 #define AUTOCONF_TEST 1
2209 #include "confdefs.h"
2210 #include "${srcdir-.}/lib/interfaces.c"],
2211 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
2212 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
2213 iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
2216 if test $iface = no; then
2217 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
2219 #define HAVE_IFACE_IFCONF 1
2220 #define AUTOCONF_TEST 1
2221 #include "confdefs.h"
2222 #include "${srcdir-.}/lib/interfaces.c"],
2223 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
2224 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
2225 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
2229 if test $iface = no; then
2230 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
2232 #define HAVE_IFACE_IFREQ 1
2233 #define AUTOCONF_TEST 1
2234 #include "confdefs.h"
2235 #include "${srcdir-.}/lib/interfaces.c"],
2236 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
2237 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
2238 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
2243 ################################################
2244 # look for a method of setting the effective uid
2246 if test $seteuid = no; then
2247 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
2249 #define AUTOCONF_TEST 1
2250 #define USE_SETRESUID 1
2251 #include "confdefs.h"
2252 #include "${srcdir-.}/lib/util_sec.c"],
2253 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
2254 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
2255 seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
2260 if test $seteuid = no; then
2261 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
2263 #define AUTOCONF_TEST 1
2264 #define USE_SETREUID 1
2265 #include "confdefs.h"
2266 #include "${srcdir-.}/lib/util_sec.c"],
2267 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
2268 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
2269 seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
2273 if test $seteuid = no; then
2274 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
2276 #define AUTOCONF_TEST 1
2277 #define USE_SETEUID 1
2278 #include "confdefs.h"
2279 #include "${srcdir-.}/lib/util_sec.c"],
2280 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
2281 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
2282 seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
2286 if test $seteuid = no; then
2287 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
2289 #define AUTOCONF_TEST 1
2290 #define USE_SETUIDX 1
2291 #include "confdefs.h"
2292 #include "${srcdir-.}/lib/util_sec.c"],
2293 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
2294 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
2295 seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
2300 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
2301 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
2302 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
2303 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
2304 AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
2307 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
2308 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
2309 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
2310 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
2311 AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
2314 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
2315 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
2316 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
2317 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
2318 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
2323 dnl Don't check for 64 bit fcntl locking if we know that the
2324 dnl glibc2.1 broken check has succeeded.
2327 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
2329 #if defined(HAVE_UNISTD_H)
2339 #ifdef HAVE_SYS_FCNTL_H
2340 #include <sys/fcntl.h>
2342 main() { struct flock64 fl64;
2343 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
2349 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
2351 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
2352 AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
2356 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
2357 AC_TRY_COMPILE([#include <sys/types.h>
2358 #include <sys/stat.h>
2359 #include <unistd.h>],
2360 [struct stat st; st.st_blocks = 0;],
2361 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
2362 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
2363 AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
2366 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
2367 AC_TRY_COMPILE([#include <sys/types.h>
2368 #include <sys/stat.h>
2369 #include <unistd.h>],
2370 [struct stat st; st.st_blksize = 0;],
2371 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
2372 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
2373 AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
2378 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
2380 #ifdef HAVE_SYS_VFS_H
2381 #include <sys/vfs.h>
2383 #ifdef HAVE_SYS_CAPABILITY_H
2384 #include <sys/capability.h>
2387 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
2388 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
2389 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
2394 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
2396 #include <sys/types.h>
2397 #include <sys/acl.h>
2398 #if defined(HAVE_RPCSVC_NIS_H)
2399 #include <rpcsvc/nis.h>
2402 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
2403 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
2404 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
2407 AC_CACHE_CHECK([if the realpath function allows a NULL argument],samba_cv_REALPATH_TAKES_NULL,[
2412 char *newpath = realpath("/tmp", NULL);
2413 exit ((newpath != NULL) ? 0 : 1);
2416 samba_cv_REALPATH_TAKES_NULL=yes,samba_cv_REALPATH_TAKES_NULL=no,samba_cv_REALPATH_TAKES_NULL=cross)])
2417 if test x"$samba_cv_REALPATH_TAKES_NULL" = x"yes"; then
2418 AC_DEFINE(REALPATH_TAKES_NULL,1,[Whether the realpath function allows NULL])
2421 #################################################
2422 # check for smbwrapper support
2423 AC_MSG_CHECKING(whether to use smbwrapper)
2424 AC_ARG_WITH(smbwrapper,
2425 [ --with-smbwrapper Include SMB wrapper support (default=no) ],
2426 [ case "$withval" in
2429 AC_DEFINE(WITH_SMBWRAPPER,1,[Whether to include smbwrapper support])
2430 WRAPPROG="bin/smbsh\$(EXEEXT)"
2431 WRAP="bin/smbwrapper.$SHLIBEXT"
2432 WRAP_OBJS="\$(SMBW_OBJ1) \$(SMBWRAPPER_OBJ1)"
2433 WRAP_INC="-I\$(srcdir)/smbwrapper"
2435 # Conditions under which smbwrapper should not be built.
2437 if test x$PICFLAGS = x; then
2438 echo No support for PIC code - disabling smbwrapper and smbsh
2443 elif test x$ac_cv_func_syscall = xno; then
2444 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
2450 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $WRAPPROG $WRAP"
2451 SMBWRAPPER="$WRAPPROG $WRAP"
2452 SMBWRAP_OBJS="$WRAP_OBJS"
2453 SMBWRAP_INC="$WRAP_INC"
2462 #################################################
2463 # check for AFS clear-text auth support
2464 samba_cv_WITH_AFS=no
2465 AC_MSG_CHECKING(whether to use AFS clear-text auth)
2467 [ --with-afs Include AFS clear-text auth support (default=no) ],
2468 [ case "$withval" in
2470 AC_MSG_RESULT($withval)
2471 samba_cv_WITH_AFS=$withval
2480 ####################################################
2481 # check for Linux-specific AFS fake-kaserver support
2482 samba_cv_WITH_FAKE_KASERVER=no
2483 AC_MSG_CHECKING(whether to use AFS fake-kaserver)
2484 AC_ARG_WITH(fake-kaserver,
2485 [ --with-fake-kaserver Include AFS fake-kaserver support (default=no) ],
2486 [ case "$withval" in
2488 AC_MSG_RESULT($withval)
2489 samba_cv_WITH_FAKE_KASERVER=$withval
2498 #################################################
2499 # decide whether we can support WITH_AFS and / or WITH_FAKE_KASERVER
2500 if test x"$samba_cv_WITH_AFS" != x"no" ||
2501 test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then
2503 # see if this box has the afs-headers in /usr/include/afs
2504 AC_MSG_CHECKING(for /usr/include/afs)
2505 if test -d /usr/include/afs; then
2506 CFLAGS="$CFLAGS -I/usr/include/afs"
2507 CPPFLAGS="$CPPFLAGS -I/usr/include/afs"
2515 AC_CHECK_HEADERS(afs.h afs/afs.h)
2516 if test x"$ac_cv_header_afs_h" = x"no" && test x"$ac_cv_header_afs_afs_h" = x"no"; then
2517 if test x"$samba_cv_WITH_FAKE_KASERVER" = x"auto" ||
2518 test x"$samba_cv_WITH_AFS" = x"auto"; then
2519 AC_MSG_WARN([AFS cannot be supported without afs.h])
2521 AC_MSG_ERROR([AFS cannot be supported without afs.h])
2524 have_afs_headers=yes
2528 if test x"$samba_cv_WITH_FAKE_KASERVER" != x"no" && test x"$have_afs_headers" = x"yes"; then
2529 AC_DEFINE(WITH_FAKE_KASERVER,1,[Whether to include AFS fake-kaserver support])
2532 #################################################
2533 # check whether to compile AFS/NT ACL mapping module
2534 samba_cv_WITH_VFS_AFSACL=no
2535 AC_MSG_CHECKING(whether to use AFS fake-kaserver)
2536 AC_ARG_WITH(vfs-afsacl,
2537 [ --with-vfs-afsacl Include AFS to NT ACL mapping module (default=no) ],
2538 [ case "$withval" in
2540 AC_MSG_RESULT($withval)
2541 samba_cv_WITH_VFS_AFSACL=yes
2550 if test x"$samba_cv_WITH_VFS_AFSACL" = x"yes"; then
2551 default_shared_modules="$default_shared_modules vfs_afsacl"
2554 if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then
2555 AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
2558 #################################################
2559 # check for the DFS clear-text auth system
2560 AC_MSG_CHECKING(whether to use DFS clear-text auth)
2562 [ --with-dce-dfs Include DCE/DFS clear-text auth support (default=no)],
2563 [ case "$withval" in
2566 AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
2575 ########################################################
2576 # Compile with LDAP support?
2578 with_ldap_support=auto
2579 AC_MSG_CHECKING([for LDAP support])
2582 [ --with-ldap LDAP support (default yes)],
2583 [ case "$withval" in
2585 with_ldap_support=$withval
2589 AC_MSG_RESULT($with_ldap_support)
2594 AC_SUBST(SMBLDAPUTIL)
2595 if test x"$with_ldap_support" != x"no"; then
2597 ##################################################################
2598 # first test for ldap.h and lber.h
2599 # (ldap.h is required for this test)
2600 AC_CHECK_HEADERS(ldap.h lber.h)
2602 if test x"$ac_cv_header_ldap_h" != x"yes"; then
2603 if test x"$with_ldap_support" = x"yes"; then
2604 AC_MSG_ERROR(ldap.h is needed for LDAP support)
2606 AC_MSG_WARN(ldap.h is needed for LDAP support)
2609 with_ldap_support=no
2613 if test x"$with_ldap_support" != x"no"; then
2616 ##################################################################
2617 # we might need the lber lib on some systems. To avoid link errors
2618 # this test must be before the libldap test
2619 AC_CHECK_LIB_EXT(lber, LDAP_LIBS, ber_scanf)
2621 ########################################################
2622 # now see if we can find the ldap libs in standard paths
2623 AC_CHECK_LIB_EXT(ldap, LDAP_LIBS, ldap_init)
2625 AC_CHECK_FUNC_EXT(ldap_domain2hostlist,$LDAP_LIBS)
2627 ########################################################
2628 # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
2629 # Check found in pam_ldap 145.
2630 AC_CHECK_FUNC_EXT(ldap_set_rebind_proc,$LDAP_LIBS)
2632 LIBS="$LIBS $LDAP_LIBS"
2633 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, smb_ldap_cv_ldap_set_rebind_proc, [
2637 [ldap_set_rebind_proc(0, 0, 0);],
2638 [smb_ldap_cv_ldap_set_rebind_proc=3],
2639 [smb_ldap_cv_ldap_set_rebind_proc=2]
2643 AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $smb_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
2645 AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS)
2647 if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes" -a x"$ac_cv_func_ext_ldap_domain2hostlist" = x"yes"; then
2648 AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])
2649 default_static_modules="$default_static_modules pdb_ldap idmap_ldap";
2650 SMBLDAP="lib/smbldap.o"
2651 SMBLDAPUTIL="lib/smbldap_util.o"
2652 with_ldap_support=yes
2653 AC_MSG_CHECKING(whether LDAP support is used)
2656 if test x"$with_ldap_support" = x"yes"; then
2657 AC_MSG_ERROR(libldap is needed for LDAP support)
2659 AC_MSG_WARN(libldap is needed for LDAP support)
2663 with_ldap_support=no
2669 #################################################
2670 # active directory support
2672 with_ads_support=auto
2673 AC_MSG_CHECKING([for Active Directory and krb5 support])
2676 [ --with-ads Active Directory support (default auto)],
2677 [ case "$withval" in
2679 with_ads_support="$withval"
2683 AC_MSG_RESULT($with_ads_support)
2688 if test x"$with_ldap_support" != x"yes"; then
2689 if test x"$with_ads_support" = x"yes"; then
2690 AC_MSG_ERROR(Active Directory Support requires LDAP support)
2691 elif test x"$with_ads_support" != x"no"; then
2692 AC_MSG_WARN(Active Directory Support requires LDAP support)
2697 if test x"$with_ads_support" != x"no"; then
2699 # Do no harm to the values of CFLAGS and LIBS while testing for
2702 if test x$FOUND_KRB5 = x"no"; then
2703 #################################################
2704 # check for location of Kerberos 5 install
2705 AC_MSG_CHECKING(for kerberos 5 install path)
2707 [ --with-krb5=base-dir Locate Kerberos 5 support (default=/usr)],
2708 [ case "$withval" in
2710 AC_MSG_RESULT(no krb5-path given)
2717 AC_MSG_RESULT($withval)
2718 KRB5_CFLAGS="-I$withval/include"
2719 KRB5_CPPFLAGS="-I$withval/include"
2720 KRB5_LDFLAGS="-L$withval/lib"
2722 if test -x "$withval/bin/krb5-config"; then
2723 KRB5CONFIG=$withval/bin/krb5-config
2727 AC_MSG_RESULT(no krb5-path given)
2731 #################################################
2732 # check for krb5-config from recent MIT and Heimdal kerberos 5
2733 AC_PATH_PROG(KRB5CONFIG, krb5-config)
2734 AC_MSG_CHECKING(for working krb5-config)
2735 if test -x "$KRB5CONFIG"; then
2736 ac_save_CFLAGS=$CFLAGS
2737 CFLAGS="";export CFLAGS
2738 ac_save_LDFLAGS=$LDFLAGS
2739 LDFLAGS="";export LDFLAGS
2740 KRB5_LIBS="`$KRB5CONFIG --libs gssapi`"
2741 KRB5_LDFLAGS="`$KRB5CONFIG --libs gssapi | sed s/-lgss.*//`"
2742 KRB5_CFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`"
2743 KRB5_CPPFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`"
2744 CFLAGS=$ac_save_CFLAGS;export CFLAGS
2745 LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS
2749 AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
2752 if test x$FOUND_KRB5 = x"no"; then
2753 #################################################
2754 # see if this box has the SuSE location for the heimdal krb implementation
2755 AC_MSG_CHECKING(for /usr/include/heimdal)
2756 if test -d /usr/include/heimdal; then
2757 if test -f /usr/lib/heimdal/lib/libkrb5.a; then
2758 KRB5_CFLAGS="-I/usr/include/heimdal"
2759 KRB5_CPPFLAGS="-I/usr/include/heimdal"
2760 KRB5_LDFLAGS="-L/usr/lib/heimdal/lib"
2763 KRB5_CFLAGS="-I/usr/include/heimdal"
2764 KRB5_CPPFLAGS="-I/usr/include/heimdal"
2772 if test x$FOUND_KRB5 = x"no"; then
2773 #################################################
2774 # see if this box has the RedHat location for kerberos
2775 AC_MSG_CHECKING(for /usr/kerberos)
2776 if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
2777 KRB5_LDFLAGS="-L/usr/kerberos/lib"
2778 KRB5_CFLAGS="-I/usr/kerberos/include"
2779 KRB5_CPPFLAGS="-I/usr/kerberos/include"
2786 ac_save_CFLAGS=$CFLAGS
2787 ac_save_CPPFLAGS=$CPPFLAGS
2788 ac_save_LDFLAGS=$LDFLAGS
2790 CFLAGS="$KRB5_CFLAGS $CFLAGS"
2791 CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS"
2792 LDFLAGS="$KRB5_LDFLAGS $LDFLAGS"
2794 KRB5_LIBS="$KRB5_LDFLAGS $KRB5_LIBS"
2796 # now check for krb5.h. Some systems have the libraries without the headers!
2797 # note that this check is done here to allow for different kerberos
2799 AC_CHECK_HEADERS(krb5.h)
2801 if test x"$ac_cv_header_krb5_h" = x"no"; then
2803 # Give a warning if AD support was not explicitly requested,
2804 # i.e with_ads_support = auto, otherwise die with an error.
2806 if test x"$with_ads_support" = x"yes"; then
2807 AC_MSG_ERROR([Active Directory cannot be supported without krb5.h])
2809 AC_MSG_WARN([Active Directory cannot be supported without krb5.h])
2812 # Turn off AD support and restore CFLAGS and LIBS variables
2814 with_ads_support="no"
2816 CFLAGS=$ac_save_CFLAGS
2817 CPPFLAGS=$ac_save_CPPFLAGS
2818 LDFLAGS=$ac_save_LDFLAGS
2822 # Now we have determined whether we really want ADS support
2824 if test x"$with_ads_support" != x"no"; then
2827 # now check for gssapi headers. This is also done here to allow for
2828 # different kerberos include paths
2829 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h com_err.h)
2831 ##################################################################
2832 # we might need the k5crypto and com_err libraries on some systems
2833 AC_CHECK_LIB_EXT(com_err, KRB5_LIBS, _et_list)
2834 AC_CHECK_LIB_EXT(k5crypto, KRB5_LIBS, krb5_encrypt_data)
2837 AC_CHECK_LIB_EXT(crypto, KRB5_LIBS, des_set_key)
2838 AC_CHECK_LIB_EXT(asn1, KRB5_LIBS, copy_Authenticator)
2839 AC_CHECK_LIB_EXT(roken, KRB5_LIBS, roken_getaddrinfo_hostspec)
2841 # Heimdal checks. On static Heimdal gssapi must be linked before krb5.
2842 AC_CHECK_LIB_EXT(gssapi, KRB5_LIBS, gss_display_status,[],[],
2843 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
2845 ########################################################
2846 # now see if we can find the krb5 libs in standard paths
2847 # or as specified above
2848 AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_mk_req_extended)
2849 AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_kt_compare)
2851 ########################################################
2852 # now see if we can find the gssapi libs in standard paths
2853 AC_CHECK_LIB_EXT(gssapi_krb5, KRB5_LIBS,gss_display_status,[],[],
2854 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
2856 AC_CHECK_FUNC_EXT(krb5_set_real_time, $KRB5_LIBS)
2857 AC_CHECK_FUNC_EXT(krb5_set_default_in_tkt_etypes, $KRB5_LIBS)
2858 AC_CHECK_FUNC_EXT(krb5_set_default_tgs_ktypes, $KRB5_LIBS)
2859 AC_CHECK_FUNC_EXT(krb5_principal2salt, $KRB5_LIBS)
2860 AC_CHECK_FUNC_EXT(krb5_use_enctype, $KRB5_LIBS)
2861 AC_CHECK_FUNC_EXT(krb5_string_to_key, $KRB5_LIBS)
2862 AC_CHECK_FUNC_EXT(krb5_get_pw_salt, $KRB5_LIBS)
2863 AC_CHECK_FUNC_EXT(krb5_string_to_key_salt, $KRB5_LIBS)
2864 AC_CHECK_FUNC_EXT(krb5_auth_con_setkey, $KRB5_LIBS)
2865 AC_CHECK_FUNC_EXT(krb5_auth_con_setuseruserkey, $KRB5_LIBS)
2866 AC_CHECK_FUNC_EXT(krb5_locate_kdc, $KRB5_LIBS)
2867 AC_CHECK_FUNC_EXT(krb5_get_permitted_enctypes, $KRB5_LIBS)
2868 AC_CHECK_FUNC_EXT(krb5_get_default_in_tkt_etypes, $KRB5_LIBS)
2869 AC_CHECK_FUNC_EXT(krb5_free_ktypes, $KRB5_LIBS)
2870 AC_CHECK_FUNC_EXT(krb5_free_data_contents, $KRB5_LIBS)
2871 AC_CHECK_FUNC_EXT(krb5_principal_get_comp_string, $KRB5_LIBS)
2872 AC_CHECK_FUNC_EXT(krb5_free_unparsed_name, $KRB5_LIBS)
2873 AC_CHECK_FUNC_EXT(krb5_free_keytab_entry_contents, $KRB5_LIBS)
2874 AC_CHECK_FUNC_EXT(krb5_kt_free_entry, $KRB5_LIBS)
2875 AC_CHECK_FUNC_EXT(krb5_krbhst_get_addrinfo, $KRB5_LIBS)
2876 AC_CHECK_FUNC_EXT(krb5_c_enctype_compare, $KRB5_LIBS)
2877 AC_CHECK_FUNC_EXT(krb5_enctypes_compatible_keys, $KRB5_LIBS)
2879 LIBS="$KRB5_LIBS $LIBS"
2881 AC_CACHE_CHECK([for krb5_encrypt_block type],
2882 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK,[
2883 AC_TRY_COMPILE([#include <krb5.h>],
2884 [krb5_encrypt_block block;],
2885 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=yes,
2886 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=no)])
2888 if test x"$samba_cv_HAVE_KRB5_ENCRYPT_BLOCK" = x"yes"; then
2889 AC_DEFINE(HAVE_KRB5_ENCRYPT_BLOCK,1,
2890 [Whether the type krb5_encrypt_block exists])
2893 AC_CACHE_CHECK([for addrtype in krb5_address],
2894 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS,[
2895 AC_TRY_COMPILE([#include <krb5.h>],
2896 [krb5_address kaddr; kaddr.addrtype = ADDRTYPE_INET;],
2897 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=yes,
2898 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=no)])
2900 if test x"$samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS" = x"yes"; then
2901 AC_DEFINE(HAVE_ADDRTYPE_IN_KRB5_ADDRESS,1,
2902 [Whether the krb5_address struct has a addrtype property])
2905 AC_CACHE_CHECK([for addr_type in krb5_address],
2906 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,[
2907 AC_TRY_COMPILE([#include <krb5.h>],
2908 [krb5_address kaddr; kaddr.addr_type = KRB5_ADDRESS_INET;],
2909 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=yes,
2910 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=no)])
2912 if test x"$samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS" = x"yes"; then
2913 AC_DEFINE(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,1,
2914 [Whether the krb5_address struct has a addr_type property])
2917 AC_CACHE_CHECK([for enc_part2 in krb5_ticket],
2918 samba_cv_HAVE_KRB5_TKT_ENC_PART2,
2919 [AC_TRY_COMPILE([#include <krb5.h>],
2920 [krb5_ticket tkt; tkt.enc_part2->authorization_data[0]->contents = NULL;],
2921 samba_cv_HAVE_KRB5_TKT_ENC_PART2=yes,samba_cv_HAVE_KRB5_TKT_ENC_PART2=no)])
2923 if test x"$samba_cv_HAVE_KRB5_TKT_ENC_PART2" = x"yes"; then
2924 AC_DEFINE(HAVE_KRB5_TKT_ENC_PART2,1,
2925 [Whether the krb5_ticket struct has a enc_part2 property])
2928 AC_CACHE_CHECK([for keyblock in krb5_creds],
2929 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS,[
2930 AC_TRY_COMPILE([#include <krb5.h>],
2931 [krb5_creds creds; krb5_keyblock kb; creds.keyblock = kb;],
2932 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=yes,
2933 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=no)])
2935 if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS" = x"yes"; then
2936 AC_DEFINE(HAVE_KRB5_KEYBLOCK_IN_CREDS,1,
2937 [Whether the krb5_creds struct has a keyblock property])
2940 AC_CACHE_CHECK([for session in krb5_creds],
2941 samba_cv_HAVE_KRB5_SESSION_IN_CREDS,[
2942 AC_TRY_COMPILE([#include <krb5.h>],
2943 [krb5_creds creds; krb5_keyblock kb; creds.session = kb;],
2944 samba_cv_HAVE_KRB5_SESSION_IN_CREDS=yes,
2945 samba_cv_HAVE_KRB5_SESSION_IN_CREDS=no)])
2947 if test x"$samba_cv_HAVE_KRB5_SESSION_IN_CREDS" = x"yes"; then
2948 AC_DEFINE(HAVE_KRB5_SESSION_IN_CREDS,1,
2949 [Whether the krb5_creds struct has a session property])
2952 AC_CACHE_CHECK([for keyvalue in krb5_keyblock],
2953 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE,[
2954 AC_TRY_COMPILE([#include <krb5.h>],
2955 [krb5_keyblock key; key.keyvalue.data = NULL;],
2956 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=yes,
2957 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=no)])
2959 if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE" = x"yes"; then
2960 AC_DEFINE(HAVE_KRB5_KEYBLOCK_KEYVALUE,1,
2961 [Whether the krb5_keyblock struct has a keyvalue property])
2964 AC_CACHE_CHECK([for ENCTYPE_ARCFOUR_HMAC_MD5],
2965 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,[
2966 AC_TRY_COMPILE([#include <krb5.h>],
2967 [krb5_enctype enctype; enctype = ENCTYPE_ARCFOUR_HMAC_MD5;],
2968 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=yes,
2969 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=no)])
2970 AC_CACHE_CHECK([for KEYTYPE_ARCFOUR_56],
2971 samba_cv_HAVE_KEYTYPE_ARCFOUR_56,[
2972 AC_TRY_COMPILE([#include <krb5.h>],
2973 [krb5_keytype keytype; keytype = KEYTYPE_ARCFOUR_56;],
2974 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=yes,
2975 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=no)])
2976 # Heimdals with KEYTYPE_ARCFOUR but not KEYTYPE_ARCFOUR_56 are broken
2977 # w.r.t. arcfour and windows, so we must not enable it here
2978 if test x"$samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5" = x"yes" -a\
2979 x"$samba_cv_HAVE_KEYTYPE_ARCFOUR_56" = x"yes"; then
2980 AC_DEFINE(HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,1,
2981 [Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available])
2984 AC_CACHE_CHECK([for AP_OPTS_USE_SUBKEY],
2985 samba_cv_HAVE_AP_OPTS_USE_SUBKEY,[
2986 AC_TRY_COMPILE([#include <krb5.h>],
2987 [krb5_flags ap_options; ap_options = AP_OPTS_USE_SUBKEY;],
2988 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=yes,
2989 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=no)])
2991 if test x"$samba_cv_HAVE_AP_OPTS_USE_SUBKEY" = x"yes"; then
2992 AC_DEFINE(HAVE_AP_OPTS_USE_SUBKEY,1,
2993 [Whether the AP_OPTS_USE_SUBKEY ap option is available])
2996 AC_CACHE_CHECK([for KV5M_KEYTAB],
2997 samba_cv_HAVE_KV5M_KEYTAB,[
2998 AC_TRY_COMPILE([#include <krb5.h>],
2999 [krb5_keytab_entry entry; entry.magic = KV5M_KEYTAB;],
3000 samba_cv_HAVE_KV5M_KEYTAB=yes,
3001 samba_cv_HAVE_KV5M_KEYTAB=no)])
3003 if test x"$samba_cv_HAVE_KV5M_KEYTAB" = x"yes"; then
3004 AC_DEFINE(HAVE_KV5M_KEYTAB,1,
3005 [Whether the KV5M_KEYTAB option is available])
3008 AC_CACHE_CHECK([for the krb5_princ_component macro],
3009 samba_cv_HAVE_KRB5_PRINC_COMPONENT,[
3010 AC_TRY_LINK([#include <krb5.h>],
3011 [const krb5_data *pkdata; krb5_context context; krb5_principal principal; pkdata = krb5_princ_component(context, principal, 0);],
3012 samba_cv_HAVE_KRB5_PRINC_COMPONENT=yes,
3013 samba_cv_HAVE_KRB5_PRINC_COMPONENT=no)])
3015 if test x"$samba_cv_HAVE_KRB5_PRINC_COMPONENT" = x"yes"; then
3016 AC_DEFINE(HAVE_KRB5_PRINC_COMPONENT,1,
3017 [Whether krb5_princ_component is available])
3020 AC_CACHE_CHECK([for key in krb5_keytab_entry],
3021 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY,[
3022 AC_TRY_COMPILE([#include <krb5.h>],
3023 [krb5_keytab_entry entry; krb5_keyblock e; entry.key = e;],
3024 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=yes,
3025 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=no)])
3027 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY" = x"yes"; then
3028 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEY,1,
3029 [Whether krb5_keytab_entry has key member])
3032 AC_CACHE_CHECK([for keyblock in krb5_keytab_entry],
3033 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,[
3034 AC_TRY_COMPILE([#include <krb5.h>],
3035 [krb5_keytab_entry entry; entry.keyblock.keytype = 0;],
3036 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=yes,
3037 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=no)])
3039 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK" = x"yes"; then
3040 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,1,
3041 [Whether krb5_keytab_entry has keyblock member])
3044 if test x"$ac_cv_lib_ext_krb5_krb5_mk_req_extended" = x"yes"; then
3045 AC_DEFINE(HAVE_KRB5,1,[Whether to have KRB5 support])
3046 AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
3047 AC_MSG_CHECKING(whether Active Directory and krb5 support is used)
3050 if test x"$with_ads_support" = x"yes"; then
3051 AC_MSG_ERROR(libkrb5 is needed for Active Directory support)
3053 AC_MSG_WARN(libkrb5 is needed for Active Directory support)
3059 AC_CACHE_CHECK([for WRFILE: keytab support],
3060 samba_cv_HAVE_WRFILE_KEYTAB,[
3065 krb5_context context;
3068 krb5_init_context(&context);
3069 return krb5_kt_resolve(context, "WRFILE:api", &keytab);
3071 samba_cv_HAVE_WRFILE_KEYTAB=yes,
3072 samba_cv_HAVE_WRFILE_KEYTAB=no)])
3074 if test x"$samba_cv_HAVE_WRFILE_KEYTAB" = x"yes"; then
3075 AC_DEFINE(HAVE_WRFILE_KEYTAB,1,
3076 [Whether the WRFILE:-keytab is supported])
3079 AC_CACHE_CHECK([for krb5_princ_realm returns krb5_realm or krb5_data],
3080 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM,[
3081 AC_TRY_COMPILE([#include <krb5.h>],
3083 krb5_context context;
3084 krb5_principal principal;
3085 krb5_realm realm; realm = *krb5_princ_realm(context, principal);],
3086 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=yes,
3087 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=no)])
3089 if test x"$samba_cv_KRB5_PRINC_REALM_RETURNS_REALM" = x"yes"; then
3090 AC_DEFINE(KRB5_PRINC_REALM_RETURNS_REALM,1,
3091 [Whether krb5_princ_realm returns krb5_realm or krb5_data])
3094 LIBS="$ac_save_LIBS"
3097 ########################################################
3098 # Compile experimental passdb backends?
3099 # (pdb_xml, pdb_mysql, pdb_pgsql)
3100 AC_MSG_CHECKING(whether to build experimental passdb libraries)
3102 [ --with-expsam=<list> Include experimental passdb libraries (default=no)]
3103 [ Valid choices include (comma separated list): ]
3104 [ xml, mysql & pgsql],
3105 [ expsam_pdb_modules=`echo "$withval" | sed 's/,/ /g'`
3106 if test "z$expsam_pdb_modules" = "zyes"; then
3107 expsam_pdb_modules="xml mysql pgsql"
3109 AC_MSG_RESULT($expsam_pdb_modules)
3110 for i in $expsam_pdb_modules
3115 AM_PATH_XML2([2.0.0],[default_shared_modules="$default_shared_modules pdb_xml"],[AC_MSG_ERROR([Can't find XML libraries while XML support is requested])])
3116 CFLAGS="$CFLAGS $XML_CFLAGS"
3120 AM_PATH_MYSQL([default_shared_modules="$default_shared_modules pdb_mysql"],[AC_MSG_ERROR([Can't find MySQL libraries while MySQL support is requested])])
3121 CFLAGS="$CFLAGS $MYSQL_CFLAGS"
3125 AM_PATH_PGSQL([default_shared_modules="$default_shared_modules pdb_pgsql"],[])
3126 CFLAGS="$CFLAGS $PGSQL_CFLAGS"
3131 echo "Unknown module name \"$i\"! Exiting..."
3139 #################################################
3140 # check for automount support
3141 AC_MSG_CHECKING(whether to use automount)
3142 AC_ARG_WITH(automount,
3143 [ --with-automount Include automount support (default=no)],
3144 [ case "$withval" in
3147 AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
3156 #################################################
3157 # check for smbmount support
3158 AC_MSG_CHECKING(whether to use smbmount)
3159 AC_ARG_WITH(smbmount,
3160 [ --with-smbmount Include smbmount (Linux only) support (default=no)],
3161 [ case "$withval" in
3166 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
3167 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbmount bin/smbmnt bin/smbumount"
3170 AC_MSG_ERROR(not on a linux system!)
3183 #################################################
3184 # check for a PAM clear-text auth, accounts, password and session support
3185 with_pam_for_crypt=no
3186 AC_MSG_CHECKING(whether to use PAM)
3188 [ --with-pam Include PAM support (default=no)],
3189 [ case "$withval" in
3192 if test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
3193 if test x"$ac_cv_header_security_pam_modules_h" = x"no"; then
3194 if test x"$ac_cv_header_security__pam_macros_h" = x"no"; then
3195 AC_MSG_ERROR(--with-pam specified but no PAM headers found)
3199 AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
3200 AUTH_LIBS="$AUTH_LIBS -lpam"
3201 with_pam_for_crypt=yes
3210 # we can't build a pam module if we don't have pam.
3211 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
3213 #################################################
3214 # check for pam_smbpass support
3215 AC_MSG_CHECKING(whether to use pam_smbpass)
3216 AC_ARG_WITH(pam_smbpass,
3217 [ --with-pam_smbpass Build PAM module for authenticating against passdb backends (default=no)],
3218 [ case "$withval" in
3222 # Conditions under which pam_smbpass should not be built.
3224 if test x$PICFLAGS = x; then
3225 AC_MSG_ERROR([No support for PIC code])
3226 elif test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
3227 AC_MSG_ERROR([No security/pam_appl.h found])
3228 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
3229 AC_MSG_ERROR([No libpam found])
3231 AUTH_LIBS="$AUTH_LIBS -lpam"
3232 SHLIB_PROGS="$SHLIB_PROGS bin/pam_smbpass.$SHLIBEXT"
3243 ###############################################
3244 # test for where we get crypt() from
3245 AC_SEARCH_LIBS(crypt, [crypt],
3246 [test "$ac_cv_search_crypt" = "none required" || AUTH_LIBS="-lcrypt $AUTH_LIBS"
3247 AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
3250 ## moved after the check for -lcrypt in order to
3251 ## ensure that the necessary libraries are included
3252 ## check checking for truncated salt. Wrapped by the
3253 ## $with_pam_for_crypt variable as above --jerry
3255 if test $with_pam_for_crypt = no; then
3256 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
3258 LIBS="$AUTH_LIBS $LIBS"
3259 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
3260 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
3261 LIBS="$crypt_LIBS"])
3262 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
3263 AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
3268 ########################################################################################
3270 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
3272 ########################################################################################
3274 #################################################
3275 # check for a LDAP password database configuration backwards compatibility
3276 AC_MSG_CHECKING(whether to use LDAP SAM 2.2 compatible configuration)
3277 AC_ARG_WITH(ldapsam,
3278 [ --with-ldapsam Include LDAP SAM 2.2 compatible configuration (default=no)],
3279 [ case "$withval" in
3282 AC_DEFINE(WITH_LDAP_SAMCONFIG,1,[Whether to include 2.2 compatible LDAP SAM configuration])
3291 ########################################################################################
3293 ## END OF TESTS FOR SAM BACKENDS.
3295 ########################################################################################
3297 #################################################
3298 # check for a NISPLUS_HOME support
3299 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
3300 AC_ARG_WITH(nisplus-home,
3301 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
3302 [ case "$withval" in
3305 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
3314 #################################################
3315 # check for syslog logging
3316 AC_MSG_CHECKING(whether to use syslog logging)
3318 [ --with-syslog Include experimental SYSLOG support (default=no)],
3319 [ case "$withval" in
3322 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
3331 #################################################
3332 # check for a shared memory profiling support
3333 AC_MSG_CHECKING(whether to use profiling)
3334 AC_ARG_WITH(profiling-data,
3335 [ --with-profiling-data Include gathering source code profile information (default=no)],
3336 [ case "$withval" in
3339 AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
3349 #################################################
3350 # check for experimental disk-quotas support
3352 samba_cv_WITH_QUOTAS=auto
3353 samba_cv_TRY_QUOTAS=no
3354 samba_cv_RUN_QUOTA_TESTS=auto
3355 samba_cv_WITH_SYS_QUOTAS=auto
3356 samba_cv_TRY_SYS_QUOTAS=no
3357 samba_cv_SYSQUOTA_FOUND=no;
3359 AC_MSG_CHECKING(whether to try disk-quotas support)
3361 [ --with-quotas Include disk-quota support (default=no)],
3362 [ case "$withval" in
3365 samba_cv_WITH_QUOTAS=yes
3366 samba_cv_TRY_QUOTAS=yes
3367 samba_cv_RUN_QUOTA_TESTS=yes
3368 #set sys quotas to auto in this case
3369 samba_cv_TRY_SYS_QUOTAS=auto
3373 samba_cv_WITH_QUOTAS=auto
3374 samba_cv_TRY_QUOTAS=auto
3375 samba_cv_RUN_QUOTA_TESTS=auto
3376 #set sys quotas to auto in this case
3377 samba_cv_TRY_SYS_QUOTAS=auto
3381 samba_cv_WITH_QUOTAS=no
3382 samba_cv_TRY_QUOTAS=no
3383 samba_cv_RUN_QUOTA_TESTS=no
3386 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
3389 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
3392 AC_MSG_CHECKING(whether to try the new lib/sysquotas.c interface)
3393 AC_ARG_WITH(sys-quotas,
3394 [ --with-sys-quotas Include lib/sysquotas.c support (default=auto)],
3395 [ case "$withval" in
3398 samba_cv_WITH_SYS_QUOTAS=yes
3399 samba_cv_TRY_SYS_QUOTAS=yes
3400 samba_cv_RUN_QUOTA_TESTS=yes
3404 samba_cv_WITH_SYS_QUOTAS=auto
3405 samba_cv_TRY_SYS_QUOTAS=auto
3406 samba_cv_RUN_QUOTA_TESTS=auto
3410 samba_cv_WITH_SYS_QUOTAS=no
3411 samba_cv_TRY_SYS_QUOTAS=no
3414 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
3417 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
3420 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then
3421 AC_MSG_CHECKING(whether to try the lib/sysquotas.c interface on ${host_os})
3425 samba_cv_TRY_SYS_QUOTAS=yes
3426 samba_cv_RUN_QUOTA_TESTS=yes
3427 samba_cv_SYSQUOTA_FOUND=yes
3428 AC_DEFINE(HAVE_QUOTACTL_LINUX,1,[Whether Linux quota support is available])
3429 samba_cv_sysquotas_file="lib/sysquotas_linux.c"
3430 AC_DEFINE(HAVE_LINUX_XFS_QUOTAS,1,[Whether Linux xfs quota support is available])
3431 samba_cv_found_xfs_header=yes
3435 samba_cv_TRY_SYS_QUOTAS=no
3440 #############################################
3441 # only check for quota stuff if --with-quotas
3442 if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then
3444 # some broken header files need this
3445 AC_CHECK_HEADER(asm/types.h,[
3446 AC_DEFINE(HAVE_ASM_TYPES_H,1,[check for <asm/types.h>])
3447 AC_ADD_INCLUDE(<asm/types.h>)
3450 # For quotas on Veritas VxFS filesystems
3451 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
3453 # For sys/quota.h and linux/quota.h
3454 AC_CHECK_HEADERS(sys/quota.h)
3456 if test x"$samba_cv_found_xfs_header" != x"yes"; then
3457 # if we have xfs quota support <sys/quota.h> (IRIX) we should use it
3458 AC_CACHE_CHECK([for XFS QUOTA in <sys/quota.h>],samba_cv_HAVE_SYS_QUOTA_XFS, [
3460 #include "confdefs.h"
3461 #ifdef HAVE_SYS_TYPES_H
3462 #include <sys/types.h>
3464 #ifdef HAVE_ASM_TYPES_H
3465 #include <asm/types.h>
3467 #include <sys/quota.h>
3468 ],[int i = Q_XGETQUOTA;],
3469 samba_cv_HAVE_SYS_QUOTA_XFS=yes,samba_cv_HAVE_SYS_QUOTA_XFS=no)])
3470 if test "$samba_cv_HAVE_SYS_QUOTA_XFS"x = "yes"x; then
3471 samba_cv_found_xfs_header=yes
3475 # if we have struct dqblk .dqb_fsoftlimit instead of .dqb_isoftlimit on IRIX
3476 AC_CACHE_CHECK([if struct dqblk has .dqb_fsoftlimit],samba_cv_HAVE_DQB_FSOFTLIMIT, [
3478 #include "confdefs.h"
3479 #ifdef HAVE_SYS_QUOTA_H
3480 #include <sys/quota.h>
3484 D.dqb_fsoftlimit = 0;],
3485 samba_cv_HAVE_DQB_FSOFTLIMIT=yes,samba_cv_HAVE_DQB_FSOFTLIMIT=no)])
3486 if test "$samba_cv_HAVE_DQB_FSOFTLIMIT"x = "yes"x; then
3487 AC_DEFINE(HAVE_DQB_FSOFTLIMIT,1,[struct dqblk .dqb_fsoftlimit])
3491 # look for a working quota system
3493 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3494 AC_CACHE_CHECK([for long quotactl(int cmd, char *special, qid_t id, caddr_t addr)],samba_cv_HAVE_QUOTACTL_4A,[
3496 #define HAVE_QUOTACTL_4A 1
3497 #define AUTOCONF_TEST 1
3498 #include "confdefs.h"
3499 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3500 samba_cv_HAVE_QUOTACTL_4A=yes,samba_cv_HAVE_QUOTACTL_4A=no,samba_cv_HAVE_QUOTACTL_4A=cross)])
3501 if test x"$samba_cv_HAVE_QUOTACTL_4A" = x"yes"; then
3502 samba_cv_SYSQUOTA_FOUND=yes;
3503 AC_DEFINE(HAVE_QUOTACTL_4A,1,[Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is available])
3504 samba_cv_sysquotas_file="lib/sysquotas_4A.c"
3508 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3509 AC_CACHE_CHECK([for int quotactl(const char *path, int cmd, int id, char *addr)],samba_cv_HAVE_QUOTACTL_4B,[
3511 #define HAVE_QUOTACTL_4B 1
3512 #define AUTOCONF_TEST 1
3513 #include "confdefs.h"
3514 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3515 samba_cv_HAVE_QUOTACTL_4B=yes,samba_cv_HAVE_QUOTACTL_4B=no,samba_cv_HAVE_QUOTACTL_4B=cross)])
3516 if test x"$samba_cv_HAVE_QUOTACTL_4B" = x"yes"; then
3517 echo "int quotactl(const char *path, int cmd, int id, char *addr) is not reworked for the new sys_quota api"
3518 samba_cv_SYSQUOTA_FOUND=yes;
3519 AC_DEFINE(HAVE_QUOTACTL_4B,1,[Whether int quotactl(const char *path, int cmd, int id, char *addr) is available])
3520 samba_cv_sysquotas_file="lib/sysquotas_4B.c"
3524 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3525 AC_CACHE_CHECK([for CRAY int quotactl (char *spec, int request, char *arg)],samba_cv_HAVE_QUOTACTL_3,[
3527 #define HAVE_QUOTACTL_3 1
3528 #define AUTOCONF_TEST 1
3529 #include "confdefs.h"
3530 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3531 samba_cv_HAVE_QUOTACTL_3=yes,samba_cv_HAVE_QUOTACTL_3=no,samba_cv_HAVE_QUOTACTL_3=cross)])
3532 if test x"$samba_cv_HAVE_QUOTACTL_3" = x"yes"; then
3533 echo "CRAY int quotactl (char *spec, int request, char *arg) is NOT reworked for the sys_quota api"
3534 samba_cv_SYSQUOTA_FOUND=yes;
3535 AC_DEFINE(HAVE_QUOTACTL_3,1,[Whether CRAY int quotactl (char *spec, int request, char *arg); is available])
3536 samba_cv_sysquotas_file="lib/sysquotas_3.c"
3540 #################################################
3541 # check for mntent.h and struct mntent
3542 AC_CHECK_HEADERS(mntent.h)
3543 #################################################
3544 # check for setmntent,getmntent,endmntent
3545 AC_CHECK_FUNCS(setmntent getmntent endmntent)
3547 #################################################
3548 # check for devnm.h and struct mntent
3549 AC_CHECK_HEADERS(devnm.h)
3550 #################################################
3552 AC_CHECK_FUNCS(devnm)
3554 if test x"$samba_cv_WITH_SYS_QUOTAS" = x"yes"; then
3555 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3556 # if --with-sys-quotas=yes then build it
3557 # you have can use the get/set quota command smb.conf
3559 samba_cv_SYSQUOTA_FOUND=auto
3561 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"yes"; then
3562 # if --with-sys-quotas=yes then build it
3563 # you have can use the get/set quota command smb.conf
3565 samba_cv_TRY_SYS_QUOTAS=auto
3569 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then
3570 AC_CACHE_CHECK([whether the sys_quota interface works],samba_cv_SYSQUOTA_WORKS,[
3571 SAVE_CPPFLAGS="$CPPFLAGS"
3572 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/nsswitch"
3574 #include "confdefs.h"
3575 #define NO_PROTO_H 1
3576 #define NO_CONFIG_H 1
3577 #define HAVE_SYS_QUOTAS 1
3578 #include "${srcdir-.}/${samba_cv_sysquotas_file}"
3579 #include "${srcdir-.}/lib/sysquotas.c"
3580 ],[],samba_cv_SYSQUOTA_WORKS=yes,samba_cv_SYSQUOTA_WORKS=no)
3581 CPPFLAGS="$SAVE_CPPFLAGS"
3583 if test x"$samba_cv_SYSQUOTA_WORKS" = x"yes"; then
3584 AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface)
3585 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then
3586 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
3587 AC_DEFINE(HAVE_SYS_QUOTAS,1,[Whether the new lib/sysquotas.c interface can be used])
3588 samba_cv_WE_USE_SYS_QUOTAS=yes
3596 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no" -a x"$samba_cv_found_xfs_header" = x"yes"; then
3597 AC_CACHE_CHECK([whether the sys_quota interface works with XFS],samba_cv_SYSQUOTA_WORKS_XFS,[
3598 SAVE_CPPFLAGS="$CPPFLAGS"
3599 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/nsswitch"
3601 #include "confdefs.h"
3602 #define NO_PROTO_H 1
3603 #define NO_CONFIG_H 1
3604 #define HAVE_SYS_QUOTAS 1
3605 #define HAVE_XFS_QUOTAS 1
3606 #include "${srcdir-.}/lib/sysquotas_xfs.c"
3607 ],[],samba_cv_SYSQUOTA_WORKS_XFS=yes,samba_cv_SYSQUOTA_WORKS_XFS=no)
3608 CPPFLAGS="$SAVE_CPPFLAGS"
3610 if test x"$samba_cv_SYSQUOTA_WORKS_XFS" = x"yes"; then
3611 if test x"$samba_cv_WE_USE_SYS_QUOTAS" = x"yes"; then
3612 AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available])
3617 AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[
3618 SAVE_CPPFLAGS="$CPPFLAGS"
3619 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/nsswitch"
3621 #include "confdefs.h"
3622 #define NO_PROTO_H 1
3623 #define NO_CONFIG_H 1
3624 #include "${srcdir-.}/smbd/quotas.c"
3625 ],[],samba_cv_QUOTA_WORKS=yes,samba_cv_QUOTA_WORKS=no)
3626 CPPFLAGS="$SAVE_CPPFLAGS"
3628 if test x"$samba_cv_QUOTA_WORKS" = x"yes"; then
3629 AC_MSG_CHECKING(whether to use the old quota support)
3630 if test x"$samba_cv_WE_USE_SYS_QUOTAS" != x"yes"; then
3631 if test x"$samba_cv_TRY_QUOTAS" != x"no"; then
3632 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
3642 ####################
3643 # End of quota check samba_cv_RUN_QUOTA_TESTS
3646 #################################################
3647 # check for experimental utmp accounting
3649 AC_MSG_CHECKING(whether to support utmp accounting)
3652 [ --with-utmp Include utmp accounting (default, if supported by OS)],
3653 [ case "$withval" in
3663 # utmp requires utmp.h
3664 # Note similar check earlier, when checking utmp details.
3666 if test x"$WITH_UTMP" = x"yes" -a x"$ac_cv_header_utmp_h" = x"no"; then
3667 utmp_no_reason=", no utmp.h on $host_os"
3671 # Display test results
3673 if test x"$WITH_UTMP" = x"yes"; then
3675 AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
3677 AC_MSG_RESULT(no$utmp_no_reason)
3680 #################################################
3681 # should we build libsmbclient?
3683 INSTALLCLIENTCMD_SH=:
3684 INSTALLCLIENTCMD_A=:
3686 LIBSMBCLIENT_SHARED=
3688 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
3689 AC_ARG_WITH(libsmbclient,
3690 [ --with-libsmbclient Build the libsmbclient shared library (default=yes if shared libs supported)],
3691 [ case "$withval" in
3696 if test $BLDSHARED = true; then
3697 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
3698 ## build the static version of libsmbclient as well
3699 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3700 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
3701 LIBSMBCLIENT=libsmbclient
3705 AC_MSG_RESULT(no shared library support -- will supply static library)
3707 if test $enable_static = yes; then
3708 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3709 LIBSMBCLIENT=libsmbclient
3711 INSTALLCLIENT=installclientlib
3715 # if unspecified, default is to built it iff possible.
3716 if test $BLDSHARED = true; then
3717 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
3718 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
3719 LIBSMBCLIENT=libsmbclient
3723 AC_MSG_RESULT(no shared library support -- will supply static library)
3725 if test $enable_static = yes; then
3726 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3727 LIBSMBCLIENT=libsmbclient
3729 INSTALLCLIENT=installclientlib
3733 #################################################
3734 # these tests are taken from the GNU fileutils package
3735 AC_CHECKING(how to get filesystem space usage)
3738 # Test for statvfs64.
3739 if test $space = no; then
3741 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
3743 #if defined(HAVE_UNISTD_H)
3746 #include <sys/types.h>
3747 #include <sys/statvfs.h>
3750 struct statvfs64 fsd;
3751 exit (statvfs64 (".", &fsd));
3753 fu_cv_sys_stat_statvfs64=yes,
3754 fu_cv_sys_stat_statvfs64=no,
3755 fu_cv_sys_stat_statvfs64=cross)])
3756 if test $fu_cv_sys_stat_statvfs64 = yes; then
3758 AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
3762 # Perform only the link test since it seems there are no variants of the
3763 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
3764 # because that got a false positive on SCO OSR5. Adding the declaration
3765 # of a `struct statvfs' causes this test to fail (as it should) on such
3766 # systems. That system is reported to work fine with STAT_STATFS4 which
3767 # is what it gets when this test fails.
3768 if test $space = no; then
3770 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
3771 [AC_TRY_LINK([#include <sys/types.h>
3772 #include <sys/statvfs.h>],
3773 [struct statvfs fsd; statvfs (0, &fsd);],
3774 fu_cv_sys_stat_statvfs=yes,
3775 fu_cv_sys_stat_statvfs=no)])
3776 if test $fu_cv_sys_stat_statvfs = yes; then
3778 AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
3782 if test $space = no; then
3783 # DEC Alpha running OSF/1
3784 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
3785 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
3787 #include <sys/param.h>
3788 #include <sys/types.h>
3789 #include <sys/mount.h>
3794 exit (statfs (".", &fsd, sizeof (struct statfs)));
3796 fu_cv_sys_stat_statfs3_osf1=yes,
3797 fu_cv_sys_stat_statfs3_osf1=no,
3798 fu_cv_sys_stat_statfs3_osf1=no)])
3799 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
3800 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
3802 AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
3806 if test $space = no; then
3808 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
3809 member (AIX, 4.3BSD)])
3810 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
3812 #ifdef HAVE_SYS_PARAM_H
3813 #include <sys/param.h>
3815 #ifdef HAVE_SYS_MOUNT_H
3816 #include <sys/mount.h>
3818 #ifdef HAVE_SYS_VFS_H
3819 #include <sys/vfs.h>
3825 exit (statfs (".", &fsd));
3827 fu_cv_sys_stat_statfs2_bsize=yes,
3828 fu_cv_sys_stat_statfs2_bsize=no,
3829 fu_cv_sys_stat_statfs2_bsize=no)])
3830 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
3831 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
3833 AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
3837 if test $space = no; then
3839 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
3840 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
3841 [AC_TRY_RUN([#include <sys/types.h>
3842 #include <sys/statfs.h>
3846 exit (statfs (".", &fsd, sizeof fsd, 0));
3848 fu_cv_sys_stat_statfs4=yes,
3849 fu_cv_sys_stat_statfs4=no,
3850 fu_cv_sys_stat_statfs4=no)])
3851 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
3852 if test $fu_cv_sys_stat_statfs4 = yes; then
3854 AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
3858 if test $space = no; then
3860 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
3861 member (4.4BSD and NetBSD)])
3862 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
3863 [AC_TRY_RUN([#include <sys/types.h>
3864 #ifdef HAVE_SYS_PARAM_H
3865 #include <sys/param.h>
3867 #ifdef HAVE_SYS_MOUNT_H
3868 #include <sys/mount.h>
3874 exit (statfs (".", &fsd));
3876 fu_cv_sys_stat_statfs2_fsize=yes,
3877 fu_cv_sys_stat_statfs2_fsize=no,
3878 fu_cv_sys_stat_statfs2_fsize=no)])
3879 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
3880 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
3882 AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
3886 if test $space = no; then
3888 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
3889 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
3890 [AC_TRY_RUN([#include <sys/types.h>
3891 #ifdef HAVE_SYS_PARAM_H
3892 #include <sys/param.h>
3894 #ifdef HAVE_SYS_MOUNT_H
3895 #include <sys/mount.h>
3897 #ifdef HAVE_SYS_FS_TYPES_H
3898 #include <sys/fs_types.h>
3903 /* Ultrix's statfs returns 1 for success,
3904 0 for not mounted, -1 for failure. */
3905 exit (statfs (".", &fsd) != 1);
3907 fu_cv_sys_stat_fs_data=yes,
3908 fu_cv_sys_stat_fs_data=no,
3909 fu_cv_sys_stat_fs_data=no)])
3910 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
3911 if test $fu_cv_sys_stat_fs_data = yes; then
3913 AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
3918 # As a gating factor for large file support, in order to
3919 # use <4GB files we must have the following minimal support
3921 # long long, and a 64 bit off_t or off64_t.
3922 # If we don't have all of these then disable large
3925 AC_MSG_CHECKING([if large file support can be enabled])
3927 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
3928 #include <sys/types.h>
3934 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
3935 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
3936 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
3938 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
3940 AC_ARG_WITH(spinlocks,
3941 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no) ])
3942 if test "x$with_spinlocks" = "xyes"; then
3943 AC_DEFINE(USE_SPINLOCKS,1,[Whether to use spin locks instead of fcntl locks])
3947 AC_DEFINE(SPARC_SPINLOCKS,1,[Whether to use sparc spinlocks])
3950 i386|i486|i586|i686)
3951 AC_DEFINE(INTEL_SPINLOCKS,1,[Whether to use intel spinlocks])
3955 AC_DEFINE(MIPS_SPINLOCKS,1,[Whether to use mips spinlocks])
3959 AC_DEFINE(POWERPC_SPINLOCKS,1,[Whether to use powerpc spinlocks])
3964 #################################################
3965 # check for ACL support
3967 AC_MSG_CHECKING(whether to support ACLs)
3968 AC_ARG_WITH(acl-support,
3969 [ --with-acl-support Include ACL support (default=no)],
3970 [ case "$withval" in
3975 AC_MSG_RESULT(Using UnixWare ACLs)
3976 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
3979 AC_MSG_RESULT(Using solaris ACLs)
3980 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
3983 AC_MSG_RESULT(Using HPUX ACLs)
3984 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
3987 AC_MSG_RESULT(Using IRIX ACLs)
3988 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
3991 AC_MSG_RESULT(Using AIX ACLs)
3992 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
3995 AC_MSG_RESULT(Using Tru64 ACLs)
3996 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
3997 ACL_LIBS="$ACL_LIBS -lpacl"
3999 *freebsd5*|*freebsd6*)
4000 AC_MSG_RESULT(Using FreeBSD posix ACLs)
4001 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether FreeBSD POSIX ACLs are available])
4002 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
4005 AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
4006 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
4007 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
4010 AC_TRY_LINK([#include <sys/types.h>
4011 #include <sys/acl.h>],
4012 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
4013 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
4015 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
4016 AC_MSG_RESULT(Using posix ACLs)
4017 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
4018 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
4021 AC_TRY_LINK([#include <sys/types.h>
4022 #include <sys/acl.h>],
4023 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
4024 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
4026 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
4027 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
4032 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
4033 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
4036 AC_TRY_LINK([#include <sys/types.h>
4037 #include <sys/acl.h>],
4038 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
4039 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
4041 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
4042 AC_MSG_RESULT(Using posix ACLs)
4043 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
4044 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
4047 AC_TRY_LINK([#include <sys/types.h>
4048 #include <sys/acl.h>],
4049 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
4050 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
4052 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
4053 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
4061 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
4064 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
4068 #################################################
4069 # check for AIO support
4071 AC_MSG_CHECKING(whether to support asynchronous io)
4072 AC_ARG_WITH(aio-support,
4073 [ --with-aio-support Include asynchronous io support (default=no)],
4074 [ case "$withval" in
4079 AC_CHECK_LIB(rt,aio_read,[AIO_LIBS="$ACL_LIBS -lrt"])
4080 AC_CACHE_CHECK([for asynchronous io support],samba_cv_HAVE_AIO,[
4083 AC_TRY_LINK([#include <sys/types.h>
4085 [ struct aiocb a; return aio_read(&a);],
4086 samba_cv_HAVE_AIO=yes,samba_cv_HAVE_AIO=no)
4088 AC_CACHE_CHECK([for 64-bit asynchronous io support],samba_cv_HAVE_AIO64,[
4091 AC_TRY_LINK([#include <sys/types.h>
4093 [ struct aiocb64 a; return aio_read64(&a);],
4094 samba_cv_HAVE_AIO64=yes,samba_cv_HAVE_AIO64=no)
4096 if test x"$samba_cv_HAVE_AIO64" = x"yes"; then
4097 AC_DEFINE(HAVE_AIOCB64,1,[Whether 64 bit aio is available])
4098 AC_DEFINE(WITH_AIO, 1, [Using asynchronous io])
4100 elif test x"$samba_cv_HAVE_AIO" = x"yes"; then
4101 AC_DEFINE(WITH_AIO, 1, [Using asynchronous io])
4109 AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support is available])
4112 AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support should be built in])
4116 AC_CHECK_FUNCS(aio_cancel aio_cancel64 aio_error aio_error64 aio_fsync aio_fsync64 aio_read aio_read64)
4117 AC_CHECK_FUNCS(aio_return aio_return64 aio_suspend aio_suspend64 aio_write aio_write64)
4119 #################################################
4120 # check for sendfile support
4122 with_sendfile_support=yes
4123 AC_MSG_CHECKING(whether to check to support sendfile)
4124 AC_ARG_WITH(sendfile-support,
4125 [ --with-sendfile-support Check for sendfile support (default=yes)],
4126 [ case "$withval" in
4133 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
4134 AC_TRY_LINK([#include <sys/sendfile.h>],
4139 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
4141 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
4143 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
4144 AC_TRY_LINK([#include <sys/sendfile.h>],
4149 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
4151 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
4153 # Try and cope with broken Linux sendfile....
4154 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
4156 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
4157 #undef _FILE_OFFSET_BITS
4159 #include <sys/sendfile.h>],
4164 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
4166 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
4168 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
4169 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
4170 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
4171 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
4172 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
4173 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
4174 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
4175 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
4176 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
4177 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
4178 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
4184 *freebsd* | *dragonfly* )
4185 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
4187 #include <sys/types.h>
4189 #include <sys/socket.h>
4190 #include <sys/uio.h>],
4192 int fromfd, tofd, ret, total=0;
4193 off_t offset, nwritten;
4196 hdr.headers = &hdtrl;
4198 hdr.trailers = NULL;
4200 hdtrl.iov_base = NULL;
4202 ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
4204 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
4206 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
4207 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
4208 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
4209 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4216 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
4218 #include <sys/socket.h>
4219 #include <sys/uio.h>],
4223 struct iovec hdtrl[2];
4227 hdtrl[0].iov_base = 0;
4228 hdtrl[0].iov_len = 0;
4230 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
4232 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
4233 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
4234 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
4235 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
4236 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4241 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
4243 #include <sys/socket.h>
4244 #include <sys/uio.h>],
4248 struct iovec hdtrl[2];
4252 hdtrl[0].iov_base = 0;
4253 hdtrl[0].iov_len = 0;
4255 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
4257 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
4258 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
4259 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
4260 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
4261 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4268 AC_CHECK_LIB(sendfile,sendfilev)
4269 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
4271 #include <sys/sendfile.h>],
4275 struct sendfilevec vec[2];
4281 vec[0].sfv_fd = SFV_FD_SELF;
4282 vec[0].sfv_flag = 0;
4287 vec[1].sfv_flag = 0;
4290 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
4292 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
4294 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
4295 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
4296 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
4297 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4302 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
4304 #include <sys/sendfile.h>],
4308 struct sendfilevec vec[2];
4314 vec[0].sfv_fd = SFV_FD_SELF;
4315 vec[0].sfv_flag = 0;
4320 vec[1].sfv_flag = 0;
4323 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
4325 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
4327 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
4328 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
4329 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
4330 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
4336 AC_CACHE_CHECK([for AIX send_file support],samba_cv_HAVE_SENDFILE,[
4338 #include <sys/socket.h>],
4342 struct sf_parms hdtrl;
4346 hdtrl.header_data = 0;
4347 hdtrl.header_length = 0;
4348 hdtrl.file_descriptor = fromfd;
4349 hdtrl.file_offset = 0;
4350 hdtrl.file_bytes = 0;
4351 hdtrl.trailer_data = 0;
4352 hdtrl.trailer_length = 0;
4354 nwritten = send_file(&tofd, &hdtrl, 0);
4356 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
4357 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
4358 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
4359 AC_DEFINE(AIX_SENDFILE_API,1,[Whether the AIX send_file() API is available])
4360 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
4377 #################################################
4378 # Check whether winbind is supported on this platform. If so we need to
4379 # build and install client programs, sbin programs and shared libraries
4381 AC_MSG_CHECKING(whether to build winbind)
4383 # Initially, the value of $host_os decides whether winbind is supported
4387 # Define the winbind shared library name and any specific linker flags
4388 # it needs to be built with.
4390 WINBIND_NSS="nsswitch/libnss_winbind.$SHLIBEXT"
4391 WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT"
4392 WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
4396 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
4398 *freebsd5*|*freebsd6*)
4399 # FreeBSD winbind client is implemented as a wrapper around
4400 # the Linux version.
4401 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
4402 nsswitch/winbind_nss_linux.o"
4403 WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
4404 WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
4407 # IRIX has differently named shared libraries
4408 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
4409 WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT"
4410 WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT"
4413 # Solaris winbind client is implemented as a wrapper around
4414 # the Linux version.
4415 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \
4416 nsswitch/winbind_nss_linux.o"
4417 WINBIND_NSS_EXTRA_LIBS="-lsocket"
4420 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
4423 # AIX has even differently named shared libraries. No
4424 # WINS support has been implemented yet.
4425 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o"
4426 WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init"
4427 WINBIND_NSS="nsswitch/WINBIND"
4432 winbind_no_reason=", unsupported on $host_os"
4436 AC_SUBST(WINBIND_NSS)
4437 AC_SUBST(WINBIND_WINS_NSS)
4438 AC_SUBST(WINBIND_NSS_LDSHFLAGS)
4439 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
4440 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
4442 # Check the setting of --with-winbind
4444 AC_ARG_WITH(winbind,
4445 [ --with-winbind Build winbind (default, if supported by OS)],
4458 # We need unix domain sockets for winbind
4460 if test x"$HAVE_WINBIND" = x"yes"; then
4461 if test x"$samba_cv_unixsocket" = x"no"; then
4462 winbind_no_reason=", no unix domain socket support on $host_os"
4467 # Display test results
4469 if test x"$HAVE_WINBIND" = x"yes"; then
4471 AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
4473 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)"
4474 EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)"
4475 if test $BLDSHARED = true; then
4476 SHLIB_PROGS="$SHLIB_PROGS $WINBIND_NSS $WINBIND_WINS_NSS"
4478 if test x"$with_pam" = x"yes"; then
4479 SHLIB_PROGS="$SHLIB_PROGS nsswitch/pam_winbind.$SHLIBEXT"
4483 AC_MSG_RESULT(no$winbind_no_reason)
4486 # Solaris has some extra fields in struct passwd that need to be
4487 # initialised otherwise nscd crashes.
4489 AC_CHECK_MEMBER(struct passwd.pw_comment,
4490 AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),,
4493 AC_CHECK_MEMBER(struct passwd.pw_age,
4494 AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),,
4497 # AIX 4.3.x and 5.1 do not have as many members in
4498 # struct secmethod_table as AIX 5.2
4499 AC_CHECK_MEMBERS([struct secmethod_table.method_attrlist], , ,
4500 [#include <usersec.h>])
4501 AC_CHECK_MEMBERS([struct secmethod_table.method_version], , ,
4502 [#include <usersec.h>])
4505 #################################################
4506 # Check to see if we should use the included popt
4508 AC_ARG_WITH(included-popt,
4509 [ --with-included-popt use bundled popt library, not from system],
4520 if test x"$INCLUDED_POPT" != x"yes"; then
4521 AC_CHECK_LIB(popt, poptGetContext,
4522 INCLUDED_POPT=no, INCLUDED_POPT=yes)
4525 AC_MSG_CHECKING(whether to use included popt)
4526 if test x"$INCLUDED_POPT" = x"yes"; then
4528 BUILD_POPT='$(POPT_OBJS)'
4529 POPTLIBS='$(POPT_OBJS)'
4530 FLAGS1="-I$srcdir/popt"
4536 AC_SUBST(BUILD_POPT)
4540 #################################################
4541 # Check if the user wants Python
4543 # At the moment, you can use this to set which Python binary to link
4544 # against. (Libraries built for Python2.2 can't be used by 2.1,
4545 # though they can coexist in different directories.) In the future
4546 # this might make the Python stuff be built by default.
4548 # Defaulting python breaks the clean target if python isn't installed
4553 [ --with-python=PYTHONNAME build Python libraries],
4554 [ case "${withval-python}" in
4557 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS python_ext"
4563 PYTHON=${withval-python}
4568 for i in `echo $default_static_modules | sed -e's/,/ /g'`
4570 eval MODULE_DEFAULT_$i=STATIC
4573 for i in `echo $default_shared_modules | sed -e's/,/ /g'`
4575 dnl Fall back to static if we cannot build shared libraries
4576 eval MODULE_DEFAULT_$i=STATIC
4578 if test $BLDSHARED = true; then
4579 eval MODULE_DEFAULT_$i=SHARED
4583 dnl Always built these modules static
4584 MODULE_pdb_guest=STATIC
4585 MODULE_rpc_spoolss=STATIC
4586 MODULE_rpc_srv=STATIC
4587 MODULE_idmap_tdb=STATIC
4589 AC_ARG_WITH(static-modules,
4590 [ --with-static-modules=MODULES Comma-seperated list of names of modules to statically link in],
4591 [ if test $withval; then
4592 for i in `echo $withval | sed -e's/,/ /g'`
4594 eval MODULE_$i=STATIC
4598 AC_ARG_WITH(shared-modules,
4599 [ --with-shared-modules=MODULES Comma-seperated list of names of modules to build shared],
4600 [ if test $withval; then
4601 for i in `echo $withval | sed -e's/,/ /g'`
4603 eval MODULE_$i=SHARED
4607 ###########################################################################
4608 ## contributed pdb_modules
4610 SMB_MODULE(pdb_xml, passdb/pdb_xml.o, "bin/xml.$SHLIBEXT", PDB,
4611 [ PASSDB_LIBS="$PASSDB_LIBS $XML_LIBS" ] )
4612 SMB_MODULE(pdb_mysql, passdb/pdb_mysql.o, "bin/mysql.$SHLIBEXT", PDB,
4613 [ PASSDB_LIBS="$PASSDB_LIBS $MYSQL_LIBS" ] )
4614 SMB_MODULE(pdb_pgsql, passdb/pdb_pgsql.o, "bin/pgsql.$SHLIBEXT", PDB,
4615 [ PASSDB_LIBS="$PASSDB_LIBS $PGSQL_LIBS" ] )
4617 ## end of contributed pdb_modules
4618 ###########################################################################
4620 SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o passdb/pdb_nds.o, "bin/ldapsam.$SHLIBEXT", PDB,
4621 [ PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" ] )
4622 SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB)
4623 SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB)
4624 SMB_MODULE(pdb_guest, passdb/pdb_guest.o, "bin/guest.$SHLIBEXT", PDB)
4625 SMB_SUBSYSTEM(PDB,passdb/pdb_interface.o)
4627 SMB_MODULE(rpc_lsa, \$(RPC_LSA_OBJ), "bin/librpc_lsarpc.$SHLIBEXT", RPC)
4628 SMB_MODULE(rpc_reg, \$(RPC_REG_OBJ), "bin/librpc_winreg.$SHLIBEXT", RPC)
4629 SMB_MODULE(rpc_lsa_ds, \$(RPC_LSA_DS_OBJ), "bin/librpc_lsa_ds.$SHLIBEXT", RPC)
4630 SMB_MODULE(rpc_wks, \$(RPC_WKS_OBJ), "bin/librpc_wkssvc.$SHLIBEXT", RPC)
4631 SMB_MODULE(rpc_svcctl, \$(RPC_SVCCTL_OBJ), "bin/librpc_svcctl.$SHLIBEXT", RPC)
4632 SMB_MODULE(rpc_net, \$(RPC_NETLOG_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC)
4633 SMB_MODULE(rpc_dfs, \$(RPC_DFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC)
4634 SMB_MODULE(rpc_srv, \$(RPC_SVC_OBJ), "bin/librpc_srvsvc.$SHLIBEXT", RPC)
4635 SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC)
4636 SMB_MODULE(rpc_eventlog, \$(RPC_EVENTLOG_OBJ), "bin/librpc_eventlog.$SHLIBEXT", RPC)
4637 SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC)
4638 SMB_MODULE(rpc_echo, \$(RPC_ECHO_OBJ), "bin/librpc_echo.$SHLIBEXT", RPC)
4639 SMB_SUBSYSTEM(RPC,smbd/server.o)
4641 SMB_MODULE(idmap_ldap, sam/idmap_ldap.o, "bin/idmap_ldap.$SHLIBEXT", IDMAP)
4642 SMB_MODULE(idmap_tdb, sam/idmap_tdb.o, "bin/idmap_tdb.$SHLIBEXT", IDMAP)
4643 SMB_MODULE(idmap_rid, sam/idmap_rid.o, "bin/idmap_rid.$SHLIBEXT", IDMAP)
4644 SMB_MODULE(idmap_ad, sam/idmap_ad.o, "bin/idmap_ad.$SHLIBEXT", IDMAP)
4645 SMB_SUBSYSTEM(IDMAP,sam/idmap.o)
4647 SMB_MODULE(charset_weird, modules/weird.o, "bin/weird.$SHLIBEXT", CHARSET)
4648 SMB_MODULE(charset_CP850, modules/CP850.o, "bin/CP850.$SHLIBEXT", CHARSET)
4649 SMB_MODULE(charset_CP437, modules/CP437.o, "bin/CP437.$SHLIBEXT", CHARSET)
4650 SMB_MODULE(charset_macosxfs, modules/charset_macosxfs.o,"bin/macosxfs.$SHLIBEXT", CHARSET)
4651 SMB_SUBSYSTEM(CHARSET,lib/iconv.o)
4653 SMB_MODULE(auth_rhosts, \$(AUTH_RHOSTS_OBJ), "bin/rhosts.$SHLIBEXT", AUTH)
4654 SMB_MODULE(auth_sam, \$(AUTH_SAM_OBJ), "bin/sam.$SHLIBEXT", AUTH)
4655 SMB_MODULE(auth_unix, \$(AUTH_UNIX_OBJ), "bin/unix.$SHLIBEXT", AUTH)
4656 SMB_MODULE(auth_winbind, \$(AUTH_WINBIND_OBJ), "bin/winbind.$SHLIBEXT", AUTH)
4657 SMB_MODULE(auth_server, \$(AUTH_SERVER_OBJ), "bin/smbserver.$SHLIBEXT", AUTH)
4658 SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), "bin/domain.$SHLIBEXT", AUTH)
4659 SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), "bin/builtin.$SHLIBEXT", AUTH)
4660 SMB_SUBSYSTEM(AUTH,auth/auth.o)
4662 SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), "bin/recycle.$SHLIBEXT", VFS)
4663 SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), "bin/audit.$SHLIBEXT", VFS)
4664 SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), "bin/extd_audit.$SHLIBEXT", VFS)
4665 SMB_MODULE(vfs_full_audit, \$(VFS_FULL_AUDIT_OBJ), "bin/full_audit.$SHLIBEXT", VFS)
4666 SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK_OBJ), "bin/netatalk.$SHLIBEXT", VFS)
4667 SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), "bin/fake_perms.$SHLIBEXT", VFS)
4668 SMB_MODULE(vfs_default_quota, \$(VFS_DEFAULT_QUOTA_OBJ), "bin/default_quota.$SHLIBEXT", VFS)
4669 SMB_MODULE(vfs_readonly, \$(VFS_READONLY_OBJ), "bin/readonly.$SHLIBEXT", VFS)
4670 SMB_MODULE(vfs_cap, \$(VFS_CAP_OBJ), "bin/cap.$SHLIBEXT", VFS)
4671 SMB_MODULE(vfs_expand_msdfs, \$(VFS_EXPAND_MSDFS_OBJ), "bin/expand_msdfs.$SHLIBEXT", VFS)
4672 SMB_MODULE(vfs_shadow_copy, \$(VFS_SHADOW_COPY_OBJ), "bin/shadow_copy.$SHLIBEXT", VFS)
4673 SMB_MODULE(vfs_afsacl, \$(VFS_AFSACL_OBJ), "bin/afsacl.$SHLIBEXT", VFS)
4674 SMB_MODULE(vfs_catia, \$(VFS_AFSACL_OBJ), "bin/catia.$SHLIBEXT", VFS)
4675 SMB_SUBSYSTEM(VFS,smbd/vfs.o)
4677 AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules])
4679 #################################################
4680 # do extra things if we are running insure
4682 if test "${ac_cv_prog_CC}" = "insure"; then
4683 CPPFLAGS="$CPPFLAGS -D__INSURE__"
4686 #################################################
4687 # Display summary of libraries detected
4689 AC_MSG_RESULT([Using libraries:])
4690 AC_MSG_RESULT([ LIBS = $LIBS])
4691 if test x"$with_ads_support" != x"no"; then
4692 AC_MSG_RESULT([ KRB5_LIBS = $KRB5_LIBS])
4694 if test x"$with_ldap_support" != x"no"; then
4695 AC_MSG_RESULT([ LDAP_LIBS = $LDAP_LIBS])
4697 AC_MSG_RESULT([ AUTH_LIBS = $AUTH_LIBS])
4699 #################################################
4700 # final configure stuff
4702 AC_MSG_CHECKING([configure summary])
4703 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
4705 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
4706 AC_MSG_WARN([cannot run when cross-compiling]))
4711 dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
4712 LIB_REMOVE_USR_LIB(LDFLAGS)
4713 LIB_REMOVE_USR_LIB(LIBS)
4715 dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
4716 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
4717 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
4719 AC_OUTPUT(include/stamp-h Makefile script/findsmb smbadduser script/gen-8bit-gap.sh)
4721 #################################################
4722 # Print very concise instructions on building/use
4723 if test "x$enable_dmalloc" = xyes
4725 AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
4726 AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])