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
258 AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings and debugging (default=no)],
259 [if eval "test x$enable_developer = xyes"; then
261 CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
262 # Add -Wdeclaration-after-statement if compiler supports it
264 [that the C compiler understands -Wdeclaration-after-statement],
265 samba_cv_HAVE_Wdeclaration_after_statement, [
270 }],[-Wdeclaration-after-statement],[$CPPFLAGS],[$LDFLAGS],
271 samba_cv_HAVE_Wdeclaration_after_statement=yes,
272 samba_cv_HAVE_Wdeclaration_after_statement=no,
273 samba_cv_HAVE_Wdeclaration_after_statement=cross)
275 if test x"$samba_cv_HAVE_Wdeclaration_after_statement" = x"yes"; then
276 CFLAGS="${CFLAGS} -Wdeclaration-after-statement"
280 AC_ARG_ENABLE(krb5developer, [ --enable-krb5developer Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
281 [if eval "test x$enable_krb5developer = xyes"; then
283 CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
286 AC_ARG_ENABLE(dmalloc, [ --enable-dmalloc Enable heap debugging [default=no]])
288 if test "x$enable_dmalloc" = xyes
290 AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
291 AC_DEFINE(DMALLOC_FUNC_CHECK, 1,
292 [Define to check invariants around some common functions])
293 LIBS="$LIBS -ldmalloc"
296 dnl Checks for programs.
299 ## for some reason this macro resets the CFLAGS
300 ## so save and restore
312 AC_PATH_PROG(PERL, perl)
314 AC_CHECK_TOOL(AR, ar)
316 dnl Check if we use GNU ld
320 dnl Certain versions of GNU ld the default is not to have the
321 dnl --allow-shlib-undefined flag defined. This causes a stackload of
322 dnl warnings when building modules.
323 if test "$ac_cv_prog_gnu_ld" = "yes"; then
324 ac_cv_gnu_ld_version=`$LD -v 2>/dev/null | head -1`
325 AC_MSG_CHECKING(GNU ld release date)
327 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'`
329 AC_MSG_RESULT(${ac_cv_gnu_ld_date})
330 if test -n "$ac_cv_gnu_ld_date"; then
331 if test "$ac_cv_gnu_ld_date" -lt 20030217; then
332 ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
335 AC_MSG_CHECKING(GNU ld release version)
337 ac_cv_gnu_ld_vernr=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([1-9][0-9]*\.[0-9][0-9]*\).*$,\1,p'`
338 ac_cv_gnu_ld_vernr_major=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 1`
339 ac_cv_gnu_ld_vernr_minor=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 2`
341 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr})
342 AC_MSG_CHECKING(GNU ld release version major)
343 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_major})
344 AC_MSG_CHECKING(GNU ld release version minor)
345 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_minor})
346 if test "$ac_cv_gnu_ld_vernr_major" -lt 2 || test "$ac_cv_gnu_ld_vernr_minor" -lt 14; then
347 ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
352 dnl needed before AC_TRY_COMPILE
355 dnl look for executable suffix
358 dnl Check if C compiler understands -c and -o at the same time
360 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
367 dnl Check if the C compiler understands -Werror
368 AC_CACHE_CHECK([that the C compiler understands -Werror],samba_cv_HAVE_Werror, [
373 }],[-Werror],[$CPPFLAGS],[$LDFLAGS],
374 samba_cv_HAVE_Werror=yes,samba_cv_HAVE_Werror=no,samba_cv_HAVE_Werror=cross)])
375 if test x"$samba_cv_HAVE_Werror" = x"yes"; then
376 Werror_FLAGS="-Werror"
378 dnl Check if the C compiler understands -w2
379 AC_CACHE_CHECK([that the C compiler understands -w2],samba_cv_HAVE_w2, [
384 }],[-w2],[$CPPFLAGS],[$LDFLAGS],
385 samba_cv_HAVE_w2=yes,samba_cv_HAVE_w2=no,samba_cv_HAVE_w2=cross)])
386 if test x"$samba_cv_HAVE_w2" = x"yes"; then
391 dnl Check if the C compiler understands volatile (it should, being ANSI).
392 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
393 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
394 samba_cv_volatile=yes,samba_cv_volatile=no)])
395 if test x"$samba_cv_volatile" = x"yes"; then
396 AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
399 UNAME_S=`(uname -s) 2>/dev/null` || UNAME_S="unknown"
400 AC_MSG_CHECKING(uname -s)
401 AC_MSG_RESULT(${UNAME_S})
403 UNAME_R=`(uname -r) 2>/dev/null` || UNAME_R="unknown"
404 AC_MSG_CHECKING(uname -r)
405 AC_MSG_RESULT(${UNAME_R})
407 UNAME_M=`(uname -m) 2>/dev/null` || UNAME_M="unknown"
408 AC_MSG_CHECKING(uname -m)
409 AC_MSG_RESULT(${UNAME_M})
411 UNAME_P=`(uname -p) 2>/dev/null` || UNAME_P="unknown"
412 AC_MSG_CHECKING(uname -p)
413 AC_MSG_RESULT(${UNAME_P})
417 dnl Add #include for broken IRIX header files
419 *irix6*) AC_ADD_INCLUDE(<standards.h>)
423 AC_VALIDATE_CACHE_SYSTEM_TYPE
427 dnl Add modules that have to be built by default here
428 dnl These have to be built static:
429 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"
431 dnl These are preferably build shared, and static if dlopen() is not available
432 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"
434 if test "x$developer" = xyes; then
435 default_static_modules="$default_static_modules rpc_echo"
436 default_shared_modules="$default_shared_modules charset_weird"
440 # Config CPPFLAG settings for strange OS's that must be set
441 # before other tests. Do NOT invoke AC_CHECK_HEADERS within this
442 # case statement; its first reference must be unconditional.
445 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
449 # mmap on HPUX is completely broken...
450 AC_DEFINE(MMAP_BLACKLIST, 1, [Whether MMAP is broken])
451 if test $ac_cv_prog_cc_Ae = yes; then
452 CPPFLAGS="$CPPFLAGS -Ae"
455 # Defines needed for HPUX support.
456 # HPUX has bigcrypt but (sometimes?) doesn't use it for
457 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
461 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
462 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
463 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
464 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
465 AC_DEFINE(_ALIGNMENT_REQUIRED,1,[Required alignment])
466 AC_DEFINE(_MAX_ALIGNMENT,4,[Maximum alignment])
469 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
470 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
471 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
472 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
473 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to use large file support])
474 AC_DEFINE(_ALIGNMENT_REQUIRED, 1, [Required alignment])
475 AC_DEFINE(_MAX_ALIGNMENT, 4, [Maximum alignment])
481 # CRAY Unicos has broken const handling
483 AC_MSG_RESULT([disabling const])
484 CPPFLAGS="$CPPFLAGS -Dconst="
488 # AIX4.x doesn't even admit to having large
489 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
492 AC_MSG_RESULT([enabling large file support])
493 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
494 AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
497 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
498 # to the existance of large files..
499 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
500 # recommendations on large file support, however it makes the
501 # compile work using gcc 2.7 and 2.8, whereas using the Sun
502 # recommendation makes the compile fail on gcc2.7. JRA.
504 # Solaris uses SYSV printing. Make sure to set that here. --jerry
507 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
509 5.0|5.0.*|5.1|5.1.*|5.2|5.2.*|5.3|5.3.*|5.5|5.5.*)
510 AC_MSG_RESULT([no large file support])
513 AC_MSG_RESULT([enabling large file support])
514 if test "$ac_cv_prog_gcc" = yes; then
515 ${CC-cc} -v >conftest.c 2>&1
516 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
518 case "$ac_cv_gcc_compiler_version_number" in
519 *"gcc version 2.6"*|*"gcc version 2.7"*)
520 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE -D_REENTRANT"
521 LDFLAGS="$LDFLAGS -lthread"
522 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
525 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
526 LDFLAGS="$LDFLAGS -lthread"
527 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
528 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
532 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
533 LDFLAGS="$LDFLAGS -lthread"
534 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
535 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
541 # IRIX uses SYSV printing. Make sure to set that here
544 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
546 *freebsd*|*DragonFly*)
547 AC_DEFINE(FREEBSD, 1, [Whether the host os is FreeBSD])
550 # VOS may need to have POSIX support and System V compatibility enabled.
557 CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L"
558 AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Whether to enable POSIX support])
562 *-D_SYSV*|*-D_SVID_SOURCE*)
565 CPPFLAGS="$CPPFLAGS -D_SYSV"
566 AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
570 # Tests needed for SINIX large file support.
573 if test $host = mips-sni-sysv4 ; then
574 AC_MSG_CHECKING([for LFS support])
575 old_CPPFLAGS="$CPPFLAGS"
576 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
580 #if _LFS64_LARGEFILE == 1
585 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
586 CPPFLAGS="$old_CPPFLAGS"
587 if test x$SINIX_LFS_SUPPORT = xyes ; then
588 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
589 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
590 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
591 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
592 LIBS="`getconf LFS64_LIBS` $LIBS"
594 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
598 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
601 AC_MSG_CHECKING([for LFS support])
602 old_CPPFLAGS="$CPPFLAGS"
603 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
606 #include <sys/utsname.h>
610 #if _LFS64_LARGEFILE == 1
615 /* Ensure this is glibc 2.2 or higher */
616 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
617 int libc_major = __GLIBC__;
618 int libc_minor = __GLIBC_MINOR__;
626 /* Ensure this is kernel 2.4 or higher */
629 release = strdup(uts.release);
630 major = atoi(strsep(&release, "."));
631 minor = atoi(strsep(&release, "."));
633 if (major > 2 || (major == 2 && minor > 3))
640 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
641 CPPFLAGS="$old_CPPFLAGS"
642 if test x$LINUX_LFS_SUPPORT = xyes ; then
643 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
644 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
645 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
646 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
648 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
652 # MacOS X is the *only* system that uses compose character in utf8. This
653 # is so horribly broken....
656 AC_DEFINE(BROKEN_UNICODE_COMPOSE_CHARACTERS, 1, [Does this system use unicode compose characters])
657 # Add Fink directories for various packages, like dlcompat.
658 # Note: iconv does that explicitly below, but other packages
660 CPPFLAGS="$CPPFLAGS -I/sw/include"
661 LDFLAGS="$LDFLAGS -L/sw/lib"
663 # If we have dlsym_prepend_underscore (from Fink's dlcompat),
664 # use that instead of plain dlsym.
666 AC_CHECK_LIB(dl,dlopen)
667 AC_CHECK_FUNCS(dlsym_prepend_underscore,[CPPFLAGS="$CPPFLAGS -Ddlsym=dlsym_prepend_underscore"])
669 # Add a system specific charset module.
671 default_shared_modules="$default_shared_modules charset_macosxfs"
674 AC_MSG_CHECKING([for LFS support])
675 old_CPPFLAGS="$CPPFLAGS"
676 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
680 #if _LFS64_LARGEFILE == 1
685 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
686 CPPFLAGS="$old_CPPFLAGS"
687 if test x$GLIBC_LFS_SUPPORT = xyes ; then
688 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
689 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
690 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
692 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
702 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h rpc/nettype.h)
703 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h)
704 AC_CHECK_HEADERS(rpc/rpc.h rpcsvc/nis.h rpcsvc/ypclnt.h)
705 ## These fail to compile on IRIX so just check for their presence
706 AC_CHECK_HEADERS(rpcsvc/yp_prot.h, sys/mode.h, [], [] -)
707 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h)
708 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
709 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
710 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
711 AC_CHECK_HEADERS(sys/sysmacros.h security/_pam_macros.h dlfcn.h)
712 AC_CHECK_HEADERS(sys/syslog.h syslog.h execinfo.h)
713 AC_CHECK_HEADERS(langinfo.h locale.h)
715 # Look for Darwin headers
716 old_CPPFLAGS="$CPPFLAGS"
717 CPPFLAGS="-Iinclude $CPPFLAGS"
718 AC_CHECK_HEADERS([CoreFoundation/CFStringEncodingConverter.h], [], [AC_CHECK_HEADERS([CFStringEncodingConverter.h])])
719 CPPFLAGS="$old_CPPFLAGS"
721 # In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a
722 # subdirectory of headers.
723 AC_CHECK_HEADERS(valgrind.h valgrind/valgrind.h valgrind/memcheck.h)
726 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
727 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
731 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
732 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
733 if test x"$ac_cv_header_shadow_h" = x"yes"; then
734 AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
738 AC_CHECK_HEADERS(shadow.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
739 AC_CHECK_HEADERS(nss.h nss_common.h nsswitch.h ns_api.h sys/security.h security/pam_appl.h)
740 AC_CHECK_HEADERS(stropts.h poll.h)
741 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
742 AC_CHECK_HEADERS(sys/acl.h sys/attributes.h attr/xattr.h sys/xattr.h sys/extattr.h sys/uio.h)
743 AC_CHECK_HEADERS(sys/cdefs.h glob.h)
745 ## These faile to compile on Solaris so just check for their presence
746 AC_CHECK_HEADERS(security/pam_modules.h net/if.h netinet/ip.h, [], [], -)
748 # For experimental utmp support (lastlog on some BSD-like systems)
749 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
751 AC_CHECK_SIZEOF(int,cross)
752 AC_CHECK_SIZEOF(long,cross)
753 AC_CHECK_SIZEOF(short,cross)
768 AC_CHECK_TYPE(ino_t,unsigned)
769 AC_CHECK_TYPE(loff_t,off_t)
770 AC_CHECK_TYPE(offset_t,loff_t)
771 AC_CHECK_TYPE(ssize_t, int)
772 AC_CHECK_TYPE(wchar_t, unsigned short)
774 ############################################
775 # for cups support we need libcups, and a handful of header files
778 [ --enable-cups Turn on CUPS support (default=auto)])
780 if test x$enable_cups != xno; then
781 AC_PATH_PROG(CUPS_CONFIG, cups-config)
783 if test "x$CUPS_CONFIG" != x; then
784 AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
785 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
786 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
787 PRINT_LIBS="$PRINT_LIBS `$CUPS_CONFIG --libs`"
788 elif test x"$enable_cups" = x"yes"; then
789 AC_MSG_ERROR(Cups support required but cups-config not located. Make sure cups-devel related files are installed.)
793 ############################################
794 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code
795 AC_SEARCH_LIBS(dlopen, [dl])
796 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
798 ############################################
799 # check if the compiler can do immediate structures
800 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
804 typedef struct {unsigned x;} FOOBAR;
805 #define X_FOOBAR(x) ((FOOBAR) { x })
806 #define FOO_ONE X_FOOBAR(1)
814 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
815 if test x"$samba_cv_immediate_structures" = x"yes"; then
816 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures])
819 ############################################
820 # check if the compiler can do immediate structures
821 AC_CACHE_CHECK([if the compiler will optimize out function calls],samba_cv_optimize_out_funcation_calls, [
826 this_function_does_not_exist();
832 samba_cv_optimize_out_funcation_calls=yes,samba_cv_optimize_out_funcation_calls=no)])
833 if test x"$samba_cv_optimize_out_funcation_calls" = x"yes"; then
834 AC_DEFINE(HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS,1,[Whether the compiler will optimize out function calls])
837 ############################################
838 # check for unix domain sockets
839 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
841 #include <sys/types.h>
844 #include <sys/socket.h>
845 #include <sys/un.h>],
847 struct sockaddr_un sunaddr;
848 sunaddr.sun_family = AF_UNIX;
850 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
851 if test x"$samba_cv_unixsocket" = x"yes"; then
852 AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support])
856 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
858 #include <sys/types.h>
863 #include <sys/socket.h>],[socklen_t i = 0],
864 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
865 if test x"$samba_cv_socklen_t" = x"yes"; then
866 AC_DEFINE(HAVE_SOCKLEN_T_TYPE,1,[Whether we have the variable type socklen_t])
869 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
871 #include <sys/types.h>
876 #include <signal.h>],[sig_atomic_t i = 0],
877 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
878 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
879 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
882 # stupid headers have the functions but no declaration. grrrr.
883 AC_HAVE_DECL(errno, [#include <errno.h>])
884 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
885 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
886 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
887 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
888 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
889 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
891 # and glibc has setresuid under linux but the function does
892 # nothing until kernel 2.1.44! very dumb.
893 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
894 AC_TRY_RUN([#include <errno.h>
895 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
896 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
897 if test x"$samba_cv_have_setresuid" = x"yes"; then
898 AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
901 # Do the same check for setresguid...
903 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
904 AC_TRY_RUN([#include <unistd.h>
906 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
907 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
908 if test x"$samba_cv_have_setresgid" = x"yes"; then
909 AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
914 ###############################################
915 # Readline included by default unless explicitly asked not to
916 test "${with_readline+set}" != "set" && with_readline=yes
918 # test for where we get readline() from
919 AC_MSG_CHECKING(whether to use readline)
920 AC_ARG_WITH(readline,
921 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto) ],
922 [ case "$with_readline" in
926 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
927 AC_CHECK_HEADERS(readline/history.h)
929 AC_CHECK_HEADERS(readline.h readline/readline.h,[
930 for termlib in ncurses curses termcap terminfo termlib tinfo; do
931 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
933 AC_CHECK_LIB(readline, rl_callback_handler_install,
934 [TERMLIBS="-lreadline $TERMLIBS"
935 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
936 break], [TERMLIBS=], $TERMLIBS)])
944 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
945 # alternate readline path
947 _cppflags=${CPPFLAGS}
949 # Add additional search path
950 LDFLAGS="-L$with_readline/lib $LDFLAGS"
951 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
953 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
954 AC_CHECK_HEADERS(readline/history.h)
956 AC_CHECK_HEADERS(readline.h readline/readline.h,[
957 for termlib in ncurses curses termcap terminfo termlib; do
958 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
960 AC_CHECK_LIB(readline, rl_callback_handler_install,
961 [TERMLDFLAGS="-L$with_readline/lib"
962 TERMCPPFLAGS="-I$with_readline/include"
963 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
964 TERMLIBS="-lreadline $TERMLIBS"
965 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
966 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
974 AC_SUBST(TERMLDFLAGS)
976 # The readline API changed slightly from readline3 to readline4, so
977 # code will generate warnings on one of them unless we have a few
979 AC_CHECK_LIB(readline, rl_completion_matches,
980 [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
981 [Do we have rl_completion_matches?])],
985 # The following test taken from the cvs sources
986 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
987 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
988 # libsocket.so which has a bad implementation of gethostbyname (it
989 # only looks in /etc/hosts), so we only look for -lsocket if we need
991 AC_CHECK_FUNCS(connect)
992 if test x"$ac_cv_func_connect" = x"no"; then
995 *) AC_CHECK_LIB(nsl_s, printf) ;;
999 *) AC_CHECK_LIB(nsl, printf) ;;
1003 *) AC_CHECK_LIB(socket, connect) ;;
1007 *) AC_CHECK_LIB(inet, connect) ;;
1009 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
1010 dnl has been cached.
1011 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
1012 test x"$ac_cv_lib_inet_connect" = x"yes"; then
1013 # ac_cv_func_connect=yes
1014 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
1015 AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
1019 ###############################################
1020 # test for where we get yp_get_default_domain() from
1021 AC_SEARCH_LIBS(yp_get_default_domain, [nsl])
1022 AC_CHECK_FUNCS(yp_get_default_domain)
1024 # Check if we have execl, if not we need to compile smbrun.
1025 AC_CHECK_FUNCS(execl)
1026 if test x"$ac_cv_func_execl" = x"no"; then
1027 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)"
1030 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
1031 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync memset strlcpy strlcat setpgid)
1032 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
1033 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
1034 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
1035 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
1036 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
1037 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
1038 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
1039 AC_CHECK_FUNCS(syslog vsyslog timegm)
1040 AC_CHECK_FUNCS(setlocale nl_langinfo)
1041 AC_CHECK_FUNCS(nanosleep)
1042 # setbuffer, shmget, shm_open are needed for smbtorture
1043 AC_CHECK_FUNCS(setbuffer shmget shm_open backtrace_symbols)
1044 AC_CHECK_HEADERS(libexc.h)
1045 AC_CHECK_LIB(exc, trace_back_stack)
1047 # syscall() is needed for smbwrapper.
1048 AC_CHECK_FUNCS(syscall)
1050 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
1051 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
1052 AC_CHECK_FUNCS(__getcwd _getcwd)
1053 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
1054 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
1055 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
1056 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
1057 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
1058 AC_CHECK_FUNCS(getdirentries _write __write _fork __fork)
1059 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
1060 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
1061 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
1062 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
1063 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
1070 # glibc <= 2.3.2 has a broken getgrouplist
1073 #include <sys/utsname.h>
1075 /* glibc up to 2.3 has a broken getgrouplist */
1076 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
1077 int libc_major = __GLIBC__;
1078 int libc_minor = __GLIBC_MINOR__;
1082 if ((libc_major == 2) && (libc_minor <= 3))
1087 ], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no])
1088 if test x"$linux_getgrouplist_ok" = x"yes"; then
1089 AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
1093 AC_CHECK_FUNCS(getgrouplist)
1098 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
1101 if test x$ac_cv_func_stat64 = xno ; then
1102 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
1104 #if defined(HAVE_UNISTD_H)
1107 #include <sys/stat.h>
1108 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
1109 AC_MSG_RESULT([$ac_cv_func_stat64])
1110 if test x$ac_cv_func_stat64 = xyes ; then
1111 AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
1115 if test x$ac_cv_func_lstat64 = xno ; then
1116 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
1118 #if defined(HAVE_UNISTD_H)
1121 #include <sys/stat.h>
1122 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
1123 AC_MSG_RESULT([$ac_cv_func_lstat64])
1124 if test x$ac_cv_func_lstat64 = xyes ; then
1125 AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
1129 if test x$ac_cv_func_fstat64 = xno ; then
1130 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
1132 #if defined(HAVE_UNISTD_H)
1135 #include <sys/stat.h>
1136 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
1137 AC_MSG_RESULT([$ac_cv_func_fstat64])
1138 if test x$ac_cv_func_fstat64 = xyes ; then
1139 AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
1143 #####################################
1144 # we might need the resolv library on some systems
1145 AC_CHECK_LIB(resolv, dn_expand)
1148 # Check for the functions putprpwnam, set_auth_parameters,
1149 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
1150 # Needed for OSF1 and HPUX.
1153 AC_LIBTESTFUNC(security, putprpwnam)
1154 AC_LIBTESTFUNC(sec, putprpwnam)
1156 AC_LIBTESTFUNC(security, set_auth_parameters)
1157 AC_LIBTESTFUNC(sec, set_auth_parameters)
1159 # UnixWare 7.x has its getspnam in -lgen
1160 AC_LIBTESTFUNC(gen, getspnam)
1162 AC_LIBTESTFUNC(security, getspnam)
1163 AC_LIBTESTFUNC(sec, getspnam)
1165 AC_LIBTESTFUNC(security, bigcrypt)
1166 AC_LIBTESTFUNC(sec, bigcrypt)
1168 AC_LIBTESTFUNC(security, getprpwnam)
1169 AC_LIBTESTFUNC(sec, getprpwnam)
1171 ############################################
1172 # Check if we have libattr
1173 AC_SEARCH_LIBS(getxattr, [attr])
1174 AC_CHECK_FUNCS(getxattr lgetxattr fgetxattr listxattr llistxattr)
1175 AC_CHECK_FUNCS(flistxattr removexattr lremovexattr fremovexattr)
1176 AC_CHECK_FUNCS(setxattr lsetxattr fsetxattr)
1177 AC_CHECK_FUNCS(attr_get attr_list attr_set attr_remove)
1178 AC_CHECK_FUNCS(attr_getf attr_listf attr_setf attr_removef)
1179 # Check if we have extattr
1181 *freebsd4* | *DragonFly* )
1182 AC_DEFINE(BROKEN_EXTATTR, 1, [Does extattr API work])
1185 AC_CHECK_FUNCS(extattr_delete_fd extattr_delete_file extattr_delete_link)
1186 AC_CHECK_FUNCS(extattr_get_fd extattr_get_file extattr_get_link)
1187 AC_CHECK_FUNCS(extattr_list_fd extattr_list_file extattr_list_link)
1188 AC_CHECK_FUNCS(extattr_set_fd extattr_set_file extattr_set_link)
1192 # Assume non-shared by default and override below
1195 # these are the defaults, good for lots of systems
1199 SHLD="\${CC} \${CFLAGS}"
1204 if test "$enable_shared" = "yes"; then
1205 # this bit needs to be modified for each OS that is suported by
1206 # smbwrapper. You need to specify how to create a shared library and
1207 # how to compile C code to produce PIC object files
1209 AC_MSG_CHECKING([ability to build shared libraries])
1211 # and these are for particular systems
1213 *linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux])
1215 if test "${ac_cv_gnu_ld_no_default_allow_shlib_undefined}" = "yes"; then
1216 LDSHFLAGS="-shared -Wl,-Bsymbolic -Wl,--allow-shlib-undefined"
1218 LDSHFLAGS="-shared -Wl,-Bsymbolic"
1220 DYNEXP="-Wl,--export-dynamic"
1222 SONAMEFLAG="-Wl,-soname="
1223 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1225 *solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
1229 if test "${GCC}" = "yes"; then
1231 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
1236 ## ${CFLAGS} added for building 64-bit shared
1237 ## libs using Sun's Compiler
1238 LDSHFLAGS="-G \${CFLAGS}"
1241 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1242 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1244 *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
1247 SONAMEFLAG="-Wl,-h,"
1248 PICFLAGS="-KPIC" # Is this correct for SunOS
1249 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1250 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1252 *netbsd* | *freebsd* | *DragonFly* )
1255 DYNEXP="-Wl,--export-dynamic"
1256 SONAMEFLAG="-Wl,-soname,"
1257 PICFLAGS="-fPIC -DPIC"
1258 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1259 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1261 *openbsd*) BLDSHARED="true"
1263 DYNEXP="-Wl,-Bdynamic"
1264 SONAMEFLAG="-Wl,-soname,"
1266 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1267 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1269 *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
1271 *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
1275 LDSHFLAGS="-set_version sgi1.0 -shared"
1276 SONAMEFLAG="-soname "
1278 if test "${GCC}" = "yes"; then
1283 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1285 *aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
1287 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry,-berok"
1288 DYNEXP="-Wl,-brtl,-bexpall"
1290 if test "${GCC}" != "yes"; then
1291 ## for funky AIX compiler using strncpy()
1292 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
1295 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
1296 AC_DEFINE(BROKEN_STRNLEN,1,[Does strnlen work correctly])
1297 AC_DEFINE(BROKEN_STRNDUP,1,[Does strndup work correctly])
1299 *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
1301 # Use special PIC flags for the native HP-UX compiler.
1302 if test $ac_cv_prog_cc_Ae = yes; then
1305 LDSHFLAGS="-b -Wl,-B,symbolic,-b,-z"
1306 SONAMEFLAG="-Wl,+h "
1308 elif test "${GCC}" = "yes"; then
1312 AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
1313 AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element])
1315 *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx])
1316 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1318 *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
1321 SONAMEFLAG="-Wl,-soname,"
1323 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1324 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1326 *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix])
1327 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1329 *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
1332 SONAMEFLAG="-Wl,-soname,"
1334 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1336 *next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
1337 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1339 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
1340 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1342 *sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1344 *-univel-*) if [ test "$GCC" != yes ]; then
1345 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1350 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
1352 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1355 *sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1356 if [ test "$GCC" != yes ]; then
1357 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1360 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1362 *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
1367 *darwin*) AC_DEFINE(DARWINOS,1,[Whether the host os is Darwin/MacOSX])
1369 LDSHFLAGS="-bundle -flat_namespace -undefined suppress"
1371 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1375 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1379 AC_MSG_RESULT($BLDSHARED)
1380 AC_MSG_CHECKING([linker flags for shared libraries])
1381 AC_MSG_RESULT([$LDSHFLAGS])
1382 AC_MSG_CHECKING([compiler flags for position-independent code])
1383 AC_MSG_RESULT([$PICFLAGS])
1386 #######################################################
1387 # test whether building a shared library actually works
1388 if test $BLDSHARED = true; then
1389 AC_CACHE_CHECK([whether building shared libraries actually works],
1390 [ac_cv_shlib_works],[
1391 # try building a trivial shared library
1392 ac_cv_shlib_works=no
1393 # The $SHLD and $LDSHFLAGS variables may contain references to other
1394 # variables so they need to be eval'ed.
1395 $CC $CPPFLAGS $CFLAGS $PICFLAGS -c -o \
1396 shlib.$PICSUFFIX ${srcdir-.}/tests/shlib.c && \
1397 `eval echo $SHLD` `eval echo $LDSHFLAGS` -o "shlib.$SHLIBEXT" \
1398 shlib.$PICSUFFIX && ac_cv_shlib_works=yes
1399 rm -f "shlib.$SHLIBEXT" shlib.$PICSUFFIX
1401 if test $ac_cv_shlib_works = no; then
1408 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1409 AC_TRY_RUN([#include <stdio.h>
1410 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1411 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1412 if test x"$samba_cv_have_longlong" = x"yes"; then
1413 AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1417 # Check if the compiler supports the LL prefix on long long integers.
1420 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1421 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1422 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1423 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1424 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
1428 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1429 AC_TRY_RUN([#include <stdio.h>
1430 #include <sys/stat.h>
1431 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1432 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1433 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1434 AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1437 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1439 #if defined(HAVE_UNISTD_H)
1443 #include <sys/stat.h>
1444 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1445 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1446 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1447 AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1450 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1451 AC_TRY_RUN([#include <stdio.h>
1452 #include <sys/stat.h>
1453 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1454 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1455 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1456 AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1459 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1461 #if defined(HAVE_UNISTD_H)
1465 #include <sys/stat.h>
1466 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1467 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1468 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1469 AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1472 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1474 #if defined(HAVE_UNISTD_H)
1478 #include <sys/stat.h>
1479 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1480 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1481 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1482 AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
1485 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1487 #if defined(HAVE_UNISTD_H)
1490 #include <sys/types.h>
1491 #include <dirent.h>],
1492 [struct dirent64 de;],
1493 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1494 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1495 AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1498 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1500 #if defined(HAVE_UNISTD_H)
1503 #include <sys/types.h>
1504 main() { dev_t dev; int i = major(dev); return 0; }],
1505 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1506 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1507 AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
1510 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1512 #if defined(HAVE_UNISTD_H)
1515 #include <sys/types.h>
1516 main() { dev_t dev; int i = minor(dev); return 0; }],
1517 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1518 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1519 AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
1522 AC_CACHE_CHECK([for makedev macro],samba_cv_HAVE_MAKEDEV,[
1524 #if defined(HAVE_UNISTD_H)
1527 #include <sys/types.h>
1528 main() { dev_t dev = makedev(1,2); return 0; }],
1529 samba_cv_HAVE_MAKEDEV=yes,samba_cv_HAVE_MAKEDEV=no,samba_cv_HAVE_MAKEDEV=cross)])
1530 if test x"$samba_cv_HAVE_MAKEDEV" = x"yes"; then
1531 AC_DEFINE(HAVE_MAKEDEV,1,[Whether the macro for makedev is available])
1534 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1535 AC_TRY_RUN([#include <stdio.h>
1536 main() { char c; c=250; exit((c > 0)?0:1); }],
1537 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1538 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1539 AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1542 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1543 AC_TRY_COMPILE([#include <sys/types.h>
1544 #include <sys/socket.h>
1545 #include <netinet/in.h>],
1546 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1547 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1548 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1549 AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
1552 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1553 AC_TRY_COMPILE([#include <sys/types.h>
1555 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1556 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1557 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1558 AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
1561 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1562 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1563 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1564 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1565 AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
1568 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1570 #include <sys/time.h>
1572 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1573 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1574 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1575 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available])
1578 AC_CACHE_CHECK([for va_copy],samba_cv_HAVE_VA_COPY,[
1579 AC_TRY_LINK([#include <stdarg.h>
1580 va_list ap1,ap2;], [va_copy(ap1,ap2);],
1581 samba_cv_HAVE_VA_COPY=yes,
1582 samba_cv_HAVE_VA_COPY=no)])
1583 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1584 AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
1586 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE___VA_COPY,[
1587 AC_TRY_LINK([#include <stdarg.h>
1588 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1589 samba_cv_HAVE___VA_COPY=yes,
1590 samba_cv_HAVE___VA_COPY=no)])
1591 if test x"$samba_cv_HAVE___VA_COPY" = x"yes"; then
1592 AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
1596 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1598 #include <sys/types.h>
1600 void foo(const char *format, ...) {
1605 va_start(ap, format);
1606 len = vsnprintf(buf, 0, format, ap);
1608 if (len != 5) exit(1);
1610 va_start(ap, format);
1611 len = vsnprintf(0, 0, format, ap);
1613 if (len != 5) exit(1);
1615 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1619 main() { foo("hello"); }
1621 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1622 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1623 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
1626 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1627 AC_TRY_RUN([#include <sys/types.h>
1629 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1630 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1631 di->d_name[0] == 0) exit(0); exit(1);} ],
1632 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1633 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1634 AC_DEFINE(HAVE_BROKEN_READDIR,1,[Whether readdir() is broken])
1637 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1638 AC_TRY_COMPILE([#include <sys/types.h>
1639 #include <utime.h>],
1640 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1641 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1642 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1643 AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
1647 # Check utmp details, but only if our OS offers utmp.h
1648 if test x"$ac_cv_header_utmp_h" = x"yes"; then
1649 dnl utmp and utmpx come in many flavours
1650 dnl We need to check for many of them
1651 dnl But we don't need to do each and every one, because our code uses
1652 dnl mostly just the utmp (not utmpx) fields.
1654 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1656 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1657 AC_TRY_COMPILE([#include <sys/types.h>
1659 [struct utmp ut; ut.ut_name[0] = 'a';],
1660 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1661 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1662 AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
1665 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1666 AC_TRY_COMPILE([#include <sys/types.h>
1668 [struct utmp ut; ut.ut_user[0] = 'a';],
1669 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1670 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1671 AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
1674 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1675 AC_TRY_COMPILE([#include <sys/types.h>
1677 [struct utmp ut; ut.ut_id[0] = 'a';],
1678 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1679 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1680 AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
1683 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1684 AC_TRY_COMPILE([#include <sys/types.h>
1686 [struct utmp ut; ut.ut_host[0] = 'a';],
1687 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1688 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1689 AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
1692 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1693 AC_TRY_COMPILE([#include <sys/types.h>
1695 [struct utmp ut; time_t t; ut.ut_time = t;],
1696 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1697 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1698 AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
1701 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1702 AC_TRY_COMPILE([#include <sys/types.h>
1704 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
1705 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1706 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1707 AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
1710 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1711 AC_TRY_COMPILE([#include <sys/types.h>
1713 [struct utmp ut; ut.ut_type = 0;],
1714 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1715 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1716 AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
1719 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1720 AC_TRY_COMPILE([#include <sys/types.h>
1722 [struct utmp ut; ut.ut_pid = 0;],
1723 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1724 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1725 AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
1728 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1729 AC_TRY_COMPILE([#include <sys/types.h>
1731 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1732 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1733 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1734 AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
1737 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1738 AC_TRY_COMPILE([#include <sys/types.h>
1740 [struct utmp ut; ut.ut_addr = 0;],
1741 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1742 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1743 AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
1746 if test x$ac_cv_func_pututline = xyes ; then
1747 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1748 AC_TRY_COMPILE([#include <sys/types.h>
1750 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1751 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1752 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1753 AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
1757 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1758 AC_TRY_COMPILE([#include <sys/types.h>
1759 #include <utmpx.h>],
1760 [struct utmpx ux; ux.ut_syslen = 0;],
1761 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1762 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1763 AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
1770 ICONV_LOCATION=standard
1771 LOOK_DIRS="/usr /usr/local /sw /opt"
1772 AC_ARG_WITH(libiconv,
1773 [ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1775 if test "$withval" = "no" ; then
1776 AC_MSG_ERROR([argument to --with-libiconv must be a directory])
1778 if test "$withval" != "yes" ; then
1780 LOOK_DIRS="$withval"
1785 for i in $LOOK_DIRS ; do
1787 save_LDFLAGS=$LDFLAGS
1788 save_CPPFLAGS=$CPPFLAGS
1791 CPPFLAGS="$CPPFLAGS -I$i/include"
1792 dnl This is here to handle -withval stuff for --with-libiconv
1793 dnl Perhaps we should always add a -L
1795 dnl Check lib and lib32 library variants to cater for IRIX ABI-specific
1796 dnl installation paths. This gets a little tricky since we might have iconv
1797 dnl in both libiconv and in libc. In this case the jm_ICONV test will always
1798 dnl succeed when the header is found. To counter this, make sure the
1799 dnl library directory is there and check the ABI directory first (which
1800 dnl should be harmless on other systems.
1801 for l in "lib32" "lib" ; do
1802 if test -d "$i/$l" ; then
1803 LDFLAGS="$save_LDFLAGS -L$i/$l"
1805 export LDFLAGS LIBS CPPFLAGS
1806 dnl Try to find iconv(3)
1808 if test x"$ICONV_FOUND" = "xyes" ; then
1815 if test x"$ICONV_FOUND" = "xyes" ; then
1816 LDFLAGS=$save_LDFLAGS
1817 LIB_ADD_DIR(LDFLAGS, "$i/$libext")
1818 CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
1821 export LDFLAGS LIBS CPPFLAGS
1822 dnl Now, check for a working iconv ... we want to do it here because
1823 dnl there might be a working iconv further down the list of LOOK_DIRS
1826 # check for iconv in libc
1827 ic_save_LIBS="$LIBS"
1828 if test x"$ICONV_PATH_SPEC" = "xyes" ; then
1829 LIBS="$LIBS -L$ICONV_LOCATION/$libext"
1831 if test x"$jm_cv_lib_iconv" != x; then
1832 LIBS="$LIBS -l$jm_cv_lib_iconv"
1834 dnl AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1835 default_dos_charset=no
1836 default_display_charset=no
1837 default_unix_charset=no
1839 # check for default dos charset name
1840 for j in CP850 IBM850 ; do
1842 if test x"$ICONV_CHARSET" = x"$j"; then
1843 default_dos_charset="\"$j\""
1847 # check for default display charset name
1848 for j in ASCII 646 ; do
1850 if test x"$ICONV_CHARSET" = x"$j"; then
1851 default_display_charset="\"$j\""
1855 # check for default unix charset name
1856 for j in UTF-8 UTF8 ; do
1858 if test x"$ICONV_CHARSET" = x"$j"; then
1859 default_unix_charset="\"$j\""
1864 if test "$default_dos_charset" != "no" -a \
1865 "$default_dos_charset" != "cross" -a \
1866 "$default_display_charset" != "no" -a \
1867 "$default_display_charset" != "cross" -a \
1868 "$default_unix_charset" != "no" -a \
1869 "$default_unix_charset" != "cross"
1871 samba_cv_HAVE_NATIVE_ICONV=yes
1872 else if test "$default_dos_charset" = "cross" -o \
1873 "$default_display_charset" = "cross" -o \
1874 "$default_unix_charset" = "cross"
1876 samba_cv_HAVE_NATIVE_ICONV=cross
1878 samba_cv_HAVE_NATIVE_ICONV=no
1883 LIBS="$ic_save_LIBS"
1884 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1885 CPPFLAGS=$save_CPPFLAGS
1886 LDFLAGS=$save_LDFLAGS
1888 if test x"$jm_cv_lib_iconv" != x; then
1889 LIBS="$LIBS -l$jm_cv_lib_iconv"
1891 dnl Add the flags we need to CPPFLAGS and LDFLAGS
1892 CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
1893 LIB_ADD_DIR(LDFLAGS, "$i/$libext")
1895 AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
1896 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,$default_dos_charset,[Default dos charset name])
1897 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,$default_display_charset,[Default display charset name])
1898 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,$default_unix_charset,[Default unix charset name])
1901 dnl We didn't find a working iconv, so keep going
1903 dnl We only need to clean these up here for the next pass through the loop
1904 CPPFLAGS=$save_CPPFLAGS
1905 LDFLAGS=$save_LDFLAGS
1907 export LDFLAGS LIBS CPPFLAGS
1912 if test x"$ICONV_FOUND" = x"no" -o x"$samba_cv_HAVE_NATIVE_ICONV" != x"yes" ; then
1913 AC_MSG_WARN([Sufficient support for iconv function was not found.
1914 Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!])
1915 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,"ASCII",[Default dos charset name])
1916 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,"ASCII",[Default display charset name])
1917 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,"UTF8",[Default unix charset name])
1921 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1923 #include <sys/types.h>
1926 #define F_GETLEASE 1025
1929 int fd = open("/dev/null", O_RDONLY);
1930 return fcntl(fd, F_GETLEASE, 0) == -1;
1933 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1934 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1935 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
1938 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1940 #include <sys/types.h>
1944 #define F_NOTIFY 1026
1947 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1950 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1951 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1952 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
1955 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1957 #include <sys/types.h>
1960 #include <sys/file.h>
1962 #define LOCK_MAND 32
1963 #define LOCK_READ 64
1966 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1969 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1970 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1971 AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
1977 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1978 AC_TRY_COMPILE([#include <sys/types.h>
1979 #include <fcntl.h>],
1980 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1981 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1982 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1983 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
1986 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1987 AC_TRY_RUN([#include <sys/types.h>
1988 #include <sys/capability.h>
1991 if ((cap = cap_get_proc()) == NULL)
1993 cap->cap_effective |= CAP_NETWORK_MGT;
1994 cap->cap_inheritable |= CAP_NETWORK_MGT;
1999 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
2000 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
2001 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES,1,[Whether IRIX specific capabilities are available])
2005 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
2006 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
2009 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
2010 AC_TRY_COMPILE([#include <sys/types.h>
2011 #if defined(HAVE_RPC_RPC_H)
2012 #include <rpc/rpc.h>
2015 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
2016 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
2017 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
2020 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
2021 AC_TRY_COMPILE([#include <sys/types.h>
2022 #if defined(HAVE_RPC_RPC_H)
2023 #include <rpc/rpc.h>
2026 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
2027 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
2028 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
2031 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
2032 AC_TRY_COMPILE([#include <sys/types.h>
2033 #if defined(HAVE_RPC_RPC_H)
2034 #include <rpc/rpc.h>
2037 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
2038 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
2039 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
2042 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
2043 AC_TRY_COMPILE([#include <sys/types.h>
2044 #if defined(HAVE_RPC_RPC_H)
2045 #include <rpc/rpc.h>
2048 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
2049 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
2050 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
2054 dnl Some systems (SCO) have a problem including
2055 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
2056 dnl as a #define in <prot.h> and as part of an enum
2060 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
2061 AC_TRY_COMPILE([#include <sys/types.h>
2062 #ifdef HAVE_SYS_SECURITY_H
2063 #include <sys/security.h>
2065 #endif /* HAVE_SYS_SECURITY_H */
2066 #if defined(HAVE_RPC_RPC_H)
2067 #include <rpc/rpc.h>
2070 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
2071 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
2072 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
2075 AC_MSG_CHECKING([for test routines])
2076 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
2078 AC_MSG_ERROR([cant find test code. Aborting config]),
2079 AC_MSG_WARN([cannot run when cross-compiling]))
2081 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
2082 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
2083 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
2084 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
2085 AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
2088 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
2089 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
2090 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
2091 samba_cv_HAVE_WORKING_AF_LOCAL=no,
2092 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
2093 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
2095 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
2098 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
2099 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
2100 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
2101 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
2102 AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
2105 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
2106 SAVE_CPPFLAGS="$CPPFLAGS"
2107 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt"
2109 #define REPLACE_GETPASS 1
2110 #define NO_PROTO_H 1
2111 #define NO_CONFIG_H 1
2112 #define main dont_declare_main
2113 #include "${srcdir-.}/lib/getsmbpass.c"
2115 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
2116 CPPFLAGS="$SAVE_CPPFLAGS"
2118 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
2119 AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced])
2122 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
2125 #include <sys/types.h>
2126 #include <netinet/in.h>
2127 #ifdef HAVE_ARPA_INET_H
2128 #include <arpa/inet.h>
2130 main() { struct in_addr ip; ip.s_addr = 0x12345678;
2131 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
2132 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
2134 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
2135 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
2136 AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced])
2139 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
2140 AC_TRY_RUN([#include <stdlib.h>
2141 #include <sys/types.h>
2142 #include <sys/stat.h>
2146 char tpl[20]="/tmp/test.XXXXXX";
2147 int fd = mkstemp(tpl);
2148 if (fd == -1) exit(1);
2150 if (fstat(fd, &st) != 0) exit(1);
2151 if ((st.st_mode & 0777) != 0600) exit(1);
2154 samba_cv_HAVE_SECURE_MKSTEMP=yes,
2155 samba_cv_HAVE_SECURE_MKSTEMP=no,
2156 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
2157 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
2158 AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
2161 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
2162 AC_TRY_RUN([#include <unistd.h>
2163 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
2164 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
2165 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
2166 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX,1,[Whether sysconf(_SC_NGROUPS_MAX) is available])
2169 AC_CACHE_CHECK([for sysconf(_SC_NPROC_ONLN)],samba_cv_SYSCONF_SC_NPROC_ONLN,[
2170 AC_TRY_RUN([#include <unistd.h>
2171 main() { exit(sysconf(_SC_NPROC_ONLN) == -1 ? 1 : 0); }],
2172 samba_cv_SYSCONF_SC_NPROC_ONLN=yes,samba_cv_SYSCONF_SC_NPROC_ONLN=no,samba_cv_SYSCONF_SC_NPROC_ONLN=cross)])
2173 if test x"$samba_cv_SYSCONF_SC_NPROC_ONLN" = x"yes"; then
2174 AC_DEFINE(SYSCONF_SC_NPROC_ONLN,1,[Whether sysconf(_SC_NPROC_ONLN) is available])
2177 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
2178 AC_TRY_RUN([main() { exit(getuid() != 0); }],
2179 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
2180 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
2181 AC_DEFINE(HAVE_ROOT,1,[Whether current user is root])
2183 AC_MSG_WARN(running as non-root will disable some tests)
2187 # look for a method of finding the list of network interfaces
2189 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
2191 #define HAVE_IFACE_AIX 1
2192 #define AUTOCONF_TEST 1
2193 #include "confdefs.h"
2194 #include "${srcdir-.}/lib/interfaces.c"],
2195 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
2196 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
2197 iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
2200 if test $iface = no; then
2201 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
2203 #define HAVE_IFACE_IFCONF 1
2204 #define AUTOCONF_TEST 1
2205 #include "confdefs.h"
2206 #include "${srcdir-.}/lib/interfaces.c"],
2207 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
2208 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
2209 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
2213 if test $iface = no; then
2214 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
2216 #define HAVE_IFACE_IFREQ 1
2217 #define AUTOCONF_TEST 1
2218 #include "confdefs.h"
2219 #include "${srcdir-.}/lib/interfaces.c"],
2220 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
2221 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
2222 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
2227 ################################################
2228 # look for a method of setting the effective uid
2230 if test $seteuid = no; then
2231 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
2233 #define AUTOCONF_TEST 1
2234 #define USE_SETRESUID 1
2235 #include "confdefs.h"
2236 #include "${srcdir-.}/lib/util_sec.c"],
2237 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
2238 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
2239 seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
2244 if test $seteuid = no; then
2245 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
2247 #define AUTOCONF_TEST 1
2248 #define USE_SETREUID 1
2249 #include "confdefs.h"
2250 #include "${srcdir-.}/lib/util_sec.c"],
2251 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
2252 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
2253 seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
2257 if test $seteuid = no; then
2258 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
2260 #define AUTOCONF_TEST 1
2261 #define USE_SETEUID 1
2262 #include "confdefs.h"
2263 #include "${srcdir-.}/lib/util_sec.c"],
2264 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
2265 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
2266 seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
2270 if test $seteuid = no; then
2271 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
2273 #define AUTOCONF_TEST 1
2274 #define USE_SETUIDX 1
2275 #include "confdefs.h"
2276 #include "${srcdir-.}/lib/util_sec.c"],
2277 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
2278 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
2279 seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
2284 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
2285 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
2286 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
2287 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
2288 AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
2291 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
2292 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
2293 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
2294 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
2295 AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
2298 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
2299 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
2300 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
2301 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
2302 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
2307 dnl Don't check for 64 bit fcntl locking if we know that the
2308 dnl glibc2.1 broken check has succeeded.
2311 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
2313 #if defined(HAVE_UNISTD_H)
2323 #ifdef HAVE_SYS_FCNTL_H
2324 #include <sys/fcntl.h>
2326 main() { struct flock64 fl64;
2327 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
2333 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
2335 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
2336 AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
2340 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
2341 AC_TRY_COMPILE([#include <sys/types.h>
2342 #include <sys/stat.h>
2343 #include <unistd.h>],
2344 [struct stat st; st.st_blocks = 0;],
2345 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
2346 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
2347 AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
2350 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
2351 AC_TRY_COMPILE([#include <sys/types.h>
2352 #include <sys/stat.h>
2353 #include <unistd.h>],
2354 [struct stat st; st.st_blksize = 0;],
2355 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
2356 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
2357 AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
2362 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
2364 #ifdef HAVE_SYS_VFS_H
2365 #include <sys/vfs.h>
2367 #ifdef HAVE_SYS_CAPABILITY_H
2368 #include <sys/capability.h>
2371 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
2372 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
2373 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
2378 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
2380 #include <sys/types.h>
2381 #include <sys/acl.h>
2382 #if defined(HAVE_RPCSVC_NIS_H)
2383 #include <rpcsvc/nis.h>
2386 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
2387 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
2388 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
2391 AC_CACHE_CHECK([if the realpath function allows a NULL argument],samba_cv_REALPATH_TAKES_NULL,[
2396 char *newpath = realpath("/tmp", NULL);
2397 exit ((newpath != NULL) ? 0 : 1);
2400 samba_cv_REALPATH_TAKES_NULL=yes,samba_cv_REALPATH_TAKES_NULL=no,samba_cv_REALPATH_TAKES_NULL=cross)])
2401 if test x"$samba_cv_REALPATH_TAKES_NULL" = x"yes"; then
2402 AC_DEFINE(REALPATH_TAKES_NULL,1,[Whether the realpath function allows NULL])
2405 #################################################
2406 # check for smbwrapper support
2407 AC_MSG_CHECKING(whether to use smbwrapper)
2408 AC_ARG_WITH(smbwrapper,
2409 [ --with-smbwrapper Include SMB wrapper support (default=no) ],
2410 [ case "$withval" in
2413 AC_DEFINE(WITH_SMBWRAPPER,1,[Whether to include smbwrapper support])
2414 WRAPPROG="bin/smbsh\$(EXEEXT)"
2415 WRAP="bin/smbwrapper.$SHLIBEXT"
2416 WRAP_OBJS="\$(SMBW_OBJ1) \$(SMBWRAPPER_OBJ1)"
2417 WRAP_INC="-I\$(srcdir)/smbwrapper"
2419 # Conditions under which smbwrapper should not be built.
2421 if test x$PICFLAGS = x; then
2422 echo No support for PIC code - disabling smbwrapper and smbsh
2427 elif test x$ac_cv_func_syscall = xno; then
2428 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
2434 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $WRAPPROG $WRAP"
2435 SMBWRAPPER="$WRAPPROG $WRAP"
2436 SMBWRAP_OBJS="$WRAP_OBJS"
2437 SMBWRAP_INC="$WRAP_INC"
2446 #################################################
2447 # check for AFS clear-text auth support
2448 samba_cv_WITH_AFS=no
2449 AC_MSG_CHECKING(whether to use AFS clear-text auth)
2451 [ --with-afs Include AFS clear-text auth support (default=no) ],
2452 [ case "$withval" in
2454 AC_MSG_RESULT($withval)
2455 samba_cv_WITH_AFS=$withval
2464 ####################################################
2465 # check for Linux-specific AFS fake-kaserver support
2466 samba_cv_WITH_FAKE_KASERVER=no
2467 AC_MSG_CHECKING(whether to use AFS fake-kaserver)
2468 AC_ARG_WITH(fake-kaserver,
2469 [ --with-fake-kaserver Include AFS fake-kaserver support (default=no) ],
2470 [ case "$withval" in
2472 AC_MSG_RESULT($withval)
2473 samba_cv_WITH_FAKE_KASERVER=$withval
2482 #################################################
2483 # decide whether we can support WITH_AFS and / or WITH_FAKE_KASERVER
2484 if test x"$samba_cv_WITH_AFS" != x"no" ||
2485 test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then
2487 # see if this box has the afs-headers in /usr/include/afs
2488 AC_MSG_CHECKING(for /usr/include/afs)
2489 if test -d /usr/include/afs; then
2490 CFLAGS="$CFLAGS -I/usr/include/afs"
2491 CPPFLAGS="$CPPFLAGS -I/usr/include/afs"
2499 AC_CHECK_HEADERS(afs.h afs/afs.h)
2500 if test x"$ac_cv_header_afs_h" = x"no" && test x"$ac_cv_header_afs_afs_h" = x"no"; then
2501 if test x"$samba_cv_WITH_FAKE_KASERVER" = x"auto" ||
2502 test x"$samba_cv_WITH_AFS" = x"auto"; then
2503 AC_MSG_WARN([AFS cannot be supported without afs.h])
2505 AC_MSG_ERROR([AFS cannot be supported without afs.h])
2508 have_afs_headers=yes
2512 if test x"$samba_cv_WITH_FAKE_KASERVER" != x"no" && test x"$have_afs_headers" = x"yes"; then
2513 AC_DEFINE(WITH_FAKE_KASERVER,1,[Whether to include AFS fake-kaserver support])
2516 #################################################
2517 # check whether to compile AFS/NT ACL mapping module
2518 samba_cv_WITH_VFS_AFSACL=no
2519 AC_MSG_CHECKING(whether to use AFS fake-kaserver)
2520 AC_ARG_WITH(vfs-afsacl,
2521 [ --with-vfs-afsacl Include AFS to NT ACL mapping module (default=no) ],
2522 [ case "$withval" in
2524 AC_MSG_RESULT($withval)
2525 samba_cv_WITH_VFS_AFSACL=yes
2534 if test x"$samba_cv_WITH_VFS_AFSACL" = x"yes"; then
2535 default_shared_modules="$default_shared_modules vfs_afsacl"
2538 if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then
2539 AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
2542 #################################################
2543 # check for the DFS clear-text auth system
2544 AC_MSG_CHECKING(whether to use DFS clear-text auth)
2546 [ --with-dce-dfs Include DCE/DFS clear-text auth support (default=no)],
2547 [ case "$withval" in
2550 AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
2559 ########################################################
2560 # Compile with LDAP support?
2562 with_ldap_support=auto
2563 AC_MSG_CHECKING([for LDAP support])
2566 [ --with-ldap LDAP support (default yes)],
2567 [ case "$withval" in
2569 with_ldap_support=$withval
2573 AC_MSG_RESULT($with_ldap_support)
2577 if test x"$with_ldap_support" != x"no"; then
2579 ##################################################################
2580 # first test for ldap.h and lber.h
2581 # (ldap.h is required for this test)
2582 AC_CHECK_HEADERS(ldap.h lber.h)
2584 if test x"$ac_cv_header_ldap_h" != x"yes"; then
2585 if test x"$with_ldap_support" = x"yes"; then
2586 AC_MSG_ERROR(ldap.h is needed for LDAP support)
2588 AC_MSG_WARN(ldap.h is needed for LDAP support)
2591 with_ldap_support=no
2595 if test x"$with_ldap_support" != x"no"; then
2598 ##################################################################
2599 # we might need the lber lib on some systems. To avoid link errors
2600 # this test must be before the libldap test
2601 AC_CHECK_LIB_EXT(lber, LDAP_LIBS, ber_scanf)
2603 ########################################################
2604 # now see if we can find the ldap libs in standard paths
2605 AC_CHECK_LIB_EXT(ldap, LDAP_LIBS, ldap_init)
2607 AC_CHECK_FUNC_EXT(ldap_domain2hostlist,$LDAP_LIBS)
2609 ########################################################
2610 # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
2611 # Check found in pam_ldap 145.
2612 AC_CHECK_FUNC_EXT(ldap_set_rebind_proc,$LDAP_LIBS)
2614 LIBS="$LIBS $LDAP_LIBS"
2615 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, smb_ldap_cv_ldap_set_rebind_proc, [
2619 [ldap_set_rebind_proc(0, 0, 0);],
2620 [smb_ldap_cv_ldap_set_rebind_proc=3],
2621 [smb_ldap_cv_ldap_set_rebind_proc=2]
2625 AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $smb_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
2627 AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS)
2629 if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes" -a x"$ac_cv_func_ext_ldap_domain2hostlist" = x"yes"; then
2630 AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])
2631 default_static_modules="$default_static_modules pdb_ldap idmap_ldap";
2632 SMBLDAP="lib/smbldap.o"
2633 with_ldap_support=yes
2634 AC_MSG_CHECKING(whether LDAP support is used)
2637 if test x"$with_ldap_support" = x"yes"; then
2638 AC_MSG_ERROR(libldap is needed for LDAP support)
2640 AC_MSG_WARN(libldap is needed for LDAP support)
2644 with_ldap_support=no
2650 #################################################
2651 # active directory support
2653 with_ads_support=auto
2654 AC_MSG_CHECKING([for Active Directory and krb5 support])
2657 [ --with-ads Active Directory support (default auto)],
2658 [ case "$withval" in
2660 with_ads_support="$withval"
2664 AC_MSG_RESULT($with_ads_support)
2669 if test x"$with_ldap_support" != x"yes"; then
2670 if test x"$with_ads_support" = x"yes"; then
2671 AC_MSG_ERROR(Active Directory Support requires LDAP support)
2672 elif test x"$with_ads_support" != x"no"; then
2673 AC_MSG_WARN(Active Directory Support requires LDAP support)
2678 if test x"$with_ads_support" != x"no"; then
2680 # Do no harm to the values of CFLAGS and LIBS while testing for
2683 if test x$FOUND_KRB5 = x"no"; then
2684 #################################################
2685 # check for location of Kerberos 5 install
2686 AC_MSG_CHECKING(for kerberos 5 install path)
2688 [ --with-krb5=base-dir Locate Kerberos 5 support (default=/usr)],
2689 [ case "$withval" in
2691 AC_MSG_RESULT(no krb5-path given)
2698 AC_MSG_RESULT($withval)
2699 KRB5_CFLAGS="-I$withval/include"
2700 KRB5_CPPFLAGS="-I$withval/include"
2701 KRB5_LDFLAGS="-L$withval/lib"
2703 if test -x "$withval/bin/krb5-config"; then
2704 KRB5CONFIG=$withval/bin/krb5-config
2708 AC_MSG_RESULT(no krb5-path given)
2712 #################################################
2713 # check for krb5-config from recent MIT and Heimdal kerberos 5
2714 AC_PATH_PROG(KRB5CONFIG, krb5-config)
2715 AC_MSG_CHECKING(for working krb5-config)
2716 if test -x "$KRB5CONFIG"; then
2717 ac_save_CFLAGS=$CFLAGS
2718 CFLAGS="";export CFLAGS
2719 ac_save_LDFLAGS=$LDFLAGS
2720 LDFLAGS="";export LDFLAGS
2721 KRB5_LIBS="`$KRB5CONFIG --libs gssapi`"
2722 KRB5_LDFLAGS="`$KRB5CONFIG --libs gssapi | sed s/-lgss.*//`"
2723 KRB5_CFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`"
2724 KRB5_CPPFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`"
2725 CFLAGS=$ac_save_CFLAGS;export CFLAGS
2726 LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS
2730 AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
2733 if test x$FOUND_KRB5 = x"no"; then
2734 #################################################
2735 # see if this box has the SuSE location for the heimdal krb implementation
2736 AC_MSG_CHECKING(for /usr/include/heimdal)
2737 if test -d /usr/include/heimdal; then
2738 if test -f /usr/lib/heimdal/lib/libkrb5.a; then
2739 KRB5_CFLAGS="-I/usr/include/heimdal"
2740 KRB5_CPPFLAGS="-I/usr/include/heimdal"
2741 KRB5_LDFLAGS="-L/usr/lib/heimdal/lib"
2744 KRB5_CFLAGS="-I/usr/include/heimdal"
2745 KRB5_CPPFLAGS="-I/usr/include/heimdal"
2753 if test x$FOUND_KRB5 = x"no"; then
2754 #################################################
2755 # see if this box has the RedHat location for kerberos
2756 AC_MSG_CHECKING(for /usr/kerberos)
2757 if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
2758 KRB5_LDFLAGS="-L/usr/kerberos/lib"
2759 KRB5_CFLAGS="-I/usr/kerberos/include"
2760 KRB5_CPPFLAGS="-I/usr/kerberos/include"
2767 ac_save_CFLAGS=$CFLAGS
2768 ac_save_CPPFLAGS=$CPPFLAGS
2769 ac_save_LDFLAGS=$LDFLAGS
2771 CFLAGS="$KRB5_CFLAGS $CFLAGS"
2772 CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS"
2773 LDFLAGS="$KRB5_LDFLAGS $LDFLAGS"
2775 KRB5_LIBS="$KRB5_LDFLAGS $KRB5_LIBS"
2777 # now check for krb5.h. Some systems have the libraries without the headers!
2778 # note that this check is done here to allow for different kerberos
2780 AC_CHECK_HEADERS(krb5.h)
2782 if test x"$ac_cv_header_krb5_h" = x"no"; then
2784 # Give a warning if AD support was not explicitly requested,
2785 # i.e with_ads_support = auto, otherwise die with an error.
2787 if test x"$with_ads_support" = x"yes"; then
2788 AC_MSG_ERROR([Active Directory cannot be supported without krb5.h])
2790 AC_MSG_WARN([Active Directory cannot be supported without krb5.h])
2793 # Turn off AD support and restore CFLAGS and LIBS variables
2795 with_ads_support="no"
2797 CFLAGS=$ac_save_CFLAGS
2798 CPPFLAGS=$ac_save_CPPFLAGS
2799 LDFLAGS=$ac_save_LDFLAGS
2803 # Now we have determined whether we really want ADS support
2805 if test x"$with_ads_support" != x"no"; then
2808 # now check for gssapi headers. This is also done here to allow for
2809 # different kerberos include paths
2810 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h com_err.h)
2812 ##################################################################
2813 # we might need the k5crypto and com_err libraries on some systems
2814 AC_CHECK_LIB_EXT(com_err, KRB5_LIBS, _et_list)
2815 AC_CHECK_LIB_EXT(k5crypto, KRB5_LIBS, krb5_encrypt_data)
2818 AC_CHECK_LIB_EXT(crypto, KRB5_LIBS, des_set_key)
2819 AC_CHECK_LIB_EXT(asn1, KRB5_LIBS, copy_Authenticator)
2820 AC_CHECK_LIB_EXT(roken, KRB5_LIBS, roken_getaddrinfo_hostspec)
2822 # Heimdal checks. On static Heimdal gssapi must be linked before krb5.
2823 AC_CHECK_LIB_EXT(gssapi, KRB5_LIBS, gss_display_status,[],[],
2824 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
2826 ########################################################
2827 # now see if we can find the krb5 libs in standard paths
2828 # or as specified above
2829 AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_mk_req_extended)
2830 AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_kt_compare)
2832 ########################################################
2833 # now see if we can find the gssapi libs in standard paths
2834 AC_CHECK_LIB_EXT(gssapi_krb5, KRB5_LIBS,gss_display_status,[],[],
2835 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
2837 AC_CHECK_FUNC_EXT(krb5_set_real_time, $KRB5_LIBS)
2838 AC_CHECK_FUNC_EXT(krb5_set_default_in_tkt_etypes, $KRB5_LIBS)
2839 AC_CHECK_FUNC_EXT(krb5_set_default_tgs_ktypes, $KRB5_LIBS)
2840 AC_CHECK_FUNC_EXT(krb5_principal2salt, $KRB5_LIBS)
2841 AC_CHECK_FUNC_EXT(krb5_use_enctype, $KRB5_LIBS)
2842 AC_CHECK_FUNC_EXT(krb5_string_to_key, $KRB5_LIBS)
2843 AC_CHECK_FUNC_EXT(krb5_get_pw_salt, $KRB5_LIBS)
2844 AC_CHECK_FUNC_EXT(krb5_string_to_key_salt, $KRB5_LIBS)
2845 AC_CHECK_FUNC_EXT(krb5_auth_con_setkey, $KRB5_LIBS)
2846 AC_CHECK_FUNC_EXT(krb5_auth_con_setuseruserkey, $KRB5_LIBS)
2847 AC_CHECK_FUNC_EXT(krb5_locate_kdc, $KRB5_LIBS)
2848 AC_CHECK_FUNC_EXT(krb5_get_permitted_enctypes, $KRB5_LIBS)
2849 AC_CHECK_FUNC_EXT(krb5_get_default_in_tkt_etypes, $KRB5_LIBS)
2850 AC_CHECK_FUNC_EXT(krb5_free_ktypes, $KRB5_LIBS)
2851 AC_CHECK_FUNC_EXT(krb5_free_data_contents, $KRB5_LIBS)
2852 AC_CHECK_FUNC_EXT(krb5_principal_get_comp_string, $KRB5_LIBS)
2853 AC_CHECK_FUNC_EXT(krb5_free_unparsed_name, $KRB5_LIBS)
2854 AC_CHECK_FUNC_EXT(krb5_free_keytab_entry_contents, $KRB5_LIBS)
2855 AC_CHECK_FUNC_EXT(krb5_kt_free_entry, $KRB5_LIBS)
2856 AC_CHECK_FUNC_EXT(krb5_krbhst_get_addrinfo, $KRB5_LIBS)
2857 AC_CHECK_FUNC_EXT(krb5_c_enctype_compare, $KRB5_LIBS)
2858 AC_CHECK_FUNC_EXT(krb5_enctypes_compatible_keys, $KRB5_LIBS)
2860 LIBS="$KRB5_LIBS $LIBS"
2862 AC_CACHE_CHECK([for krb5_encrypt_block type],
2863 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK,[
2864 AC_TRY_COMPILE([#include <krb5.h>],
2865 [krb5_encrypt_block block;],
2866 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=yes,
2867 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=no)])
2869 if test x"$samba_cv_HAVE_KRB5_ENCRYPT_BLOCK" = x"yes"; then
2870 AC_DEFINE(HAVE_KRB5_ENCRYPT_BLOCK,1,
2871 [Whether the type krb5_encrypt_block exists])
2874 AC_CACHE_CHECK([for addrtype in krb5_address],
2875 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS,[
2876 AC_TRY_COMPILE([#include <krb5.h>],
2877 [krb5_address kaddr; kaddr.addrtype = ADDRTYPE_INET;],
2878 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=yes,
2879 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=no)])
2881 if test x"$samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS" = x"yes"; then
2882 AC_DEFINE(HAVE_ADDRTYPE_IN_KRB5_ADDRESS,1,
2883 [Whether the krb5_address struct has a addrtype property])
2886 AC_CACHE_CHECK([for addr_type in krb5_address],
2887 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,[
2888 AC_TRY_COMPILE([#include <krb5.h>],
2889 [krb5_address kaddr; kaddr.addr_type = KRB5_ADDRESS_INET;],
2890 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=yes,
2891 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=no)])
2893 if test x"$samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS" = x"yes"; then
2894 AC_DEFINE(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,1,
2895 [Whether the krb5_address struct has a addr_type property])
2898 AC_CACHE_CHECK([for enc_part2 in krb5_ticket],
2899 samba_cv_HAVE_KRB5_TKT_ENC_PART2,
2900 [AC_TRY_COMPILE([#include <krb5.h>],
2901 [krb5_ticket tkt; tkt.enc_part2->authorization_data[0]->contents = NULL;],
2902 samba_cv_HAVE_KRB5_TKT_ENC_PART2=yes,samba_cv_HAVE_KRB5_TKT_ENC_PART2=no)])
2904 if test x"$samba_cv_HAVE_KRB5_TKT_ENC_PART2" = x"yes"; then
2905 AC_DEFINE(HAVE_KRB5_TKT_ENC_PART2,1,
2906 [Whether the krb5_ticket struct has a enc_part2 property])
2909 AC_CACHE_CHECK([for keyblock in krb5_creds],
2910 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS,[
2911 AC_TRY_COMPILE([#include <krb5.h>],
2912 [krb5_creds creds; krb5_keyblock kb; creds.keyblock = kb;],
2913 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=yes,
2914 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=no)])
2916 if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS" = x"yes"; then
2917 AC_DEFINE(HAVE_KRB5_KEYBLOCK_IN_CREDS,1,
2918 [Whether the krb5_creds struct has a keyblock property])
2921 AC_CACHE_CHECK([for session in krb5_creds],
2922 samba_cv_HAVE_KRB5_SESSION_IN_CREDS,[
2923 AC_TRY_COMPILE([#include <krb5.h>],
2924 [krb5_creds creds; krb5_keyblock kb; creds.session = kb;],
2925 samba_cv_HAVE_KRB5_SESSION_IN_CREDS=yes,
2926 samba_cv_HAVE_KRB5_SESSION_IN_CREDS=no)])
2928 if test x"$samba_cv_HAVE_KRB5_SESSION_IN_CREDS" = x"yes"; then
2929 AC_DEFINE(HAVE_KRB5_SESSION_IN_CREDS,1,
2930 [Whether the krb5_creds struct has a session property])
2933 AC_CACHE_CHECK([for keyvalue in krb5_keyblock],
2934 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE,[
2935 AC_TRY_COMPILE([#include <krb5.h>],
2936 [krb5_keyblock key; key.keyvalue.data = NULL;],
2937 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=yes,
2938 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=no)])
2940 if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE" = x"yes"; then
2941 AC_DEFINE(HAVE_KRB5_KEYBLOCK_KEYVALUE,1,
2942 [Whether the krb5_keyblock struct has a keyvalue property])
2945 AC_CACHE_CHECK([for ENCTYPE_ARCFOUR_HMAC_MD5],
2946 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,[
2947 AC_TRY_COMPILE([#include <krb5.h>],
2948 [krb5_enctype enctype; enctype = ENCTYPE_ARCFOUR_HMAC_MD5;],
2949 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=yes,
2950 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=no)])
2951 AC_CACHE_CHECK([for KEYTYPE_ARCFOUR_56],
2952 samba_cv_HAVE_KEYTYPE_ARCFOUR_56,[
2953 AC_TRY_COMPILE([#include <krb5.h>],
2954 [krb5_keytype keytype; keytype = KEYTYPE_ARCFOUR_56;],
2955 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=yes,
2956 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=no)])
2957 # Heimdals with KEYTYPE_ARCFOUR but not KEYTYPE_ARCFOUR_56 are broken
2958 # w.r.t. arcfour and windows, so we must not enable it here
2959 if test x"$samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5" = x"yes" -a\
2960 x"$samba_cv_HAVE_KEYTYPE_ARCFOUR_56" = x"yes"; then
2961 AC_DEFINE(HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,1,
2962 [Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available])
2965 AC_CACHE_CHECK([for AP_OPTS_USE_SUBKEY],
2966 samba_cv_HAVE_AP_OPTS_USE_SUBKEY,[
2967 AC_TRY_COMPILE([#include <krb5.h>],
2968 [krb5_flags ap_options; ap_options = AP_OPTS_USE_SUBKEY;],
2969 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=yes,
2970 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=no)])
2972 if test x"$samba_cv_HAVE_AP_OPTS_USE_SUBKEY" = x"yes"; then
2973 AC_DEFINE(HAVE_AP_OPTS_USE_SUBKEY,1,
2974 [Whether the AP_OPTS_USE_SUBKEY ap option is available])
2977 AC_CACHE_CHECK([for KV5M_KEYTAB],
2978 samba_cv_HAVE_KV5M_KEYTAB,[
2979 AC_TRY_COMPILE([#include <krb5.h>],
2980 [krb5_keytab_entry entry; entry.magic = KV5M_KEYTAB;],
2981 samba_cv_HAVE_KV5M_KEYTAB=yes,
2982 samba_cv_HAVE_KV5M_KEYTAB=no)])
2984 if test x"$samba_cv_HAVE_KV5M_KEYTAB" = x"yes"; then
2985 AC_DEFINE(HAVE_KV5M_KEYTAB,1,
2986 [Whether the KV5M_KEYTAB option is available])
2989 AC_CACHE_CHECK([for the krb5_princ_component macro],
2990 samba_cv_HAVE_KRB5_PRINC_COMPONENT,[
2991 AC_TRY_LINK([#include <krb5.h>],
2992 [const krb5_data *pkdata; krb5_context context; krb5_principal principal; pkdata = krb5_princ_component(context, principal, 0);],
2993 samba_cv_HAVE_KRB5_PRINC_COMPONENT=yes,
2994 samba_cv_HAVE_KRB5_PRINC_COMPONENT=no)])
2996 if test x"$samba_cv_HAVE_KRB5_PRINC_COMPONENT" = x"yes"; then
2997 AC_DEFINE(HAVE_KRB5_PRINC_COMPONENT,1,
2998 [Whether krb5_princ_component is available])
3001 AC_CACHE_CHECK([for key in krb5_keytab_entry],
3002 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY,[
3003 AC_TRY_COMPILE([#include <krb5.h>],
3004 [krb5_keytab_entry entry; krb5_keyblock e; entry.key = e;],
3005 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=yes,
3006 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=no)])
3008 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY" = x"yes"; then
3009 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEY,1,
3010 [Whether krb5_keytab_entry has key member])
3013 AC_CACHE_CHECK([for keyblock in krb5_keytab_entry],
3014 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,[
3015 AC_TRY_COMPILE([#include <krb5.h>],
3016 [krb5_keytab_entry entry; entry.keyblock.keytype = 0;],
3017 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=yes,
3018 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=no)])
3020 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK" = x"yes"; then
3021 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,1,
3022 [Whether krb5_keytab_entry has keyblock member])
3025 if test x"$ac_cv_lib_ext_krb5_krb5_mk_req_extended" = x"yes"; then
3026 AC_DEFINE(HAVE_KRB5,1,[Whether to have KRB5 support])
3027 AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
3028 AC_MSG_CHECKING(whether Active Directory and krb5 support is used)
3031 if test x"$with_ads_support" = x"yes"; then
3032 AC_MSG_ERROR(libkrb5 is needed for Active Directory support)
3034 AC_MSG_WARN(libkrb5 is needed for Active Directory support)
3040 AC_CACHE_CHECK([for WRFILE: keytab support],
3041 samba_cv_HAVE_WRFILE_KEYTAB,[
3046 krb5_context context;
3049 krb5_init_context(&context);
3050 return krb5_kt_resolve(context, "WRFILE:api", &keytab);
3052 samba_cv_HAVE_WRFILE_KEYTAB=yes,
3053 samba_cv_HAVE_WRFILE_KEYTAB=no)])
3055 if test x"$samba_cv_HAVE_WRFILE_KEYTAB" = x"yes"; then
3056 AC_DEFINE(HAVE_WRFILE_KEYTAB,1,
3057 [Whether the WRFILE:-keytab is supported])
3060 AC_CACHE_CHECK([for krb5_princ_realm returns krb5_realm or krb5_data],
3061 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM,[
3062 AC_TRY_COMPILE([#include <krb5.h>],
3064 krb5_context context;
3065 krb5_principal principal;
3066 krb5_realm realm; realm = *krb5_princ_realm(context, principal);],
3067 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=yes,
3068 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=no)])
3070 if test x"$samba_cv_KRB5_PRINC_REALM_RETURNS_REALM" = x"yes"; then
3071 AC_DEFINE(KRB5_PRINC_REALM_RETURNS_REALM,1,
3072 [Whether krb5_princ_realm returns krb5_realm or krb5_data])
3075 LIBS="$ac_save_LIBS"
3078 ########################################################
3079 # Compile experimental passdb backends?
3080 # (pdb_xml, pdb_mysql, pdb_pgsql)
3081 AC_MSG_CHECKING(whether to build experimental passdb libraries)
3083 [ --with-expsam=<list> Include experimental passdb libraries (default=no)]
3084 [ Valid choices include (comma separated list): ]
3085 [ xml, mysql & pgsql],
3086 [ expsam_pdb_modules=`echo "$withval" | sed 's/,/ /g'`
3087 if test "z$expsam_pdb_modules" = "zyes"; then
3088 expsam_pdb_modules="xml mysql pgsql"
3090 AC_MSG_RESULT($expsam_pdb_modules)
3091 for i in $expsam_pdb_modules
3096 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])])
3097 CFLAGS="$CFLAGS $XML_CFLAGS"
3101 AM_PATH_MYSQL([default_shared_modules="$default_shared_modules pdb_mysql"],[AC_MSG_ERROR([Can't find MySQL libraries while MySQL support is requested])])
3102 CFLAGS="$CFLAGS $MYSQL_CFLAGS"
3106 AM_PATH_PGSQL([default_shared_modules="$default_shared_modules pdb_pgsql"],[])
3107 CFLAGS="$CFLAGS $PGSQL_CFLAGS"
3112 echo "Unknown module name \"$i\"! Exiting..."
3120 #################################################
3121 # check for automount support
3122 AC_MSG_CHECKING(whether to use automount)
3123 AC_ARG_WITH(automount,
3124 [ --with-automount Include automount support (default=no)],
3125 [ case "$withval" in
3128 AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
3137 #################################################
3138 # check for smbmount support
3139 AC_MSG_CHECKING(whether to use smbmount)
3140 AC_ARG_WITH(smbmount,
3141 [ --with-smbmount Include smbmount (Linux only) support (default=no)],
3142 [ case "$withval" in
3147 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
3148 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbmount bin/smbmnt bin/smbumount"
3151 AC_MSG_ERROR(not on a linux system!)
3164 #################################################
3165 # check for a PAM clear-text auth, accounts, password and session support
3166 with_pam_for_crypt=no
3167 AC_MSG_CHECKING(whether to use PAM)
3169 [ --with-pam Include PAM support (default=no)],
3170 [ case "$withval" in
3173 if test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
3174 if test x"$ac_cv_header_security_pam_modules_h" = x"no"; then
3175 if test x"$ac_cv_header_security__pam_macros_h" = x"no"; then
3176 AC_MSG_ERROR(--with-pam specified but no PAM headers found)
3180 AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
3181 AUTH_LIBS="$AUTH_LIBS -lpam"
3182 with_pam_for_crypt=yes
3191 # we can't build a pam module if we don't have pam.
3192 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
3194 #################################################
3195 # check for pam_smbpass support
3196 AC_MSG_CHECKING(whether to use pam_smbpass)
3197 AC_ARG_WITH(pam_smbpass,
3198 [ --with-pam_smbpass Build PAM module for authenticating against passdb backends (default=no)],
3199 [ case "$withval" in
3203 # Conditions under which pam_smbpass should not be built.
3205 if test x$PICFLAGS = x; then
3206 AC_MSG_ERROR([No support for PIC code])
3207 elif test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
3208 AC_MSG_ERROR([No security/pam_appl.h found])
3209 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
3210 AC_MSG_ERROR([No libpam found])
3212 AUTH_LIBS="$AUTH_LIBS -lpam"
3213 SHLIB_PROGS="$SHLIB_PROGS bin/pam_smbpass.$SHLIBEXT"
3224 ###############################################
3225 # test for where we get crypt() from
3226 AC_SEARCH_LIBS(crypt, [crypt],
3227 [test "$ac_cv_search_crypt" = "none required" || AUTH_LIBS="-lcrypt $AUTH_LIBS"
3228 AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
3231 ## moved after the check for -lcrypt in order to
3232 ## ensure that the necessary libraries are included
3233 ## check checking for truncated salt. Wrapped by the
3234 ## $with_pam_for_crypt variable as above --jerry
3236 if test $with_pam_for_crypt = no; then
3237 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
3239 LIBS="$AUTH_LIBS $LIBS"
3240 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
3241 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
3242 LIBS="$crypt_LIBS"])
3243 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
3244 AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
3249 ########################################################################################
3251 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
3253 ########################################################################################
3255 #################################################
3256 # check for a LDAP password database configuration backwards compatibility
3257 AC_MSG_CHECKING(whether to use LDAP SAM 2.2 compatible configuration)
3258 AC_ARG_WITH(ldapsam,
3259 [ --with-ldapsam Include LDAP SAM 2.2 compatible configuration (default=no)],
3260 [ case "$withval" in
3263 AC_DEFINE(WITH_LDAP_SAMCONFIG,1,[Whether to include 2.2 compatible LDAP SAM configuration])
3272 ########################################################################################
3274 ## END OF TESTS FOR SAM BACKENDS.
3276 ########################################################################################
3278 #################################################
3279 # check for a NISPLUS_HOME support
3280 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
3281 AC_ARG_WITH(nisplus-home,
3282 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
3283 [ case "$withval" in
3286 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
3295 #################################################
3296 # check for syslog logging
3297 AC_MSG_CHECKING(whether to use syslog logging)
3299 [ --with-syslog Include experimental SYSLOG support (default=no)],
3300 [ case "$withval" in
3303 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
3312 #################################################
3313 # check for a shared memory profiling support
3314 AC_MSG_CHECKING(whether to use profiling)
3315 AC_ARG_WITH(profiling-data,
3316 [ --with-profiling-data Include gathering source code profile information (default=no)],
3317 [ case "$withval" in
3320 AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
3330 #################################################
3331 # check for experimental disk-quotas support
3333 samba_cv_WITH_QUOTAS=auto
3334 samba_cv_TRY_QUOTAS=no
3335 samba_cv_RUN_QUOTA_TESTS=auto
3336 samba_cv_WITH_SYS_QUOTAS=auto
3337 samba_cv_TRY_SYS_QUOTAS=no
3338 samba_cv_SYSQUOTA_FOUND=no;
3340 AC_MSG_CHECKING(whether to try disk-quotas support)
3342 [ --with-quotas Include disk-quota support (default=no)],
3343 [ case "$withval" in
3346 samba_cv_WITH_QUOTAS=yes
3347 samba_cv_TRY_QUOTAS=yes
3348 samba_cv_RUN_QUOTA_TESTS=yes
3349 #set sys quotas to auto in this case
3350 samba_cv_TRY_SYS_QUOTAS=auto
3354 samba_cv_WITH_QUOTAS=auto
3355 samba_cv_TRY_QUOTAS=auto
3356 samba_cv_RUN_QUOTA_TESTS=auto
3357 #set sys quotas to auto in this case
3358 samba_cv_TRY_SYS_QUOTAS=auto
3362 samba_cv_WITH_QUOTAS=no
3363 samba_cv_TRY_QUOTAS=no
3364 samba_cv_RUN_QUOTA_TESTS=no
3367 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
3370 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
3373 AC_MSG_CHECKING(whether to try the new lib/sysquotas.c interface)
3374 AC_ARG_WITH(sys-quotas,
3375 [ --with-sys-quotas Include lib/sysquotas.c support (default=auto)],
3376 [ case "$withval" in
3379 samba_cv_WITH_SYS_QUOTAS=yes
3380 samba_cv_TRY_SYS_QUOTAS=yes
3381 samba_cv_RUN_QUOTA_TESTS=yes
3385 samba_cv_WITH_SYS_QUOTAS=auto
3386 samba_cv_TRY_SYS_QUOTAS=auto
3387 samba_cv_RUN_QUOTA_TESTS=auto
3391 samba_cv_WITH_SYS_QUOTAS=no
3392 samba_cv_TRY_SYS_QUOTAS=no
3395 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
3398 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
3401 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then
3402 AC_MSG_CHECKING(whether to try the lib/sysquotas.c interface on ${host_os})
3406 samba_cv_TRY_SYS_QUOTAS=yes
3407 samba_cv_RUN_QUOTA_TESTS=yes
3408 samba_cv_SYSQUOTA_FOUND=yes
3409 AC_DEFINE(HAVE_QUOTACTL_LINUX,1,[Whether Linux quota support is available])
3410 samba_cv_sysquotas_file="lib/sysquotas_linux.c"
3411 AC_DEFINE(HAVE_LINUX_XFS_QUOTAS,1,[Whether Linux xfs quota support is available])
3412 samba_cv_found_xfs_header=yes
3416 samba_cv_TRY_SYS_QUOTAS=no
3421 #############################################
3422 # only check for quota stuff if --with-quotas
3423 if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then
3425 # some broken header files need this
3426 AC_CHECK_HEADER(asm/types.h,[
3427 AC_DEFINE(HAVE_ASM_TYPES_H,1,[check for <asm/types.h>])
3428 AC_ADD_INCLUDE(<asm/types.h>)
3431 # For quotas on Veritas VxFS filesystems
3432 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
3434 # For sys/quota.h and linux/quota.h
3435 AC_CHECK_HEADERS(sys/quota.h)
3437 if test x"$samba_cv_found_xfs_header" != x"yes"; then
3438 # if we have xfs quota support <sys/quota.h> (IRIX) we should use it
3439 AC_CACHE_CHECK([for XFS QUOTA in <sys/quota.h>],samba_cv_HAVE_SYS_QUOTA_XFS, [
3441 #include "confdefs.h"
3442 #ifdef HAVE_SYS_TYPES_H
3443 #include <sys/types.h>
3445 #ifdef HAVE_ASM_TYPES_H
3446 #include <asm/types.h>
3448 #include <sys/quota.h>
3449 ],[int i = Q_XGETQUOTA;],
3450 samba_cv_HAVE_SYS_QUOTA_XFS=yes,samba_cv_HAVE_SYS_QUOTA_XFS=no)])
3451 if test "$samba_cv_HAVE_SYS_QUOTA_XFS"x = "yes"x; then
3452 samba_cv_found_xfs_header=yes
3456 # if we have struct dqblk .dqb_fsoftlimit instead of .dqb_isoftlimit on IRIX
3457 AC_CACHE_CHECK([if struct dqblk has .dqb_fsoftlimit],samba_cv_HAVE_DQB_FSOFTLIMIT, [
3459 #include "confdefs.h"
3460 #ifdef HAVE_SYS_QUOTA_H
3461 #include <sys/quota.h>
3465 D.dqb_fsoftlimit = 0;],
3466 samba_cv_HAVE_DQB_FSOFTLIMIT=yes,samba_cv_HAVE_DQB_FSOFTLIMIT=no)])
3467 if test "$samba_cv_HAVE_DQB_FSOFTLIMIT"x = "yes"x; then
3468 AC_DEFINE(HAVE_DQB_FSOFTLIMIT,1,[struct dqblk .dqb_fsoftlimit])
3472 # look for a working quota system
3474 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3475 AC_CACHE_CHECK([for long quotactl(int cmd, char *special, qid_t id, caddr_t addr)],samba_cv_HAVE_QUOTACTL_4A,[
3477 #define HAVE_QUOTACTL_4A 1
3478 #define AUTOCONF_TEST 1
3479 #include "confdefs.h"
3480 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3481 samba_cv_HAVE_QUOTACTL_4A=yes,samba_cv_HAVE_QUOTACTL_4A=no,samba_cv_HAVE_QUOTACTL_4A=cross)])
3482 if test x"$samba_cv_HAVE_QUOTACTL_4A" = x"yes"; then
3483 samba_cv_SYSQUOTA_FOUND=yes;
3484 AC_DEFINE(HAVE_QUOTACTL_4A,1,[Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is available])
3485 samba_cv_sysquotas_file="lib/sysquotas_4A.c"
3489 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3490 AC_CACHE_CHECK([for int quotactl(const char *path, int cmd, int id, char *addr)],samba_cv_HAVE_QUOTACTL_4B,[
3492 #define HAVE_QUOTACTL_4B 1
3493 #define AUTOCONF_TEST 1
3494 #include "confdefs.h"
3495 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3496 samba_cv_HAVE_QUOTACTL_4B=yes,samba_cv_HAVE_QUOTACTL_4B=no,samba_cv_HAVE_QUOTACTL_4B=cross)])
3497 if test x"$samba_cv_HAVE_QUOTACTL_4B" = x"yes"; then
3498 echo "int quotactl(const char *path, int cmd, int id, char *addr) is not reworked for the new sys_quota api"
3499 samba_cv_SYSQUOTA_FOUND=yes;
3500 AC_DEFINE(HAVE_QUOTACTL_4B,1,[Whether int quotactl(const char *path, int cmd, int id, char *addr) is available])
3501 samba_cv_sysquotas_file="lib/sysquotas_4B.c"
3505 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3506 AC_CACHE_CHECK([for CRAY int quotactl (char *spec, int request, char *arg)],samba_cv_HAVE_QUOTACTL_3,[
3508 #define HAVE_QUOTACTL_3 1
3509 #define AUTOCONF_TEST 1
3510 #include "confdefs.h"
3511 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3512 samba_cv_HAVE_QUOTACTL_3=yes,samba_cv_HAVE_QUOTACTL_3=no,samba_cv_HAVE_QUOTACTL_3=cross)])
3513 if test x"$samba_cv_HAVE_QUOTACTL_3" = x"yes"; then
3514 echo "CRAY int quotactl (char *spec, int request, char *arg) is NOT reworked for the sys_quota api"
3515 samba_cv_SYSQUOTA_FOUND=yes;
3516 AC_DEFINE(HAVE_QUOTACTL_3,1,[Whether CRAY int quotactl (char *spec, int request, char *arg); is available])
3517 samba_cv_sysquotas_file="lib/sysquotas_3.c"
3521 #################################################
3522 # check for mntent.h and struct mntent
3523 AC_CHECK_HEADERS(mntent.h)
3524 #################################################
3525 # check for setmntent,getmntent,endmntent
3526 AC_CHECK_FUNCS(setmntent getmntent endmntent)
3528 #################################################
3529 # check for devnm.h and struct mntent
3530 AC_CHECK_HEADERS(devnm.h)
3531 #################################################
3533 AC_CHECK_FUNCS(devnm)
3535 if test x"$samba_cv_WITH_SYS_QUOTAS" = x"yes"; then
3536 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3537 # if --with-sys-quotas=yes then build it
3538 # you have can use the get/set quota command smb.conf
3540 samba_cv_SYSQUOTA_FOUND=auto
3542 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"yes"; then
3543 # if --with-sys-quotas=yes then build it
3544 # you have can use the get/set quota command smb.conf
3546 samba_cv_TRY_SYS_QUOTAS=auto
3550 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then
3551 AC_CACHE_CHECK([whether the sys_quota interface works],samba_cv_SYSQUOTA_WORKS,[
3552 SAVE_CPPFLAGS="$CPPFLAGS"
3553 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/nsswitch"
3555 #include "confdefs.h"
3556 #define NO_PROTO_H 1
3557 #define NO_CONFIG_H 1
3558 #define HAVE_SYS_QUOTAS 1
3559 #include "${srcdir-.}/${samba_cv_sysquotas_file}"
3560 #include "${srcdir-.}/lib/sysquotas.c"
3561 ],[],samba_cv_SYSQUOTA_WORKS=yes,samba_cv_SYSQUOTA_WORKS=no)
3562 CPPFLAGS="$SAVE_CPPFLAGS"
3564 if test x"$samba_cv_SYSQUOTA_WORKS" = x"yes"; then
3565 AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface)
3566 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then
3567 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
3568 AC_DEFINE(HAVE_SYS_QUOTAS,1,[Whether the new lib/sysquotas.c interface can be used])
3569 samba_cv_WE_USE_SYS_QUOTAS=yes
3577 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no" -a x"$samba_cv_found_xfs_header" = x"yes"; then
3578 AC_CACHE_CHECK([whether the sys_quota interface works with XFS],samba_cv_SYSQUOTA_WORKS_XFS,[
3579 SAVE_CPPFLAGS="$CPPFLAGS"
3580 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/nsswitch"
3582 #include "confdefs.h"
3583 #define NO_PROTO_H 1
3584 #define NO_CONFIG_H 1
3585 #define HAVE_SYS_QUOTAS 1
3586 #define HAVE_XFS_QUOTAS 1
3587 #include "${srcdir-.}/lib/sysquotas_xfs.c"
3588 ],[],samba_cv_SYSQUOTA_WORKS_XFS=yes,samba_cv_SYSQUOTA_WORKS_XFS=no)
3589 CPPFLAGS="$SAVE_CPPFLAGS"
3591 if test x"$samba_cv_SYSQUOTA_WORKS_XFS" = x"yes"; then
3592 if test x"$samba_cv_WE_USE_SYS_QUOTAS" = x"yes"; then
3593 AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available])
3598 AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[
3599 SAVE_CPPFLAGS="$CPPFLAGS"
3600 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/nsswitch"
3602 #include "confdefs.h"
3603 #define NO_PROTO_H 1
3604 #define NO_CONFIG_H 1
3605 #include "${srcdir-.}/smbd/quotas.c"
3606 ],[],samba_cv_QUOTA_WORKS=yes,samba_cv_QUOTA_WORKS=no)
3607 CPPFLAGS="$SAVE_CPPFLAGS"
3609 if test x"$samba_cv_QUOTA_WORKS" = x"yes"; then
3610 AC_MSG_CHECKING(whether to use the old quota support)
3611 if test x"$samba_cv_WE_USE_SYS_QUOTAS" != x"yes"; then
3612 if test x"$samba_cv_TRY_QUOTAS" != x"no"; then
3613 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
3623 ####################
3624 # End of quota check samba_cv_RUN_QUOTA_TESTS
3627 #################################################
3628 # check for experimental utmp accounting
3630 AC_MSG_CHECKING(whether to support utmp accounting)
3633 [ --with-utmp Include utmp accounting (default, if supported by OS)],
3634 [ case "$withval" in
3644 # utmp requires utmp.h
3645 # Note similar check earlier, when checking utmp details.
3647 if test x"$WITH_UTMP" = x"yes" -a x"$ac_cv_header_utmp_h" = x"no"; then
3648 utmp_no_reason=", no utmp.h on $host_os"
3652 # Display test results
3654 if test x"$WITH_UTMP" = x"yes"; then
3656 AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
3658 AC_MSG_RESULT(no$utmp_no_reason)
3661 #################################################
3662 # should we build libsmbclient?
3664 INSTALLCLIENTCMD_SH=:
3665 INSTALLCLIENTCMD_A=:
3667 LIBSMBCLIENT_SHARED=
3669 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
3670 AC_ARG_WITH(libsmbclient,
3671 [ --with-libsmbclient Build the libsmbclient shared library (default=yes if shared libs supported)],
3672 [ case "$withval" in
3677 if test $BLDSHARED = true; then
3678 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
3679 ## build the static version of libsmbclient as well
3680 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3681 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
3682 LIBSMBCLIENT=libsmbclient
3686 AC_MSG_RESULT(no shared library support -- will supply static library)
3688 if test $enable_static = yes; then
3689 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3690 LIBSMBCLIENT=libsmbclient
3692 INSTALLCLIENT=installclientlib
3696 # if unspecified, default is to built it iff possible.
3697 if test $BLDSHARED = true; then
3698 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
3699 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
3700 LIBSMBCLIENT=libsmbclient
3704 AC_MSG_RESULT(no shared library support -- will supply static library)
3706 if test $enable_static = yes; then
3707 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3708 LIBSMBCLIENT=libsmbclient
3710 INSTALLCLIENT=installclientlib
3714 #################################################
3715 # these tests are taken from the GNU fileutils package
3716 AC_CHECKING(how to get filesystem space usage)
3719 # Test for statvfs64.
3720 if test $space = no; then
3722 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
3724 #if defined(HAVE_UNISTD_H)
3727 #include <sys/types.h>
3728 #include <sys/statvfs.h>
3731 struct statvfs64 fsd;
3732 exit (statvfs64 (".", &fsd));
3734 fu_cv_sys_stat_statvfs64=yes,
3735 fu_cv_sys_stat_statvfs64=no,
3736 fu_cv_sys_stat_statvfs64=cross)])
3737 if test $fu_cv_sys_stat_statvfs64 = yes; then
3739 AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
3743 # Perform only the link test since it seems there are no variants of the
3744 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
3745 # because that got a false positive on SCO OSR5. Adding the declaration
3746 # of a `struct statvfs' causes this test to fail (as it should) on such
3747 # systems. That system is reported to work fine with STAT_STATFS4 which
3748 # is what it gets when this test fails.
3749 if test $space = no; then
3751 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
3752 [AC_TRY_LINK([#include <sys/types.h>
3753 #include <sys/statvfs.h>],
3754 [struct statvfs fsd; statvfs (0, &fsd);],
3755 fu_cv_sys_stat_statvfs=yes,
3756 fu_cv_sys_stat_statvfs=no)])
3757 if test $fu_cv_sys_stat_statvfs = yes; then
3759 AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
3763 if test $space = no; then
3764 # DEC Alpha running OSF/1
3765 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
3766 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
3768 #include <sys/param.h>
3769 #include <sys/types.h>
3770 #include <sys/mount.h>
3775 exit (statfs (".", &fsd, sizeof (struct statfs)));
3777 fu_cv_sys_stat_statfs3_osf1=yes,
3778 fu_cv_sys_stat_statfs3_osf1=no,
3779 fu_cv_sys_stat_statfs3_osf1=no)])
3780 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
3781 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
3783 AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
3787 if test $space = no; then
3789 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
3790 member (AIX, 4.3BSD)])
3791 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
3793 #ifdef HAVE_SYS_PARAM_H
3794 #include <sys/param.h>
3796 #ifdef HAVE_SYS_MOUNT_H
3797 #include <sys/mount.h>
3799 #ifdef HAVE_SYS_VFS_H
3800 #include <sys/vfs.h>
3806 exit (statfs (".", &fsd));
3808 fu_cv_sys_stat_statfs2_bsize=yes,
3809 fu_cv_sys_stat_statfs2_bsize=no,
3810 fu_cv_sys_stat_statfs2_bsize=no)])
3811 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
3812 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
3814 AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
3818 if test $space = no; then
3820 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
3821 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
3822 [AC_TRY_RUN([#include <sys/types.h>
3823 #include <sys/statfs.h>
3827 exit (statfs (".", &fsd, sizeof fsd, 0));
3829 fu_cv_sys_stat_statfs4=yes,
3830 fu_cv_sys_stat_statfs4=no,
3831 fu_cv_sys_stat_statfs4=no)])
3832 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
3833 if test $fu_cv_sys_stat_statfs4 = yes; then
3835 AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
3839 if test $space = no; then
3841 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
3842 member (4.4BSD and NetBSD)])
3843 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
3844 [AC_TRY_RUN([#include <sys/types.h>
3845 #ifdef HAVE_SYS_PARAM_H
3846 #include <sys/param.h>
3848 #ifdef HAVE_SYS_MOUNT_H
3849 #include <sys/mount.h>
3855 exit (statfs (".", &fsd));
3857 fu_cv_sys_stat_statfs2_fsize=yes,
3858 fu_cv_sys_stat_statfs2_fsize=no,
3859 fu_cv_sys_stat_statfs2_fsize=no)])
3860 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
3861 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
3863 AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
3867 if test $space = no; then
3869 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
3870 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
3871 [AC_TRY_RUN([#include <sys/types.h>
3872 #ifdef HAVE_SYS_PARAM_H
3873 #include <sys/param.h>
3875 #ifdef HAVE_SYS_MOUNT_H
3876 #include <sys/mount.h>
3878 #ifdef HAVE_SYS_FS_TYPES_H
3879 #include <sys/fs_types.h>
3884 /* Ultrix's statfs returns 1 for success,
3885 0 for not mounted, -1 for failure. */
3886 exit (statfs (".", &fsd) != 1);
3888 fu_cv_sys_stat_fs_data=yes,
3889 fu_cv_sys_stat_fs_data=no,
3890 fu_cv_sys_stat_fs_data=no)])
3891 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
3892 if test $fu_cv_sys_stat_fs_data = yes; then
3894 AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
3899 # As a gating factor for large file support, in order to
3900 # use <4GB files we must have the following minimal support
3902 # long long, and a 64 bit off_t or off64_t.
3903 # If we don't have all of these then disable large
3906 AC_MSG_CHECKING([if large file support can be enabled])
3908 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
3909 #include <sys/types.h>
3915 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
3916 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
3917 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
3919 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
3921 AC_ARG_WITH(spinlocks,
3922 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no) ])
3923 if test "x$with_spinlocks" = "xyes"; then
3924 AC_DEFINE(USE_SPINLOCKS,1,[Whether to use spin locks instead of fcntl locks])
3928 AC_DEFINE(SPARC_SPINLOCKS,1,[Whether to use sparc spinlocks])
3931 i386|i486|i586|i686)
3932 AC_DEFINE(INTEL_SPINLOCKS,1,[Whether to use intel spinlocks])
3936 AC_DEFINE(MIPS_SPINLOCKS,1,[Whether to use mips spinlocks])
3940 AC_DEFINE(POWERPC_SPINLOCKS,1,[Whether to use powerpc spinlocks])
3945 #################################################
3946 # check for ACL support
3948 AC_MSG_CHECKING(whether to support ACLs)
3949 AC_ARG_WITH(acl-support,
3950 [ --with-acl-support Include ACL support (default=no)],
3951 [ case "$withval" in
3956 AC_MSG_RESULT(Using UnixWare ACLs)
3957 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
3960 AC_MSG_RESULT(Using solaris ACLs)
3961 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
3964 AC_MSG_RESULT(Using HPUX ACLs)
3965 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
3968 AC_MSG_RESULT(Using IRIX ACLs)
3969 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
3972 AC_MSG_RESULT(Using AIX ACLs)
3973 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
3976 AC_MSG_RESULT(Using Tru64 ACLs)
3977 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
3978 ACL_LIBS="$ACL_LIBS -lpacl"
3980 *freebsd5*|*freebsd6*)
3981 AC_MSG_RESULT(Using FreeBSD posix ACLs)
3982 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether FreeBSD POSIX ACLs are available])
3983 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
3986 AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
3987 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
3988 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
3991 AC_TRY_LINK([#include <sys/types.h>
3992 #include <sys/acl.h>],
3993 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
3994 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
3996 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
3997 AC_MSG_RESULT(Using posix ACLs)
3998 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
3999 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
4002 AC_TRY_LINK([#include <sys/types.h>
4003 #include <sys/acl.h>],
4004 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
4005 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
4007 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
4008 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
4013 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
4014 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
4017 AC_TRY_LINK([#include <sys/types.h>
4018 #include <sys/acl.h>],
4019 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
4020 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
4022 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
4023 AC_MSG_RESULT(Using posix ACLs)
4024 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
4025 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
4028 AC_TRY_LINK([#include <sys/types.h>
4029 #include <sys/acl.h>],
4030 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
4031 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
4033 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
4034 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
4042 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
4045 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
4049 #################################################
4050 # check for sendfile support
4052 with_sendfile_support=yes
4053 AC_MSG_CHECKING(whether to check to support sendfile)
4054 AC_ARG_WITH(sendfile-support,
4055 [ --with-sendfile-support Check for sendfile support (default=yes)],
4056 [ case "$withval" in
4063 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
4064 AC_TRY_LINK([#include <sys/sendfile.h>],
4069 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
4071 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
4073 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
4074 AC_TRY_LINK([#include <sys/sendfile.h>],
4079 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
4081 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
4083 # Try and cope with broken Linux sendfile....
4084 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
4086 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
4087 #undef _FILE_OFFSET_BITS
4089 #include <sys/sendfile.h>],
4094 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
4096 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
4098 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
4099 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
4100 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
4101 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
4102 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
4103 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
4104 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
4105 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
4106 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
4107 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
4108 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
4114 *freebsd* | *DragonFly* )
4115 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
4117 #include <sys/types.h>
4119 #include <sys/socket.h>
4120 #include <sys/uio.h>],
4122 int fromfd, tofd, ret, total=0;
4123 off_t offset, nwritten;
4126 hdr.headers = &hdtrl;
4128 hdr.trailers = NULL;
4130 hdtrl.iov_base = NULL;
4132 ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
4134 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
4136 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
4137 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
4138 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
4139 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4146 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
4148 #include <sys/socket.h>
4149 #include <sys/uio.h>],
4153 struct iovec hdtrl[2];
4157 hdtrl[0].iov_base = 0;
4158 hdtrl[0].iov_len = 0;
4160 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
4162 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
4163 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
4164 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
4165 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
4166 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4171 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
4173 #include <sys/socket.h>
4174 #include <sys/uio.h>],
4178 struct iovec hdtrl[2];
4182 hdtrl[0].iov_base = 0;
4183 hdtrl[0].iov_len = 0;
4185 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
4187 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
4188 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
4189 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
4190 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
4191 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4198 AC_CHECK_LIB(sendfile,sendfilev)
4199 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
4201 #include <sys/sendfile.h>],
4205 struct sendfilevec vec[2];
4211 vec[0].sfv_fd = SFV_FD_SELF;
4212 vec[0].sfv_flag = 0;
4217 vec[1].sfv_flag = 0;
4220 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
4222 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
4224 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
4225 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
4226 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
4227 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4232 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
4234 #include <sys/sendfile.h>],
4238 struct sendfilevec vec[2];
4244 vec[0].sfv_fd = SFV_FD_SELF;
4245 vec[0].sfv_flag = 0;
4250 vec[1].sfv_flag = 0;
4253 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
4255 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
4257 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
4258 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
4259 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
4260 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
4266 AC_CACHE_CHECK([for AIX send_file support],samba_cv_HAVE_SENDFILE,[
4268 #include <sys/socket.h>],
4272 struct sf_parms hdtrl;
4276 hdtrl.header_data = 0;
4277 hdtrl.header_length = 0;
4278 hdtrl.file_descriptor = fromfd;
4279 hdtrl.file_offset = 0;
4280 hdtrl.file_bytes = 0;
4281 hdtrl.trailer_data = 0;
4282 hdtrl.trailer_length = 0;
4284 nwritten = send_file(&tofd, &hdtrl, 0);
4286 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
4287 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
4288 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
4289 AC_DEFINE(AIX_SENDFILE_API,1,[Whether the AIX send_file() API is available])
4290 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
4307 #################################################
4308 # Check whether winbind is supported on this platform. If so we need to
4309 # build and install client programs, sbin programs and shared libraries
4311 AC_MSG_CHECKING(whether to build winbind)
4313 # Initially, the value of $host_os decides whether winbind is supported
4317 # Define the winbind shared library name and any specific linker flags
4318 # it needs to be built with.
4320 WINBIND_NSS="nsswitch/libnss_winbind.$SHLIBEXT"
4321 WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT"
4322 WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
4326 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
4328 *freebsd5*|*freebsd6*)
4329 # FreeBSD winbind client is implemented as a wrapper around
4330 # the Linux version.
4331 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
4332 nsswitch/winbind_nss_linux.o"
4333 WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
4334 WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
4337 # IRIX has differently named shared libraries
4338 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
4339 WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT"
4340 WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT"
4343 # Solaris winbind client is implemented as a wrapper around
4344 # the Linux version.
4345 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \
4346 nsswitch/winbind_nss_linux.o"
4347 WINBIND_NSS_EXTRA_LIBS="-lsocket"
4350 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
4353 # AIX has even differently named shared libraries. No
4354 # WINS support has been implemented yet.
4355 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o"
4356 WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init"
4357 WINBIND_NSS="nsswitch/WINBIND"
4362 winbind_no_reason=", unsupported on $host_os"
4366 AC_SUBST(WINBIND_NSS)
4367 AC_SUBST(WINBIND_WINS_NSS)
4368 AC_SUBST(WINBIND_NSS_LDSHFLAGS)
4369 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
4370 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
4372 # Check the setting of --with-winbind
4374 AC_ARG_WITH(winbind,
4375 [ --with-winbind Build winbind (default, if supported by OS)],
4388 # We need unix domain sockets for winbind
4390 if test x"$HAVE_WINBIND" = x"yes"; then
4391 if test x"$samba_cv_unixsocket" = x"no"; then
4392 winbind_no_reason=", no unix domain socket support on $host_os"
4397 # Display test results
4399 if test x"$HAVE_WINBIND" = x"yes"; then
4401 AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
4403 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)"
4404 EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)"
4405 if test $BLDSHARED = true; then
4406 SHLIB_PROGS="$SHLIB_PROGS $WINBIND_NSS $WINBIND_WINS_NSS"
4408 if test x"$with_pam" = x"yes"; then
4409 SHLIB_PROGS="$SHLIB_PROGS nsswitch/pam_winbind.$SHLIBEXT"
4413 AC_MSG_RESULT(no$winbind_no_reason)
4416 # Solaris has some extra fields in struct passwd that need to be
4417 # initialised otherwise nscd crashes.
4419 AC_CHECK_MEMBER(struct passwd.pw_comment,
4420 AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),,
4423 AC_CHECK_MEMBER(struct passwd.pw_age,
4424 AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),,
4427 # AIX 4.3.x and 5.1 do not have as many members in
4428 # struct secmethod_table as AIX 5.2
4429 AC_CHECK_MEMBERS([struct secmethod_table.method_attrlist], , ,
4430 [#include <usersec.h>])
4431 AC_CHECK_MEMBERS([struct secmethod_table.method_version], , ,
4432 [#include <usersec.h>])
4435 #################################################
4436 # Check to see if we should use the included popt
4438 AC_ARG_WITH(included-popt,
4439 [ --with-included-popt use bundled popt library, not from system],
4450 if test x"$INCLUDED_POPT" != x"yes"; then
4451 AC_CHECK_LIB(popt, poptGetContext,
4452 INCLUDED_POPT=no, INCLUDED_POPT=yes)
4455 AC_MSG_CHECKING(whether to use included popt)
4456 if test x"$INCLUDED_POPT" = x"yes"; then
4458 BUILD_POPT='$(POPT_OBJS)'
4459 POPTLIBS='$(POPT_OBJS)'
4460 FLAGS1="-I$srcdir/popt"
4466 AC_SUBST(BUILD_POPT)
4470 #################################################
4471 # Check if the user wants Python
4473 # At the moment, you can use this to set which Python binary to link
4474 # against. (Libraries built for Python2.2 can't be used by 2.1,
4475 # though they can coexist in different directories.) In the future
4476 # this might make the Python stuff be built by default.
4478 # Defaulting python breaks the clean target if python isn't installed
4483 [ --with-python=PYTHONNAME build Python libraries],
4484 [ case "${withval-python}" in
4487 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS python_ext"
4493 PYTHON=${withval-python}
4498 for i in `echo $default_static_modules | sed -e's/,/ /g'`
4500 eval MODULE_DEFAULT_$i=STATIC
4503 for i in `echo $default_shared_modules | sed -e's/,/ /g'`
4505 dnl Fall back to static if we cannot build shared libraries
4506 eval MODULE_DEFAULT_$i=STATIC
4508 if test $BLDSHARED = true; then
4509 eval MODULE_DEFAULT_$i=SHARED
4513 dnl Always built these modules static
4514 MODULE_pdb_guest=STATIC
4515 MODULE_rpc_spoolss=STATIC
4516 MODULE_rpc_srv=STATIC
4517 MODULE_idmap_tdb=STATIC
4519 AC_ARG_WITH(static-modules,
4520 [ --with-static-modules=MODULES Comma-seperated list of names of modules to statically link in],
4521 [ if test $withval; then
4522 for i in `echo $withval | sed -e's/,/ /g'`
4524 eval MODULE_$i=STATIC
4528 AC_ARG_WITH(shared-modules,
4529 [ --with-shared-modules=MODULES Comma-seperated list of names of modules to build shared],
4530 [ if test $withval; then
4531 for i in `echo $withval | sed -e's/,/ /g'`
4533 eval MODULE_$i=SHARED
4537 ###########################################################################
4538 ## contributed pdb_modules
4540 SMB_MODULE(pdb_xml, passdb/pdb_xml.o, "bin/xml.$SHLIBEXT", PDB,
4541 [ PASSDB_LIBS="$PASSDB_LIBS $XML_LIBS" ] )
4542 SMB_MODULE(pdb_mysql, passdb/pdb_mysql.o, "bin/mysql.$SHLIBEXT", PDB,
4543 [ PASSDB_LIBS="$PASSDB_LIBS $MYSQL_LIBS" ] )
4544 SMB_MODULE(pdb_pgsql, passdb/pdb_pgsql.o, "bin/pgsql.$SHLIBEXT", PDB,
4545 [ PASSDB_LIBS="$PASSDB_LIBS $PGSQL_LIBS" ] )
4547 ## end of contributed pdb_modules
4548 ###########################################################################
4550 SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o passdb/pdb_nds.o, "bin/ldapsam.$SHLIBEXT", PDB,
4551 [ PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" ] )
4552 SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB)
4553 SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB)
4554 SMB_MODULE(pdb_guest, passdb/pdb_guest.o, "bin/guest.$SHLIBEXT", PDB)
4555 SMB_SUBSYSTEM(PDB,passdb/pdb_interface.o)
4557 SMB_MODULE(rpc_lsa, \$(RPC_LSA_OBJ), "bin/librpc_lsarpc.$SHLIBEXT", RPC)
4558 SMB_MODULE(rpc_reg, \$(RPC_REG_OBJ), "bin/librpc_winreg.$SHLIBEXT", RPC)
4559 SMB_MODULE(rpc_lsa_ds, \$(RPC_LSA_DS_OBJ), "bin/librpc_lsa_ds.$SHLIBEXT", RPC)
4560 SMB_MODULE(rpc_wks, \$(RPC_WKS_OBJ), "bin/librpc_wkssvc.$SHLIBEXT", RPC)
4561 SMB_MODULE(rpc_svcctl, \$(RPC_SVCCTL_OBJ), "bin/librpc_svcctl.$SHLIBEXT", RPC)
4562 SMB_MODULE(rpc_net, \$(RPC_NETLOG_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC)
4563 SMB_MODULE(rpc_dfs, \$(RPC_DFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC)
4564 SMB_MODULE(rpc_srv, \$(RPC_SVC_OBJ), "bin/librpc_srvsvc.$SHLIBEXT", RPC)
4565 SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC)
4566 SMB_MODULE(rpc_eventlog, \$(RPC_EVENTLOG_OBJ), "bin/librpc_eventlog.$SHLIBEXT", RPC)
4567 SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC)
4568 SMB_MODULE(rpc_echo, \$(RPC_ECHO_OBJ), "bin/librpc_echo.$SHLIBEXT", RPC)
4569 SMB_SUBSYSTEM(RPC,smbd/server.o)
4571 SMB_MODULE(idmap_ldap, sam/idmap_ldap.o, "bin/idmap_ldap.$SHLIBEXT", IDMAP)
4572 SMB_MODULE(idmap_tdb, sam/idmap_tdb.o, "bin/idmap_tdb.$SHLIBEXT", IDMAP)
4573 SMB_MODULE(idmap_rid, sam/idmap_rid.o, "bin/idmap_rid.$SHLIBEXT", IDMAP)
4574 SMB_SUBSYSTEM(IDMAP,sam/idmap.o)
4576 SMB_MODULE(charset_weird, modules/weird.o, "bin/weird.$SHLIBEXT", CHARSET)
4577 SMB_MODULE(charset_CP850, modules/CP850.o, "bin/CP850.$SHLIBEXT", CHARSET)
4578 SMB_MODULE(charset_CP437, modules/CP437.o, "bin/CP437.$SHLIBEXT", CHARSET)
4579 SMB_MODULE(charset_macosxfs, modules/charset_macosxfs.o,"bin/macosxfs.$SHLIBEXT", CHARSET)
4580 SMB_SUBSYSTEM(CHARSET,lib/iconv.o)
4582 SMB_MODULE(auth_rhosts, \$(AUTH_RHOSTS_OBJ), "bin/rhosts.$SHLIBEXT", AUTH)
4583 SMB_MODULE(auth_sam, \$(AUTH_SAM_OBJ), "bin/sam.$SHLIBEXT", AUTH)
4584 SMB_MODULE(auth_unix, \$(AUTH_UNIX_OBJ), "bin/unix.$SHLIBEXT", AUTH)
4585 SMB_MODULE(auth_winbind, \$(AUTH_WINBIND_OBJ), "bin/winbind.$SHLIBEXT", AUTH)
4586 SMB_MODULE(auth_server, \$(AUTH_SERVER_OBJ), "bin/smbserver.$SHLIBEXT", AUTH)
4587 SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), "bin/domain.$SHLIBEXT", AUTH)
4588 SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), "bin/builtin.$SHLIBEXT", AUTH)
4589 SMB_SUBSYSTEM(AUTH,auth/auth.o)
4591 SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), "bin/recycle.$SHLIBEXT", VFS)
4592 SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), "bin/audit.$SHLIBEXT", VFS)
4593 SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), "bin/extd_audit.$SHLIBEXT", VFS)
4594 SMB_MODULE(vfs_full_audit, \$(VFS_FULL_AUDIT_OBJ), "bin/full_audit.$SHLIBEXT", VFS)
4595 SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK_OBJ), "bin/netatalk.$SHLIBEXT", VFS)
4596 SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), "bin/fake_perms.$SHLIBEXT", VFS)
4597 SMB_MODULE(vfs_default_quota, \$(VFS_DEFAULT_QUOTA_OBJ), "bin/default_quota.$SHLIBEXT", VFS)
4598 SMB_MODULE(vfs_readonly, \$(VFS_READONLY_OBJ), "bin/readonly.$SHLIBEXT", VFS)
4599 SMB_MODULE(vfs_cap, \$(VFS_CAP_OBJ), "bin/cap.$SHLIBEXT", VFS)
4600 SMB_MODULE(vfs_expand_msdfs, \$(VFS_EXPAND_MSDFS_OBJ), "bin/expand_msdfs.$SHLIBEXT", VFS)
4601 SMB_MODULE(vfs_shadow_copy, \$(VFS_SHADOW_COPY_OBJ), "bin/shadow_copy.$SHLIBEXT", VFS)
4602 SMB_MODULE(vfs_afsacl, \$(VFS_AFSACL_OBJ), "bin/afsacl.$SHLIBEXT", VFS)
4603 SMB_MODULE(vfs_catia, \$(VFS_AFSACL_OBJ), "bin/catia.$SHLIBEXT", VFS)
4604 SMB_SUBSYSTEM(VFS,smbd/vfs.o)
4606 AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules])
4608 #################################################
4609 # do extra things if we are running insure
4611 if test "${ac_cv_prog_CC}" = "insure"; then
4612 CPPFLAGS="$CPPFLAGS -D__INSURE__"
4615 #################################################
4616 # Display summary of libraries detected
4618 AC_MSG_RESULT([Using libraries:])
4619 AC_MSG_RESULT([ LIBS = $LIBS])
4620 if test x"$with_ads_support" != x"no"; then
4621 AC_MSG_RESULT([ KRB5_LIBS = $KRB5_LIBS])
4623 if test x"$with_ldap_support" != x"no"; then
4624 AC_MSG_RESULT([ LDAP_LIBS = $LDAP_LIBS])
4626 AC_MSG_RESULT([ AUTH_LIBS = $AUTH_LIBS])
4628 #################################################
4629 # final configure stuff
4631 AC_MSG_CHECKING([configure summary])
4632 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
4634 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
4635 AC_MSG_WARN([cannot run when cross-compiling]))
4640 dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
4641 LIB_REMOVE_USR_LIB(LDFLAGS)
4642 LIB_REMOVE_USR_LIB(LIBS)
4644 dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
4645 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
4646 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
4648 AC_OUTPUT(include/stamp-h Makefile script/findsmb smbadduser script/gen-8bit-gap.sh)
4650 #################################################
4651 # Print very concise instructions on building/use
4652 if test "x$enable_dmalloc" = xyes
4654 AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
4655 AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])