1 dnl Process this file with autoconf to produce a configure script.
3 dnl We must use autotools 2.53 or above
6 AC_INIT([Samba],[3],[samba-technical@samba.org])
8 AC_CONFIG_SRCDIR([include/includes.h])
9 AC_CONFIG_HEADER(include/config.h)
10 AC_DEFINE(CONFIG_H_IS_FROM_SAMBA,1,[Marker for samba's config.h])
14 AC_MSG_WARN([\$PATH contains /usr/ucb - build errors may follow])
21 SMB_VERSION_STRING=`cat $srcdir/include/version.h | grep 'SAMBA_VERSION_OFFICIAL_STRING' | cut -d '"' -f2`
22 echo "SAMBA VERSION: ${SMB_VERSION_STRING}"
24 SAMBA_VERSION_GIT_COMMIT_FULLREV=`cat $srcdir/include/version.h | grep 'SAMBA_VERSION_GIT_COMMIT_FULLREV' | cut -d ' ' -f3- | cut -d '"' -f2`
25 if test -n "${SAMBA_VERSION_GIT_COMMIT_FULLREV}";then
26 echo "BUILD COMMIT REVISION: ${SAMBA_VERSION_GIT_COMMIT_FULLREV}"
28 SAMBA_VERSION_GIT_COMMIT_DATE=`cat $srcdir/include/version.h | grep 'SAMBA_VERSION_GIT_COMMIT_DATE' | cut -d ' ' -f3-`
29 if test -n "${SAMBA_VERSION_GIT_COMMIT_DATE}";then
30 echo "BUILD COMMIT DATE: ${SAMBA_VERSION_GIT_COMMIT_DATE}"
32 SAMBA_VERSION_GIT_COMMIT_TIME=`cat $srcdir/include/version.h | grep 'SAMBA_VERSION_GIT_COMMIT_TIME' | cut -d ' ' -f3-`
33 if test -n "${SAMBA_VERSION_GIT_COMMIT_TIME}";then
34 echo "BUILD COMMIT TIME: ${SAMBA_VERSION_GIT_COMMIT_TIME}"
36 # just to keep the build-farm gui happy for now...
37 echo "BUILD REVISION: ${SAMBA_VERSION_GIT_COMMIT_TIME}"
40 AC_LIBREPLACE_LOCATION_CHECKS
42 #################################################
43 # Directory handling stuff to support both the
44 # legacy SAMBA directories and FHS compliant
46 AC_PREFIX_DEFAULT(/usr/local/samba)
48 rootsbindir="\${SBINDIR}"
49 lockdir="\${VARDIR}/locks"
50 piddir="\${VARDIR}/locks"
51 test "${mandir}" || mandir="\${prefix}/man"
52 logfilebase="\${VARDIR}"
53 privatedir="\${prefix}/private"
54 test "${libdir}" || libdir="\${prefix}/lib"
55 pammodulesdir="\${LIBDIR}/security"
56 configdir="\${LIBDIR}"
57 swatdir="\${prefix}/swat"
58 codepagedir="\${LIBDIR}"
59 statedir="\${LOCKDIR}"
60 cachedir="\${LOCKDIR}"
63 [AS_HELP_STRING([--with-fhs],[Use FHS-compliant paths (default=no)])],
66 lockdir="\${VARDIR}/lib/samba"
67 piddir="\${VARDIR}/run"
68 mandir="\${prefix}/share/man"
69 logfilebase="\${VARDIR}/log/samba"
70 privatedir="\${CONFIGDIR}/private"
71 test "${libdir}" || libdir="\${prefix}/lib/samba"
72 configdir="\${sysconfdir}/samba"
73 swatdir="\${DATADIR}/samba/swat"
74 codepagedir="\${LIBDIR}"
75 statedir="\${VARDIR}/lib/samba"
76 cachedir="\${VARDIR}/lib/samba"
77 AC_DEFINE(FHS_COMPATIBLE, 1, [Whether to use fully FHS-compatible paths])
81 #################################################
82 # set private directory location
83 AC_ARG_WITH(privatedir,
84 [AS_HELP_STRING([--with-privatedir=DIR], [Where to put smbpasswd ($ac_default_prefix/private)])],
88 # Just in case anybody calls it without argument
90 AC_MSG_WARN([--with-privatedir called without argument - will use default])
97 #################################################
98 # set root sbin directory location
99 AC_ARG_WITH(rootsbindir,
100 [AS_HELP_STRING([--with-rootsbindir=DIR], [Which directory to use for root sbin ($ac_default_prefix/sbin)])],
104 # Just in case anybody calls it without argument
106 AC_MSG_WARN([--with-rootsbindir called without argument - will use default])
109 rootsbindir="$withval"
113 #################################################
114 # set lock directory location
116 [AS_HELP_STRING([--with-lockdir=DIR], [Where to put lock files ($ac_default_prefix/var/locks)])],
120 # Just in case anybody calls it without argument
122 AC_MSG_WARN([--with-lockdir called without argument - will use default])
129 #################################################
130 # set pid directory location
132 [AS_HELP_STRING([--with-piddir=DIR], [Where to put pid files ($ac_default_prefix/var/locks)])],
136 # Just in case anybody calls it without argument
138 AC_MSG_WARN([--with-piddir called without argument - will use default])
145 #################################################
146 # set SWAT directory location
148 [AS_HELP_STRING([--with-swatdir=DIR], [Where to put SWAT files ($ac_default_prefix/swat)])],
152 # Just in case anybody does it
154 AC_MSG_WARN([--with-swatdir called without argument - will use default])
161 #################################################
162 # set configuration directory location
163 AC_ARG_WITH(configdir,
164 [AS_HELP_STRING([--with-configdir=DIR], [Where to put configuration files ($libdir)])],
168 # Just in case anybody does it
170 AC_MSG_WARN([--with-configdir called without argument - will use default])
177 #################################################
178 # set log directory location
179 AC_ARG_WITH(logfilebase,
180 [AS_HELP_STRING([--with-logfilebase=DIR], [Where to put log files ($VARDIR)])],
184 # Just in case anybody does it
186 AC_MSG_WARN([--with-logfilebase called without argument - will use default])
189 logfilebase="$withval"
194 #################################################
195 # set ctdb source directory location
197 [AS_HELP_STRING([--with-ctdb=DIR], [Where to find ctdb sources])],
200 AC_MSG_WARN([--with-ctdb called without argument])
207 #################################################
208 # set lib directory location
210 [AS_HELP_STRING([--with-libdir=DIR], [Where to put libdir ($libdir)])],
214 # Just in case anybody does it
216 AC_MSG_WARN([--with-libdir without argument - will use default])
223 #################################################
224 # set PAM modules directory location
225 AC_ARG_WITH(pammodulesdir,
226 [AS_HELP_STRING([--with-pammodulesdir=DIR], [Which directory to use for PAM modules ($ac_default_prefix/$libdir/security)])],
230 # Just in case anybody calls it without argument
232 AC_MSG_WARN([--with-pammodulesdir called without argument - will use default])
235 pammodulesdir="$withval"
239 #################################################
240 # set man directory location
242 [AS_HELP_STRING([--with-mandir=DIR], [Where to put man pages ($mandir)])],
246 # Just in case anybody does it
248 AC_MSG_WARN([--with-mandir without argument - will use default])
258 AC_SUBST(logfilebase)
264 AC_SUBST(codepagedir)
267 AC_SUBST(rootsbindir)
268 AC_SUBST(pammodulesdir)
270 ## check for --enable-debug first before checking CFLAGS before
271 ## so that we don't mix -O and -g
274 [AS_HELP_STRING([--enable-debug], [Turn on compiler debugging information (default=no)])],
275 [if eval "test x$enable_debug = xyes"; then
279 #################################################
280 # set prefix for 'make test'
282 AC_SUBST(selftest_prefix)
283 AC_ARG_WITH(selftest-prefix,
284 [AS_HELP_STRING([--with-selftest-prefix=DIR], [The prefix where make test will be run ($selftest_prefix)])],
287 AC_MSG_WARN([--with-selftest-prefix called without argument - will use default])
290 selftest_prefix="$withval"
295 #################################################
296 # set path of samba4's smbtorture
298 AC_SUBST(smbtorture4_path)
299 AC_ARG_WITH(smbtorture4_path,
300 [AS_HELP_STRING([--with-smbtorture4-path=PATH], [The path to a samba4 smbtorture for make test (none)])],
303 AC_MSG_ERROR([--with-smbtorture4-path should take a path])
306 smbtorture4_path="$withval"
307 if test -z "$smbtorture4_path" -a ! -f $smbtorture4_path; then
308 AC_MSG_ERROR(['$smbtorture_path' does not exist!])
314 AC_ARG_ENABLE(developer, [AS_HELP_STRING([--enable-developer], [Turn on developer warnings and debugging (default=no)])],
315 [if eval "test x$enable_developer = xyes"; then
319 AC_ARG_ENABLE(krb5developer, [AS_HELP_STRING([--enable-krb5developer], [Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)])],
320 [if eval "test x$enable_krb5developer = xyes"; then
326 [AS_HELP_STRING([--with-cfenc=HEADERDIR], [Use internal CoreFoundation encoding API for optimization (Mac OS X/Darwin only)])],
328 # May be in source $withval/CoreFoundation/StringEncodings.subproj.
329 # Should have been in framework $withval/CoreFoundation.framework/Headers.
331 $withval/CoreFoundation/StringEncodings.subproj \
332 $withval/StringEncodings.subproj \
333 $withval/CoreFoundation.framework/Headers \
337 if test -r $d/CFStringEncodingConverter.h; then
338 ln -sfh $d include/CoreFoundation
343 AC_LIBREPLACE_CC_CHECKS
345 m4_include(lib/talloc/libtalloc.m4)
348 for obj in ${TALLOC_OBJ}; do
349 TALLOC_OBJS="${TALLOC_OBJS} ${tallocdir}/${obj}"
351 AC_SUBST(TALLOC_OBJS)
353 # TODO: These should come from m4_include(lib/tdb/libtdb.m4)
354 # but currently this fails: things have to get merged from s4.
357 TDB_CFLAGS="-I$tdbdir/include"
359 TDB_OBJ="common/tdb.o common/dump.o common/transaction.o common/error.o common/traverse.o"
360 TDB_OBJ="$TDB_OBJ common/freelist.o common/freelistcheck.o common/io.o common/lock.o common/open.o"
364 for obj in ${TDB_OBJ}; do
365 TDB_OBJS="${TDB_OBJS} ${tdbdir}/${obj}"
369 SAMBA_CPPFLAGS="-Iinclude -I${srcdir-.}/include -I. -I${srcdir-.}"
370 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/lib/replace"
371 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TALLOC_CFLAGS}"
372 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TDB_CFLAGS}"
373 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/libaddns"
374 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/librpc"
376 SAMBA_CONFIGURE_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/popt"
378 ## cleanup the $(srcdir) in the Makefile if we are outside of the tree
379 if test "x${srcdir-.}" != "x."; then
380 SAMBA_CPPFLAGS=`echo ${SAMBA_CPPFLAGS} | sed -e "s;${srcdir};\$\(srcdir\);g"`
383 dnl Unique-to-Samba variables we'll be playing with.
384 AC_SUBST(SAMBA_CPPFLAGS)
389 AC_SUBST(MODULE_EXPORTS)
390 AC_SUBST(DSO_EXPORTS)
394 AC_SUBST(PIE_LDFLAGS)
396 AC_SUBST(INSTALLLIBCMD_SH)
397 AC_SUBST(INSTALLLIBCMD_A)
398 AC_SUBST(UNINSTALLLIBCMD_SH)
399 AC_SUBST(UNINSTALLLIBCMD_A)
400 AC_SUBST(INSTALL_LIBADDNS)
401 AC_SUBST(UNINSTALL_LIBADDNS)
402 AC_SUBST(LIBADDNS_SHARED)
405 AC_SUBST(LIBTALLOC_STATIC_TARGET)
406 AC_SUBST(LIBTALLOC_SHARED_TARGET)
407 AC_SUBST(LIBTALLOC_SHARED)
408 AC_SUBST(LIBTALLOC_STATIC)
409 AC_SUBST(LIBTALLOC_LIBS)
411 AC_SUBST(LIBTDB_STATIC_TARGET)
412 AC_SUBST(LIBTDB_SHARED_TARGET)
413 AC_SUBST(LIBTDB_SHARED)
414 AC_SUBST(LIBTDB_STATIC)
415 AC_SUBST(LIBTDB_LIBS)
417 AC_SUBST(INSTALL_LIBWBCLIENT)
418 AC_SUBST(UNINSTALL_LIBWBCLIENT)
419 AC_SUBST(LIBWBCLIENT_SHARED)
420 AC_SUBST(LIBWBCLIENT_STATIC)
421 AC_SUBST(LIBWBCLIENT)
422 AC_SUBST(WINBIND_LIBS)
424 AC_SUBST(LIBSAMBAUTIL_SHARED)
426 AC_SUBST(INSTALL_LIBSMBCLIENT)
427 AC_SUBST(UNINSTALL_LIBSMBCLIENT)
428 AC_SUBST(LIBSMBCLIENT_SHARED)
429 AC_SUBST(LIBSMBCLIENT)
430 AC_SUBST(INSTALL_LIBSMBSHAREMODES)
431 AC_SUBST(UNINSTALL_LIBSMBSHAREMODES)
432 AC_SUBST(LIBSMBSHAREMODES_SHARED)
433 AC_SUBST(LIBSMBSHAREMODES)
435 AC_SUBST(LIBNETAPI_SHARED_TARGET)
436 AC_SUBST(LIBNETAPI_STATIC_TARGET)
437 AC_SUBST(LIBNETAPI_SHARED)
438 AC_SUBST(LIBNETAPI_STATIC)
439 AC_SUBST(LIBNETAPI_LIBS)
444 AC_SUBST(PASSDB_LIBS)
449 AC_SUBST(PAM_MODULES)
450 AC_SUBST(INSTALL_PAM_MODULES)
451 AC_SUBST(UNINSTALL_PAM_MODULES)
452 AC_SUBST(NSS_MODULES)
453 AC_SUBST(EXTRA_BIN_PROGS)
454 AC_SUBST(SMBMOUNT_PROGS)
455 AC_SUBST(CIFSMOUNT_PROGS)
456 AC_SUBST(INSTALL_CIFSMOUNT)
457 AC_SUBST(UNINSTALL_CIFSMOUNT)
458 AC_SUBST(CIFSSPNEGO_PROGS)
459 AC_SUBST(INSTALL_CIFSSPNEGO)
460 AC_SUBST(UNINSTALL_CIFSSPNEGO)
461 AC_SUBST(EXTRA_SBIN_PROGS)
462 AC_SUBST(EXTRA_ALL_TARGETS)
463 AC_SUBST(CONFIG_LIBS)
466 # compile with optimization and without debugging by default, but
467 # allow people to set their own preference.
468 # do this here since AC_CACHE_CHECK apparently sets the CFLAGS to "-g -O2"
469 # if it has no value. This prevent *very* large debug binaries from occurring
471 if test "x$CFLAGS" = x; then
474 if test "x$debug" = "xyes" ; then
475 CFLAGS="${CFLAGS} -g"
480 CFLAGS="${CFLAGS} -D_SAMBA_BUILD_=3"
482 m4_include(lib/socket_wrapper/config.m4)
483 m4_include(lib/nss_wrapper/config.m4)
485 SWAT_SBIN_TARGETS='bin/swat$(EXEEXT)'
486 SWAT_INSTALL_TARGETS=installswat
489 [AS_HELP_STRING([--enable-swat], [Build the SWAT tool (default=yes)])],
491 case "$enable_swat" in
494 SWAT_INSTALL_TARGETS=''
499 AC_SUBST(SWAT_SBIN_TARGETS)
500 AC_SUBST(SWAT_INSTALL_TARGETS)
502 # Probe the gcc version for extra CFLAGS. We always stash these in
503 # DEVELOPER_CFLAGS, so that you can turn them on and off with a simple
504 # Makefile edit, avoiding the need to re-run configure.
505 if test x"$ac_cv_prog_gcc" = x"yes" ; then
506 DEVELOPER_CFLAGS="-g -Wall -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
507 # Add -Wdeclaration-after-statement if compiler supports it
509 [that the C compiler understands -Wdeclaration-after-statement],
510 samba_cv_HAVE_Wdeclaration_after_statement, [
515 }],[-Wdeclaration-after-statement],[$CPPFLAGS],[$LDFLAGS],
516 samba_cv_HAVE_Wdeclaration_after_statement=yes,
517 samba_cv_HAVE_Wdeclaration_after_statement=no,
518 samba_cv_HAVE_Wdeclaration_after_statement=cross)
521 if test x"$samba_cv_HAVE_Wdeclaration_after_statement" = x"yes"; then
522 DEVELOPER_CFLAGS="${DEVELOPER_CFLAGS} -Wdeclaration-after-statement"
525 #-Werror-implicit-function-declaration
527 [that the C compiler understands -Werror-implicit-function-declaration],
528 samba_cv_HAVE_Werror_implicit_function_declaration, [
533 }],[-Werror-implicit-function-declaration],[$CPPFLAGS],[$LDFLAGS],
534 samba_cv_HAVE_Werror_implicit_function_declaration=yes,
535 samba_cv_HAVE_Werror_implicit_function_declaration=no,
536 samba_cv_HAVE_Werror_implicit_function_declaration=cross)
538 if test x"$samba_cv_HAVE_Werror_implicit_function_declaration" = x"yes"; then
539 DEVELOPER_CFLAGS="${DEVELOPER_CFLAGS} -Werror-implicit-function-declaration"
542 # krb5developer is like developer, except we don't get
543 # -Wstrict-prototypes.
544 if test x"$krb5_developer" != x"$yes" ; then
545 DEVELOPER_CFLAGS="$DEVELOPER_CFLAGS -Wstrict-prototypes"
549 AC_ARG_ENABLE(dmalloc, [AS_HELP_STRING([--enable-dmalloc], [Enable heap debugging [default=no]])])
551 if test "x$enable_dmalloc" = xyes
553 AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
554 AC_DEFINE(DMALLOC_FUNC_CHECK, 1,
555 [Define to check invariants around some common functions])
556 LIBS="$LIBS -ldmalloc"
559 #################################################
560 # check for a shared memory profiling support
561 AC_MSG_CHECKING(whether to use profiling)
562 AC_ARG_WITH(profiling-data,
563 [AS_HELP_STRING([--with-profiling-data], [Include gathering source code profile information (default=no)])],
567 AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
568 samba_cv_WITH_PROFILE=yes
572 samba_cv_WITH_PROFILE=no
578 dnl Checks for programs.
582 AC_PATH_PROG(PERL, perl)
584 AC_CHECK_TOOL(AR, ar)
586 dnl Check if we use GNU ld
590 dnl Certain versions of GNU ld the default is not to have the
591 dnl --allow-shlib-undefined flag defined. This causes a stackload of
592 dnl warnings when building modules.
593 if test "$ac_cv_prog_gnu_ld" = "yes"; then
594 ac_cv_gnu_ld_version=`$LD -v 2>/dev/null | head -1`
595 AC_MSG_CHECKING(GNU ld release date)
597 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'`
599 AC_MSG_RESULT(${ac_cv_gnu_ld_date})
600 if test -n "$ac_cv_gnu_ld_date"; then
601 if test "$ac_cv_gnu_ld_date" -lt 20030217; then
602 ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
604 if test "$ac_cv_gnu_ld_date" -gt 20030101; then
605 ac_cv_gnu_ld_version_script=yes
608 AC_MSG_CHECKING(GNU ld release version)
610 ac_cv_gnu_ld_vernr=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([1-9][0-9]*\.[0-9][0-9]*\).*$,\1,p'`
611 ac_cv_gnu_ld_vernr_major=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 1`
612 ac_cv_gnu_ld_vernr_minor=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 2`
614 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr})
615 AC_MSG_CHECKING(GNU ld release version major)
616 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_major})
617 AC_MSG_CHECKING(GNU ld release version minor)
618 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_minor})
619 if test "$ac_cv_gnu_ld_vernr_major" -lt 2 || test "$ac_cv_gnu_ld_vernr_minor" -lt 14; then
620 ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
622 if test "$ac_cv_gnu_ld_vernr_major" -gt 2 || test "$ac_cv_gnu_l= d_vernr_major"=2 && test "$ac_cv_gnu_ld_vernr_minor" -ge 12; then
623 ac_cv_gnu_ld_version_script=yes
628 dnl look for executable suffix
631 dnl Check if C compiler understands -c and -o at the same time
633 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
640 dnl Check if the C compiler understands -Werror
641 AC_CACHE_CHECK([that the C compiler understands -Werror],samba_cv_HAVE_Werror, [
646 }],[-Werror],[$CPPFLAGS],[$LDFLAGS],
647 samba_cv_HAVE_Werror=yes,samba_cv_HAVE_Werror=no,samba_cv_HAVE_Werror=cross)])
648 if test x"$samba_cv_HAVE_Werror" = x"yes"; then
649 Werror_FLAGS="-Werror"
651 dnl Check if the C compiler understands -w2
652 AC_CACHE_CHECK([that the C compiler understands -w2],samba_cv_HAVE_w2, [
657 }],[-w2],[$CPPFLAGS],[$LDFLAGS],
658 samba_cv_HAVE_w2=yes,samba_cv_HAVE_w2=no,samba_cv_HAVE_w2=cross)])
659 if test x"$samba_cv_HAVE_w2" = x"yes"; then
664 dnl Check if the C compiler understands volatile (it should, being ANSI).
665 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
666 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
667 samba_cv_volatile=yes,samba_cv_volatile=no)])
668 if test x"$samba_cv_volatile" = x"yes"; then
669 AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
672 ############################################
673 # check if the compiler can handle negative enum values
674 # and don't truncate the values to INT_MAX
675 # a runtime test is needed here
677 AC_CACHE_CHECK([that the C compiler understands negative enum values],SMB_BUILD_CC_NEGATIVE_ENUM_VALUES, [
681 enum negative_values { NEGATIVE_VALUE = 0xFFFFFFFF };
683 enum negative_values v1 = NEGATIVE_VALUE;
684 unsigned v2 = NEGATIVE_VALUE;
686 if (v1 != 0xFFFFFFFF) {
687 printf("%u != 0xFFFFFFFF\n", v1);
690 if (v2 != 0xFFFFFFFF) {
691 printf("%u != 0xFFFFFFFF\n", v2);
698 SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes,SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=no)])
699 if test x"$SMB_BUILD_CC_NEGATIVE_ENUM_VALUES" != x"yes"; then
700 AC_MSG_WARN([using --unit-enums for pidl])
701 PIDL_ARGS="$PIDL_ARGS --uint-enums"
704 dnl Figure out the flags to support named structure initializers
706 LIBREPLACE_C99_STRUCT_INIT([],[AC_MSG_ERROR([c99 structure initializer are not supported])])
708 UNAME_S=`(uname -s) 2>/dev/null` || UNAME_S="unknown"
709 AC_MSG_CHECKING(uname -s)
710 AC_MSG_RESULT(${UNAME_S})
712 UNAME_R=`(uname -r) 2>/dev/null` || UNAME_R="unknown"
713 AC_MSG_CHECKING(uname -r)
714 AC_MSG_RESULT(${UNAME_R})
716 UNAME_M=`(uname -m) 2>/dev/null` || UNAME_M="unknown"
717 AC_MSG_CHECKING(uname -m)
718 AC_MSG_RESULT(${UNAME_M})
720 UNAME_P=`(uname -p) 2>/dev/null` || UNAME_P="unknown"
721 AC_MSG_CHECKING(uname -p)
722 AC_MSG_RESULT(${UNAME_P})
724 UNAME_I=`(uname -i) 2>/dev/null` || UNAME_I="unknown"
725 AC_MSG_CHECKING(uname -i)
726 AC_MSG_RESULT(${UNAME_I})
728 dnl Add #include for broken IRIX header files
731 #TODO add to libreplace
732 if test x"$ac_cv_prog_gcc" != x"yes" ; then
733 dnl Fix sensible defaults for MIPSPro compilers. The
734 dnl error numbers are valid for the 7.3 compilers,
735 dnl hopefully also valid for the 7.4 series.
737 dnl Bugzilla 3801. Force an error on warning 1035
738 dnl so we don't incorrectly detect stdint.h. This
739 dnl warning is emitted for #error directives.
740 CFLAGS="$CFLAGS -diag_error 1035"
741 dnl 1209: Controlling expression is constant
742 dnl 1174: Function foo declared but never referenced
743 dnl 3201: Parameter foo was never referenced
744 CFLAGS="$CFLAGS -woff 1209,1174,3201"
752 dnl Add modules that have to be built by default here
753 dnl These have to be built static:
754 default_static_modules="pdb_smbpasswd pdb_tdbsam rpc_lsarpc rpc_samr rpc_winreg rpc_initshutdown rpc_dssetup rpc_wkssvc rpc_svcctl2 rpc_ntsvcs2 rpc_netlogon rpc_netdfs rpc_srvsvc2 rpc_spoolss rpc_eventlog2 auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin vfs_default nss_info_template"
756 dnl These are preferably build shared, and static if dlopen() is not available
757 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 vfs_shadow_copy2 charset_CP850 charset_CP437 auth_script vfs_readahead vfs_syncops vfs_xattr_tdb vfs_streams_xattr"
759 if test "x$developer" = xyes; then
760 default_static_modules="$default_static_modules rpc_rpcecho"
761 default_shared_modules="$default_shared_modules charset_weird"
765 # Config CPPFLAG settings for strange OS's that must be set
766 # before other tests. Do NOT invoke AC_CHECK_HEADERS within this
767 # case statement; its first reference must be unconditional.
772 # Defines needed for HPUX support.
773 # HPUX has bigcrypt but (sometimes?) doesn't use it for
774 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
778 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
784 # CRAY Unicos has broken const handling
786 AC_MSG_RESULT([disabling const])
787 CPPFLAGS="$CPPFLAGS -Dconst="
791 # AIX4.x doesn't even admit to having large
792 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
795 AC_MSG_RESULT([enabling large file support])
796 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
797 AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
800 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
801 # to the existance of large files..
802 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
803 # recommendations on large file support, however it makes the
804 # compile work using gcc 2.7 and 2.8, whereas using the Sun
805 # recommendation makes the compile fail on gcc2.7. JRA.
807 # Solaris uses SYSV printing. Make sure to set that here. --jerry
810 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
812 5.0|5.0.*|5.1|5.1.*|5.2|5.2.*|5.3|5.3.*|5.5|5.5.*)
813 AC_MSG_RESULT([no large file support])
816 AC_MSG_RESULT([enabling large file support])
817 if test "$ac_cv_prog_gcc" = yes; then
818 ${CC-cc} -v >conftest.c 2>&1
819 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
821 case "$ac_cv_gcc_compiler_version_number" in
822 *"gcc version 2.6"*|*"gcc version 2.7"*)
823 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE -D_REENTRANT"
824 LDFLAGS="$LDFLAGS -lthread"
825 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
828 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
829 LDFLAGS="$LDFLAGS -lthread"
830 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
831 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
835 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
836 LDFLAGS="$LDFLAGS -lthread"
837 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
838 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
844 # IRIX uses SYSV printing. Make sure to set that here
847 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
849 *freebsd*|*dragonfly*)
850 AC_DEFINE(FREEBSD, 1, [Whether the host os is FreeBSD])
853 # VOS may need to have POSIX support and System V compatibility enabled.
860 CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L"
861 AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Whether to enable POSIX support])
865 *-D_SYSV*|*-D_SVID_SOURCE*)
868 CPPFLAGS="$CPPFLAGS -D_SYSV"
869 AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
873 # Tests needed for SINIX large file support.
876 if test $host = mips-sni-sysv4 ; then
877 AC_MSG_CHECKING([for LFS support])
878 old_CPPFLAGS="$CPPFLAGS"
879 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
883 #if _LFS64_LARGEFILE == 1
888 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
889 CPPFLAGS="$old_CPPFLAGS"
890 if test x$SINIX_LFS_SUPPORT = xyes ; then
891 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
892 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
893 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
894 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
895 LIBS="`getconf LFS64_LIBS` $LIBS"
897 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
901 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
904 AC_MSG_CHECKING([for LFS support])
905 old_CPPFLAGS="$CPPFLAGS"
906 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
909 #include <sys/utsname.h>
913 #if _LFS64_LARGEFILE == 1
918 /* Ensure this is glibc 2.2 or higher */
919 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
920 int libc_major = __GLIBC__;
921 int libc_minor = __GLIBC_MINOR__;
929 /* Ensure this is kernel 2.4 or higher */
932 release = strdup(uts.release);
933 major = atoi(strsep(&release, "."));
934 minor = atoi(strsep(&release, "."));
936 if (major > 2 || (major == 2 && minor > 3))
943 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
944 CPPFLAGS="$old_CPPFLAGS"
945 if test x$LINUX_LFS_SUPPORT = xyes ; then
946 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
947 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
948 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
949 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
951 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
955 # MacOS X is the *only* system that uses compose character in utf8. This
956 # is so horribly broken....
959 AC_DEFINE(BROKEN_UNICODE_COMPOSE_CHARACTERS, 1, [Does this system use unicode compose characters])
961 # Add a system specific charset module.
962 default_shared_modules="$default_shared_modules charset_macosxfs"
966 AC_MSG_CHECKING([for LFS support])
967 old_CPPFLAGS="$CPPFLAGS"
968 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
972 #if _LFS64_LARGEFILE == 1
977 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
978 CPPFLAGS="$old_CPPFLAGS"
979 if test x$GLIBC_LFS_SUPPORT = xyes ; then
980 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
981 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
982 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
984 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
989 AC_LIBREPLACE_BROKEN_CHECKS
991 LIBREPLACE_DIR=`echo ${libreplacedir} | sed -e "s;${srcdir};;" -e "s;^/;;"`
994 for obj in ${LIBREPLACEOBJ}; do
995 LIBREPLACE_OBJS="${LIBREPLACE_OBJS} ${LIBREPLACE_DIR}/${obj}"
997 AC_SUBST(LIBREPLACE_OBJS)
999 # add -ldl to the global LIBS
1000 LIBS="${LIBS} ${LIBDL}"
1002 AC_CHECK_HEADERS(aio.h arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h rpc/nettype.h)
1003 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h memory.h alloca.h)
1004 AC_CHECK_HEADERS(limits.h float.h pthread.h)
1005 AC_CHECK_HEADERS(rpc/rpc.h rpcsvc/nis.h rpcsvc/ypclnt.h)
1006 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/prctl.h)
1007 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
1008 AC_CHECK_HEADERS(sys/un.h ifaddrs.h)
1009 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
1010 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
1011 AC_CHECK_HEADERS(sys/sysmacros.h)
1012 AC_CHECK_HEADERS(sys/syslog.h syslog.h)
1013 AC_CHECK_HEADERS(langinfo.h locale.h)
1014 AC_CHECK_HEADERS(xfs/libxfs.h)
1015 AC_CHECK_HEADERS(netgroup.h)
1017 AC_CHECK_HEADERS(rpcsvc/yp_prot.h,,,[[
1019 #include <rpc/rpc.h>
1023 ## These fail to compile on IRIX so just check for their presence
1024 AC_CHECK_HEADERS(sys/mode.h,,,)
1026 # Look for Darwin headers
1027 old_CPPFLAGS="$CPPFLAGS"
1028 CPPFLAGS="-Iinclude $CPPFLAGS"
1029 AC_CHECK_HEADERS([CoreFoundation/CFStringEncodingConverter.h], [], [AC_CHECK_HEADERS([CFStringEncodingConverter.h])])
1030 CPPFLAGS="$old_CPPFLAGS"
1032 # In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a
1033 # subdirectory of headers.
1034 AC_CHECK_HEADERS(valgrind.h valgrind/valgrind.h valgrind/memcheck.h)
1036 # check for linux on amd64 since valgrind is not quite there yet
1041 AC_DEFINE(HAVE_64BIT_LINUX,1,[Whether we are running on 64bit linux])
1049 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
1050 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
1054 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
1055 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
1056 if test x"$ac_cv_header_shadow_h" = x"yes"; then
1057 AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
1061 AC_CHECK_HEADERS(shadow.h)
1062 AC_CHECK_HEADERS(nss.h nss_common.h nsswitch.h ns_api.h sys/security.h)
1063 AC_CHECK_HEADERS(syscall.h sys/syscall.h)
1065 AC_CHECK_HEADERS(sys/attributes.h attr/xattr.h sys/xattr.h sys/extattr.h sys/uio.h)
1066 AC_CHECK_HEADERS(sys/ea.h sys/proplist.h)
1068 AC_CHECK_HEADERS(sys/cdefs.h glob.h)
1070 # For experimental utmp support (lastlog on some BSD-like systems)
1071 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
1073 AC_CHECK_SIZEOF(int,cross)
1074 AC_CHECK_SIZEOF(long,cross)
1075 AC_CHECK_SIZEOF(long long,cross)
1076 AC_CHECK_SIZEOF(short,cross)
1091 AC_CHECK_TYPE(ino_t,unsigned)
1092 AC_CHECK_TYPE(loff_t,off_t)
1093 AC_CHECK_TYPE(offset_t,loff_t)
1094 AC_CHECK_TYPE(ssize_t, int)
1095 AC_CHECK_TYPE(wchar_t, unsigned short)
1096 AC_CHECK_TYPE(comparison_fn_t,
1097 [AC_DEFINE(HAVE_COMPARISON_FN_T, 1,[Whether or not we have comparison_fn_t])])
1099 ############################################
1100 # for cups support we need libcups, and a handful of header files
1103 [AS_HELP_STRING([--enable-cups], [Turn on CUPS support (default=auto)])])
1105 if test x$enable_cups != xno; then
1106 AC_PATH_PROG(CUPS_CONFIG, cups-config)
1108 if test "x$CUPS_CONFIG" != x; then
1109 AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
1110 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
1111 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
1112 PRINT_LIBS="$PRINT_LIBS `$CUPS_CONFIG --libs`"
1113 elif test x"$enable_cups" = x"yes"; then
1114 AC_MSG_ERROR(Cups support required but cups-config not located. Make sure cups-devel related files are installed.)
1118 AC_ARG_ENABLE(iprint,
1119 [AS_HELP_STRING([--enable-iprint], [Turn on iPrint support (default=yes if cups is yes)])])
1121 if test x$enable_iprint != xno; then
1122 if test "x$CUPS_CONFIG" != x; then
1123 AC_DEFINE(HAVE_IPRINT,1,[Whether we have iPrint])
1124 elif test x"$enable_iprint" = x"yes"; then
1125 AC_MSG_ERROR(iPrint support required but cups not enabled. Make sure cups-devel related files are installed and that cups is enabled.)
1129 ############################################
1130 # check if the compiler will optimize out function calls
1131 AC_CACHE_CHECK([if the compiler will optimize out function calls],samba_cv_optimize_out_funcation_calls, [
1133 #include <stdio.h>],
1136 this_function_does_not_exist();
1142 samba_cv_optimize_out_funcation_calls=yes,samba_cv_optimize_out_funcation_calls=no)])
1143 if test x"$samba_cv_optimize_out_funcation_calls" = x"yes"; then
1144 AC_DEFINE(HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS,1,[Whether the compiler will optimize out function calls])
1147 ############################################
1148 # check for unix domain sockets
1149 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
1151 #include <sys/types.h>
1154 #include <sys/socket.h>
1155 #include <sys/un.h>],
1157 struct sockaddr_un sunaddr;
1158 sunaddr.sun_family = AF_UNIX;
1160 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
1161 if test x"$samba_cv_unixsocket" = x"yes"; then
1162 AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support])
1166 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
1168 #include <sys/types.h>
1173 #include <signal.h>],[sig_atomic_t i = 0],
1174 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
1175 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
1176 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
1179 AC_CACHE_CHECK([for struct timespec type],samba_cv_struct_timespec, [
1181 #include <sys/types.h>
1186 #if TIME_WITH_SYS_TIME
1187 # include <sys/time.h>
1190 # if HAVE_SYS_TIME_H
1191 # include <sys/time.h>
1196 ],[struct timespec ts;],
1197 samba_cv_struct_timespec=yes,samba_cv_struct_timespec=no)])
1198 if test x"$samba_cv_struct_timespec" = x"yes"; then
1199 AC_DEFINE(HAVE_STRUCT_TIMESPEC,1,[Whether we have struct timespec])
1202 # stupid headers have the functions but no declaration. grrrr.
1203 AC_HAVE_DECL(errno, [#include <errno.h>])
1204 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
1205 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
1206 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
1207 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
1208 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
1209 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
1211 # and glibc has setresuid under linux but the function does
1212 # nothing until kernel 2.1.44! very dumb.
1213 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
1214 AC_TRY_RUN([#include <errno.h>
1215 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
1216 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
1217 if test x"$samba_cv_have_setresuid" = x"yes"; then
1218 AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
1221 # Do the same check for setresguid...
1223 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
1224 AC_TRY_RUN([#include <unistd.h>
1226 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
1227 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
1228 if test x"$samba_cv_have_setresgid" = x"yes"; then
1229 AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
1234 ###############################################
1235 # Readline included by default unless explicitly asked not to
1236 test "${with_readline+set}" != "set" && with_readline=yes
1238 # test for where we get readline() from
1239 AC_MSG_CHECKING(whether to use readline)
1240 AC_ARG_WITH(readline,
1241 [AS_HELP_STRING([--with-readline[=DIR]], [Look for readline include/libs in DIR (default=auto)])],
1242 [ case "$with_readline" in
1246 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
1247 AC_CHECK_HEADERS(readline/history.h)
1249 AC_CHECK_HEADERS(readline.h readline/readline.h,[
1250 for termlib in ncurses curses termcap terminfo termlib tinfo; do
1251 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
1253 AC_CHECK_LIB(readline, rl_callback_handler_install,
1254 [TERMLIBS="-lreadline $TERMLIBS"
1255 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
1256 break], [TERMLIBS=], $TERMLIBS)])
1264 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
1265 # alternate readline path
1267 _cppflags=${CPPFLAGS}
1269 # Add additional search path
1270 LDFLAGS="-L$with_readline/lib $LDFLAGS"
1271 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
1273 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
1274 AC_CHECK_HEADERS(readline/history.h)
1276 AC_CHECK_HEADERS(readline.h readline/readline.h,[
1277 for termlib in ncurses curses termcap terminfo termlib; do
1278 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
1280 AC_CHECK_LIB(readline, rl_callback_handler_install,
1281 [TERMLDFLAGS="-L$with_readline/lib"
1282 TERMCPPFLAGS="-I$with_readline/include"
1283 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
1284 TERMLIBS="-lreadline $TERMLIBS"
1285 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
1286 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
1294 AC_SUBST(TERMLDFLAGS)
1296 # The readline API changed slightly from readline3 to readline4, so
1297 # code will generate warnings on one of them unless we have a few
1299 AC_CHECK_LIB(readline, rl_completion_matches,
1300 [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
1301 [Do we have rl_completion_matches?])],
1305 # not all readline libs have rl_event_hook or history_list
1306 AC_CHECK_DECLS(rl_event_hook, [], [], [#include <readline/readline.h>])
1307 AC_CHECK_LIB(readline, history_list,
1308 [AC_DEFINE(HAVE_HISTORY_LIST, 1, [Do we have history_list?])],
1312 # The following test taken from the cvs sources
1313 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
1314 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
1315 # libsocket.so which has a bad implementation of gethostbyname (it
1316 # only looks in /etc/hosts), so we only look for -lsocket if we need
1318 AC_CHECK_FUNCS(connect)
1319 if test x"$ac_cv_func_connect" = x"no"; then
1322 *) AC_CHECK_LIB(nsl_s, connect) ;;
1326 *) AC_CHECK_LIB(nsl, connect) ;;
1330 *) AC_CHECK_LIB(socket, connect) ;;
1334 *) AC_CHECK_LIB(inet, connect) ;;
1336 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
1337 dnl has been cached.
1338 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
1339 test x"$ac_cv_lib_inet_connect" = x"yes"; then
1340 # ac_cv_func_connect=yes
1341 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
1342 AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
1346 ###############################################
1347 # test for where we get yp_get_default_domain() from
1348 AC_SEARCH_LIBS(yp_get_default_domain, [nsl])
1349 AC_CHECK_FUNCS(yp_get_default_domain)
1351 # Check if we have execl, if not we need to compile smbrun.
1352 AC_CHECK_FUNCS(execl)
1353 if test x"$ac_cv_func_execl" = x"no"; then
1354 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)"
1357 AC_CHECK_FUNCS(waitpid getcwd strdup strndup strnlen strerror chown fchown lchown chmod fchmod chroot link mknod mknod64)
1358 AC_CHECK_FUNCS(strtol strtoll strtoul strtoull strtouq __strtoull)
1359 AC_CHECK_FUNCS(fstat strchr utime utimes chflags)
1360 AC_CHECK_FUNCS(getrlimit fsync fdatasync memset strlcpy strlcat setpgid)
1361 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
1362 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
1363 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
1364 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate chsize stat64 fstat64)
1365 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64)
1366 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
1367 AC_CHECK_FUNCS(opendir64 readdir64 seekdir64 telldir64 rewinddir64 closedir64)
1368 AC_CHECK_FUNCS(getpwent_r)
1369 AC_CHECK_FUNCS(getdents getdents64)
1370 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
1371 AC_CHECK_FUNCS(syslog vsyslog timegm)
1372 AC_CHECK_FUNCS(setlocale nl_langinfo)
1373 AC_CHECK_FUNCS(nanosleep)
1374 AC_CHECK_FUNCS(mlock munlock mlockall munlockall)
1375 AC_CHECK_FUNCS(memalign posix_memalign hstrerror)
1376 AC_CHECK_HEADERS(sys/mman.h)
1377 # setbuffer, shmget, shm_open are needed for smbtorture
1378 AC_CHECK_FUNCS(setbuffer shmget shm_open)
1380 # Find a method of generating a stack trace
1381 AC_CHECK_HEADERS(execinfo.h libexc.h libunwind.h)
1382 AC_CHECK_FUNCS(backtrace_symbols)
1383 AC_CHECK_LIB(exc, trace_back_stack)
1385 echo -n "checking for GPFS GPL libs... "
1387 LIBS="$LIBS -lgpfs_gpl"
1388 AC_TRY_LINK([#include <gpfs_gpl.h>],
1389 [gpfs_set_share(0,GPFS_SHARE_READ,GPFS_DENY_NONE)],
1390 samba_cv_HAVE_GPFS=yes,
1391 samba_cv_HAVE_GPFS=no)
1392 echo $samba_cv_HAVE_GPFS
1393 if test x"$samba_cv_HAVE_GPFS" = x"yes"; then
1394 AC_DEFINE(HAVE_GPFS,1,[Whether GPFS GPL libs are available])
1395 default_shared_modules="$default_shared_modules vfs_gpfs"
1399 # Note that all the libunwind symbols in the API are defined to internal
1400 # platform-specific version, so we must include libunwind.h before checking
1402 AC_MSG_CHECKING([for libunwind])
1405 UNWIND_ARCH="unknown"
1406 if test x"$UNAME_I" != x"unknown"; then
1407 UNWIND_ARCH="$UNAME_I"
1408 elif test x"$UNAME_M" != x"unknown"; then
1409 UNWIND_ARCH="$UNAME_M"
1410 elif test x"$UNAME_P" != x"unknown"; then
1411 UNWIND_ARCH="$UNAME_P"
1414 case "$UNWIND_ARCH" in
1416 # This probably won't link without
1417 # the platform-specific libunwind.
1418 LIBS="$LIBS -lunwind"
1421 # Add the platform-specific libunwind module.
1422 LIBS="$LIBS -lunwind -lunwind-x86"
1425 # Add the platform-specific libunwind module.
1426 # based on uname -i, uname -m or uname -p
1427 LIBS="$LIBS -lunwind -lunwind-$UNWIND_ARCH"
1433 #ifdef HAVE_LIBUNWIND_H
1434 #include <libunwind.h>
1438 unw_context_t ctx; unw_cursor_t cur;
1439 char buf[256]; unw_word_t off;
1440 unw_getcontext(&ctx); unw_init_local(&cur, &ctx);
1441 unw_get_proc_name(&cur, buf, sizeof(buf), &off);
1445 AC_DEFINE(HAVE_LIBUNWIND, 1, [Whether libunwind is available])
1447 # If we have libunwind, test whether we also have libunwind-ptrace
1448 # which would let us unwind arbitrary processes.
1450 AC_CHECK_HEADERS(libunwind-ptrace.h)
1451 AC_CHECK_LIB(unwind-ptrace, _UPT_create,
1453 LIBUNWIND_PTRACE="-lunwind-ptrace";
1454 AC_DEFINE(HAVE_LIBUNWIND_PTRACE, 1,
1455 [Whether libunwind-ptrace.a is available.])
1457 [ LIBUNWIND_PTRACE="" ])
1466 # To use libunwind-ptrace, we also need to make some ptrace system calls.
1467 if test x"$LIBUNWIND_PTRACE" != x"" ; then
1468 AC_CHECK_HEADERS(sys/ptrace.h)
1469 AC_MSG_CHECKING([for the Linux ptrace(2) interface])
1472 #if HAVE_SYS_TYPES_H
1473 #include <sys/types.h>
1475 #if HAVE_SYS_PTRACE_H
1476 #include <sys/ptrace.h>
1480 int main(int argc, const char ** argv)
1482 pid_t me = (pid_t)-1;
1483 ptrace(PTRACE_ATTACH, me, 0, 0);
1484 ptrace(PTRACE_DETACH, me, 0, 0);
1490 AC_DEFINE(HAVE_LINUX_PTRACE, 1,
1491 [Whether the Linux ptrace(2) interface is available.])
1499 AC_SUBST(LIBUNWIND_PTRACE)
1501 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
1502 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
1503 AC_CHECK_FUNCS(__getcwd _getcwd)
1504 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
1505 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
1506 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
1507 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
1508 AC_CHECK_FUNCS(getdents __getdents _lseek __lseek _read __read)
1509 AC_CHECK_FUNCS(getdirentries _write __write _fork __fork)
1510 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
1511 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
1512 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
1513 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
1514 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
1515 AC_CHECK_FUNCS(prctl)
1518 #ifdef HAVE_SYS_PRCTL_H
1519 #include <sys/prctl.h>
1522 [int i; i = prtcl(0); ],
1523 AC_DEFINE(HAVE_PRCTL, 1, [Whether prctl is available]),[])
1530 # glibc <= 2.3.2 has a broken getgrouplist
1533 #include <sys/utsname.h>
1535 /* glibc up to 2.3 has a broken getgrouplist */
1536 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
1537 int libc_major = __GLIBC__;
1538 int libc_minor = __GLIBC_MINOR__;
1542 if ((libc_major == 2) && (libc_minor <= 3))
1547 ], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no])
1548 if test x"$linux_getgrouplist_ok" = x"yes"; then
1549 AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
1553 AC_CHECK_FUNCS(getgrouplist)
1558 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
1561 if test x$ac_cv_func_stat64 = xno ; then
1562 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
1564 #if defined(HAVE_UNISTD_H)
1567 #include <sys/stat.h>
1568 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
1569 AC_MSG_RESULT([$ac_cv_func_stat64])
1570 if test x$ac_cv_func_stat64 = xyes ; then
1571 AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
1575 if test x$ac_cv_func_lstat64 = xno ; then
1576 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
1578 #if defined(HAVE_UNISTD_H)
1581 #include <sys/stat.h>
1582 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
1583 AC_MSG_RESULT([$ac_cv_func_lstat64])
1584 if test x$ac_cv_func_lstat64 = xyes ; then
1585 AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
1589 if test x$ac_cv_func_fstat64 = xno ; then
1590 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
1592 #if defined(HAVE_UNISTD_H)
1595 #include <sys/stat.h>
1596 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
1597 AC_MSG_RESULT([$ac_cv_func_fstat64])
1598 if test x$ac_cv_func_fstat64 = xyes ; then
1599 AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
1603 #################################################
1604 # Check whether struct stat has timestamps with sub-second resolution.
1605 # At least IRIX and Solaris have these.
1608 # all of st_mtim, st_atim and st_ctim exist
1609 # all of the members are in fact of type struct timespec
1611 # There is some conflicting standards weirdness about whether we should use
1612 # "struct timespec" or "timespec_t". Linux doesn't have timespec_t, so we
1613 # prefer struct timespec.
1615 AC_CACHE_CHECK([whether struct stat has sub-second timestamps], samba_stat_hires,
1619 #if TIME_WITH_SYS_TIME
1620 # include <sys/time.h>
1623 # if HAVE_SYS_TIME_H
1624 # include <sys/time.h>
1629 #ifdef HAVE_SYS_STAT_H
1630 #include <sys/stat.h>
1635 struct stat s = {0};
1636 t.tv_sec = s.st_mtim.tv_sec;
1637 t.tv_nsec = s.st_mtim.tv_nsec;
1638 t.tv_sec = s.st_ctim.tv_sec;
1639 t.tv_nsec = s.st_ctim.tv_nsec;
1640 t.tv_sec = s.st_atim.tv_sec;
1641 t.tv_nsec = s.st_atim.tv_nsec;
1643 samba_stat_hires=yes, samba_stat_hires=no)
1646 if test x"$samba_stat_hires" = x"yes" ; then
1647 AC_DEFINE(HAVE_STAT_ST_MTIM, 1, [whether struct stat contains st_mtim])
1648 AC_DEFINE(HAVE_STAT_ST_ATIM, 1, [whether struct stat contains st_atim])
1649 AC_DEFINE(HAVE_STAT_ST_CTIM, 1, [whether struct stat contains st_ctim])
1650 AC_DEFINE(HAVE_STAT_HIRES_TIMESTAMPS, 1,
1651 [whether struct stat has sub-second timestamps])
1654 AC_CACHE_CHECK([whether struct stat has sub-second timestamps without struct timespec], samba_stat_hires_notimespec,
1658 #if TIME_WITH_SYS_TIME
1659 # include <sys/time.h>
1662 # if HAVE_SYS_TIME_H
1663 # include <sys/time.h>
1668 #ifdef HAVE_SYS_STAT_H
1669 #include <sys/stat.h>
1674 struct stat s = {0};
1675 t.tv_sec = s.st_mtime;
1676 t.tv_nsec = s.st_mtimensec;
1677 t.tv_sec = s.st_ctime;
1678 t.tv_nsec = s.st_ctimensec;
1679 t.tv_sec = s.st_atime;
1680 t.tv_nsec = s.st_atimensec;
1682 samba_stat_hires=yes, samba_stat_hires=no)
1685 if test x"$samba_stat_hires_notimespec" = x"yes" ; then
1686 AC_DEFINE(HAVE_STAT_ST_MTIMENSEC, 1, [whether struct stat contains st_mtimensec])
1687 AC_DEFINE(HAVE_STAT_ST_ATIMENSEC, 1, [whether struct stat contains st_atimensec])
1688 AC_DEFINE(HAVE_STAT_ST_CTIMENSEC, 1, [whether struct stat contains st_ctimensec])
1689 AC_DEFINE(HAVE_STAT_HIRES_TIMESTAMPS, 1,
1690 [whether struct stat has sub-second timestamps without struct timespec])
1693 #####################################
1694 # needed for SRV lookups
1695 AC_CHECK_LIB(resolv, dn_expand)
1696 AC_CHECK_LIB(resolv, _dn_expand)
1697 AC_CHECK_LIB(resolv, __dn_expand)
1700 # Check for the functions putprpwnam, set_auth_parameters,
1701 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
1702 # Needed for OSF1 and HPUX.
1705 AC_LIBTESTFUNC(security, putprpwnam)
1706 AC_LIBTESTFUNC(sec, putprpwnam)
1708 AC_LIBTESTFUNC(security, set_auth_parameters)
1709 AC_LIBTESTFUNC(sec, set_auth_parameters)
1711 # UnixWare 7.x has its getspnam in -lgen
1712 AC_LIBTESTFUNC(gen, getspnam)
1714 AC_LIBTESTFUNC(security, getspnam)
1715 AC_LIBTESTFUNC(sec, getspnam)
1717 AC_LIBTESTFUNC(security, bigcrypt)
1718 AC_LIBTESTFUNC(sec, bigcrypt)
1720 AC_LIBTESTFUNC(security, getprpwnam)
1721 AC_LIBTESTFUNC(sec, getprpwnam)
1723 AC_CHECK_FUNCS(strsignal)
1725 ############################################
1726 # Check if we have libattr
1729 AC_SEARCH_LIBS(getproplist, [proplist])
1730 AC_CHECK_FUNCS(getproplist fgetproplist setproplist fsetproplist)
1731 AC_CHECK_FUNCS(delproplist fdelproplist add_proplist_entry get_proplist_entry)
1732 AC_CHECK_FUNCS(sizeof_proplist_entry)
1735 AC_SEARCH_LIBS(getxattr, [attr])
1736 AC_CHECK_FUNCS(getxattr lgetxattr fgetxattr listxattr llistxattr)
1737 AC_CHECK_FUNCS(getea fgetea lgetea listea flistea llistea)
1738 AC_CHECK_FUNCS(removeea fremoveea lremoveea setea fsetea lsetea)
1739 AC_CHECK_FUNCS(flistxattr removexattr lremovexattr fremovexattr)
1740 AC_CHECK_FUNCS(setxattr lsetxattr fsetxattr)
1741 AC_CHECK_FUNCS(attr_get attr_list attr_set attr_remove)
1742 AC_CHECK_FUNCS(attr_getf attr_listf attr_setf attr_removef)
1746 ########################################################
1747 # Check if attropen() is present if this is Solaris
1750 AC_CHECK_FUNCS(attropen)
1754 ########################################################
1755 # Do xattr functions take additional options like on Darwin?
1756 if test x"$ac_cv_func_getxattr" = x"yes" ; then
1757 AC_CACHE_CHECK([whether xattr interface takes additional options], smb_attr_cv_xattr_add_opt, [
1759 LIBS="$LIBS $ACL_LIBS"
1761 #include <sys/types.h>
1762 #if HAVE_ATTR_XATTR_H
1763 #include <attr/xattr.h>
1764 #elif HAVE_SYS_XATTR_H
1765 #include <sys/xattr.h>
1768 getxattr(0, 0, 0, 0, 0, 0);
1770 [smb_attr_cv_xattr_add_opt=yes],
1771 [smb_attr_cv_xattr_add_opt=no;LIBS=$old_LIBS])
1773 if test x"$smb_attr_cv_xattr_add_opt" = x"yes"; then
1774 AC_DEFINE(XATTR_ADD_OPT, 1, [xattr functions have additional options])
1778 # Check if we have extattr
1780 *freebsd4* | *dragonfly* )
1781 AC_DEFINE(BROKEN_EXTATTR, 1, [Does extattr API work])
1784 AC_CHECK_FUNCS(extattr_delete_fd extattr_delete_file extattr_delete_link)
1785 AC_CHECK_FUNCS(extattr_get_fd extattr_get_file extattr_get_link)
1786 AC_CHECK_FUNCS(extattr_list_fd extattr_list_file extattr_list_link)
1787 AC_CHECK_FUNCS(extattr_set_fd extattr_set_file extattr_set_link)
1797 AC_ARG_ENABLE(pie, [AS_HELP_STRING([--enable-pie], [Turn on pie support if available (default=yes)])])
1799 if test "x$enable_pie" != xno
1801 AC_CACHE_CHECK(for -pie and -fPIE, samba_cv_fpie,
1803 cat > conftest.c <<EOF
1805 main () { return 0;}
1807 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fPIE -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1815 if test x"${samba_cv_fpie}" = x"yes"
1822 # Assume non-shared by default and override below
1825 # these are the defaults, good for lots of systems
1830 SHLD="\${CC} \${CFLAGS}"
1831 PICFLAG="${PIE_CFLAGS}"
1835 # this bit needs to be modified for each OS that supports share libs
1836 # You need to specify how to create a shared library and
1837 # how to compile C code to produce PIC object files
1839 AC_MSG_CHECKING([ability to build shared libraries])
1841 # and these are for particular systems
1843 *linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux])
1845 if test "${ac_cv_gnu_ld_no_default_allow_shlib_undefined}" = "yes"; then
1846 LDSHFLAGS="-shared -Wl,-Bsymbolic -Wl,--allow-shlib-undefined"
1848 LDSHFLAGS="-shared -Wl,-Bsymbolic"
1850 DYNEXP="-Wl,--export-dynamic"
1852 SONAMEFLAG="-Wl,-soname="
1853 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1855 *solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
1859 if test "${GCC}" = "yes"; then
1861 SONAMEFLAG="-Wl,-soname="
1862 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
1867 ## ${CFLAGS} added for building 64-bit shared
1868 ## libs using Sun's Compiler
1869 LDSHFLAGS="-G \${CFLAGS}"
1871 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1872 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1874 *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
1877 SONAMEFLAG="-Wl,-h,"
1878 PICFLAG="-KPIC" # Is this correct for SunOS
1879 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1880 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1882 *netbsd* | *freebsd* | *dragonfly* )
1885 DYNEXP="-Wl,--export-dynamic"
1886 SONAMEFLAG="-Wl,-soname,"
1887 PICFLAG="-fPIC -DPIC"
1888 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1889 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1891 *openbsd*) BLDSHARED="true"
1893 DYNEXP="-Wl,-Bdynamic"
1894 SONAMEFLAG="-Wl,-soname,"
1896 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1897 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1899 *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
1901 *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
1905 LDSHFLAGS="-set_version sgi1.0 -shared"
1906 SONAMEFLAG="-soname "
1908 if test "${GCC}" = "yes"; then
1913 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1915 *aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
1917 LDSHFLAGS="-Wl,-G,-bexpall,-bbigtoc"
1918 DYNEXP="-Wl,-brtl,-bexpfull,-bbigtoc"
1920 # as AIX code is always position independent...
1921 # .po will just create compile warnings, use po.o:
1922 if test "${GCC}" != "yes"; then
1923 ## for funky AIX compiler using strncpy()
1924 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
1927 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
1928 AC_DEFINE(BROKEN_STRNLEN,1,[Does strnlen work correctly])
1929 AC_DEFINE(BROKEN_STRNDUP,1,[Does strndup work correctly])
1931 *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
1932 # Use special PIC flags for the native HP-UX compiler.
1935 LDSHFLAGS="-b -Wl,-B,symbolic,-b,-z"
1936 SONAMEFLAG="-Wl,+h "
1938 if test "${GCC}" = "yes"; then
1941 PICFLAG="+z +ESnolit"
1943 if test "$host_cpu" = "ia64"; then
1946 DYNEXP="-Wl,-E,+b/usr/local/lib/hpux32:/usr/lib/hpux32"
1949 DYNEXP="-Wl,-E,+b/usr/local/lib:/usr/lib"
1951 AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
1952 AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element])
1954 *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx])
1955 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1957 *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
1960 SONAMEFLAG="-Wl,-soname,"
1962 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1963 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1965 *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix])
1966 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1968 *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
1971 SONAMEFLAG="-Wl,-soname,"
1973 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1975 *next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
1976 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1978 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
1979 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1981 *sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1983 *-univel-*) if [ test "$GCC" != yes ]; then
1984 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1989 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
1991 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1994 *sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1995 if [ test "$GCC" != yes ]; then
1996 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1999 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
2001 *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
2006 *darwin*) AC_DEFINE(DARWINOS,1,[Whether the host os is Darwin/MacOSX])
2008 LDSHFLAGS="-dynamiclib -flat_namespace -undefined suppress"
2009 CFLAGS="$CFLAGS -fno-common"
2012 MODULE_EXPORTS="-exported_symbols_list \$(srcdir)/exports/modules-darwin.syms"
2014 # Since gcc doesn't fail on unrecognised options, the
2015 # PIE test incorrectly succeeds. Darwin gcc does not
2016 # actually support the PIE stuff.
2019 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
2023 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
2027 if test "$enable_shared" != "yes"; then
2031 if test "$enable_shared" = yes -a "${ac_cv_gnu_ld_version_script}" = yes; then
2032 DSO_EXPORTS=\$\(DSO_EXPORTS_CMD\)
2035 if test x"$BLDSHARED" = x"true" ; then
2036 LDFLAGS="$LDFLAGS -L./bin"
2039 AC_MSG_RESULT($BLDSHARED)
2041 AC_MSG_CHECKING([LDFLAGS])
2042 AC_MSG_RESULT([$LDFLAGS])
2043 AC_MSG_CHECKING([DYNEXP])
2044 AC_MSG_RESULT([$DYNEXP])
2046 #######################################################
2047 # test whether building a shared library actually works
2048 if test $BLDSHARED = true; then
2050 AC_MSG_CHECKING([SHLD])
2051 AC_MSG_RESULT([$SHLD])
2052 AC_MSG_CHECKING([LDSHFLAGS])
2053 AC_MSG_RESULT([$LDSHFLAGS])
2055 AC_MSG_CHECKING([SHLIBEXT])
2056 AC_MSG_RESULT([$SHLIBEXT])
2057 AC_MSG_CHECKING([SONAMEFLAG])
2058 AC_MSG_RESULT([$SONAMEFLAG])
2060 AC_MSG_CHECKING([PICFLAG])
2061 AC_MSG_RESULT([$PICFLAG])
2063 AC_MSG_CHECKING([NSSSONAMEVERSIONSUFFIX])
2064 AC_MSG_RESULT([$NSSSONAMEVERSIONSUFFIX])
2066 AC_CACHE_CHECK([whether building shared libraries actually works],
2067 [ac_cv_shlib_works],[
2068 # try building a trivial shared library
2069 ac_cv_shlib_works=no
2070 # The $SHLD and $LDSHFLAGS variables may contain references to other
2071 # variables so they need to be eval'ed.
2072 $CC $CPPFLAGS $CFLAGS $PICFLAG -c -o \
2073 shlib.o ${srcdir-.}/tests/shlib.c && \
2074 `eval echo $SHLD` `eval echo $LDSHFLAGS` -o "shlib.$SHLIBEXT" \
2075 shlib.o && ac_cv_shlib_works=yes
2076 rm -f "shlib.$SHLIBEXT" shlib.o
2079 if test $ac_cv_shlib_works = no; then
2084 if test x"$BLDSHARED" != x"true"; then
2085 LDSHFLAGS="shared-libraries-disabled"
2086 SONAMEFLAG="shared-libraries-disabled"
2087 NSSSONAMEVERSIONSUFFIX="shared-libraries-disabled"
2088 SHLD="shared-libraries-disabled"
2089 PICFLAG="${PIE_CFLAGS}"
2090 SHLIBEXT="shared_libraries_disabled"
2093 AC_MSG_CHECKING([used PICFLAG])
2094 AC_MSG_RESULT([$PICFLAG])
2096 AC_DEFINE_UNQUOTED(SHLIBEXT, "$SHLIBEXT", [Shared library extension])
2098 AC_LIBREPLACE_RUNTIME_LIB_PATH_VAR
2102 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
2103 AC_TRY_RUN([#include <stdio.h>
2104 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
2105 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
2106 if test x"$samba_cv_have_longlong" = x"yes"; then
2107 AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
2108 AC_CHECK_TYPE(intptr_t, unsigned long long)
2110 AC_CHECK_TYPE(intptr_t, unsigned long)
2114 # Check if the compiler supports the LL prefix on long long integers.
2117 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
2118 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
2119 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
2120 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
2121 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
2125 AC_CACHE_CHECK([for 64 bit time_t],samba_cv_SIZEOF_TIME_T,[
2126 AC_TRY_RUN([#include <time.h>
2127 main() { exit((sizeof(time_t) == 8) ? 0 : 1); }],
2128 samba_cv_SIZEOF_TIME_T=yes,samba_cv_SIZEOF_TIME_T=no,samba_cv_SIZEOF_TIME_T=cross)])
2129 if test x"$samba_cv_SIZEOF_TIME_T" = x"yes"; then
2130 AC_DEFINE(SIZEOF_TIME_T,8,[The size of the 'time_t' type])
2133 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
2134 AC_TRY_RUN([#include <stdio.h>
2135 #include <sys/stat.h>
2136 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
2137 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
2138 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
2139 AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
2142 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
2144 #if defined(HAVE_UNISTD_H)
2148 #include <sys/stat.h>
2149 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
2150 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
2151 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
2152 AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
2155 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
2157 #if defined(HAVE_UNISTD_H)
2161 #include <sys/stat.h>
2162 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
2163 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
2164 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
2165 AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
2168 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
2170 #if defined(HAVE_UNISTD_H)
2174 #include <sys/stat.h>
2175 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
2176 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
2177 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
2178 AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
2181 AC_CACHE_CHECK([for 64 bit dev_t],samba_cv_SIZEOF_DEV_T,[
2183 #if defined(HAVE_UNISTD_H)
2187 #include <sys/stat.h>
2188 main() { exit((sizeof(dev_t) == 8) ? 0 : 1); }],
2189 samba_cv_SIZEOF_DEV_T=yes,samba_cv_SIZEOF_DEV_T=no,samba_cv_SIZEOF_DEV_T=cross)])
2190 if test x"$samba_cv_SIZEOF_DEV_T" = x"yes"; then
2191 AC_DEFINE(SIZEOF_DEV_T,8,[The size of the 'dev_t' type])
2194 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
2196 #if defined(HAVE_UNISTD_H)
2200 #include <sys/stat.h>
2201 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
2202 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
2203 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
2204 AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
2207 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIR64,[
2209 #if defined(HAVE_UNISTD_H)
2212 #include <sys/types.h>
2213 #include <dirent.h>],
2215 samba_cv_HAVE_STRUCT_DIR64=yes,samba_cv_HAVE_STRUCT_DIR64=no)])
2216 if test x"$samba_cv_HAVE_STRUCT_DIR64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
2217 AC_DEFINE(HAVE_STRUCT_DIR64,1,[Whether the 'DIR64' abstract data type is available])
2220 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
2222 #if defined(HAVE_UNISTD_H)
2225 #include <sys/types.h>
2226 #include <dirent.h>],
2227 [struct dirent64 de;],
2228 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
2229 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
2230 AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
2233 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
2235 #if defined(HAVE_UNISTD_H)
2238 #include <sys/types.h>
2239 main() { dev_t dev; int i = major(dev); return 0; }],
2240 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
2241 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
2242 AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
2245 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
2247 #if defined(HAVE_UNISTD_H)
2250 #include <sys/types.h>
2251 main() { dev_t dev; int i = minor(dev); return 0; }],
2252 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
2253 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
2254 AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
2257 AC_CACHE_CHECK([for makedev macro],samba_cv_HAVE_MAKEDEV,[
2259 #if defined(HAVE_UNISTD_H)
2262 #include <sys/types.h>
2263 main() { dev_t dev = makedev(1,2); return 0; }],
2264 samba_cv_HAVE_MAKEDEV=yes,samba_cv_HAVE_MAKEDEV=no,samba_cv_HAVE_MAKEDEV=cross)])
2265 if test x"$samba_cv_HAVE_MAKEDEV" = x"yes"; then
2266 AC_DEFINE(HAVE_MAKEDEV,1,[Whether the macro for makedev is available])
2269 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
2270 AC_TRY_RUN([#include <stdio.h>
2271 main() { char c; c=250; exit((c > 0)?0:1); }],
2272 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
2273 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
2274 AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
2277 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
2278 AC_TRY_COMPILE([#include <sys/types.h>
2279 #include <sys/socket.h>
2280 #include <netinet/in.h>],
2281 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
2282 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
2283 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
2284 AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
2287 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
2288 AC_TRY_COMPILE([#include <sys/types.h>
2290 void seekdir(DIR *d, long loc) { return; }],[return 0;],
2291 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
2292 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
2293 AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
2296 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
2297 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
2298 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
2299 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
2300 AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
2303 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
2305 #include <sys/time.h>
2306 #include <unistd.h>], [struct timeval tv; return gettimeofday(&tv, NULL);],
2307 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,
2308 samba_cv_HAVE_GETTIMEOFDAY_TZ=no)])
2309 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
2310 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday takes a tz argument])
2313 if test x"$samba_cv_WITH_PROFILE" = x"yes"; then
2315 # On some systems (eg. Linux) librt can pull in libpthread. We
2316 # don't want this to happen because libpthreads changes signal delivery
2317 # semantics in ways we are not prepared for. This breaks Linux oplocks
2318 # which rely on signals.
2320 AC_LIBTESTFUNC(rt, clock_gettime,
2322 AC_DEFINE(HAVE_CLOCK_GETTIME, 1,
2323 [Whether clock_gettime is available])
2324 SMB_CHECK_CLOCK_ID(CLOCK_MONOTONIC)
2325 SMB_CHECK_CLOCK_ID(CLOCK_PROCESS_CPUTIME_ID)
2326 SMB_CHECK_CLOCK_ID(CLOCK_REALTIME)
2331 AC_CACHE_CHECK([for va_copy],samba_cv_HAVE_VA_COPY,[
2332 AC_TRY_LINK([#include <stdarg.h>
2333 va_list ap1,ap2;], [va_copy(ap1,ap2);],
2334 samba_cv_HAVE_VA_COPY=yes,
2335 samba_cv_HAVE_VA_COPY=no)])
2336 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
2337 AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
2339 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE___VA_COPY,[
2340 AC_TRY_LINK([#include <stdarg.h>
2341 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
2342 samba_cv_HAVE___VA_COPY=yes,
2343 samba_cv_HAVE___VA_COPY=no)])
2344 if test x"$samba_cv_HAVE___VA_COPY" = x"yes"; then
2345 AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
2349 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
2351 #include <sys/types.h>
2353 void foo(const char *format, ...) {
2358 va_start(ap, format);
2359 len = vsnprintf(buf, 0, format, ap);
2361 if (len != 5) exit(1);
2363 va_start(ap, format);
2364 len = vsnprintf(0, 0, format, ap);
2366 if (len != 5) exit(1);
2368 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
2372 main() { foo("hello"); }
2374 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
2375 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
2376 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
2379 AC_CACHE_CHECK([for broken readdir name],samba_cv_HAVE_BROKEN_READDIR_NAME,[
2380 AC_TRY_RUN([#include <sys/types.h>
2382 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
2383 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
2384 di->d_name[0] == 0) exit(0); exit(1);} ],
2385 samba_cv_HAVE_BROKEN_READDIR_NAME=yes,samba_cv_HAVE_BROKEN_READDIR_NAME=no,samba_cv_HAVE_BROKEN_READDIR_NAME=cross)])
2386 if test x"$samba_cv_HAVE_BROKEN_READDIR_NAME" = x"yes"; then
2387 AC_DEFINE(HAVE_BROKEN_READDIR_NAME,1,[Whether readdir() returns the wrong name offset])
2390 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
2391 AC_TRY_COMPILE([#include <sys/types.h>
2392 #include <utime.h>],
2393 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
2394 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
2395 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
2396 AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
2400 # Check utmp details, but only if our OS offers utmp.h
2401 if test x"$ac_cv_header_utmp_h" = x"yes"; then
2402 dnl utmp and utmpx come in many flavours
2403 dnl We need to check for many of them
2404 dnl But we don't need to do each and every one, because our code uses
2405 dnl mostly just the utmp (not utmpx) fields.
2407 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
2409 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
2410 AC_TRY_COMPILE([#include <sys/types.h>
2412 [struct utmp ut; ut.ut_name[0] = 'a';],
2413 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
2414 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
2415 AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
2418 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
2419 AC_TRY_COMPILE([#include <sys/types.h>
2421 [struct utmp ut; ut.ut_user[0] = 'a';],
2422 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
2423 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
2424 AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
2427 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
2428 AC_TRY_COMPILE([#include <sys/types.h>
2430 [struct utmp ut; ut.ut_id[0] = 'a';],
2431 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
2432 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
2433 AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
2436 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
2437 AC_TRY_COMPILE([#include <sys/types.h>
2439 [struct utmp ut; ut.ut_host[0] = 'a';],
2440 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
2441 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
2442 AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
2445 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
2446 AC_TRY_COMPILE([#include <sys/types.h>
2448 [struct utmp ut; time_t t; ut.ut_time = t;],
2449 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
2450 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
2451 AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
2454 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
2455 AC_TRY_COMPILE([#include <sys/types.h>
2457 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
2458 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
2459 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
2460 AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
2463 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
2464 AC_TRY_COMPILE([#include <sys/types.h>
2466 [struct utmp ut; ut.ut_type = 0;],
2467 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
2468 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
2469 AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
2472 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
2473 AC_TRY_COMPILE([#include <sys/types.h>
2475 [struct utmp ut; ut.ut_pid = 0;],
2476 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
2477 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
2478 AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
2481 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
2482 AC_TRY_COMPILE([#include <sys/types.h>
2484 [struct utmp ut; ut.ut_exit.e_exit = 0;],
2485 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
2486 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
2487 AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
2490 dnl Look for the IPv6 varient by preference. Many systems have both.
2491 AC_CACHE_CHECK([for ut_addr_v6 in utmp],samba_cv_HAVE_UT_UT_ADDR_V6,[
2492 AC_TRY_COMPILE([#include <sys/types.h>
2494 [struct utmp ut; ut.ut_addr_v6[0] = 0;],
2495 samba_cv_HAVE_UT_UT_ADDR_V6=yes,samba_cv_HAVE_UT_UT_ADDR_V6=no,samba_cv_HAVE_UT_UT_ADDR_V6=cross)])
2496 if test x"$samba_cv_HAVE_UT_UT_ADDR_V6" = x"yes"; then
2497 AC_DEFINE(HAVE_UT_UT_ADDR_V6,1,[Whether the utmp struct has a property ut_addr_v6])
2500 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
2501 AC_TRY_COMPILE([#include <sys/types.h>
2503 [struct utmp ut; ut.ut_addr = 0;],
2504 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
2505 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
2506 AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
2509 if test x$ac_cv_func_pututline = xyes ; then
2510 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
2511 AC_TRY_COMPILE([#include <sys/types.h>
2513 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
2514 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
2515 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
2516 AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
2520 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
2521 AC_TRY_COMPILE([#include <sys/types.h>
2522 #include <utmpx.h>],
2523 [struct utmpx ux; ux.ut_syslen = 0;],
2524 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
2525 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
2526 AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
2533 ICONV_LOOK_DIRS="/usr /usr/local /sw /opt"
2534 AC_ARG_WITH(libiconv,
2535 [AS_HELP_STRING([--with-libiconv=BASEDIR], [Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto)])],
2537 if test "$withval" = "no" ; then
2538 AC_MSG_ERROR([argument to --with-libiconv must be a directory])
2540 if test "$withval" != "yes" ; then
2542 ICONV_LOOK_DIRS="$withval"
2547 for i in $ICONV_LOOK_DIRS ; do
2550 save_LDFLAGS="$LDFLAGS"
2551 save_CPPFLAGS="$CPPFLAGS"
2553 iconv_current_LIBS=""
2554 iconv_current_LDFLAGS=""
2555 iconv_current_CPPFLAGS=""
2560 # This is here to handle -withval stuff for --with-libiconv
2561 # Perhaps we should always add a -L
2562 CPPFLAGS="$save_CPPFLAGS -I$i/include"
2564 # Check lib and lib32 library variants to cater for IRIX ABI-specific
2565 # installation paths. This gets a little tricky since we might have iconv
2566 # in both libiconv and in libc. In this case the jm_ICONV test will always
2567 # succeed when the header is found. To counter this, make sure the
2568 # library directory is there and check the ABI directory first (which
2569 # should be harmless on other systems.
2570 # For IA64 HPUX systems, the libs are located in lib/hpux32 instead of lib.
2571 for l in "lib32" "lib" "lib/hpux32"; do
2572 if test -d "$i/$l" ; then
2573 LDFLAGS="$save_LDFLAGS -L$i/$l"
2575 export LDFLAGS LIBS CPPFLAGS
2576 # Try to find iconv(3)
2578 if test x"$ICONV_FOUND" = "xyes" ; then
2585 if test x"$ICONV_FOUND" = "xyes" ; then
2586 iconv_current_LDFLAGS="-L$i/$libext"
2587 iconv_current_CPPFLAGS="-I$i/include"
2589 if test x"$jm_cv_lib_iconv" != x; then
2590 iconv_current_LIBS="$LIBS -l$jm_cv_lib_iconv"
2592 # We found iconv in libc.
2593 iconv_current_LIBS=""
2598 if test x"$ICONV_FOUND" = "xyes" ; then
2600 LDFLAGS="$save_LDFLAGS $iconv_current_LDFLAGS"
2601 CPPFLAGS="$save_CPPFLAGS $iconv_current_CPPFLAGS"
2602 LIBS="$save_LIBS $iconv_current_LIBS"
2603 export LDFLAGS LIBS CPPFLAGS
2605 default_dos_charset=no
2606 default_display_charset=no
2607 default_unix_charset=no
2609 # check for default dos charset name
2610 for j in CP850 IBM850 ; do
2612 default_dos_charset="$ICONV_CHARSET"
2613 if test x"$default_dos_charset" = x"$j"; then
2618 # check for default display charset name
2619 for j in ASCII 646 ; do
2621 default_display_charset="$ICONV_CHARSET"
2622 if test x"$default_display_charset" = x"$j"; then
2627 # check for default unix charset name
2628 for j in UTF-8 UTF8 ; do
2630 default_unix_charset="$ICONV_CHARSET"
2631 if test x"$default_unix_charset" = x"$j"; then
2636 if test "$default_dos_charset" != "no" -a \
2637 "$default_dos_charset" != "cross" -a \
2638 "$default_display_charset" != "no" -a \
2639 "$default_display_charset" != "cross" -a \
2640 "$default_unix_charset" != "no" -a \
2641 "$default_unix_charset" != "cross"
2643 samba_cv_HAVE_NATIVE_ICONV=yes
2645 if test "$default_dos_charset" = "cross" -o \
2646 "$default_display_charset" = "cross" -o \
2647 "$default_unix_charset" = "cross"
2649 samba_cv_HAVE_NATIVE_ICONV=cross
2651 samba_cv_HAVE_NATIVE_ICONV=no
2655 # At this point, we have a libiconv candidate. We know that
2656 # we have the right headers and libraries, but we don't know
2657 # whether it does the conversions we want. We can't test this
2658 # because we are cross-compiling. This is not necessarily a big
2659 # deal, since we can't guarantee that the results we get now will
2660 # match the results we get at runtime anyway.
2661 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"cross" ; then
2662 default_dos_charset="CP850"
2663 default_display_charset="ASCII"
2664 default_unix_charset="UTF-8"
2665 samba_cv_HAVE_NATIVE_ICONV=yes
2666 AC_MSG_WARN(assuming the libiconv in $iconv_current_LDFLAGS can convert)
2667 AC_MSG_WARN([$default_dos_charset, $default_display_charset and $default_unix_charset to UCS-16LE])
2670 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes" ; then
2672 CPPFLAGS=$save_CPPFLAGS
2673 LDFLAGS=$save_LDFLAGS
2676 if test x"$iconv_current_LIBS" != x; then
2677 LIBS="$LIBS $iconv_current_LIBS"
2680 # Add the flags we need to CPPFLAGS and LDFLAGS
2681 CPPFLAGS="$CPPFLAGS $iconv_current_CPPFLAGS"
2682 LDFLAGS="$LDFLAGS $iconv_current_LDFLAGS"
2684 # Turn the #defines into string literals
2685 default_dos_charset="\"$default_dos_charset\""
2686 default_display_charset="\"$default_display_charset\""
2687 default_unix_charset="\"$default_unix_charset\""
2689 AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
2690 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,$default_dos_charset,[Default dos charset name])
2691 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,$default_display_charset,[Default display charset name])
2692 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,$default_unix_charset,[Default unix charset name])
2697 # We didn't find a working iconv, so keep going
2700 # We only need to clean these up here for the next pass through the loop
2701 CPPFLAGS=$save_CPPFLAGS
2702 LDFLAGS=$save_LDFLAGS
2704 export LDFLAGS LIBS CPPFLAGS
2709 if test x"$ICONV_FOUND" = x"no" -o x"$samba_cv_HAVE_NATIVE_ICONV" != x"yes" ; then
2710 AC_MSG_WARN([Sufficient support for iconv function was not found.
2711 Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!])
2712 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,"ASCII",[Default dos charset name])
2713 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,"ASCII",[Default display charset name])
2714 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,"UTF8",[Default unix charset name])
2718 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
2720 #include <sys/types.h>
2723 #define F_GETLEASE 1025
2726 int fd = open("/dev/null", O_RDONLY);
2727 return fcntl(fd, F_GETLEASE, 0) == -1;
2730 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
2731 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
2732 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
2735 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
2737 #include <sys/types.h>
2741 #define F_NOTIFY 1026
2744 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
2747 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
2748 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
2749 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
2752 AC_CACHE_CHECK([for inotify support],samba_cv_HAVE_INOTIFY,[
2753 AC_CHECK_HEADERS(linux/inotify.h asm/unistd.h)
2754 AC_CHECK_FUNC(inotify_init)
2755 AC_HAVE_DECL(__NR_inotify_init, [#include <asm/unistd.h>])
2757 samba_cv_HAVE_INOTIFY=yes,
2758 samba_cv_HAVE_INOTIFY=no,
2759 samba_cv_HAVE_INOTIFY=cross)
2761 if test x"$ac_cv_func_inotify_init" = x"yes" -a x"$ac_cv_header_linux_inotify_h" = x"yes"; then
2762 AC_DEFINE(HAVE_INOTIFY,1,[Whether kernel has inotify support])
2765 #################################################
2766 # Check if FAM notifications are available. For FAM info, see
2767 # http://oss.sgi.com/projects/fam/
2768 # http://savannah.nongnu.org/projects/fam/
2770 [AS_HELP_STRING([--enable-fam], [Turn on FAM support (default=auto)])])
2772 if test x$enable_fam != xno; then
2773 AC_CHECK_HEADERS(fam.h, [samba_cv_HAVE_FAM_H=yes], [samba_cv_HAVE_FAM_H=no])
2774 if test x"$samba_cv_HAVE_FAM_H" = x"yes"; then
2775 # On IRIX, libfam requires libC, but other FAM implementations
2776 # might not need it.
2777 AC_CHECK_LIB(fam, FAMOpen2,
2778 [samba_cv_HAVE_LIBFAM=yes; SMB_FAM_LIBS="-lfam"],
2779 [samba_cv_HAVE_LIBFAM=no])
2781 if test x"$samba_cv_HAVE_LIBFAM" = x"no" ; then
2783 AC_CHECK_LIB_EXT(fam, samba_fam_xtra, FAMOpen2,
2784 [samba_cv_HAVE_LIBFAM=yes; SMB_FAM_LIBS="-lfam -lC"],
2785 [samba_cv_HAVE_LIBFAM=no])
2786 unset samba_fam_xtra
2790 if test x"$samba_cv_HAVE_LIBFAM" = x"yes" ; then
2791 default_shared_modules="$default_shared_modules vfs_notify_fam"
2792 AC_TRY_COMPILE([#include <fam.h>],
2793 [FAMCodes code = FAMChanged;],
2794 AC_DEFINE(HAVE_FAM_H_FAMCODES_TYPEDEF, 1,
2795 [Whether fam.h contains a typedef for enum FAMCodes]),
2799 if test x$enable_fam = xyes && test x"$samba_cv_HAVE_LIBFAM" != xyes ; then
2800 AC_MSG_ERROR(FAM support requested but FAM library not available )
2804 AC_SUBST(SMB_FAM_LIBS)
2806 #################################################
2807 # Check for DMAPI interfaces in libdm/libjfsdm/libxsdm
2809 SMB_CHECK_DMAPI([], AC_MSG_NOTICE(DMAPI support not present) )
2811 # Add TSM SM VFS module only if there are both GPFS and DMAPI support
2812 # Theoretically it should work with AIX JFS2 too but this needs testing
2813 if test x"$samba_cv_HAVE_GPFS" = x"yes" && test x"$samba_dmapi_libs" != x"" ; then
2814 default_shared_modules="$default_shared_modules vfs_tsmsm"
2817 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
2819 #include <sys/types.h>
2822 #include <sys/file.h>
2824 #define LOCK_MAND 32
2825 #define LOCK_READ 64
2828 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
2831 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
2832 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
2833 AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
2837 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
2838 AC_TRY_COMPILE([#include <sys/types.h>
2839 #include <fcntl.h>],
2840 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
2841 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
2842 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
2843 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
2846 #################################################
2847 # Check for POSIX capability support
2849 AC_CHECK_HEADER(sys/capability.h, [samba_cv_HAVE_SYS_CAPABILITY_H=yes;
2850 AC_DEFINE(HAVE_SYS_CAPABILITY_H, 1, Whether sys/capability.h is present)],
2853 if test x"$samba_cv_HAVE_SYS_CAPABILITY_H" = x"yes"; then
2856 AC_LIBTESTFUNC(cap, cap_get_proc)
2858 AC_CACHE_CHECK([for POSIX capabilities],
2859 samba_cv_HAVE_POSIX_CAPABILITIES,
2862 #include <sys/types.h>
2863 #include <sys/capability.h>
2866 cap_value_t vals[1];
2867 if (!(cap = cap_get_proc()))
2869 vals[0] = CAP_CHOWN;
2870 cap_set_flag(cap, CAP_INHERITABLE, 1, vals, CAP_CLEAR);
2874 samba_cv_HAVE_POSIX_CAPABILITIES=yes,
2875 samba_cv_HAVE_POSIX_CAPABILITIES=no,
2876 samba_cv_HAVE_POSIX_CAPABILITIES=cross)
2879 if test x"$samba_cv_HAVE_POSIX_CAPABILITIES" = x"yes"; then
2880 AC_DEFINE(HAVE_POSIX_CAPABILITIES, 1,
2881 [Whether POSIX capabilities are available])
2889 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
2890 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
2893 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
2894 AC_TRY_COMPILE([#include <sys/types.h>
2895 #if defined(HAVE_RPC_RPC_H)
2896 #include <rpc/rpc.h>
2899 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
2900 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
2901 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
2904 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
2905 AC_TRY_COMPILE([#include <sys/types.h>
2906 #if defined(HAVE_RPC_RPC_H)
2907 #include <rpc/rpc.h>
2910 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
2911 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
2912 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
2915 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
2916 AC_TRY_COMPILE([#include <sys/types.h>
2917 #if defined(HAVE_RPC_RPC_H)
2918 #include <rpc/rpc.h>
2921 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
2922 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
2923 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
2926 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
2927 AC_TRY_COMPILE([#include <sys/types.h>
2928 #if defined(HAVE_RPC_RPC_H)
2929 #include <rpc/rpc.h>
2932 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
2933 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
2934 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
2938 dnl Some systems (SCO) have a problem including
2939 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
2940 dnl as a #define in <prot.h> and as part of an enum
2944 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
2945 AC_TRY_COMPILE([#include <sys/types.h>
2946 #ifdef HAVE_SYS_SECURITY_H
2947 #include <sys/security.h>
2949 #endif /* HAVE_SYS_SECURITY_H */
2950 #if defined(HAVE_RPC_RPC_H)
2951 #include <rpc/rpc.h>
2954 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
2955 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
2956 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
2959 AC_MSG_CHECKING([for test routines])
2960 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
2962 AC_MSG_ERROR([cant find test code. Aborting config]),
2963 AC_MSG_WARN([cannot run when cross-compiling]))
2965 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
2966 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
2967 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
2968 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
2969 AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
2972 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
2973 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
2974 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
2975 samba_cv_HAVE_WORKING_AF_LOCAL=no,
2976 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
2977 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
2979 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
2982 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
2983 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
2984 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
2985 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
2986 AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
2989 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
2990 AC_TRY_RUN([#include <stdlib.h>
2991 #include <sys/types.h>
2992 #include <sys/stat.h>
2996 char tpl[20]="/tmp/test.XXXXXX";
2997 int fd = mkstemp(tpl);
2998 if (fd == -1) exit(1);
3000 if (fstat(fd, &st) != 0) exit(1);
3001 if ((st.st_mode & 0777) != 0600) exit(1);
3004 samba_cv_HAVE_SECURE_MKSTEMP=yes,
3005 samba_cv_HAVE_SECURE_MKSTEMP=no,
3006 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
3007 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
3008 AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
3011 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
3012 AC_TRY_RUN([#include "${srcdir-.}/tests/os2_delete.c"],
3013 [samba_cv_HAVE_BROKEN_READDIR=no],
3014 [samba_cv_HAVE_BROKEN_READDIR=yes],
3015 [samba_cv_HAVE_BROKEN_READDIR="assuming not"])])
3017 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
3018 AC_CACHE_CHECK([for replacing readdir],samba_cv_REPLACE_READDIR,[
3020 #include "${srcdir-.}/lib/repdir.c"
3021 #include "${srcdir-.}/tests/os2_delete.c"],
3022 samba_cv_REPLACE_READDIR=yes,samba_cv_REPLACE_READDIR=no)])
3025 if test x"$samba_cv_REPLACE_READDIR" = x"yes"; then
3026 AC_DEFINE(REPLACE_READDIR,1,[replace readdir])
3029 SMB_CHECK_SYSCONF(_SC_NGROUPS_MAX)
3030 SMB_CHECK_SYSCONF(_SC_NPROC_ONLN)
3031 SMB_CHECK_SYSCONF(_SC_NPROCESSORS_ONLN)
3032 SMB_CHECK_SYSCONF(_SC_PAGESIZE)
3033 AC_CHECK_FUNCS(getpagesize)
3035 dnl test for getifaddrs and freeifaddrs
3036 AC_CACHE_CHECK([for getifaddrs and freeifaddrs],samba_cv_HAVE_GETIFADDRS,[
3038 #include <sys/socket.h>
3039 #include <sys/types.h>
3040 #include <netinet/in.h>
3041 #include <arpa/inet.h>
3042 #include <ifaddrs.h>
3043 #include <netdb.h>],
3045 struct ifaddrs *ifp = NULL;
3046 int ret = getifaddrs (&ifp);
3049 samba_cv_HAVE_GETIFADDRS=yes,samba_cv_HAVE_GETIFADDRS=no)])
3050 if test x"$samba_cv_HAVE_GETIFADDRS" = x"yes"; then
3051 AC_DEFINE(HAVE_GETIFADDRS,1,[Whether the system has getifaddrs])
3052 AC_DEFINE(HAVE_FREEIFADDRS,1,[Whether the system has freeifaddrs])
3056 # look for a method of finding the list of network interfaces
3058 AC_CACHE_CHECK([for iface getifaddrs],samba_cv_HAVE_IFACE_GETIFADDRS,[
3059 SAVE_CPPFLAGS="$CPPFLAGS"
3060 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
3062 #define NO_CONFIG_H 1
3063 #define HAVE_IFACE_GETIFADDRS 1
3064 #define AUTOCONF_TEST 1
3065 #include "${srcdir-.}/lib/replace/replace.c"
3066 #include "${srcdir-.}/lib/interfaces.c"],
3067 samba_cv_HAVE_IFACE_GETIFADDRS=yes,samba_cv_HAVE_IFACE_GETIFADDRS=no,samba_cv_HAVE_IFACE_GETIFADDRS=cross)])
3068 CPPFLAGS="$SAVE_CPPFLAGS"
3069 if test x"$samba_cv_HAVE_IFACE_GETIFADDRS" = x"yes"; then
3070 iface=yes;AC_DEFINE(HAVE_IFACE_GETIFADDRS,1,[Whether iface getifaddrs is available])
3073 if test $iface = no; then
3074 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
3075 SAVE_CPPFLAGS="$CPPFLAGS"
3076 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
3078 #define NO_CONFIG_H 1
3079 #define HAVE_IFACE_IFCONF 1
3080 #define AUTOCONF_TEST 1
3081 #define SOCKET_WRAPPER_NOT_REPLACE
3082 #include "${srcdir-.}/lib/replace/replace.c"
3083 #include "${srcdir-.}/lib/interfaces.c"],
3084 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
3085 CPPFLAGS="$SAVE_CPPFLAGS"
3086 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
3087 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
3091 if test $iface = no; then
3092 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
3093 SAVE_CPPFLAGS="$CPPFLAGS"
3094 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
3096 #define NO_CONFIG_H 1
3097 #define HAVE_IFACE_IFREQ 1
3098 #define AUTOCONF_TEST 1
3099 #define SOCKET_WRAPPER_NOT_REPLACE
3100 #include "${srcdir-.}/lib/replace/replace.c"
3101 #include "${srcdir-.}/lib/replace/getaddrinfo.c"
3102 #include "${srcdir-.}/lib/replace/snprintf.c"
3103 #include "${srcdir-.}/lib/interfaces.c"],
3104 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
3105 CPPFLAGS="$SAVE_CPPFLAGS"
3106 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
3107 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
3111 if test $iface = no; then
3112 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
3113 SAVE_CPPFLAGS="$CPPFLAGS"
3114 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
3116 #define NO_CONFIG_H 1
3117 #define HAVE_IFACE_AIX 1
3118 #define AUTOCONF_TEST 1
3119 #undef _XOPEN_SOURCE_EXTENDED
3120 #define SOCKET_WRAPPER_NOT_REPLACE
3121 #include "${srcdir-.}/lib/replace/replace.c"
3122 #include "${srcdir-.}/lib/replace/snprintf.c"
3123 #include "${srcdir-.}/lib/interfaces.c"],
3124 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
3125 CPPFLAGS="$SAVE_CPPFLAGS"
3126 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
3127 iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
3132 AC_CACHE_CHECK([for ipv6 support],samba_cv_HAVE_IPV6,[
3134 #include <stdlib.h> /* for NULL */
3135 #include <sys/socket.h>
3136 #include <sys/types.h>
3137 #include <netdb.h>],
3139 struct sockaddr_storage sa_store;
3140 struct addrinfo *ai = NULL;
3141 struct in6_addr in6addr;
3142 int s = socket(AF_INET6, SOCK_STREAM, 0);
3143 int ret = getaddrinfo(NULL, NULL, NULL, &ai);
3145 const char *es = gai_strerror(ret);
3149 samba_cv_HAVE_IPV6=yes,samba_cv_HAVE_IPV6=no)])
3150 if test x"$samba_cv_HAVE_IPV6" = x"yes"; then
3151 AC_DEFINE(HAVE_IPV6,1,[Whether the system has IPv6 support])
3154 ################################################
3155 # look for a method of setting the effective uid
3157 if test $seteuid = no; then
3158 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
3160 #define AUTOCONF_TEST 1
3161 #define USE_SETRESUID 1
3162 #include "confdefs.h"
3163 #include "${srcdir-.}/lib/util_sec.c"],
3164 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
3165 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
3166 seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
3171 if test $seteuid = no; then
3172 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
3174 #define AUTOCONF_TEST 1
3175 #define USE_SETREUID 1
3176 #include "confdefs.h"
3177 #include "${srcdir-.}/lib/util_sec.c"],
3178 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
3179 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
3180 seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
3184 if test $seteuid = no; then
3185 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
3187 #define AUTOCONF_TEST 1
3188 #define USE_SETEUID 1
3189 #include "confdefs.h"
3190 #include "${srcdir-.}/lib/util_sec.c"],
3191 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
3192 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
3193 seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
3197 if test $seteuid = no; then
3198 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
3200 #define AUTOCONF_TEST 1
3201 #define USE_SETUIDX 1
3202 #include "confdefs.h"
3203 #include "${srcdir-.}/lib/util_sec.c"],
3204 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
3205 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
3206 seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
3210 AC_CACHE_CHECK([for the Darwin initgroups system call],
3211 samba_cv_DARWIN_INITGROUPS,
3213 #include <sys/syscall.h>
3216 [ syscall(SYS_initgroups, 16, NULL, NULL, 0); ],
3217 samba_cv_DARWIN_INITGROUPS=yes,
3218 samba_cv_DARWIN_INITGROUPS=no)
3221 if test x"$samba_cv_DARWIN_INITGROUPS" = x"yes" ; then
3222 AC_DEFINE(HAVE_DARWIN_INITGROUPS, 1,
3223 [Whether to use the Darwin-specific initgroups system call])
3226 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
3227 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
3228 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
3229 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
3230 AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
3233 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
3234 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
3235 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
3236 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
3237 AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
3240 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
3241 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
3242 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
3243 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
3244 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
3249 dnl Don't check for 64 bit fcntl locking if we know that the
3250 dnl glibc2.1 broken check has succeeded.
3253 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
3255 #if defined(HAVE_UNISTD_H)
3265 #ifdef HAVE_SYS_FCNTL_H
3266 #include <sys/fcntl.h>
3268 main() { struct flock64 fl64;
3269 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
3275 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
3277 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
3278 AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
3282 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
3283 AC_TRY_COMPILE([#include <sys/types.h>
3284 #include <sys/stat.h>
3285 #include <unistd.h>],
3286 [struct stat st; st.st_blocks = 0;],
3287 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
3288 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
3289 AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
3292 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
3293 AC_TRY_COMPILE([#include <sys/types.h>
3294 #include <sys/stat.h>
3295 #include <unistd.h>],
3296 [struct stat st; st.st_blksize = 0;],
3297 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
3298 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
3299 AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
3302 AC_CACHE_CHECK([for st_flags in struct stat],
3303 samba_cv_HAVE_STAT_ST_FLAGS,
3305 AC_TRY_COMPILE([#include <sys/types.h>
3306 #include <sys/stat.h>
3307 #include <unistd.h>],
3308 [struct stat st; st.st_flags = 0;],
3309 samba_cv_HAVE_STAT_ST_FLAGS=yes,
3310 samba_cv_HAVE_STAT_ST_FLAGS=no,
3311 samba_cv_HAVE_STAT_ST_FLAGS=cross)
3314 if test x"$samba_cv_HAVE_STAT_ST_FLAGS" = x"yes"; then
3315 AC_DEFINE(HAVE_STAT_ST_FLAGS, 1,
3316 [Whether the stat struct has a st_flags member])
3319 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
3321 #include <sys/types.h>
3322 #include <sys/acl.h>
3323 #if defined(HAVE_RPCSVC_NIS_H)
3324 #include <rpcsvc/nis.h>
3327 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
3328 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
3329 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
3332 AC_CACHE_CHECK([if the realpath function allows a NULL argument],samba_cv_REALPATH_TAKES_NULL,[
3337 char *newpath = realpath("/tmp", NULL);
3338 exit ((newpath != NULL) ? 0 : 1);
3341 samba_cv_REALPATH_TAKES_NULL=yes,samba_cv_REALPATH_TAKES_NULL=no,samba_cv_REALPATH_TAKES_NULL=cross)])
3342 if test x"$samba_cv_REALPATH_TAKES_NULL" = x"yes"; then
3343 AC_DEFINE(REALPATH_TAKES_NULL,1,[Whether the realpath function allows NULL])
3346 #################################################
3347 # check for AFS clear-text auth support
3348 samba_cv_WITH_AFS=no
3349 AC_MSG_CHECKING(whether to use AFS clear-text auth)
3351 [AS_HELP_STRING([--with-afs], [Include AFS clear-text auth support (default=no)])],
3352 [ case "$withval" in
3354 AC_MSG_RESULT($withval)
3355 samba_cv_WITH_AFS=$withval
3364 ####################################################
3365 # check for Linux-specific AFS fake-kaserver support
3366 samba_cv_WITH_FAKE_KASERVER=no
3367 AC_MSG_CHECKING(whether to use AFS fake-kaserver)
3368 AC_ARG_WITH(fake-kaserver,
3369 [AS_HELP_STRING([--with-fake-kaserver], [Include AFS fake-kaserver support (default=no)])],
3370 [ case "$withval" in
3372 AC_MSG_RESULT($withval)
3373 samba_cv_WITH_FAKE_KASERVER=$withval
3382 #################################################
3383 # decide whether we can support WITH_AFS and / or WITH_FAKE_KASERVER
3384 if test x"$samba_cv_WITH_AFS" != x"no" ||
3385 test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then
3387 # see if this box has the afs-headers in /usr/include/afs
3388 AC_MSG_CHECKING(for /usr/include/afs)
3389 if test -d /usr/include/afs; then
3390 CFLAGS="$CFLAGS -I/usr/include/afs"
3391 CPPFLAGS="$CPPFLAGS -I/usr/include/afs"
3399 AC_CHECK_HEADERS(afs.h afs/afs.h)
3400 if test x"$ac_cv_header_afs_h" = x"no" && test x"$ac_cv_header_afs_afs_h" = x"no"; then
3401 if test x"$samba_cv_WITH_FAKE_KASERVER" = x"auto" ||
3402 test x"$samba_cv_WITH_AFS" = x"auto"; then
3403 AC_MSG_WARN([AFS cannot be supported without afs.h])
3405 AC_MSG_ERROR([AFS cannot be supported without afs.h])
3408 have_afs_headers=yes
3412 if test x"$samba_cv_WITH_FAKE_KASERVER" != x"no" && test x"$have_afs_headers" = x"yes"; then
3413 AC_DEFINE(WITH_FAKE_KASERVER,1,[Whether to include AFS fake-kaserver support])
3416 #################################################
3417 # check whether to compile AFS/NT ACL mapping module
3418 samba_cv_WITH_VFS_AFSACL=no
3419 AC_MSG_CHECKING(whether to use AFS ACL mapping module)
3420 AC_ARG_WITH(vfs-afsacl,
3421 [AS_HELP_STRING([--with-vfs-afsacl], [Include AFS to NT ACL mapping module (default=no)])],
3422 [ case "$withval" in
3424 AC_MSG_RESULT($withval)
3425 samba_cv_WITH_VFS_AFSACL=yes
3434 if test x"$samba_cv_WITH_VFS_AFSACL" = x"yes"; then
3435 default_shared_modules="$default_shared_modules vfs_afsacl"
3438 if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then
3439 AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
3442 #################################################
3443 # check for the DFS clear-text auth system
3444 AC_MSG_CHECKING(whether to use DFS clear-text auth)
3446 [AS_HELP_STRING([--with-dce-dfs], [Include DCE/DFS clear-text auth support (default=no)])],
3447 [ case "$withval" in
3450 AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
3459 ########################################################
3460 # Compile with LDAP support?
3462 with_ldap_support=auto
3463 AC_MSG_CHECKING([for LDAP support])
3466 [AS_HELP_STRING([--with-ldap], [LDAP support (default yes)])],
3467 [ case "$withval" in
3469 with_ldap_support=$withval
3473 AC_MSG_RESULT($with_ldap_support)
3478 AC_SUBST(SMBLDAPUTIL)
3482 if test x"$with_ldap_support" != x"no"; then
3484 ##################################################################
3485 # first test for ldap.h and lber.h
3486 # (ldap.h is required for this test)
3487 AC_CHECK_HEADERS(ldap.h lber.h)
3489 if test x"$ac_cv_header_ldap_h" != x"yes"; then
3490 if test x"$with_ldap_support" = x"yes"; then
3491 AC_MSG_ERROR(ldap.h is needed for LDAP support)
3493 AC_MSG_WARN(ldap.h is needed for LDAP support)
3496 with_ldap_support=no
3499 ##################################################################
3500 # HP/UX does not have ber_tag_t in lber.h - it must be configured as
3501 # unsigned int in include/includes.h
3504 AC_MSG_WARN(ber_tag_t is needed for LDAP support)
3505 AC_MSG_WARN(ber_tag_t must be configured in includes.h for hpux)
3506 with_ldap_support=yes
3509 AC_CHECK_TYPE(ber_tag_t,,,[#include <lber.h>])
3510 if test x"$ac_cv_type_ber_tag_t" != x"yes"; then
3511 if test x"$with_ldap_support" = x"yes"; then
3512 AC_MSG_ERROR(ber_tag_t is needed for LDAP support)
3514 AC_MSG_WARN(ber_tag_t is needed for LDAP support)
3516 with_ldap_support=no
3522 if test x"$with_ldap_support" != x"no"; then
3525 ##################################################################
3526 # we might need the lber lib on some systems. To avoid link errors
3527 # this test must be before the libldap test
3528 AC_CHECK_LIB_EXT(lber, LDAP_LIBS, ber_scanf)
3530 ########################################################
3531 # If ber_sockbuf_add_io() is available we can add
3532 # SASL wrapping hooks
3533 AC_CHECK_FUNC_EXT(ber_sockbuf_add_io,$LDAP_LIBS)
3535 AC_CACHE_CHECK([for LDAP_OPT_SOCKBUF],samba_cv_HAVE_LDAP_OPT_SOCKBUF,[
3536 AC_TRY_COMPILE([#include <ldap.h>],
3537 [int val = LDAP_OPT_SOCKBUF;],
3538 samba_cv_HAVE_LDAP_OPT_SOCKBUF=yes,
3539 samba_cv_HAVE_LDAP_OPT_SOCKBUF=no)])
3541 if test x"$ac_cv_func_ext_ber_sockbuf_add_io" = x"yes" -a \
3542 x"$samba_cv_HAVE_LDAP_OPT_SOCKBUF" = x"yes"; then
3543 AC_DEFINE(HAVE_LDAP_SASL_WRAPPING, 1, [Support for SASL wrapping])
3546 #######################################################
3547 # if we have LBER_OPT_LOG_PRINT_FN, we can intercept
3548 # ldap logging and print it out in the samba logs
3549 AC_CACHE_CHECK([for LBER_OPT_LOG_PRINT_FN],
3550 samba_cv_HAVE_LBER_OPT_LOG_PRINT_FN,
3551 [AC_TRY_COMPILE([#include <lber.h>],
3552 [int val = LBER_OPT_LOG_PRINT_FN;],
3553 samba_cv_HAVE_LBER_OPT_LOG_PRINT_FN=yes,
3554 samba_cv_HAVE_LBER_OPT_LOG_PRINT_FN=no)])
3556 if test x"$samba_cv_HAVE_LBER_OPT_LOG_PRINT_FN" = x"yes"; then
3557 AC_DEFINE(HAVE_LBER_LOG_PRINT_FN, 1,
3558 [Support for LDAP/LBER logging interception])
3561 ########################################################
3562 # now see if we can find the ldap libs in standard paths
3563 AC_CHECK_LIB_EXT(ldap, LDAP_LIBS, ldap_init)
3565 ########################################################
3566 # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
3567 # Check found in pam_ldap 145.
3568 AC_CHECK_FUNC_EXT(ldap_set_rebind_proc,$LDAP_LIBS)
3570 LIBS="$LIBS $LDAP_LIBS"
3571 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, smb_ldap_cv_ldap_set_rebind_proc, [
3575 [ldap_set_rebind_proc(0, 0, 0);],
3576 [smb_ldap_cv_ldap_set_rebind_proc=3],
3577 [smb_ldap_cv_ldap_set_rebind_proc=2]
3581 AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $smb_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
3583 AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS)
3585 if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes"; then
3586 AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])
3587 CPPFLAGS="$CPPFLAGS -DLDAP_DEPRECATED"
3588 default_static_modules="$default_static_modules pdb_ldap idmap_ldap";
3589 default_shared_modules="$default_shared_modules";
3590 SMBLDAP="lib/smbldap.o"
3591 SMBLDAPUTIL="lib/smbldap_util.o"
3592 with_ldap_support=yes
3593 AC_MSG_CHECKING(whether LDAP support is used)
3596 if test x"$with_ldap_support" = x"yes"; then
3597 AC_MSG_ERROR(libldap is needed for LDAP support)
3599 AC_MSG_WARN(libldap is needed for LDAP support)
3603 with_ldap_support=no
3609 #################################################
3610 # active directory support
3612 with_ads_support=auto
3613 AC_MSG_CHECKING([for Active Directory and krb5 support])
3616 [AS_HELP_STRING([--with-ads], [Active Directory support (default auto)])],
3617 [ case "$withval" in
3619 with_ads_support="$withval"
3623 AC_MSG_RESULT($with_ads_support)
3628 if test x"$with_ldap_support" != x"yes"; then
3630 if test x"$with_ads_support" = x"yes"; then
3631 AC_MSG_ERROR(Active Directory Support requires LDAP support)
3632 elif test x"$with_ads_support" = x"auto"; then
3633 AC_MSG_WARN(Disabling Active Directory support (requires LDAP support))
3639 # Check to see whether there is enough LDAP functionality to be able
3640 # to build AD support.
3642 # HPUX only has ldap_init; ok, we take care of this in smbldap.c
3645 AC_CHECK_FUNC_EXT(ldap_init,$LDAP_LIBS)
3647 if test x"$ac_cv_func_ext_ldap_init" != x"yes"; then
3648 if test x"$with_ads_support" = x"yes"; then
3649 AC_MSG_ERROR(Active Directory support on HPUX requires ldap_init)
3650 elif test x"$with_ads_support" = x"auto"; then
3651 AC_MSG_WARN(Disabling Active Directory support (requires ldap_init on HPUX))
3657 AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS)
3659 if test x"$ac_cv_func_ext_ldap_initialize" != x"yes"; then
3660 if test x"$with_ads_support" = x"yes"; then
3661 AC_MSG_ERROR(Active Directory support requires ldap_initialize)
3662 elif test x"$with_ads_support" = x"auto"; then
3663 AC_MSG_WARN(Disabling Active Directory support (requires ldap_initialize))
3671 AC_CHECK_FUNC_EXT(ldap_add_result_entry,$LDAP_LIBS)
3673 if test x"$ac_cv_func_ext_ldap_add_result_entry" != x"yes"; then
3674 if test x"$with_ads_support" = x"yes"; then
3675 AC_MSG_ERROR(Active Directory support requires ldap_add_result_entry)
3676 elif test x"$with_ads_support" = x"auto"; then
3677 AC_MSG_WARN(Disabling Active Directory support (requires ldap_add_result_entry))
3684 if test x"$with_ads_support" != x"no"; then
3686 # Do no harm to the values of CFLAGS and LIBS while testing for
3689 if test x$FOUND_KRB5 = x"no"; then
3690 #################################################
3691 # check for location of Kerberos 5 install
3692 AC_MSG_CHECKING(for kerberos 5 install path)
3694 [AS_HELP_STRING([--with-krb5=base-dir], [Locate Kerberos 5 support (default=/usr)])],
3695 [ case "$withval" in
3697 AC_MSG_RESULT(no krb5-path given)
3704 AC_MSG_RESULT($withval)
3705 KRB5_CFLAGS="-I$withval/include"
3706 KRB5_CPPFLAGS="-I$withval/include"
3707 KRB5_LDFLAGS="-L$withval/lib"
3709 if test -x "$withval/bin/krb5-config"; then
3710 KRB5CONFIG=$withval/bin/krb5-config
3714 AC_MSG_RESULT(no krb5-path given)
3718 #################################################
3719 # check for krb5-config from recent MIT and Heimdal kerberos 5
3720 AC_PATH_PROG(KRB5CONFIG, krb5-config)
3721 AC_MSG_CHECKING(for working krb5-config)
3722 if test -x "$KRB5CONFIG"; then
3723 ac_save_CFLAGS=$CFLAGS
3724 CFLAGS="";export CFLAGS
3725 ac_save_LDFLAGS=$LDFLAGS
3726 LDFLAGS="";export LDFLAGS
3727 KRB5_LIBS="`$KRB5CONFIG --libs gssapi`"
3728 KRB5_LDFLAGS="`$KRB5CONFIG --libs gssapi | sed s/-lgss.*//`"
3729 KRB5_CFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`"
3730 KRB5_CPPFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`"
3731 CFLAGS=$ac_save_CFLAGS;export CFLAGS
3732 LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS
3736 AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
3739 if test x$FOUND_KRB5 = x"no"; then
3740 #################################################
3741 # see if this box has the SuSE location for the heimdal krb implementation
3742 AC_MSG_CHECKING(for /usr/include/heimdal)
3743 if test -d /usr/include/heimdal; then
3744 if test -f /usr/lib/heimdal/lib/libkrb5.a; then
3745 KRB5_CFLAGS="-I/usr/include/heimdal"
3746 KRB5_CPPFLAGS="-I/usr/include/heimdal"
3747 KRB5_LDFLAGS="-L/usr/lib/heimdal/lib"
3751 KRB5_CFLAGS="-I/usr/include/heimdal"
3752 KRB5_CPPFLAGS="-I/usr/include/heimdal"
3761 if test x$FOUND_KRB5 = x"no"; then
3762 #################################################
3763 # see if this box has the RedHat location for kerberos
3764 AC_MSG_CHECKING(for /usr/kerberos)
3765 if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
3766 KRB5_LDFLAGS="-L/usr/kerberos/lib"
3767 KRB5_CFLAGS="-I/usr/kerberos/include"
3768 KRB5_CPPFLAGS="-I/usr/kerberos/include"
3776 if test x$FOUND_KRB5 = x"no"; then
3777 #################################################
3778 # see if this box has the OpenBSD location for heimdal krb5
3779 AC_MSG_CHECKING(for /usr/include/kerberosV)
3780 if test -d /usr/include/kerberosV; then
3781 KRB5_CPPFLAGS="-I/usr/include/kerberosV"
3782 KRB5_LIBS="-lcrypto"
3790 ac_save_CFLAGS=$CFLAGS
3791 ac_save_CPPFLAGS=$CPPFLAGS
3792 ac_save_LDFLAGS=$LDFLAGS
3794 CFLAGS="$KRB5_CFLAGS $CFLAGS"
3795 CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS"
3796 LDFLAGS="$KRB5_LDFLAGS $LDFLAGS"
3798 KRB5_LIBS="$KRB5_LDFLAGS $KRB5_LIBS"
3800 # now check for krb5.h. Some systems have the libraries without the headers!
3801 # note that this check is done here to allow for different kerberos
3803 AC_CHECK_HEADERS(krb5.h)
3805 if test x"$ac_cv_header_krb5_h" = x"no"; then
3807 # Give a warning if AD support was not explicitly requested,
3808 # i.e with_ads_support = auto, otherwise die with an error.
3810 if test x"$with_ads_support" = x"yes"; then
3811 AC_MSG_ERROR([Active Directory cannot be supported without krb5.h])
3813 AC_MSG_WARN([Active Directory cannot be supported without krb5.h])
3816 # Turn off AD support and restore CFLAGS and LIBS variables
3818 with_ads_support="no"
3820 CFLAGS=$ac_save_CFLAGS
3821 CPPFLAGS=$ac_save_CPPFLAGS
3822 LDFLAGS=$ac_save_LDFLAGS
3824 AC_CHECK_HEADERS(krb5/locate_plugin.h)
3825 if test x"$ac_cv_header_krb5_locate_plugin_h" = x"yes"; then
3826 WINBIND_KRB5_LOCATOR="bin/winbind_krb5_locator.$SHLIBEXT"
3827 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $WINBIND_KRB5_LOCATOR"
3831 # Now we have determined whether we really want ADS support
3833 if test x"$with_ads_support" != x"no"; then
3838 # now check for gssapi headers. This is also done here to allow for
3839 # different kerberos include paths
3840 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h com_err.h)
3842 ##################################################################
3843 # we might need the k5crypto and com_err libraries on some systems
3844 AC_CHECK_LIB_EXT(com_err, KRB5_LIBS, _et_list)
3845 AC_CHECK_LIB_EXT(k5crypto, KRB5_LIBS, krb5_encrypt_data)
3848 AC_CHECK_LIB_EXT(crypto, KRB5_LIBS, des_set_key)
3849 AC_CHECK_LIB_EXT(asn1, KRB5_LIBS, copy_Authenticator)
3850 AC_CHECK_LIB_EXT(roken, KRB5_LIBS, roken_getaddrinfo_hostspec)
3852 # Heimdal checks. On static Heimdal gssapi must be linked before krb5.
3853 AC_CHECK_LIB_EXT(gssapi, KRB5_LIBS, gss_display_status,[],[],have_gssapi=yes)
3855 ########################################################
3856 # now see if we can find the krb5 libs in standard paths
3857 # or as specified above
3858 AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_mk_req_extended)
3859 AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_kt_compare)
3861 ########################################################
3862 # now see if we can find the gssapi libs in standard paths
3863 if test x"$have_gssapi" != x"yes"; then
3864 AC_CHECK_LIB_EXT(gssapi_krb5, KRB5_LIBS,gss_display_status,[],[],have_gssapi=yes)
3867 AC_CHECK_FUNC_EXT(krb5_set_real_time, $KRB5_LIBS)
3868 AC_CHECK_FUNC_EXT(krb5_set_default_in_tkt_etypes, $KRB5_LIBS)
3869 AC_CHECK_FUNC_EXT(krb5_set_default_tgs_enctypes, $KRB5_LIBS)
3870 AC_CHECK_FUNC_EXT(krb5_set_default_tgs_ktypes, $KRB5_LIBS)
3871 AC_CHECK_FUNC_EXT(krb5_principal2salt, $KRB5_LIBS)
3872 AC_CHECK_FUNC_EXT(krb5_use_enctype, $KRB5_LIBS)
3873 AC_CHECK_FUNC_EXT(krb5_string_to_key, $KRB5_LIBS)
3874 AC_CHECK_FUNC_EXT(krb5_get_pw_salt, $KRB5_LIBS)
3875 AC_CHECK_FUNC_EXT(krb5_string_to_key_salt, $KRB5_LIBS)
3876 AC_CHECK_FUNC_EXT(krb5_auth_con_setkey, $KRB5_LIBS)
3877 AC_CHECK_FUNC_EXT(krb5_auth_con_setuseruserkey, $KRB5_LIBS)
3878 AC_CHECK_FUNC_EXT(krb5_locate_kdc, $KRB5_LIBS)
3879 AC_CHECK_FUNC_EXT(krb5_get_permitted_enctypes, $KRB5_LIBS)
3880 AC_CHECK_FUNC_EXT(krb5_get_default_in_tkt_etypes, $KRB5_LIBS)
3881 AC_CHECK_FUNC_EXT(krb5_free_data_contents, $KRB5_LIBS)
3882 AC_CHECK_FUNC_EXT(krb5_principal_get_comp_string, $KRB5_LIBS)
3883 AC_CHECK_FUNC_EXT(krb5_free_unparsed_name, $KRB5_LIBS)
3884 AC_CHECK_FUNC_EXT(krb5_free_keytab_entry_contents, $KRB5_LIBS)
3885 AC_CHECK_FUNC_EXT(krb5_kt_free_entry, $KRB5_LIBS)
3886 AC_CHECK_FUNC_EXT(krb5_krbhst_init, $KRB5_LIBS)
3887 AC_CHECK_FUNC_EXT(krb5_krbhst_get_addrinfo, $KRB5_LIBS)
3888 AC_CHECK_FUNC_EXT(krb5_c_enctype_compare, $KRB5_LIBS)
3889 AC_CHECK_FUNC_EXT(krb5_enctypes_compatible_keys, $KRB5_LIBS)
3890 AC_CHECK_FUNC_EXT(krb5_crypto_init, $KRB5_LIBS)
3891 AC_CHECK_FUNC_EXT(krb5_crypto_destroy, $KRB5_LIBS)
3892 AC_CHECK_FUNC_EXT(krb5_decode_ap_req, $KRB5_LIBS)
3893 AC_CHECK_FUNC_EXT(free_AP_REQ, $KRB5_LIBS)
3894 AC_CHECK_FUNC_EXT(krb5_verify_checksum, $KRB5_LIBS)
3895 AC_CHECK_FUNC_EXT(krb5_c_verify_checksum, $KRB5_LIBS)
3896 AC_CHECK_FUNC_EXT(krb5_principal_compare_any_realm, $KRB5_LIBS)
3897 AC_CHECK_FUNC_EXT(krb5_parse_name_norealm, $KRB5_LIBS)
3898 AC_CHECK_FUNC_EXT(krb5_princ_size, $KRB5_LIBS)
3899 AC_CHECK_FUNC_EXT(krb5_get_init_creds_opt_set_pac_request, $KRB5_LIBS)
3900 AC_CHECK_FUNC_EXT(krb5_get_renewed_creds, $KRB5_LIBS)
3901 AC_CHECK_FUNC_EXT(krb5_get_kdc_cred, $KRB5_LIBS)
3902 AC_CHECK_FUNC_EXT(krb5_free_error_contents, $KRB5_LIBS)
3903 AC_CHECK_FUNC_EXT(initialize_krb5_error_table, $KRB5_LIBS)
3904 AC_CHECK_FUNC_EXT(krb5_get_init_creds_opt_alloc, $KRB5_LIBS)
3905 AC_CHECK_FUNC_EXT(krb5_get_init_creds_opt_free, $KRB5_LIBS)
3906 AC_CHECK_FUNC_EXT(krb5_get_init_creds_opt_get_error, $KRB5_LIBS)
3907 AC_CHECK_FUNC_EXT(krb5_enctype_to_string, $KRB5_LIBS)
3909 LIBS="$KRB5_LIBS $LIBS"
3911 AC_CACHE_CHECK(whether krb5_ticket contains kvno and enctype,
3912 smb_krb5_ticket_has_keyinfo,
3921 krb5_enctype enctype;
3923 enctype = ticket.enc_part.enctype;
3924 kvno = ticket.enc_part.kvno;
3926 [ smb_krb5_ticket_has_keyinfo=yes ],
3927 [ smb_krb5_ticket_has_keyinfo=no ])
3930 if test x"$smb_krb5_ticket_has_keyinfo" = x"yes" ; then
3931 AC_DEFINE(KRB5_TICKET_HAS_KEYINFO, 1,
3932 [Whether the krb5_ticket structure contains the kvno and enctype])
3935 AC_CACHE_CHECK(whether krb5_get_init_creds_opt_free takes a context argument,
3936 smb_krb5_creds_opt_free_context,
3942 krb5_get_init_creds_opt *opt = NULL;
3943 krb5_get_init_creds_opt_free(ctx, opt);
3945 [smb_krb5_creds_opt_free_context=yes],
3946 [smb_krb5_creds_opt_free_context=no]
3950 if test x"$smb_krb5_creds_opt_free_context" = x"yes" ; then
3951 AC_DEFINE(KRB5_CREDS_OPT_FREE_REQUIRES_CONTEXT, 1,
3952 [Whether krb5_get_init_creds_opt_free takes a context argument])
3955 AC_CACHE_CHECK(whether krb5_verify_checksum takes 7 arguments, smb_krb5_verify_checksum, [
3958 [krb5_verify_checksum(0, 0, 0, 0, 0, 0, 0);],
3959 [smb_krb5_verify_checksum=7],
3960 [smb_krb5_verify_checksum=6],
3963 AC_DEFINE_UNQUOTED(KRB5_VERIFY_CHECKSUM_ARGS, $smb_krb5_verify_checksum, [Number of arguments to krb5_verify_checksum])
3965 AC_CACHE_CHECK([for checksum in krb5_checksum],
3966 samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM,[
3967 AC_TRY_COMPILE([#include <krb5.h>],
3968 [krb5_checksum cksum; cksum.checksum.length = 0;],
3969 samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM=yes,
3970 samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM=no)])
3972 if test x"$samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM" = x"yes"; then
3973 AC_DEFINE(HAVE_CHECKSUM_IN_KRB5_CHECKSUM,1,
3974 [Whether the krb5_checksum struct has a checksum property])
3977 AC_CACHE_CHECK([for etype in EncryptedData],
3978 samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA,[
3979 AC_TRY_COMPILE([#include <krb5.h>],
3980 [EncryptedData edata; edata.etype = 0;],
3981 samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA=yes,
3982 samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA=no)])
3984 if test x"$samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA" = x"yes"; then
3985 AC_DEFINE(HAVE_ETYPE_IN_ENCRYPTEDDATA,1,
3986 [Whether the EncryptedData struct has a etype property])
3989 AC_CACHE_CHECK([for ticket pointer in krb5_ap_req],
3990 samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ,[
3991 AC_TRY_COMPILE([#include <krb5.h>],
3992 [krb5_ap_req *ap_req; ap_req->ticket = NULL;],
3993 samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ=yes,
3994 samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ=no)])
3996 if test x"$samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ" = x"yes"; then
3997 AC_DEFINE(HAVE_TICKET_POINTER_IN_KRB5_AP_REQ,1,
3998 [Whether the krb5_ap_req struct has a ticket pointer])
4001 AC_CACHE_CHECK([for e_data pointer in krb5_error],
4002 samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR,[
4003 AC_TRY_COMPILE([#include <krb5.h>],
4004 [krb5_error err; err.e_data = NULL;],
4005 samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR=yes,
4006 samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR=no)])
4008 if test x"$samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR" = x"yes"; then
4009 AC_DEFINE(HAVE_E_DATA_POINTER_IN_KRB5_ERROR,1,
4010 [Whether the krb5_error struct has a e_data pointer])
4013 AC_CACHE_CHECK([for krb5_crypto type],
4014 samba_cv_HAVE_KRB5_CRYPTO,[
4015 AC_TRY_COMPILE([#include <krb5.h>],
4016 [krb5_crypto crypto;],
4017 samba_cv_HAVE_KRB5_CRYPTO=yes,
4018 samba_cv_HAVE_KRB5_CRYPTO=no)])
4020 if test x"$samba_cv_HAVE_KRB5_CRYPTO" = x"yes"; then
4021 AC_DEFINE(HAVE_KRB5_CRYPTO,1,
4022 [Whether the type krb5_crypto exists])
4025 AC_CACHE_CHECK([for krb5_encrypt_block type],
4026 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK,[
4027 AC_TRY_COMPILE([#include <krb5.h>],
4028 [krb5_encrypt_block block;],
4029 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=yes,
4030 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=no)])
4032 if test x"$samba_cv_HAVE_KRB5_ENCRYPT_BLOCK" = x"yes"; then
4033 AC_DEFINE(HAVE_KRB5_ENCRYPT_BLOCK,1,
4034 [Whether the type krb5_encrypt_block exists])
4037 AC_CACHE_CHECK([for addrtype in krb5_address],
4038 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS,[
4039 AC_TRY_COMPILE([#include <krb5.h>],
4040 [krb5_address kaddr; kaddr.addrtype = ADDRTYPE_INET;],
4041 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=yes,
4042 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=no)])
4044 if test x"$samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS" = x"yes"; then
4045 AC_DEFINE(HAVE_ADDRTYPE_IN_KRB5_ADDRESS,1,
4046 [Whether the krb5_address struct has a addrtype property])
4049 AC_CACHE_CHECK([for addr_type in krb5_address],
4050 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,[
4051 AC_TRY_COMPILE([#include <krb5.h>],
4052 [krb5_address kaddr; kaddr.addr_type = KRB5_ADDRESS_INET;],
4053 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=yes,
4054 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=no)])
4056 if test x"$samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS" = x"yes"; then
4057 AC_DEFINE(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,1,
4058 [Whether the krb5_address struct has a addr_type property])
4061 AC_CACHE_CHECK([for enc_part2 in krb5_ticket],
4062 samba_cv_HAVE_KRB5_TKT_ENC_PART2,
4063 [AC_TRY_COMPILE([#include <krb5.h>],
4064 [krb5_ticket tkt; tkt.enc_part2->authorization_data[0]->contents = NULL;],
4065 samba_cv_HAVE_KRB5_TKT_ENC_PART2=yes,samba_cv_HAVE_KRB5_TKT_ENC_PART2=no)])
4067 if test x"$samba_cv_HAVE_KRB5_TKT_ENC_PART2" = x"yes"; then
4068 AC_DEFINE(HAVE_KRB5_TKT_ENC_PART2,1,
4069 [Whether the krb5_ticket struct has a enc_part2 property])
4072 AC_CACHE_CHECK([for keyblock in krb5_creds],
4073 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS,[
4074 AC_TRY_COMPILE([#include <krb5.h>],
4075 [krb5_creds creds; krb5_keyblock kb; creds.keyblock = kb;],
4076 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=yes,
4077 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=no)])
4079 if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS" = x"yes"; then
4080 AC_DEFINE(HAVE_KRB5_KEYBLOCK_IN_CREDS,1,
4081 [Whether the krb5_creds struct has a keyblock property])
4084 AC_CACHE_CHECK([for session in krb5_creds],
4085 samba_cv_HAVE_KRB5_SESSION_IN_CREDS,[
4086 AC_TRY_COMPILE([#include <krb5.h>],
4087 [krb5_creds creds; krb5_keyblock kb; creds.session = kb;],
4088 samba_cv_HAVE_KRB5_SESSION_IN_CREDS=yes,
4089 samba_cv_HAVE_KRB5_SESSION_IN_CREDS=no)])
4091 if test x"$samba_cv_HAVE_KRB5_SESSION_IN_CREDS" = x"yes"; then
4092 AC_DEFINE(HAVE_KRB5_SESSION_IN_CREDS,1,
4093 [Whether the krb5_creds struct has a session property])
4096 AC_CACHE_CHECK([for keyvalue in krb5_keyblock],
4097 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE,[
4098 AC_TRY_COMPILE([#include <krb5.h>],
4099 [krb5_keyblock key; key.keyvalue.data = NULL;],
4100 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=yes,
4101 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=no)])
4103 if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE" = x"yes"; then
4104 AC_DEFINE(HAVE_KRB5_KEYBLOCK_KEYVALUE,1,
4105 [Whether the krb5_keyblock struct has a keyvalue property])
4108 AC_CACHE_CHECK([for ENCTYPE_ARCFOUR_HMAC_MD5],
4109 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,[
4110 AC_TRY_COMPILE([#include <krb5.h>],
4111 [krb5_enctype enctype; enctype = ENCTYPE_ARCFOUR_HMAC_MD5;],
4112 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=yes,
4113 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=no)])
4114 AC_CACHE_CHECK([for KEYTYPE_ARCFOUR_56],
4115 samba_cv_HAVE_KEYTYPE_ARCFOUR_56,[
4116 AC_TRY_COMPILE([#include <krb5.h>],
4117 [krb5_keytype keytype; keytype = KEYTYPE_ARCFOUR_56;],
4118 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=yes,
4119 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=no)])
4120 # Heimdals with KEYTYPE_ARCFOUR but not KEYTYPE_ARCFOUR_56 are broken
4121 # w.r.t. arcfour and windows, so we must not enable it here
4122 if test x"$samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5" = x"yes" -a\
4123 x"$samba_cv_HAVE_KEYTYPE_ARCFOUR_56" = x"yes"; then
4124 AC_DEFINE(HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,1,
4125 [Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available])
4128 AC_CACHE_CHECK([for AP_OPTS_USE_SUBKEY],
4129 samba_cv_HAVE_AP_OPTS_USE_SUBKEY,[
4130 AC_TRY_COMPILE([#include <krb5.h>],
4131 [krb5_flags ap_options; ap_options = AP_OPTS_USE_SUBKEY;],
4132 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=yes,
4133 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=no)])
4135 if test x"$samba_cv_HAVE_AP_OPTS_USE_SUBKEY" = x"yes"; then
4136 AC_DEFINE(HAVE_AP_OPTS_USE_SUBKEY,1,
4137 [Whether the AP_OPTS_USE_SUBKEY ap option is available])
4140 AC_CACHE_CHECK([for KV5M_KEYTAB],
4141 samba_cv_HAVE_KV5M_KEYTAB,[
4142 AC_TRY_COMPILE([#include <krb5.h>],
4143 [krb5_keytab_entry entry; entry.magic = KV5M_KEYTAB;],
4144 samba_cv_HAVE_KV5M_KEYTAB=yes,
4145 samba_cv_HAVE_KV5M_KEYTAB=no)])
4147 if test x"$samba_cv_HAVE_KV5M_KEYTAB" = x"yes"; then
4148 AC_DEFINE(HAVE_KV5M_KEYTAB,1,
4149 [Whether the KV5M_KEYTAB option is available])
4152 AC_CACHE_CHECK([for KRB5_KU_OTHER_CKSUM],
4153 samba_cv_HAVE_KRB5_KU_OTHER_CKSUM,[
4154 AC_TRY_COMPILE([#include <krb5.h>],
4155 [krb5_keyusage usage = KRB5_KU_OTHER_CKSUM;],
4156 samba_cv_HAVE_KRB5_KU_OTHER_CKSUM=yes,
4157 samba_cv_HAVE_KRB5_KU_OTHER_CKSUM=no)])
4159 if test x"$samba_cv_HAVE_KRB5_KU_OTHER_CKSUM" = x"yes"; then
4160 AC_DEFINE(HAVE_KRB5_KU_OTHER_CKSUM,1,
4161 [Whether KRB5_KU_OTHER_CKSUM is available])
4164 AC_CACHE_CHECK([for KRB5_KEYUSAGE_APP_DATA_CKSUM],
4165 samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM,[
4166 AC_TRY_COMPILE([#include <krb5.h>],
4167 [krb5_keyusage usage = KRB5_KEYUSAGE_APP_DATA_CKSUM;],
4168 samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM=yes,
4169 samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM=no)])
4171 if test x"$samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM" = x"yes"; then
4172 AC_DEFINE(HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM,1,
4173 [Whether KRB5_KEYUSAGE_APP_DATA_CKSUM is available])
4176 AC_CACHE_CHECK([for the krb5_princ_component macro],
4177 samba_cv_HAVE_KRB5_PRINC_COMPONENT,[
4178 AC_TRY_LINK([#include <krb5.h>],
4179 [const krb5_data *pkdata; krb5_context context; krb5_principal principal; pkdata = krb5_princ_component(context, principal, 0);],
4180 samba_cv_HAVE_KRB5_PRINC_COMPONENT=yes,
4181 samba_cv_HAVE_KRB5_PRINC_COMPONENT=no)])
4183 if test x"$samba_cv_HAVE_KRB5_PRINC_COMPONENT" = x"yes"; then
4184 AC_DEFINE(HAVE_KRB5_PRINC_COMPONENT,1,
4185 [Whether krb5_princ_component is available])
4188 AC_CACHE_CHECK([for key in krb5_keytab_entry],
4189 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY,[
4190 AC_TRY_COMPILE([#include <krb5.h>],
4191 [krb5_keytab_entry entry; krb5_keyblock e; entry.key = e;],
4192 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=yes,
4193 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=no)])
4195 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY" = x"yes"; then
4196 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEY,1,
4197 [Whether krb5_keytab_entry has key member])
4200 AC_CACHE_CHECK([for keyblock in krb5_keytab_entry],
4201 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,[
4202 AC_TRY_COMPILE([#include <krb5.h>],
4203 [krb5_keytab_entry entry; entry.keyblock.keytype = 0;],
4204 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=yes,
4205 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=no)])
4207 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK" = x"yes"; then
4208 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,1,
4209 [Whether krb5_keytab_entry has keyblock member])
4212 AC_CACHE_CHECK([for magic in krb5_address],
4213 samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS,[
4214 AC_TRY_COMPILE([#include <krb5.h>],
4215 [krb5_address addr; addr.magic = 0;],
4216 samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS=yes,
4217 samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS=no)])
4219 if test x"$samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS" = x"yes"; then
4220 AC_DEFINE(HAVE_MAGIC_IN_KRB5_ADDRESS,1,
4221 [Whether the krb5_address struct has a magic property])
4224 AC_CACHE_CHECK([for WRFILE: keytab support],
4225 samba_cv_HAVE_WRFILE_KEYTAB,[
4230 krb5_context context;
4233 krb5_init_context(&context);
4234 return krb5_kt_resolve(context, "WRFILE:api", &keytab);
4236 samba_cv_HAVE_WRFILE_KEYTAB=yes,
4237 samba_cv_HAVE_WRFILE_KEYTAB=no)])
4239 if test x"$samba_cv_HAVE_WRFILE_KEYTAB" = x"yes"; then
4240 AC_DEFINE(HAVE_WRFILE_KEYTAB,1,
4241 [Whether the WRFILE:-keytab is supported])
4244 AC_CACHE_CHECK([for krb5_princ_realm returns krb5_realm or krb5_data],
4245 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM,[
4246 AC_TRY_COMPILE([#include <krb5.h>],
4248 krb5_context context;
4249 krb5_principal principal;
4250 krb5_realm realm; realm = *krb5_princ_realm(context, principal);],
4251 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=yes,
4252 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=no)])
4254 if test x"$samba_cv_KRB5_PRINC_REALM_RETURNS_REALM" = x"yes"; then
4255 AC_DEFINE(KRB5_PRINC_REALM_RETURNS_REALM,1,
4256 [Whether krb5_princ_realm returns krb5_realm or krb5_data])
4259 AC_CACHE_CHECK([for krb5_addresses type],
4260 samba_cv_HAVE_KRB5_ADDRESSES,[
4261 AC_TRY_COMPILE([#include <krb5.h>],
4262 [krb5_addresses addr;],
4263 samba_cv_HAVE_KRB5_ADDRESSES=yes,
4264 samba_cv_HAVE_KRB5_ADDRESSES=no)])
4266 if test x"$samba_cv_HAVE_KRB5_ADDRESSES" = x"yes"; then
4267 AC_DEFINE(HAVE_KRB5_ADDRESSES,1,
4268 [Whether the type krb5_addresses type exists])
4271 AC_CACHE_CHECK([whether krb5_mk_error takes 3 arguments MIT or 9 Heimdal],
4272 samba_cv_HAVE_SHORT_KRB5_MK_ERROR_INTERFACE, [
4273 AC_TRY_COMPILE([#include <krb5.h>],
4275 krb5_mk_error(0,0,0);],
4276 samba_cv_HAVE_SHORT_KRB5_MK_ERROR_INTERFACE=yes,
4277 samba_cv_HAVE_SHORT_KRB5_MK_ERROR_INTERFACE=no)])
4279 if test x"$samba_cv_HAVE_SHORT_KRB5_MK_ERROR_INTERFACE" = x"yes"; then
4280 AC_DEFINE(HAVE_SHORT_KRB5_MK_ERROR_INTERFACE,1,
4281 [whether krb5_mk_error takes 3 arguments MIT or 9 Heimdal])
4284 if test x"$ac_cv_func_ext_krb5_enctype_to_string" = x"yes"; then
4285 AC_CACHE_CHECK([for krb5_error_code krb5_enctype_to_string(krb5_context context, krb5_enctype enctype, char **str)],
4286 smb_krb5_enctype_to_string_takes_krb5_context_arg,[
4290 krb5_context context = NULL;
4292 krb5_enctype_to_string(context, 1, &str);
4293 if (str) free (str);
4296 ],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
4297 smb_krb5_enctype_to_string_takes_krb5_context_arg=yes,
4298 smb_krb5_enctype_to_string_takes_krb5_context_arg=no)])
4300 if test x"$smb_krb5_enctype_to_string_takes_krb5_context_arg" = x"yes"; then
4301 AC_DEFINE(HAVE_KRB5_ENCTYPE_TO_STRING_WITH_KRB5_CONTEXT_ARG,1,
4302 [whether krb5_enctype_to_string takes krb5_context argument])
4305 AC_CACHE_CHECK([for krb5_error_code krb5_enctype_to_string(krb5_enctype enctype, char *str, size_t len)],
4306 smb_krb5_enctype_to_string_takes_size_t_arg,[
4311 krb5_enctype_to_string(1, buf, 256);
4314 ],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
4315 smb_krb5_enctype_to_string_takes_size_t_arg=yes,
4316 smb_krb5_enctype_to_string_takes_size_t_arg=no)])
4318 if test x"$smb_krb5_enctype_to_string_takes_size_t_arg" = x"yes"; then
4319 AC_DEFINE(HAVE_KRB5_ENCTYPE_TO_STRING_WITH_SIZE_T_ARG,1,
4320 [whether krb5_enctype_to_string takes size_t argument])
4324 AC_CACHE_CHECK([for krb5_principal_get_realm],
4325 samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM,[
4326 AC_TRY_LINK([#include <krb5.h>],
4327 [krb5_context ctx = NULL; krb5_principal princ = NULL; const char *str = krb5_principal_get_realm(ctx, princ);],
4328 samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM=yes,
4329 samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM=no)])
4331 if test x"$samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM" = x"yes"; then
4332 AC_DEFINE(HAVE_KRB5_PRINCIPAL_GET_REALM,1,
4333 [Whether the function krb5_principal_get_realm is defined])
4336 AC_CACHE_CHECK([for krb5_princ_realm],
4337 samba_cv_HAVE_KRB5_PRINC_REALM,[
4338 AC_TRY_LINK([#include <krb5.h>],
4339 [krb5_context ctx = NULL; krb5_principal princ = NULL; const char *str = krb5_princ_realm(ctx, princ)->data;],
4340 samba_cv_HAVE_KRB5_PRINC_REALM=yes,
4341 samba_cv_HAVE_KRB5_PRINC_REALM=no)])
4343 if test x"$samba_cv_HAVE_KRB5_PRINC_REALM" = x"yes"; then
4344 AC_DEFINE(HAVE_KRB5_PRINC_REALM,1,
4345 [Whether the macro krb5_princ_realm is defined])
4350 # Now the decisions whether we can support krb5
4352 # NOTE: all tests should be done before this block!
4355 if test x"$ac_cv_lib_ext_krb5_krb5_mk_req_extended" != x"yes"; then
4356 AC_MSG_WARN(krb5_mk_req_extended not found in -lkrb5)
4360 if test x"$ac_cv_func_ext_krb5_principal2salt" != x"yes" -a \
4361 x"$ac_cv_func_ext_krb5_get_pw_salt" != x"yes"
4363 AC_MSG_WARN(no CREATE_KEY_FUNCTIONS detected)
4367 if test x"$ac_cv_func_ext_krb5_get_permitted_enctypes" != x"yes" -a \
4368 x"$ac_cv_func_ext_krb5_get_default_in_tkt_etypes" != x"yes"
4370 AC_MSG_WARN(no GET_ENCTYPES_FUNCTIONS detected)
4374 if test x"$ac_cv_func_ext_krb5_kt_free_entry" != x"yes" -a \
4375 x"$ac_cv_func_ext_krb5_free_keytab_entry_contents" != x"yes"
4377 AC_MSG_WARN(no KT_FREE_FUNCTION detected)
4381 if test x"$ac_cv_func_ext_krb5_c_verify_checksum" != x"yes" -a \
4382 x"$ac_cv_func_ext_krb5_verify_checksum" != x"yes"
4384 AC_MSG_WARN(no KRB5_VERIFY_CHECKSUM_FUNCTION detected)
4388 if test x"$smb_krb5_ticket_has_keyinfo" != x"yes" ; then
4390 # We only need the following functions if we can't get the enctype
4391 # and kvno out of the ticket directly (ie. on Heimdal).
4393 if test x"$ac_cv_func_ext_free_AP_REQ" != x"yes"
4395 AC_MSG_WARN(no KRB5_AP_REQ_FREE_FUNCTION detected)
4399 if test x"$ac_cv_func_ext_krb5_decode_ap_req" != x"yes"
4401 AC_MSG_WARN(no KRB5_AP_REQ_DECODING_FUNCTION detected)
4407 if test x"$use_ads" = x"yes"; then
4408 AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
4409 AC_DEFINE(HAVE_KRB5,1,[Whether to have KRB5 support])
4410 if test x"$have_gssapi" = x"yes"; then
4411 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])
4414 if test x"$with_ads_support" = x"yes"; then
4415 AC_MSG_ERROR(krb5 libs don't have all features required for Active Directory support)
4417 AC_MSG_WARN(krb5 libs don't have all features required for Active Directory support)
4419 AC_REMOVE_DEFINE(HAVE_KRB5_H)
4420 AC_REMOVE_DEFINE(HAVE_GSSAPI_H)
4421 AC_REMOVE_DEFINE(HAVE_GSSAPI_GSSAPI_GENERIC_H)
4422 AC_REMOVE_DEFINE(HAVE_GSSAPI_GSSAPI_H)
4426 AC_MSG_CHECKING(whether Active Directory and krb5 support is used)
4427 AC_MSG_RESULT([$use_ads])
4429 LIBS="$ac_save_LIBS"
4432 AC_CHECK_LIB_EXT(nscd, NSCD_LIBS, nscd_flush_cache)
4433 PASSDB_LIBS="$PASSDB_LIBS $NSCD_LIBS"
4436 ########################################################
4437 # Compile with DNS Updates support?
4439 with_dnsupdate_support=no
4440 AC_MSG_CHECKING([whether to enable DNS Updates support])
4442 AC_ARG_WITH(dnsupdate,
4443 [AS_HELP_STRING([--with-dnsupdate], [Enable DNS Updates support (default no)])],
4444 [ case "$withval" in
4446 with_dnsupdate_support=$withval
4450 AC_MSG_RESULT($with_dnsupdate_support)
4452 if test x"$with_dnsupdate_support" != x"no"; then
4454 ################################################################
4455 # first test for Active Directory support being enabled
4456 #if test x"$with_ads_support" = x"no"; then
4457 # AC_MSG_ERROR(Active Directory support is required to enable DNS Update support)
4458 # with_dnsupdate_support=no
4460 ##################################################################
4461 # then test for uuid.h (necessary to generate unique DNS keynames
4462 # (uuid.h is required for this test)
4463 AC_CHECK_HEADERS(uuid/uuid.h)
4465 if test x"$ac_cv_header_uuid_uuid_h" != x"yes"; then
4466 if test x"$with_dnsupdate_support" = x"yes"; then
4467 AC_MSG_ERROR(uuid.h is needed to enable DNS Updates support)
4469 AC_MSG_WARN(uuid.h is needed to enable DNS Updates support)
4471 with_dnsupdate_support=no
4475 if test x"$with_dnsupdate_support" != x"no"; then
4477 ########################################################
4478 # Now see if we can find the uuid libs in standard paths
4479 # On some systems, the uuid API is in libc, so we have to
4480 # be careful not to insert a spurious -luuid.
4483 AC_LIBTESTFUNC(uuid, uuid_generate,
4488 SMB_REMOVE_LIB(uuid)
4492 with_dnsupdate_support=yes
4493 AC_DEFINE(WITH_DNS_UPDATES,1,[Whether to enable DNS Update support])
4496 if test x"$with_dnsupdate_support" = x"yes"; then
4497 AC_MSG_ERROR(libuuid is needed to enable DNS Updates support)
4499 AC_MSG_WARN(libuuid is needed to enable DNS Updates support)
4501 with_dnsupdate_support=no
4505 #################################################
4506 # check for automount support
4507 AC_MSG_CHECKING(whether to use automount)
4508 AC_ARG_WITH(automount,
4509 [AS_HELP_STRING([--with-automount], [Include automount support (default=no)])],
4510 [ case "$withval" in
4513 AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
4522 #################################################
4523 # check for smbmount support
4524 AC_MSG_CHECKING(whether to use smbmount)
4525 AC_ARG_WITH(smbmount,
4526 [AS_HELP_STRING([--with-smbmount], [Include smbmount (Linux only) support (default=no)])],
4527 [ case "$withval" in
4532 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
4533 SMBMOUNT_PROGS="bin/smbmount bin/smbmnt bin/smbumount"
4536 AC_MSG_ERROR(not on a linux system!)
4547 #################################################
4548 # check for mount- and umount.cifs support
4550 INSTALL_CIFSMOUNT=""
4551 UNINSTALL_CIFSMOUNT=""
4552 AC_MSG_CHECKING(whether to build mount.cifs and umount.cifs)
4553 AC_ARG_WITH(cifsmount,
4554 [AS_HELP_STRING([--with-cifsmount], [Include mount.cifs and umount.cifs (Linux only) support (default=yes)])],
4555 [ case "$withval" in
4563 AC_DEFINE(WITH_CIFSMOUNT,1,[Whether to build mount.cifs and umount.cifs])
4564 CIFSMOUNT_PROGS="bin/mount.cifs bin/umount.cifs"
4565 INSTALL_CIFSMOUNT="installcifsmount"
4566 UNINSTALL_CIFSMOUNT="uninstallcifsmount"
4569 AC_MSG_ERROR(not on a linux system!)
4574 [ case "$host_os" in
4577 AC_DEFINE(WITH_CIFSMOUNT,1,[Whether to build mount.cifs and umount.cifs])
4578 CIFSMOUNT_PROGS="bin/mount.cifs bin/umount.cifs"
4579 INSTALL_CIFSMOUNT="installcifsmount"
4580 UNINSTALL_CIFSMOUNT="uninstallcifsmount"
4588 #################################################
4589 # check for cifs.spnego support
4590 AC_CHECK_HEADERS([keyutils.h], [HAVE_KEYUTILS_H=1], [HAVE_KEYUTILS_H=0])
4592 INSTALL_CIFSSPNEGO=""
4593 UNINSTALL_CIFSSPNEGO=""
4594 AC_MSG_CHECKING(whether to build cifs.spnego)
4595 AC_ARG_WITH(cifsspnego,
4596 [AS_HELP_STRING([--with-cifsspnego], [Include cifs.spnego (Linux only) support (default=no)])],
4597 [ case "$withval" in
4604 if test x"$use_ads" != x"yes"; then
4605 AC_MSG_ERROR(ADS support should be enabled for building cifs.spnego)
4606 elif test x"$HAVE_KEYUTILS_H" != "x1"; then
4607 AC_MSG_ERROR(keyutils package is required for cifs.spnego)
4610 AC_DEFINE(WITH_CIFSSPNEGO,1,[whether to build cifs.spnego])
4611 CIFSSPNEGO_PROGS="bin/cifs.spnego"
4612 INSTALL_CIFSSPNEGO="installcifsspnego"
4613 UNINSTALL_CIFSSPNEGO="uninstallcifsspnego"
4617 AC_MSG_ERROR(not on a linux system!)
4628 #################################################
4629 # Check for a PAM clear-text auth, accounts, password
4630 # and session support. Most PAM implementations keep their
4631 # headers in /usr/include/security. Darwin keeps its in
4634 with_pam_for_crypt=no
4636 AC_MSG_CHECKING(whether to try PAM support)
4638 [AS_HELP_STRING([--with-pam], [Include PAM support (default=no)])],
4639 [ case "$withval" in
4645 AC_MSG_RESULT([$try_pam])
4648 create_pam_modules=no
4649 if test x"${try_pam}" != x"no";then
4651 create_pam_modules=yes
4653 # Most systems have PAM headers in /usr/include/security, but Darwin
4654 # has them in /usr/include/pam.
4655 AC_CHECK_HEADERS(security/pam_appl.h pam/pam_appl.h)
4656 if test x"$ac_cv_header_security_pam_appl_h" != x"yes" -a \
4657 x"$ac_cv_header_pam_pam_appl_h" != x"yes"; then
4658 if test x"${try_pam}" = x"yes";then
4659 AC_MSG_ERROR([--with-pam=yes but pam_appl.h not found])
4662 create_pam_modules=no
4665 AC_CHECK_LIB_EXT(pam, PAM_LIBS, pam_get_data)
4666 if test x"$ac_cv_lib_ext_pam_pam_get_data" != x"yes"; then
4667 if test x"${try_pam}" = x"yes";then
4668 AC_MSG_ERROR([--with-pam=yes but libpam not found])
4671 create_pam_modules=no
4674 AC_CHECK_HEADERS(security/pam_modules.h pam/pam_modules.h,,,[[
4675 #if HAVE_SECURITY_PAM_APPL_H
4676 #include <security/pam_appl.h>
4678 #if HAVE_PAM_PAM_APPL_H
4679 #include <pam/pam_appl.h>
4682 if test x"$ac_cv_header_security_pam_modules_h" = x"no" -a \
4683 x"$ac_cv_header_pam_pam_modules_h" = x"no" ; then
4684 if test x"${try_pam}" = x"yes";then
4685 AC_MSG_ERROR([--with-pam=yes but pam_modules.h not found])
4687 create_pam_modules=no
4690 if test x"$use_pam" = x"yes"; then
4691 AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
4692 AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])
4693 AUTH_LIBS="$AUTH_LIBS $PAM_LIBS"
4694 with_pam_for_crypt=yes
4696 if test x"$create_pam_modules" = x"yes"; then
4697 AC_DEFINE(WITH_PAM_MODULES,1,[Whether to include PAM MODULES support])
4698 # this checks are optional,
4699 # we don't care about the results here
4700 AC_CHECK_HEADERS(security/pam_ext.h security/_pam_macros.h)
4701 AC_CHECK_HEADERS(pam/pam_ext.h pam/_pam_macros.h)
4702 AC_CHECK_FUNC_EXT(pam_vsyslog,$PAM_LIBS)
4704 AC_MSG_WARN([PAM support detected but PAM MODULES support is missing])
4707 AC_MSG_CHECKING(whether to use PAM support)
4708 AC_MSG_RESULT([$use_pam])
4710 AC_MSG_CHECKING(whether to have PAM MODULES support)
4711 AC_MSG_RESULT([$create_pam_modules])
4714 #################################################
4715 # check for pam_smbpass support
4717 INSTALL_PAM_MODULES=""
4718 UNINSTALL_PAM_MODULES=""
4719 AC_MSG_CHECKING(whether to use pam_smbpass)
4720 AC_ARG_WITH(pam_smbpass,
4721 [AS_HELP_STRING([--with-pam_smbpass], [Build PAM module for authenticating against passdb backends (default=no)])],
4722 [ case "$withval" in
4726 # Conditions under which pam_smbpass should not be built.
4728 if test x"$BLDSHARED" != x"true"; then
4729 AC_MSG_ERROR([No support for shared modules])
4730 elif test x"$create_pam_modules" != x"yes"; then
4731 AC_MSG_ERROR([No support for PAM MODULES])
4733 PAM_MODULES="pam_smbpass"
4734 INSTALL_PAM_MODULES="installpammodules"
4735 UNINSTALL_PAM_MODULES="uninstallpammodules"
4746 ###############################################
4747 # test for where we get crypt() from
4748 AC_SEARCH_LIBS(crypt, [crypt],
4749 [test "$ac_cv_search_crypt" = "none required" || AUTH_LIBS="-lcrypt $AUTH_LIBS"
4750 AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
4753 ## moved after the check for -lcrypt in order to
4754 ## ensure that the necessary libraries are included
4755 ## check checking for truncated salt. Wrapped by the
4756 ## $with_pam_for_crypt variable as above --jerry
4758 if test $with_pam_for_crypt = no; then
4759 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
4761 LIBS="$AUTH_LIBS $LIBS"
4762 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
4763 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
4764 LIBS="$crypt_LIBS"])
4765 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
4766 AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
4770 #################################################
4771 # check for a NISPLUS_HOME support
4772 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
4773 AC_ARG_WITH(nisplus-home,
4774 [AS_HELP_STRING([--with-nisplus-home], [Include NISPLUS_HOME support (default=no)])],
4775 [ case "$withval" in
4778 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
4787 #################################################
4788 # check for syslog logging
4789 AC_MSG_CHECKING(whether to use syslog logging)
4791 [AS_HELP_STRING([--with-syslog], [Include experimental SYSLOG support (default=no)])],
4792 [ case "$withval" in
4795 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
4804 #################################################
4805 # check for experimental disk-quotas support
4807 samba_cv_WITH_QUOTAS=auto
4808 samba_cv_TRY_QUOTAS=no
4809 samba_cv_RUN_QUOTA_TESTS=auto
4810 samba_cv_WITH_SYS_QUOTAS=auto
4811 samba_cv_TRY_SYS_QUOTAS=auto
4812 samba_cv_SYSQUOTA_FOUND=no
4814 AC_MSG_CHECKING(whether to try disk-quotas support)
4816 [AS_HELP_STRING([--with-quotas], [Include disk-quota support (default=no)])],
4817 [ case "$withval" in
4820 samba_cv_WITH_QUOTAS=yes
4821 samba_cv_TRY_QUOTAS=yes
4822 samba_cv_RUN_QUOTA_TESTS=yes
4823 #set sys quotas to auto in this case
4824 samba_cv_TRY_SYS_QUOTAS=auto
4828 samba_cv_WITH_QUOTAS=auto
4829 samba_cv_TRY_QUOTAS=auto
4830 samba_cv_RUN_QUOTA_TESTS=auto
4831 #set sys quotas to auto in this case
4832 samba_cv_TRY_SYS_QUOTAS=auto
4836 samba_cv_WITH_QUOTAS=no
4837 samba_cv_TRY_QUOTAS=no
4838 samba_cv_RUN_QUOTA_TESTS=no
4841 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
4844 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
4847 AC_MSG_CHECKING(whether to try the new lib/sysquotas.c interface)
4848 AC_ARG_WITH(sys-quotas,
4849 [AS_HELP_STRING([--with-sys-quotas], [Include lib/sysquotas.c support (default=auto)])],
4850 [ case "$withval" in
4853 samba_cv_WITH_SYS_QUOTAS=yes
4854 samba_cv_TRY_SYS_QUOTAS=yes
4855 samba_cv_RUN_QUOTA_TESTS=yes
4859 samba_cv_WITH_SYS_QUOTAS=auto
4860 samba_cv_TRY_SYS_QUOTAS=auto
4861 samba_cv_RUN_QUOTA_TESTS=auto
4865 samba_cv_WITH_SYS_QUOTAS=no
4866 samba_cv_TRY_SYS_QUOTAS=no
4869 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
4872 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
4875 if test x"$samba_cv_TRY_SYS_QUOTAS" = x"auto"; then
4876 AC_MSG_CHECKING(whether to try the lib/sysquotas.c interface on ${host_os})
4880 samba_cv_TRY_SYS_QUOTAS=yes
4881 samba_cv_RUN_QUOTA_TESTS=yes
4885 samba_cv_TRY_SYS_QUOTAS=no
4890 #############################################
4891 # only check for quota stuff if --with-quotas
4892 if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then
4895 # on linux we didn't need to test we have builtin support
4897 samba_cv_SYSQUOTA_FOUND=yes
4898 AC_DEFINE(HAVE_QUOTACTL_LINUX,1,[Whether Linux quota support is available])
4899 samba_cv_sysquotas_file="lib/sysquotas_linux.c"
4900 AC_MSG_CHECKING(whether to use the lib/sysquotas_linux.c builtin support)
4903 AC_DEFINE(HAVE_LINUX_XFS_QUOTAS,1,[Whether Linux xfs quota support is available])
4904 samba_cv_found_xfs_header=yes
4905 AC_MSG_CHECKING(whether to use the lib/sysquotas_xfs.c builtin support)
4909 # need to set this define when using static linking (BUG 1473)
4910 CPPFLAGS="$CPPFLAGS -DSUNOS5"
4916 # some broken header files need this
4917 AC_CHECK_HEADER(asm/types.h,[
4918 AC_DEFINE(HAVE_ASM_TYPES_H,1,[check for <asm/types.h>])
4919 AC_ADD_INCLUDE(<asm/types.h>)
4922 # For quotas on Veritas VxFS filesystems
4923 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
4925 # For quotas on Linux XFS filesystems
4926 AC_CHECK_HEADERS(linux/dqblk_xfs.h)
4928 # For sys/quota.h and linux/quota.h
4929 AC_CHECK_HEADERS(sys/quota.h)
4931 if test x"$samba_cv_found_xfs_header" != x"yes"; then
4932 # if we have xfs quota support <sys/quota.h> (IRIX) we should use it
4933 AC_CACHE_CHECK([for XFS QUOTA in <sys/quota.h>],samba_cv_HAVE_SYS_QUOTA_XFS, [
4935 #include "confdefs.h"
4936 #ifdef HAVE_SYS_TYPES_H
4937 #include <sys/types.h>
4939 #ifdef HAVE_ASM_TYPES_H
4940 #include <asm/types.h>
4942 #include <sys/quota.h>
4943 ],[int i = Q_XGETQUOTA;],
4944 samba_cv_HAVE_SYS_QUOTA_XFS=yes,samba_cv_HAVE_SYS_QUOTA_XFS=no)])
4945 if test "$samba_cv_HAVE_SYS_QUOTA_XFS"x = "yes"x; then
4946 samba_cv_found_xfs_header=yes
4950 # if we have struct dqblk .dqb_fsoftlimit instead of .dqb_isoftlimit on IRIX
4951 AC_CACHE_CHECK([if struct dqblk has .dqb_fsoftlimit],samba_cv_HAVE_DQB_FSOFTLIMIT, [
4953 #include "confdefs.h"
4954 #ifdef HAVE_SYS_QUOTA_H
4955 #include <sys/quota.h>
4959 D.dqb_fsoftlimit = 0;],
4960 samba_cv_HAVE_DQB_FSOFTLIMIT=yes,samba_cv_HAVE_DQB_FSOFTLIMIT=no)])
4961 if test "$samba_cv_HAVE_DQB_FSOFTLIMIT"x = "yes"x; then
4962 AC_DEFINE(HAVE_DQB_FSOFTLIMIT,1,[struct dqblk .dqb_fsoftlimit])
4966 # look for a working quota system
4968 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
4969 AC_CACHE_CHECK([for long quotactl(int cmd, char *special, qid_t id, caddr_t addr)],samba_cv_HAVE_QUOTACTL_4A,[
4971 #define HAVE_QUOTACTL_4A 1
4972 #define AUTOCONF_TEST 1
4973 #include "confdefs.h"
4974 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
4975 samba_cv_HAVE_QUOTACTL_4A=yes,samba_cv_HAVE_QUOTACTL_4A=no,samba_cv_HAVE_QUOTACTL_4A=cross)])
4976 if test x"$samba_cv_HAVE_QUOTACTL_4A" = x"yes"; then
4977 samba_cv_SYSQUOTA_FOUND=yes;
4978 AC_DEFINE(HAVE_QUOTACTL_4A,1,[Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is available])
4979 samba_cv_sysquotas_file="lib/sysquotas_4A.c"
4983 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
4984 AC_CACHE_CHECK([for int quotactl(const char *path, int cmd, int id, char *addr)],samba_cv_HAVE_QUOTACTL_4B,[
4986 #define HAVE_QUOTACTL_4B 1
4987 #define AUTOCONF_TEST 1
4988 #include "confdefs.h"
4989 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
4990 samba_cv_HAVE_QUOTACTL_4B=yes,samba_cv_HAVE_QUOTACTL_4B=no,samba_cv_HAVE_QUOTACTL_4B=cross)])
4991 if test x"$samba_cv_HAVE_QUOTACTL_4B" = x"yes"; then
4992 echo "int quotactl(const char *path, int cmd, int id, char *addr) is not reworked for the new sys_quota api"
4993 samba_cv_SYSQUOTA_FOUND=yes;
4994 AC_DEFINE(HAVE_QUOTACTL_4B,1,[Whether int quotactl(const char *path, int cmd, int id, char *addr) is available])
4995 samba_cv_sysquotas_file="lib/sysquotas_4B.c"
4999 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
5000 AC_CACHE_CHECK([for CRAY int quotactl (char *spec, int request, char *arg)],samba_cv_HAVE_QUOTACTL_3,[
5002 #define HAVE_QUOTACTL_3 1
5003 #define AUTOCONF_TEST 1
5004 #include "confdefs.h"
5005 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
5006 samba_cv_HAVE_QUOTACTL_3=yes,samba_cv_HAVE_QUOTACTL_3=no,samba_cv_HAVE_QUOTACTL_3=cross)])
5007 if test x"$samba_cv_HAVE_QUOTACTL_3" = x"yes"; then
5008 echo "CRAY int quotactl (char *spec, int request, char *arg) is NOT reworked for the sys_quota api"
5009 samba_cv_SYSQUOTA_FOUND=yes;
5010 AC_DEFINE(HAVE_QUOTACTL_3,1,[Whether CRAY int quotactl (char *spec, int request, char *arg); is available])
5011 samba_cv_sysquotas_file="lib/sysquotas_3.c"
5015 #################################################
5016 # check for mntent.h and struct mntent
5017 AC_CHECK_HEADERS(mntent.h)
5018 #################################################
5019 # check for setmntent,getmntent,endmntent
5020 AC_CHECK_FUNCS(setmntent getmntent endmntent)
5022 #################################################
5023 # check for devnm.h and struct mntent
5024 AC_CHECK_HEADERS(devnm.h)
5025 #################################################
5027 AC_CHECK_FUNCS(devnm)
5029 if test x"$samba_cv_WITH_SYS_QUOTAS" = x"yes"; then
5030 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
5031 # if --with-sys-quotas=yes then build it
5032 # you have can use the get/set quota command smb.conf
5034 samba_cv_SYSQUOTA_FOUND=auto
5036 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"yes"; then
5037 # if --with-sys-quotas=yes then build it
5038 # you have can use the get/set quota command smb.conf
5040 samba_cv_TRY_SYS_QUOTAS=auto
5044 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then
5045 AC_CACHE_CHECK([whether the sys_quota interface works],samba_cv_SYSQUOTA_WORKS,[
5046 SAVE_CPPFLAGS="$CPPFLAGS"
5047 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
5049 #include "confdefs.h"
5050 #define NO_PROTO_H 1
5051 #define NO_CONFIG_H 1
5052 #define HAVE_SYS_QUOTAS 1
5053 #include "${srcdir-.}/${samba_cv_sysquotas_file}"
5054 #include "${srcdir-.}/lib/sysquotas.c"
5055 ],[],samba_cv_SYSQUOTA_WORKS=yes,samba_cv_SYSQUOTA_WORKS=no)
5056 CPPFLAGS="$SAVE_CPPFLAGS"
5058 if test x"$samba_cv_SYSQUOTA_WORKS" = x"yes"; then
5059 AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface)
5060 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then
5061 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
5062 AC_DEFINE(HAVE_SYS_QUOTAS,1,[Whether the new lib/sysquotas.c interface can be used])
5063 samba_cv_WE_USE_SYS_QUOTAS=yes
5071 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no" -a x"$samba_cv_found_xfs_header" = x"yes"; then
5072 AC_CACHE_CHECK([whether the sys_quota interface works with XFS],samba_cv_SYSQUOTA_WORKS_XFS,[
5073 SAVE_CPPFLAGS="$CPPFLAGS"
5074 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
5076 #include "confdefs.h"
5077 #define NO_PROTO_H 1
5078 #define NO_CONFIG_H 1
5079 #define HAVE_SYS_QUOTAS 1
5080 #define HAVE_XFS_QUOTAS 1
5081 #include "${srcdir-.}/lib/sysquotas_xfs.c"
5082 ],[],samba_cv_SYSQUOTA_WORKS_XFS=yes,samba_cv_SYSQUOTA_WORKS_XFS=no)
5083 CPPFLAGS="$SAVE_CPPFLAGS"
5085 if test x"$samba_cv_SYSQUOTA_WORKS_XFS" = x"yes"; then
5086 if test x"$samba_cv_WE_USE_SYS_QUOTAS" = x"yes"; then
5087 AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available])
5092 AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[
5093 SAVE_CPPFLAGS="$CPPFLAGS"
5094 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
5096 #include "confdefs.h"
5097 #define NO_PROTO_H 1
5098 #define NO_CONFIG_H 1
5099 #include "${srcdir-.}/smbd/quotas.c"
5100 ],[],samba_cv_QUOTA_WORKS=yes,samba_cv_QUOTA_WORKS=no)
5101 CPPFLAGS="$SAVE_CPPFLAGS"
5103 if test x"$samba_cv_QUOTA_WORKS" = x"yes"; then
5104 AC_MSG_CHECKING(whether to use the old quota support)
5105 if test x"$samba_cv_WE_USE_SYS_QUOTAS" != x"yes"; then
5106 if test x"$samba_cv_TRY_QUOTAS" != x"no"; then
5107 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
5117 ####################
5118 # End of quota check samba_cv_RUN_QUOTA_TESTS
5121 #################################################
5122 # check for experimental utmp accounting
5124 AC_MSG_CHECKING(whether to support utmp accounting)
5127 [AS_HELP_STRING([--with-utmp], [Include utmp accounting (default, if supported by OS)])],
5128 [ case "$withval" in
5138 # utmp requires utmp.h
5139 # Note similar check earlier, when checking utmp details.
5141 if test x"$WITH_UTMP" = x"yes" -a x"$ac_cv_header_utmp_h" = x"no"; then
5142 utmp_no_reason=", no utmp.h on $host_os"
5146 # Display test results
5148 if test x"$WITH_UTMP" = x"yes"; then
5150 AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
5152 AC_MSG_RESULT(no$utmp_no_reason)
5157 UNINSTALLLIBCMD_SH=:
5160 if test $BLDSHARED = true; then
5161 INSTALLLIBCMD_SH="\$(INSTALLCMD)"
5162 UNINSTALLLIBCMD_SH="rm -f"
5164 if test $enable_static = yes; then
5165 INSTALLLIBCMD_A="\$(INSTALLCMD)"
5166 UNINSTALLLIBCMD_A="rm -f"
5169 #################################################
5170 # --with-static-libs=LIBS:
5171 # link (internal) libs dynamically or statically?
5173 # If a subsystem is built as a library then this controls whether they are
5174 # linked into Samba targets statically or dynamically:
5176 # * If we build the shared library at all, we link dynamically by default.
5178 # * We only link statically if we don't build shared or if the library
5179 # appears in the --with-static-libs configure option.
5182 # --with-static-libs=libtalloc makes use of libtalloc.a instead
5183 # of linking the dynamic variant with -ltalloc.
5185 # NOTE: This option only affects libraries that we do not only build
5186 # but that samba also links against as libraries (as opposed to linking
5187 # the plain object files. - This has to be configured in Makefile.in.
5188 # So in particular it does not harm to give invalid or unknown names here.
5191 AC_ARG_WITH([static-libs],
5192 [AS_HELP_STRING([--with-static-libs=LIBS],
5193 [Comma-separated list of names of (internal) libraries to link statically (instead of dynamically)])],
5194 [AS_IF([test $withval],
5195 [for lib in `echo $withval | sed -e 's/,/ /g'` ; do
5196 [lib=`echo $lib | tr '[a-z]' '[A-Z]'`]
5197 eval LINK_$lib=STATIC
5201 #################################################
5202 # should we build libtalloc?
5203 LIBTALLOC_SHARED_TARGET=bin/libtalloc.$SHLIBEXT
5204 LIBTALLOC_STATIC_TARGET=bin/libtalloc.a
5209 AC_MSG_CHECKING(whether to build the libtalloc shared library)
5210 AC_ARG_WITH(libtalloc,
5211 [AS_HELP_STRING([--with-libtalloc],
5212 [Build the libtalloc shared library (default=yes if shared libs supported)])],
5219 samba_cv_with_libtalloc=yes
5224 # if unspecified, default is to build it if possible.
5225 samba_cv_with_libtalloc=yes
5229 if test x"$samba_cv_with_libtalloc" = "xyes" -a $BLDSHARED = true; then
5230 LIBTALLOC_SHARED=$LIBTALLOC_SHARED_TARGET
5232 if test x"$LINK_LIBTALLOC" = "xSTATIC" ; then
5233 LIBTALLOC_STATIC=$LIBTALLOC_STATIC_TARGET
5235 LIBTALLOC_LIBS=-ltalloc
5239 AC_MSG_RESULT(no shared library support -- will supply static library)
5241 if test $enable_static = yes; then
5242 LIBTALLOC_STATIC=$LIBTALLOC_STATIC_TARGET
5245 #################################################
5246 # should we build libtdb?
5247 LIBTDB_SHARED_TARGET=bin/libtdb.$SHLIBEXT
5248 LIBTDB_STATIC_TARGET=bin/libtdb.a
5253 AC_MSG_CHECKING(whether to build the libtdb shared library)
5255 [AS_HELP_STRING([--with-libtdb],
5256 [Build the libtdb shared library (default=yes if shared libs supported)])],
5263 samba_cv_with_libtdb=yes
5268 # if unspecified, default is to build it if possible.
5269 samba_cv_with_libtdb=yes
5273 if test x"$samba_cv_with_libtdb" = "xyes" -a $BLDSHARED = true; then
5274 LIBTDB_SHARED=$LIBTDB_SHARED_TARGET
5276 if test x"$LINK_LIBTDB" = "xSTATIC" ; then
5277 LIBTDB_STATIC=$LIBTDB_STATIC_TARGET
5283 AC_MSG_RESULT(no shared library support -- will supply static library)
5285 if test $enable_static = yes; then
5286 LIBTDB_STATIC=$LIBTDB_STATIC_TARGET
5289 #################################################
5290 # should we build libnetapi?
5291 LIBNETAPI_SHARED_TARGET=bin/libnetapi.$SHLIBEXT
5292 LIBNETAPI_STATIC_TARGET=bin/libnetapi.a
5297 AC_MSG_CHECKING(whether to build the libnetapi shared library)
5298 AC_ARG_WITH(libnetapi,
5299 [AS_HELP_STRING([--with-libnetapi], [Build the libnetapi shared library (default=yes if shared libs supported)])],
5306 samba_cv_with_libnetapi=yes
5311 # if unspecified, default is to build it if possible.
5312 samba_cv_with_libnetapi=yes
5316 if test x"$samba_cv_with_libnetapi" = x"yes" -a $BLDSHARED = true; then
5317 LIBNETAPI_SHARED=$LIBNETAPI_SHARED_TARGET
5319 if test x"$LINK_LIBNETAPI" = x"STATIC" ; then
5320 LIBNETAPI_STATIC=$LIBNETAPI_STATIC_TARGET
5322 LIBNETAPI_LIBS=-lnetapi
5326 AC_MSG_RESULT(no shared library support -- will supply static library)
5328 if test x"$enable_static" = x"yes"; then
5329 LIBNETAPI_STATIC=$LIBNETAPI_STATIC_TARGET
5332 #################################################
5333 # should we build libaddns?
5338 AC_MSG_CHECKING(whether to build the libaddns shared library)
5339 AC_ARG_WITH(libaddns,
5340 [AS_HELP_STRING([--with-libaddns], [Build the libaddns shared library (default=no undefined API)])],
5341 [ case "$withval" in
5346 if test $BLDSHARED = true; then
5347 LIBADDNS_SHARED=bin/libaddns.$SHLIBEXT
5352 AC_MSG_RESULT(no shared library support -- will supply static library)
5354 if test $enable_static = yes; then
5357 INSTALL_LIBADDNS=installlibaddns
5358 UNINSTALL_LIBADDNS=uninstalllibaddns
5364 #################################################
5365 # should we build libsmbclient?
5367 INSTALL_LIBSMBCLIENT=
5368 UNINSTALL_LIBSMBCLIENT=
5369 LIBSMBCLIENT_SHARED=
5371 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
5372 AC_ARG_WITH(libsmbclient,
5373 [AS_HELP_STRING([--with-libsmbclient], [Build the libsmbclient shared library (default=yes if shared libs supported)])],
5374 [ case "$withval" in
5379 if test $BLDSHARED = true; then
5380 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
5381 LIBSMBCLIENT=libsmbclient
5385 AC_MSG_RESULT(no shared library support -- will supply static library)
5387 if test $enable_static = yes; then
5388 LIBSMBCLIENT=libsmbclient
5390 INSTALL_LIBSMBCLIENT=installclientlib
5391 UNINSTALL_LIBSMBCLIENT=uninstallclientlib
5395 # if unspecified, default is to build it if possible.
5396 if test $BLDSHARED = true; then
5397 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
5398 LIBSMBCLIENT=libsmbclient
5402 AC_MSG_RESULT(no shared library support -- will supply static library)
5404 if test $enable_static = yes; then
5405 LIBSMBCLIENT=libsmbclient
5407 INSTALL_LIBSMBCLIENT=installclientlib
5408 UNINSTALL_LIBSMBCLIENT=uninstallclientlib
5411 INSTALL_LIBSMBSHAREMODES=
5412 LIBSMBSHAREMODES_SHARED=
5414 AC_MSG_CHECKING(whether to build the libsmbsharemodes shared library)
5415 AC_ARG_WITH(libsmbsharemodes,
5416 [AS_HELP_STRING([--with-libsmbsharemodes], [Build the libsmbsharemodes shared library (default=yes if shared libs supported)])],
5417 [ case "$withval" in
5422 if test $BLDSHARED = true; then
5423 LIBSMBSHAREMODES_SHARED=bin/libsmbsharemodes.$SHLIBEXT
5424 LIBSMBSHAREMODES=libsmbsharemodes
5428 AC_MSG_RESULT(no shared library support -- will supply static library)
5430 if test $enable_static = yes; then
5431 LIBSMBSHAREMODES=libsmbsharemodes
5433 INSTALL_LIBSMBSHAREMODES=installlibsmbsharemodes
5434 UNINSTALL_LIBSMBSHAREMODES=uninstalllibsmbsharemodes
5438 # if unspecified, default is to build it if possible.
5439 if test $BLDSHARED = true; then
5440 LIBSMBSHAREMODES_SHARED=bin/libsmbsharemodes.$SHLIBEXT
5441 LIBSMBSHAREMODES=libsmbsharemodes
5445 AC_MSG_RESULT(no shared library support -- will supply static library)
5447 if test $enable_static = yes; then
5448 LIBSMBSHAREMODES=libsmbsharemodes
5450 INSTALL_LIBSMBSHAREMODES=installlibsmbsharemodes
5454 #################################################
5455 # these tests are taken from the GNU fileutils package
5456 AC_CHECKING(how to get filesystem space usage)
5459 # Test for statvfs64.
5460 if test $space = no; then
5462 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
5464 #if defined(HAVE_UNISTD_H)
5467 #include <sys/types.h>
5468 #include <sys/statvfs.h>
5471 struct statvfs64 fsd;
5472 exit (statvfs64 (".", &fsd));
5474 fu_cv_sys_stat_statvfs64=yes,
5475 fu_cv_sys_stat_statvfs64=no,
5476 fu_cv_sys_stat_statvfs64=cross)])
5477 if test $fu_cv_sys_stat_statvfs64 = yes; then
5479 AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
5483 # Perform only the link test since it seems there are no variants of the
5484 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
5485 # because that got a false positive on SCO OSR5. Adding the declaration
5486 # of a `struct statvfs' causes this test to fail (as it should) on such
5487 # systems. That system is reported to work fine with STAT_STATFS4 which
5488 # is what it gets when this test fails.
5489 if test $space = no; then
5491 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
5492 [AC_TRY_LINK([#include <sys/types.h>
5493 #include <sys/statvfs.h>],
5494 [struct statvfs fsd; statvfs (0, &fsd);],
5495 fu_cv_sys_stat_statvfs=yes,
5496 fu_cv_sys_stat_statvfs=no)])
5497 if test $fu_cv_sys_stat_statvfs = yes; then
5499 AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
5503 # smbd/statvfs.c assumes that statvfs.f_fsid is an integer.
5504 # This is not the case on ancient Linux systems.
5506 AC_CACHE_CHECK([that statvfs.f_fsid is an integer],samba_cv_fsid_int, [
5507 AC_TRY_COMPILE([#include <sys/statvfs.h>],[struct statvfs buf; buf.f_fsid = 0],
5508 samba_cv_fsid_int=yes,samba_cv_fsid_int=no)])
5509 if test x"$samba_cv_fsid_int" = x"yes"; then
5510 AC_DEFINE(HAVE_FSID_INT, 1, [Whether statvfs.f_fsid is an integer])
5513 if test $space = no; then
5514 # DEC Alpha running OSF/1
5515 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
5516 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
5518 #include <sys/param.h>
5519 #include <sys/types.h>
5520 #include <sys/mount.h>
5525 exit (statfs (".", &fsd, sizeof (struct statfs)));
5527 fu_cv_sys_stat_statfs3_osf1=yes,
5528 fu_cv_sys_stat_statfs3_osf1=no,
5529 fu_cv_sys_stat_statfs3_osf1=no)])
5530 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
5531 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
5533 AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
5537 if test $space = no; then
5539 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
5540 member (AIX, 4.3BSD)])
5541 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
5543 #ifdef HAVE_SYS_PARAM_H
5544 #include <sys/param.h>
5546 #ifdef HAVE_SYS_MOUNT_H
5547 #include <sys/mount.h>
5549 #ifdef HAVE_SYS_VFS_H
5550 #include <sys/vfs.h>
5556 exit (statfs (".", &fsd));
5558 fu_cv_sys_stat_statfs2_bsize=yes,
5559 fu_cv_sys_stat_statfs2_bsize=no,
5560 fu_cv_sys_stat_statfs2_bsize=no)])
5561 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
5562 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
5564 AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
5568 if test $space = no; then
5570 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
5571 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
5572 [AC_TRY_RUN([#include <sys/types.h>
5573 #include <sys/statfs.h>
5577 exit (statfs (".", &fsd, sizeof fsd, 0));
5579 fu_cv_sys_stat_statfs4=yes,
5580 fu_cv_sys_stat_statfs4=no,
5581 fu_cv_sys_stat_statfs4=no)])
5582 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
5583 if test $fu_cv_sys_stat_statfs4 = yes; then
5585 AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
5589 if test $space = no; then
5591 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
5592 member (4.4BSD and NetBSD)])
5593 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
5594 [AC_TRY_RUN([#include <sys/types.h>
5595 #ifdef HAVE_SYS_PARAM_H
5596 #include <sys/param.h>
5598 #ifdef HAVE_SYS_MOUNT_H
5599 #include <sys/mount.h>
5605 exit (statfs (".", &fsd));
5607 fu_cv_sys_stat_statfs2_fsize=yes,
5608 fu_cv_sys_stat_statfs2_fsize=no,
5609 fu_cv_sys_stat_statfs2_fsize=no)])
5610 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
5611 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
5613 AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
5617 if test $space = no; then
5619 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
5620 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
5621 [AC_TRY_RUN([#include <sys/types.h>
5622 #ifdef HAVE_SYS_PARAM_H
5623 #include <sys/param.h>
5625 #ifdef HAVE_SYS_MOUNT_H
5626 #include <sys/mount.h>
5628 #ifdef HAVE_SYS_FS_TYPES_H
5629 #include <sys/fs_types.h>
5634 /* Ultrix's statfs returns 1 for success,
5635 0 for not mounted, -1 for failure. */
5636 exit (statfs (".", &fsd) != 1);
5638 fu_cv_sys_stat_fs_data=yes,
5639 fu_cv_sys_stat_fs_data=no,
5640 fu_cv_sys_stat_fs_data=no)])
5641 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
5642 if test $fu_cv_sys_stat_fs_data = yes; then
5644 AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
5649 # As a gating factor for large file support, in order to
5650 # use <4GB files we must have the following minimal support
5652 # long long, and a 64 bit off_t or off64_t.
5653 # If we don't have all of these then disable large
5656 AC_MSG_CHECKING([if large file support can be enabled])
5658 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
5659 #include <sys/types.h>
5665 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
5666 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
5667 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
5669 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
5671 #################################################
5672 # check for cluster extensions
5674 AC_MSG_CHECKING(whether to include cluster support)
5675 AC_ARG_WITH(cluster-support,
5676 [AS_HELP_STRING([--with-cluster-support], [Enable cluster extensions (default=no)])])
5677 if test "x$with_cluster_support" = "xyes"; then
5678 AC_DEFINE(CLUSTER_SUPPORT,1,[Whether to enable cluster extensions])
5685 #################################################
5686 # check for ACL support
5688 AC_MSG_CHECKING(whether to support ACLs)
5689 AC_ARG_WITH(acl-support,
5690 [AS_HELP_STRING([--with-acl-support], [Include ACL support (default=auto)])],
5691 [ case "$withval" in
5693 with_acl_support="$withval"
5697 if test x"$with_acl_support" = x ; then
5698 with_acl_support="auto"
5701 AC_MSG_RESULT($with_acl_support)
5703 if test x"$with_acl_support" = x"no"; then
5704 AC_MSG_RESULT(Disabling ACL support)
5705 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
5707 AC_MSG_NOTICE(checking whether ACL support is available:)
5710 AC_MSG_NOTICE(Using UnixWare ACLs)
5711 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
5712 default_static_modules="$default_static_modules vfs_solarisacl"
5715 AC_MSG_NOTICE(Using solaris ACLs)
5716 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
5717 ACL_LIBS="$ACL_LIBS -lsec"
5718 default_static_modules="$default_static_modules vfs_solarisacl"
5721 AC_MSG_NOTICE(Using HPUX ACLs)
5722 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
5723 default_static_modules="$default_static_modules vfs_hpuxacl"
5726 AC_MSG_NOTICE(Using IRIX ACLs)
5727 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
5728 default_static_modules="$default_static_modules vfs_irixacl"
5731 AC_MSG_NOTICE(Using AIX ACLs)
5732 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
5733 default_static_modules="$default_static_modules vfs_aixacl"
5736 AC_MSG_NOTICE(Using Tru64 ACLs)
5737 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
5738 ACL_LIBS="$ACL_LIBS -lpacl"
5739 default_static_modules="$default_static_modules vfs_tru64acl"
5742 AC_MSG_NOTICE(ACLs on Darwin currently not supported)
5743 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
5746 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
5749 AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
5752 AC_CACHE_CHECK([for POSIX ACL support],samba_cv_HAVE_POSIX_ACLS,[
5754 LIBS="$LIBS $ACL_LIBS"
5756 #include <sys/types.h>
5757 #include <sys/acl.h>
5761 acl_entry_t *entry_p;
5762 return acl_get_entry(acl, entry_id, entry_p);
5764 [samba_cv_HAVE_POSIX_ACLS=yes],
5765 [samba_cv_HAVE_POSIX_ACLS=no])
5768 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
5769 AC_MSG_NOTICE(Using posix ACLs)
5770 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
5771 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
5773 LIBS="$LIBS $ACL_LIBS"
5775 #include <sys/types.h>
5776 #include <sys/acl.h>
5778 acl_permset_t permset_d;
5780 return acl_get_perm_np(permset_d, perm);
5782 [samba_cv_HAVE_ACL_GET_PERM_NP=yes],
5783 [samba_cv_HAVE_ACL_GET_PERM_NP=no])
5786 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
5787 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
5789 default_static_modules="$default_static_modules vfs_posixacl"
5791 AC_MSG_NOTICE(ACL support is not avaliable)
5792 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
5796 fi # with_acl_support
5800 #################################################
5801 # check for AIO support
5803 AC_MSG_CHECKING(whether to support asynchronous io)
5804 AC_ARG_WITH(aio-support,
5805 [AS_HELP_STRING([--with-aio-support], [Include asynchronous io support (default=no)])],
5806 [ case "$withval" in
5813 AC_CHECK_LIB(rt,aio_read,[AIO_LIBS="$LIBS -lrt"])
5814 AC_CHECK_LIB(aio,aio_read,[AIO_LIBS="$LIBS -laio"])
5815 AC_CACHE_CHECK([for asynchronous io support],samba_cv_HAVE_AIO,[
5818 AC_TRY_LINK([#include <sys/types.h>
5820 [ struct aiocb a; return aio_read(&a);],
5821 samba_cv_HAVE_AIO=yes,samba_cv_HAVE_AIO=no)
5823 AC_CACHE_CHECK([for 64-bit asynchronous io support],samba_cv_HAVE_AIO64,[
5826 AC_TRY_LINK([#include <sys/types.h>
5828 [ struct aiocb64 a; return aio_read64(&a);],
5829 samba_cv_HAVE_AIO64=yes,samba_cv_HAVE_AIO64=no)
5831 if test x"$samba_cv_HAVE_AIO64" = x"yes"; then
5832 AC_DEFINE(HAVE_AIOCB64,1,[Whether 64 bit aio is available])
5833 AC_DEFINE(WITH_AIO, 1, [Using asynchronous io])
5835 elif test x"$samba_cv_HAVE_AIO" = x"yes"; then
5836 AC_DEFINE(WITH_AIO, 1, [Using asynchronous io])
5840 if test x"$samba_cv_HAVE_AIO" = x"yes"; then
5841 AC_MSG_CHECKING(for aio_read)
5842 AC_LINK_IFELSE([#include <aio.h>
5843 int main() { struct aiocb a; return aio_read(&a); }],
5844 [AC_DEFINE(HAVE_AIO_READ, 1, [Have aio_read]) AC_MSG_RESULT(yes)],
5845 [AC_MSG_RESULT(no)])
5847 AC_MSG_CHECKING(for aio_write)
5848 AC_LINK_IFELSE([#include <aio.h>
5849 int main() { struct aiocb a; return aio_write(&a); }],
5850 [AC_DEFINE(HAVE_AIO_WRITE, 1, [Have aio_write]) AC_MSG_RESULT(yes)],
5851 [AC_MSG_RESULT(no)])
5853 AC_MSG_CHECKING(for aio_fsync)
5854 AC_LINK_IFELSE([#include <aio.h>
5855 int main() { struct aiocb a; return aio_fsync(1, &a); }],
5856 [AC_DEFINE(HAVE_AIO_FSYNC, 1, [Have aio_fsync]) AC_MSG_RESULT(yes)],
5857 [AC_MSG_RESULT(no)])
5859 AC_MSG_CHECKING(for aio_return)
5860 AC_LINK_IFELSE([#include <aio.h>
5861 int main() { struct aiocb a; return aio_return(&a); }],
5862 [AC_DEFINE(HAVE_AIO_RETURN, 1, [Have aio_return]) AC_MSG_RESULT(yes)],
5863 [AC_MSG_RESULT(no)])
5865 AC_MSG_CHECKING(for aio_error)
5866 AC_LINK_IFELSE([#include <aio.h>
5867 int main() { struct aiocb a; return aio_error(&a); }],
5868 [AC_DEFINE(HAVE_AIO_ERROR, 1, [Have aio_error]) AC_MSG_RESULT(yes)],
5869 [AC_MSG_RESULT(no)])
5871 AC_MSG_CHECKING(for aio_cancel)
5872 AC_LINK_IFELSE([#include <aio.h>
5873 int main() { struct aiocb a; return aio_cancel(1, &a); }],
5874 [AC_DEFINE(HAVE_AIO_CANCEL, 1, [Have aio_cancel]) AC_MSG_RESULT(yes)],
5875 [AC_MSG_RESULT(no)])
5877 AC_MSG_CHECKING(for aio_suspend)
5878 AC_LINK_IFELSE([#include <aio.h>
5879 int main() { struct aiocb a; return aio_suspend(&a, 1, NULL); }],
5880 [AC_DEFINE(HAVE_AIO_SUSPEND, 1, [Have aio_suspend]) AC_MSG_RESULT(yes)],
5881 [AC_MSG_RESULT(no)])
5884 if test x"$samba_cv_HAVE_AIO64" = x"yes"; then
5885 AC_MSG_CHECKING(for aio_read64)
5886 AC_LINK_IFELSE([#include <aio.h>
5887 int main() { struct aiocb a; return aio_read64(&a); }],
5888 [AC_DEFINE(HAVE_AIO_READ64, 1, [Have aio_read64]) AC_MSG_RESULT(yes)],
5889 [AC_MSG_RESULT(no)])
5891 AC_MSG_CHECKING(for aio_write64)
5892 AC_LINK_IFELSE([#include <aio.h>
5893 int main() { struct aiocb a; return aio_write64(&a); }],
5894 [AC_DEFINE(HAVE_AIO_WRITE64, 1, [Have aio_write64]) AC_MSG_RESULT(yes)],
5895 [AC_MSG_RESULT(no)])
5897 AC_MSG_CHECKING(for aio_fsync64)
5898 AC_LINK_IFELSE([#include <aio.h>
5899 int main() { struct aiocb a; return aio_fsync64(1, &a); }],
5900 [AC_DEFINE(HAVE_AIO_FSYNC64, 1, [Have aio_fsync64]) AC_MSG_RESULT(yes)],
5901 [AC_MSG_RESULT(no)])
5903 AC_MSG_CHECKING(for aio_return64)
5904 AC_LINK_IFELSE([#include <aio.h>
5905 int main() { struct aiocb a; return aio_return64(&a); }],
5906 [AC_DEFINE(HAVE_AIO_RETURN64, 1, [Have aio_return64]) AC_MSG_RESULT(yes)],
5907 [AC_MSG_RESULT(no)])
5909 AC_MSG_CHECKING(for aio_error64)
5910 AC_LINK_IFELSE([#include <aio.h>
5911 int main() { struct aiocb a; return aio_error64(&a); }],
5912 [AC_DEFINE(HAVE_AIO_ERROR64, 1, [Have aio_error64]) AC_MSG_RESULT(yes)],
5913 [AC_MSG_RESULT(no)])
5915 AC_MSG_CHECKING(for aio_cancel64)
5916 AC_LINK_IFELSE([#include <aio.h>
5917 int main() { struct aiocb a; return aio_cancel64(1, &a); }],
5918 [AC_DEFINE(HAVE_AIO_CANCEL64, 1, [Have aio_cancel64]) AC_MSG_RESULT(yes)],
5919 [AC_MSG_RESULT(no)])
5921 AC_MSG_CHECKING(for aio_suspend64)
5922 AC_LINK_IFELSE([#include <aio.h>
5923 int main() { struct aiocb a; return aio_suspend64(&a, 1, NULL); }],
5924 [AC_DEFINE(HAVE_AIO_SUSPEND64, 1, [Have aio_suspend64]) AC_MSG_RESULT(yes)],
5925 [AC_MSG_RESULT(no)])
5932 AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support is available])
5935 AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support should be built in])
5939 #################################################
5940 # check for sendfile support
5942 with_sendfile_support=yes
5943 AC_MSG_CHECKING(whether to check to support sendfile)
5944 AC_ARG_WITH(sendfile-support,
5945 [AS_HELP_STRING([--with-sendfile-support], [Check for sendfile support (default=yes)])],
5946 [ case "$withval" in
5953 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
5954 AC_TRY_LINK([#include <sys/sendfile.h>],
5959 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
5961 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
5963 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
5964 AC_TRY_LINK([#include <sys/sendfile.h>],
5969 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
5971 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
5973 # Try and cope with broken Linux sendfile....
5974 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
5976 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
5977 #undef _FILE_OFFSET_BITS
5979 #include <sys/sendfile.h>],
5984 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
5986 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
5988 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
5989 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
5990 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
5991 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
5992 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
5993 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
5994 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
5995 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
5996 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
5997 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
5998 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
6004 *freebsd* | *dragonfly* )
6005 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
6007 #include <sys/types.h>
6009 #include <sys/socket.h>
6010 #include <sys/uio.h>],
6012 int fromfd, tofd, ret, total=0;
6013 off_t offset, nwritten;
6016 hdr.headers = &hdtrl;
6018 hdr.trailers = NULL;
6020 hdtrl.iov_base = NULL;
6022 ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
6024 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
6026 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
6027 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
6028 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
6029 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
6036 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
6038 #include <sys/socket.h>
6039 #include <sys/uio.h>],
6043 struct iovec hdtrl[2];
6047 hdtrl[0].iov_base = 0;
6048 hdtrl[0].iov_len = 0;
6050 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
6052 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
6053 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
6054 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
6055 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
6056 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
6061 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
6063 #include <sys/socket.h>
6064 #include <sys/uio.h>],
6068 struct iovec hdtrl[2];
6072 hdtrl[0].iov_base = 0;
6073 hdtrl[0].iov_len = 0;
6075 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
6077 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
6078 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
6079 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
6080 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
6081 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
6088 AC_CHECK_LIB(sendfile,sendfilev)
6089 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
6091 #include <sys/sendfile.h>],
6095 struct sendfilevec vec[2];
6101 vec[0].sfv_fd = SFV_FD_SELF;
6102 vec[0].sfv_flag = 0;
6107 vec[1].sfv_flag = 0;
6110 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
6112 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
6114 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
6115 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
6116 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
6117 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
6122 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
6124 #include <sys/sendfile.h>],
6128 struct sendfilevec vec[2];
6134 vec[0].sfv_fd = SFV_FD_SELF;
6135 vec[0].sfv_flag = 0;
6140 vec[1].sfv_flag = 0;
6143 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
6145 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
6147 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
6148 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
6149 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
6150 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
6156 AC_CACHE_CHECK([for AIX send_file support],samba_cv_HAVE_SENDFILE,[
6158 #include <sys/socket.h>],
6162 struct sf_parms hdtrl;
6166 hdtrl.header_data = 0;
6167 hdtrl.header_length = 0;
6168 hdtrl.file_descriptor = fromfd;
6169 hdtrl.file_offset = 0;
6170 hdtrl.file_bytes = 0;
6171 hdtrl.trailer_data = 0;
6172 hdtrl.trailer_length = 0;
6174 nwritten = send_file(&tofd, &hdtrl, 0);
6176 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
6177 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
6178 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
6179 AC_DEFINE(AIX_SENDFILE_API,1,[Whether the AIX send_file() API is available])
6180 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
6196 ############################################
6197 # See if we have the Linux readahead syscall.
6199 AC_CACHE_CHECK([for Linux readahead],
6200 samba_cv_HAVE_LINUX_READAHEAD,[
6202 #if defined(HAVE_UNISTD_H)
6205 #include <fcntl.h>],
6206 [ssize_t err = readahead(0,0,0x80000);],
6207 samba_cv_HAVE_LINUX_READAHEAD=yes,
6208 samba_cv_HAVE_LINUX_READAHEAD=no)])
6210 if test x"$samba_cv_HAVE_LINUX_READAHEAD" = x"yes"; then
6211 AC_DEFINE(HAVE_LINUX_READAHEAD,1,
6212 [Whether Linux readahead is available])
6215 AC_HAVE_DECL(readahead, [#include <fcntl.h>])
6217 ############################################
6218 # See if we have the posix_fadvise syscall.
6220 AC_CACHE_CHECK([for posix_fadvise],
6221 samba_cv_HAVE_POSIX_FADVISE,[
6223 #if defined(HAVE_UNISTD_H)
6226 #include <fcntl.h>],
6227 [ssize_t err = posix_fadvise(0,0,0x80000,POSIX_FADV_WILLNEED);],
6228 samba_cv_HAVE_POSIX_FADVISE=yes,
6229 samba_cv_HAVE_POSIX_FADVISE=no)])
6231 if test x"$samba_cv_HAVE_POSIX_FADVISE" = x"yes"; then
6232 AC_DEFINE(HAVE_POSIX_FADVISE,1,
6233 [Whether posix_fadvise is available])
6238 #################################################
6239 # Check whether winbind is supported on this platform. If so we need to
6240 # build and install client programs, sbin programs and shared libraries
6242 AC_MSG_CHECKING(whether to build winbind)
6244 # Initially, the value of $host_os decides whether winbind is supported
6248 # Define the winbind shared library name and any specific linker flags
6249 # it needs to be built with.
6251 WINBIND_NSS="nsswitch/libnss_winbind.$SHLIBEXT"
6252 WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT"
6253 WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
6254 NSSSONAMEVERSIONSUFFIX=""
6255 WINBIND_NSS_PTHREAD=""
6259 NSSSONAMEVERSIONSUFFIX=".2"
6260 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
6263 # FreeBSD winbind client is implemented as a wrapper around
6264 # the Linux version.
6265 NSSSONAMEVERSIONSUFFIX=".1"
6266 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
6267 nsswitch/winbind_nss_linux.o"
6268 WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
6269 WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
6273 # NetBSD winbind client is implemented as a wrapper
6274 # around the Linux version. It needs getpwent_r() to
6275 # indicate libc's use of the correct nsdispatch API.
6277 if test x"$ac_cv_func_getpwent_r" = x"yes"; then
6278 WINBIND_NSS_EXTRA_OBJS="\
6279 nsswitch/winbind_nss_netbsd.o \
6280 nsswitch/winbind_nss_linux.o"
6281 WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
6282 WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
6285 winbind_no_reason=", getpwent_r is missing on $host_os so winbind is unsupported"
6289 # IRIX has differently named shared libraries
6290 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
6291 WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT"
6292 WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT"
6295 # Solaris winbind client is implemented as a wrapper around
6296 # the Linux version.
6297 NSSSONAMEVERSIONSUFFIX=".1"
6298 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \
6299 nsswitch/winbind_nss_linux.o"
6300 WINBIND_NSS_EXTRA_LIBS="-lsocket"
6303 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
6306 # AIX has even differently named shared libraries. No
6307 # WINS support has been implemented yet.
6308 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o"
6309 WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init"
6310 WINBIND_NSS="nsswitch/WINBIND"
6315 winbind_no_reason=", unsupported on $host_os"
6319 # Check the setting of --with-winbind
6321 AC_ARG_WITH(winbind,
6322 [AS_HELP_STRING([--with-winbind], [Build winbind (default, if supported by OS)])],
6335 # We need unix domain sockets for winbind
6337 if test x"$HAVE_WINBIND" = x"yes"; then
6338 if test x"$samba_cv_unixsocket" = x"no"; then
6339 winbind_no_reason=", no unix domain socket support on $host_os"
6344 # Display test results
6346 if test x"$HAVE_WINBIND" = x"no"; then
6351 if test x"$enable_developer" = x"yes" -a x"$LINK_LIBWBCLIENT" = x"STATIC" ; then
6352 BUILD_LIBWBCLIENT_SHARED=no
6354 BUILD_LIBWBCLIENT_SHARED=yes
6357 if test $BLDSHARED = true -a x"$HAVE_WINBIND" = x"yes" -a x"$BUILD_LIBWBCLIENT_SHARED" = x"yes"; then
6358 NSS_MODULES="${WINBIND_NSS} ${WINBIND_WINS_NSS}"
6359 ## Only worry about libwbclient if we have shared library support
6361 LIBWBCLIENT_SHARED=bin/libwbclient.$SHLIBEXT
6362 LIBWBCLIENT=libwbclient
6363 INSTALL_LIBWBCLIENT=installlibwbclient
6364 UNINSTALL_LIBWBCLIENT=uninstalllibwbclient
6365 WINBIND_LIBS="-lwbclient"
6367 LIBWBCLIENT_STATIC=bin/libwbclient.a
6370 if test x"$HAVE_WINBIND" = x"yes"; then
6372 AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
6374 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)"
6375 EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)"
6376 if test $BLDSHARED = true -a x"$create_pam_modules" = x"yes"; then
6377 PAM_MODULES="$PAM_MODULES pam_winbind"
6378 INSTALL_PAM_MODULES="installpammodules"
6379 UNINSTALL_PAM_MODULES="uninstallpammodules"
6382 AC_MSG_RESULT(no$winbind_no_reason)
6385 AC_CHECK_LIB(pthread, pthread_mutex_lock, [WINBIND_NSS_PTHREAD="-lpthread"
6386 AC_DEFINE(HAVE_PTHREAD, 1, [whether pthread exists])])
6388 AC_SUBST(WINBIND_NSS_PTHREAD)
6389 AC_SUBST(WINBIND_NSS)
6390 AC_SUBST(WINBIND_WINS_NSS)
6391 AC_SUBST(WINBIND_NSS_LDSHFLAGS)
6392 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
6393 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
6394 AC_SUBST(NSSSONAMEVERSIONSUFFIX)
6396 AC_SUBST(WINBIND_KRB5_LOCATOR)
6398 # Solaris 10 does have new member in nss_XbyY_key
6399 AC_CHECK_MEMBER(union nss_XbyY_key.ipnode.af_family,
6400 AC_DEFINE(HAVE_NSS_XBYY_KEY_IPNODE, 1, [Defined if union nss_XbyY_key has ipnode field]),,
6401 [#include <nss_dbdefs.h>])
6403 # Solaris has some extra fields in struct passwd that need to be
6404 # initialised otherwise nscd crashes.
6406 AC_CHECK_MEMBER(struct passwd.pw_comment,
6407 AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),,
6410 AC_CHECK_MEMBER(struct passwd.pw_age,
6411 AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),,
6414 # AIX 4.3.x and 5.1 do not have as many members in
6415 # struct secmethod_table as AIX 5.2
6416 AC_CHECK_MEMBERS([struct secmethod_table.method_attrlist], , ,
6417 [#include <usersec.h>])
6418 AC_CHECK_MEMBERS([struct secmethod_table.method_version], , ,
6419 [#include <usersec.h>])
6421 AC_CACHE_CHECK([for SO_PEERCRED],samba_cv_HAVE_PEERCRED,[
6422 AC_TRY_COMPILE([#include <sys/types.h>
6423 #include <sys/socket.h>],
6426 int ret = getsockopt(0, SOL_SOCKET, SO_PEERCRED, &cred, &cred_len);
6428 samba_cv_HAVE_PEERCRED=yes,samba_cv_HAVE_PEERCRED=no,samba_cv_HAVE_PEERCRED=cross)])
6429 if test x"$samba_cv_HAVE_PEERCRED" = x"yes"; then
6430 AC_DEFINE(HAVE_PEERCRED,1,[Whether we can use SO_PEERCRED to get socket credentials])
6434 #################################################
6435 # Check to see if we should use the included popt
6437 AC_ARG_WITH(included-popt,
6438 [AS_HELP_STRING([--with-included-popt], [use bundled popt library, not from system])],
6449 if test x"$INCLUDED_POPT" != x"yes"; then
6450 AC_CHECK_LIB(popt, poptGetContext,
6451 INCLUDED_POPT=no, INCLUDED_POPT=yes)
6454 AC_MSG_CHECKING(whether to use included popt)
6455 if test x"$INCLUDED_POPT" = x"yes"; then
6457 BUILD_POPT='$(POPT_OBJ)'
6458 POPTLIBS='$(POPT_OBJ)'
6459 FLAGS1="-I\$(srcdir)/popt"
6465 AC_SUBST(BUILD_POPT)
6469 #################################################
6470 # Check if user wants DNS service discovery support
6472 AC_ARG_ENABLE(dnssd,
6473 [AS_HELP_STRING([--enable-dnssd], [Enable DNS service discovery support (default=auto)])])
6475 AC_SUBST(DNSSD_LIBS)
6476 if test x"$enable_dnssd" != x"no"; then
6477 have_dnssd_support=yes
6479 AC_CHECK_HEADERS(dns_sd.h)
6480 if test x"$ac_cv_header_dns_sd_h" != x"yes"; then
6481 have_dnssd_support=no
6484 # On Darwin the DNSSD API is in libc, but on other platforms it's
6485 # probably in -ldns_sd
6486 AC_CHECK_FUNCS(DNSServiceRegister)
6487 AC_CHECK_LIB_EXT(dns_sd, DNSSD_LIBS, DNSServiceRegister)
6488 if test x"$ac_cv_func_DNSServiceRegister" != x"yes" -a \
6489 x"$ac_cv_lib_ext_DNSServiceRegister" != x"yes"; then
6490 have_dnssd_support=no
6493 if test x"$have_dnssd_support" = x"yes"; then
6494 AC_DEFINE(WITH_DNSSD_SUPPORT, 1,
6495 [Whether to enable DNS service discovery support])
6497 if test x"$enable_dnssd" = x"yes"; then
6498 AC_MSG_ERROR(DNS service discovery support not available)
6504 #################################################
6505 # Check to see if we should use the included iniparser
6507 AC_ARG_WITH(included-iniparser,
6508 [AS_HELP_STRING([--with-included-iniparser], [use bundled iniparser library, not from system])],
6512 INCLUDED_INIPARSER=yes
6515 INCLUDED_INIPARSER=no
6519 if test x"$INCLUDED_INIPARSER" != x"yes"; then
6520 AC_CHECK_LIB(iniparser, iniparser_load,
6521 INCLUDED_INIPARSER=no, INCLUDED_INIPARSER=yes)
6524 AC_MSG_CHECKING(whether to use included iniparser)
6525 if test x"$INCLUDED_INIPARSER" = x"yes"; then
6527 BUILD_INIPARSER='$(INIPARSER_OBJ)'
6529 FLAGS1="$FLAGS1 -I\$(srcdir)/iniparser/src"
6533 INIPARSERLIBS="-liniparser"
6535 AC_SUBST(BUILD_INIPARSER)
6536 AC_SUBST(INIPARSERLIBS)
6541 # Checks for the vfs_fileid module
6543 AC_CHECK_FUNC(getmntent)
6545 AC_CHECK_HEADERS(sys/statfs.h)
6547 AC_MSG_CHECKING([vfs_fileid: checking for statfs() and struct statfs.f_fsid)])
6548 AC_CACHE_VAL(vfsfileid_cv_statfs,[
6550 #include <sys/types.h>
6551 #include <sys/statfs.h>
6555 fsid_t fsid = fsd.f_fsid;
6556 return statfs (".", &fsd);
6558 vfsfileid_cv_statfs=yes,
6559 vfsfileid_cv_statfs=no,
6560 vfsfileid_cv_statfs=cross)
6562 AC_MSG_RESULT($vfsfileid_cv_statfs)
6564 if test x"$ac_cv_func_getmntent" = x"yes" -a \
6565 x"$vfsfileid_cv_statfs" = x"yes"; then
6566 default_shared_modules="$default_shared_modules vfs_fileid"
6569 # Checks for the vfs_fileid module
6572 for i in `echo $default_static_modules | sed -e 's/,/ /g'`
6574 eval MODULE_DEFAULT_$i=STATIC
6577 for i in `echo $default_shared_modules | sed -e 's/,/ /g'`
6579 dnl Fall back to static if we cannot build shared libraries
6580 eval MODULE_DEFAULT_$i=STATIC
6582 if test $BLDSHARED = true; then
6583 eval MODULE_DEFAULT_$i=SHARED
6587 dnl Always build these modules static
6588 MODULE_rpc_spoolss=STATIC
6589 MODULE_rpc_srvsvc2=STATIC
6590 MODULE_idmap_tdb=STATIC
6591 MODULE_idmap_passdb=STATIC
6592 MODULE_idmap_nss=STATIC
6594 MODULE_nss_info_template=STATIC
6596 AC_ARG_WITH(static-modules,
6597 [AS_HELP_STRING([--with-static-modules=MODULES], [Comma-separated list of names of modules to statically link in])],
6598 [ if test $withval; then
6599 for i in `echo $withval | sed -e 's/,/ /g'`
6601 eval MODULE_$i=STATIC
6605 AC_ARG_WITH(shared-modules,
6606 [AS_HELP_STRING([--with-shared-modules=MODULES], [Comma-separated list of names of modules to build shared])],
6607 [ if test $withval; then
6608 for i in `echo $withval | sed -e 's/,/ /g'`
6610 eval MODULE_$i=SHARED
6614 SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o passdb/pdb_nds.o, "bin/ldapsam.$SHLIBEXT", PDB,
6615 [ PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" ] )
6616 SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB)
6617 SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB)
6618 SMB_SUBSYSTEM(PDB,passdb/pdb_interface.o)
6621 SMB_MODULE(rpc_lsarpc, \$(RPC_LSA_OBJ), "bin/librpc_lsarpc.$SHLIBEXT", RPC)
6622 SMB_MODULE(rpc_winreg, \$(RPC_REG_OBJ), "bin/librpc_winreg.$SHLIBEXT", RPC)
6623 SMB_MODULE(rpc_initshutdown, \$(RPC_INITSHUTDOWN_OBJ), "bin/librpc_initshutdown.$SHLIBEXT", RPC)
6624 SMB_MODULE(rpc_dssetup, \$(RPC_DSSETUP_OBJ), "bin/librpc_dssetup.$SHLIBEXT", RPC)
6625 SMB_MODULE(rpc_wkssvc, \$(RPC_WKS_OBJ), "bin/librpc_wkssvc.$SHLIBEXT", RPC)
6626 SMB_MODULE(rpc_svcctl2, \$(RPC_SVCCTL_OBJ), "bin/librpc_svcctl2.$SHLIBEXT", RPC)
6627 SMB_MODULE(rpc_ntsvcs2, \$(RPC_NTSVCS_OBJ), "bin/librpc_ntsvcs2.$SHLIBEXT", RPC)
6628 SMB_MODULE(rpc_netlogon, \$(RPC_NETLOG_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC)
6629 SMB_MODULE(rpc_netdfs, \$(RPC_DFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC)
6630 SMB_MODULE(rpc_srvsvc2, \$(RPC_SVC_OBJ), "bin/librpc_svcsvc2.$SHLIBEXT", RPC)
6631 SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC)
6632 SMB_MODULE(rpc_eventlog2, \$(RPC_EVENTLOG_OBJ), "bin/librpc_eventlog2.$SHLIBEXT", RPC)
6633 SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC)
6634 SMB_MODULE(rpc_rpcecho, \$(RPC_ECHO_OBJ), "bin/librpc_rpcecho.$SHLIBEXT", RPC)
6635 SMB_SUBSYSTEM(RPC,smbd/server.o)
6637 SMB_MODULE(idmap_ldap, winbindd/idmap_ldap.o, "bin/ldap.$SHLIBEXT", IDMAP)
6638 SMB_MODULE(idmap_tdb, winbindd/idmap_tdb.o, "bin/tdb.$SHLIBEXT", IDMAP)
6639 SMB_MODULE(idmap_tdb2, winbindd/idmap_tdb2.o, "bin/tdb2.$SHLIBEXT", IDMAP)
6640 SMB_MODULE(idmap_passdb, winbindd/idmap_passdb.o, "bin/passdb.$SHLIBEXT", IDMAP)
6641 SMB_MODULE(idmap_nss, winbindd/idmap_nss.o, "bin/nss.$SHLIBEXT", IDMAP)
6642 SMB_MODULE(idmap_rid, winbindd/idmap_rid.o, "bin/rid.$SHLIBEXT", IDMAP)
6643 SMB_MODULE(idmap_ad, winbindd/idmap_ad.o, "bin/ad.$SHLIBEXT", IDMAP)
6644 SMB_SUBSYSTEM(IDMAP, winbindd/idmap.o)
6646 SMB_MODULE(nss_info_template, winbindd/nss_info_template.o, "bin/template.$SHLIBEXT", NSS_INFO)
6647 SMB_SUBSYSTEM(NSS_INFO, winbindd/nss_info.o)
6649 SMB_MODULE(charset_weird, modules/weird.o, "bin/weird.$SHLIBEXT", CHARSET)
6650 SMB_MODULE(charset_CP850, modules/CP850.o, "bin/CP850.$SHLIBEXT", CHARSET)
6651 SMB_MODULE(charset_CP437, modules/CP437.o, "bin/CP437.$SHLIBEXT", CHARSET)
6652 SMB_MODULE(charset_macosxfs, modules/charset_macosxfs.o,"bin/macosxfs.$SHLIBEXT", CHARSET)
6653 SMB_SUBSYSTEM(CHARSET,lib/iconv.o)
6655 SMB_MODULE(auth_sam, \$(AUTH_SAM_OBJ), "bin/sam.$SHLIBEXT", AUTH)
6656 SMB_MODULE(auth_unix, \$(AUTH_UNIX_OBJ), "bin/unix.$SHLIBEXT", AUTH)
6657 SMB_MODULE(auth_winbind, \$(AUTH_WINBIND_OBJ), "bin/winbind.$SHLIBEXT", AUTH)
6658 SMB_MODULE(auth_server, \$(AUTH_SERVER_OBJ), "bin/smbserver.$SHLIBEXT", AUTH)
6659 SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), "bin/domain.$SHLIBEXT", AUTH)
6660 SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), "bin/builtin.$SHLIBEXT", AUTH)
6661 SMB_MODULE(auth_script, \$(AUTH_SCRIPT_OBJ), "bin/script.$SHLIBEXT", AUTH)
6662 SMB_SUBSYSTEM(AUTH,auth/auth.o)
6664 SMB_MODULE(vfs_default, \$(VFS_DEFAULT_OBJ), "bin/default.$SHLIBEXT", VFS)
6665 SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), "bin/recycle.$SHLIBEXT", VFS)
6666 SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), "bin/audit.$SHLIBEXT", VFS)
6667 SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), "bin/extd_audit.$SHLIBEXT", VFS)
6668 SMB_MODULE(vfs_full_audit, \$(VFS_FULL_AUDIT_OBJ), "bin/full_audit.$SHLIBEXT", VFS)
6669 SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK_OBJ), "bin/netatalk.$SHLIBEXT", VFS)
6670 SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), "bin/fake_perms.$SHLIBEXT", VFS)
6671 SMB_MODULE(vfs_default_quota, \$(VFS_DEFAULT_QUOTA_OBJ), "bin/default_quota.$SHLIBEXT", VFS)
6672 SMB_MODULE(vfs_readonly, \$(VFS_READONLY_OBJ), "bin/readonly.$SHLIBEXT", VFS)
6673 SMB_MODULE(vfs_cap, \$(VFS_CAP_OBJ), "bin/cap.$SHLIBEXT", VFS)
6674 SMB_MODULE(vfs_expand_msdfs, \$(VFS_EXPAND_MSDFS_OBJ), "bin/expand_msdfs.$SHLIBEXT", VFS)
6675 SMB_MODULE(vfs_shadow_copy, \$(VFS_SHADOW_COPY_OBJ), "bin/shadow_copy.$SHLIBEXT", VFS)
6676 SMB_MODULE(vfs_shadow_copy2, \$(VFS_SHADOW_COPY2_OBJ), "bin/shadow_copy2.$SHLIBEXT", VFS)
6677 SMB_MODULE(vfs_afsacl, \$(VFS_AFSACL_OBJ), "bin/afsacl.$SHLIBEXT", VFS)
6678 SMB_MODULE(vfs_xattr_tdb, \$(VFS_XATTR_TDB_OBJ), "bin/xattr_tdb.$SHLIBEXT", VFS)
6679 SMB_MODULE(vfs_posixacl, \$(VFS_POSIXACL_OBJ), "bin/posixacl.$SHLIBEXT", VFS)
6680 SMB_MODULE(vfs_aixacl, \$(VFS_AIXACL_OBJ), "bin/aixacl.$SHLIBEXT", VFS)
6681 SMB_MODULE(vfs_aixacl2, \$(VFS_AIXACL2_OBJ), "bin/aixacl2.$SHLIBEXT", VFS)
6682 SMB_MODULE(vfs_solarisacl, \$(VFS_SOLARISACL_OBJ), "bin/solarisacl.$SHLIBEXT", VFS)
6683 SMB_MODULE(vfs_irixacl, \$(VFS_IRIXACL_OBJ), "bin/irixacl.$SHLIBEXT", VFS)
6684 SMB_MODULE(vfs_hpuxacl, \$(VFS_HPUXACL_OBJ), "bin/hpuxacl.$SHLIBEXT", VFS)
6685 SMB_MODULE(vfs_tru64acl, \$(VFS_TRU64ACL_OBJ), "bin/tru64acl.$SHLIBEXT", VFS)
6686 SMB_MODULE(vfs_catia, \$(VFS_CATIA_OBJ), "bin/catia.$SHLIBEXT", VFS)
6687 SMB_MODULE(vfs_streams_xattr, \$(VFS_STREAMS_XATTR_OBJ), "bin/streams_xattr.$SHLIBEXT", VFS)
6688 SMB_MODULE(vfs_streams_depot, \$(VFS_STREAMS_DEPOT_OBJ), "bin/streams_depot.$SHLIBEXT", VFS)
6689 SMB_MODULE(vfs_cacheprime, \$(VFS_CACHEPRIME_OBJ), "bin/cacheprime.$SHLIBEXT", VFS)
6690 SMB_MODULE(vfs_prealloc, \$(VFS_PREALLOC_OBJ), "bin/prealloc.$SHLIBEXT", VFS)
6691 SMB_MODULE(vfs_commit, \$(VFS_COMMIT_OBJ), "bin/commit.$SHLIBEXT", VFS)
6692 SMB_MODULE(vfs_gpfs, \$(VFS_GPFS_OBJ), "bin/gpfs.$SHLIBEXT", VFS)
6693 SMB_MODULE(vfs_readahead, \$(VFS_READAHEAD_OBJ), "bin/readahead.$SHLIBEXT", VFS)
6694 SMB_MODULE(vfs_tsmsm, \$(VFS_TSMSM_OBJ), "bin/tsmsm.$SHLIBEXT", VFS)
6695 SMB_MODULE(vfs_fileid, \$(VFS_FILEID_OBJ), "bin/fileid.$SHLIBEXT", VFS)
6696 SMB_MODULE(vfs_syncops, \$(VFS_SYNCOPS_OBJ), "bin/syncops.$SHLIBEXT", VFS)
6697 SMB_MODULE(vfs_zfsacl, \$(VFS_ZFSACL_OBJ), "bin/zfsacl.$SHLIBEXT", VFS)
6698 SMB_MODULE(vfs_notify_fam, \$(VFS_NOTIFY_FAM_OBJ), "bin/notify_fam.$SHLIBEXT", VFS)
6701 SMB_SUBSYSTEM(VFS,smbd/vfs.o)
6703 AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules])
6705 #################################################
6706 # do extra things if we are running insure
6708 if test "${ac_cv_prog_CC}" = "insure"; then
6709 CPPFLAGS="$CPPFLAGS -D__INSURE__"
6712 #################################################
6713 # If run from the build farm, enable NASTY hacks
6714 #################################################
6715 AC_MSG_CHECKING(whether to enable build farm hacks)
6716 if test x"$RUN_FROM_BUILD_FARM" = x"yes"; then
6718 AC_DEFINE(ENABLE_BUILD_FARM_HACKS, 1, [Defined if running in the build farm])
6723 #################################################
6724 # check for bad librt/libpthread interactions
6726 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes" -o \
6727 x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes" -o \
6728 x"$samba_cv_HAVE_AIO64" = x"yes" -o \
6729 x"$samba_cv_HAVE_AIO" = x"yes" ; then
6731 SMB_IF_RTSIGNAL_BUG(
6733 # Have RT_SIGNAL bug, need to check whether the problem will
6734 # affect anything we have configured.
6737 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
6738 if test x"$rt_signal_lease_ok" = x"no" ; then
6743 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
6744 if test x"$rt_signal_notify_ok" = x"no" ; then
6749 if test x"$samba_cv_HAVE_AIO64" = x"yes" -o \
6750 x"$samba_cv_HAVE_AIO" = x"yes" ; then
6751 if test x"$rt_signal_aio_ok" = x"no" ; then
6756 if test x"$rt_do_error" = x"yes" ; then
6757 SMB_IS_LIBPTHREAD_LINKED(
6761 *** On this platforms, linking Samba against pthreads causes problems
6762 *** with the oplock and change notification mechanisms. You may be
6763 *** using pthreads as a side-effect of using the --with-aio-support
6764 *** or --with-profiling-data options. Please remove these and try again.
6771 *** On this platform, the oplock and change notification mechanisms do not
6772 *** appear to work. Please report this problem to samba-technical@samba.org
6773 *** and attach the config.log file from this directory.
6777 AC_MSG_ERROR(unable to use realtime signals on this platform)
6781 # no RT_SIGNAL bug, we are golden
6782 SMB_IS_LIBPTHREAD_LINKED(
6784 AC_MSG_WARN(using libpthreads - this may degrade performance)
6789 # cross compiling, I hope you know what you are doing
6795 dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
6796 LIB_REMOVE_USR_LIB(LDFLAGS)
6797 LIB_REMOVE_USR_LIB(LIBS)
6798 LIB_REMOVE_USR_LIB(KRB5_LIBS)
6800 dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
6801 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
6802 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
6804 #################################################
6805 # Display summary of libraries detected
6807 AC_MSG_RESULT([Using libraries:])
6808 AC_MSG_RESULT([ LIBS = $LIBS])
6809 if test x"$with_ads_support" != x"no"; then
6810 AC_MSG_RESULT([ KRB5_LIBS = $KRB5_LIBS])
6812 if test x"$with_ldap_support" != x"no"; then
6813 AC_MSG_RESULT([ LDAP_LIBS = $LDAP_LIBS])
6815 if test x"$with_dnsupdate_support" != x"no"; then
6816 AC_MSG_RESULT([ UUID_LIBS = $UUID_LIBS])
6818 if test x"$have_dnssd_support" != x"no"; then
6819 AC_MSG_RESULT([ DNSSD_LIBS = $DNSSD_LIBS])
6821 AC_MSG_RESULT([ AUTH_LIBS = $AUTH_LIBS])
6823 #################################################
6824 # final configure stuff
6826 AC_MSG_CHECKING([configure summary])
6827 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
6829 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
6830 AC_MSG_WARN([cannot run when cross-compiling]))
6832 dnl Merge in developer cflags from now on
6833 AC_SUBST(DEVELOPER_CFLAGS)
6834 if test x"$krb5_developer" = x"yes" -o x"$developer" = x"yes"; then
6835 CFLAGS="${CFLAGS} \$(DEVELOPER_CFLAGS)"
6838 # Stuff the smbd-only libraries at the end of the smbd link
6839 # path (if we have them).
6840 SMBD_LIBS="$samba_dmapi_libs"
6843 AC_OUTPUT(Makefile library-versions
6844 script/findsmb smbadduser script/gen-8bit-gap.sh script/installbin.sh script/uninstallbin.sh
6845 lib/netapi/examples/Makefile
6846 pkgconfig/smbclient.pc
6847 pkgconfig/wbclient.pc
6849 pkgconfig/smbsharemodes.pc
6852 #################################################
6853 # Print very concise instructions on building/use
6854 if test "x$enable_dmalloc" = xyes
6856 AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
6857 AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])