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 m4_include(m4/samba_version.m4)
22 m4_include(m4/check_path.m4)
24 AC_LIBREPLACE_CC_CHECKS
26 m4_include(lib/talloc/libtalloc.m4)
29 for obj in ${TALLOC_OBJ}; do
30 TALLOC_OBJS="${TALLOC_OBJS} ${tallocdir}/${obj}"
34 # TODO: These should come from m4_include(lib/tdb/libtdb.m4)
35 # but currently this fails: things have to get merged from s4.
38 TDB_CFLAGS="-I$tdbdir/include"
40 TDB_OBJ="common/tdb.o common/dump.o common/transaction.o common/error.o common/traverse.o"
41 TDB_OBJ="$TDB_OBJ common/freelist.o common/freelistcheck.o common/io.o common/lock.o common/open.o"
45 for obj in ${TDB_OBJ}; do
46 TDB_OBJS="${TDB_OBJS} ${tdbdir}/${obj}"
50 SAMBA_CPPFLAGS="-Iinclude -I${srcdir-.}/include -I. -I${srcdir-.}"
51 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/lib/replace"
52 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TALLOC_CFLAGS}"
53 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} ${TDB_CFLAGS}"
54 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/libaddns"
55 SAMBA_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/librpc"
57 SAMBA_CONFIGURE_CPPFLAGS="${SAMBA_CPPFLAGS} -I${srcdir-.}/popt"
59 ## cleanup the $(srcdir) in the Makefile if we are outside of the tree
60 if test "x${srcdir-.}" != "x."; then
61 SAMBA_CPPFLAGS=`echo ${SAMBA_CPPFLAGS} | sed -e "s;${srcdir};\$\(srcdir\);g"`
64 dnl Unique-to-Samba variables we'll be playing with.
65 AC_SUBST(SAMBA_CPPFLAGS)
70 AC_SUBST(MODULE_EXPORTS)
77 AC_SUBST(INSTALLLIBCMD_SH)
78 AC_SUBST(INSTALLLIBCMD_A)
79 AC_SUBST(UNINSTALLLIBCMD_SH)
80 AC_SUBST(UNINSTALLLIBCMD_A)
81 AC_SUBST(INSTALL_LIBADDNS)
82 AC_SUBST(UNINSTALL_LIBADDNS)
83 AC_SUBST(LIBADDNS_SHARED)
86 AC_SUBST(INSTALL_LIBWBCLIENT)
87 AC_SUBST(UNINSTALL_LIBWBCLIENT)
88 AC_SUBST(LIBWBCLIENT_SHARED)
89 AC_SUBST(LIBWBCLIENT_STATIC)
91 AC_SUBST(WINBIND_LIBS)
93 AC_SUBST(LIBSAMBAUTIL_SHARED)
95 AC_SUBST(INSTALL_LIBSMBCLIENT)
96 AC_SUBST(UNINSTALL_LIBSMBCLIENT)
97 AC_SUBST(LIBSMBCLIENT_SHARED)
98 AC_SUBST(LIBSMBCLIENT)
99 AC_SUBST(INSTALL_LIBSMBSHAREMODES)
100 AC_SUBST(UNINSTALL_LIBSMBSHAREMODES)
101 AC_SUBST(LIBSMBSHAREMODES_SHARED)
102 AC_SUBST(LIBSMBSHAREMODES)
107 AC_SUBST(PASSDB_LIBS)
112 AC_SUBST(PAM_MODULES)
113 AC_SUBST(INSTALL_PAM_MODULES)
114 AC_SUBST(UNINSTALL_PAM_MODULES)
115 AC_SUBST(NSS_MODULES)
116 AC_SUBST(EXTRA_BIN_PROGS)
117 AC_SUBST(CIFSMOUNT_PROGS)
118 AC_SUBST(INSTALL_CIFSMOUNT)
119 AC_SUBST(UNINSTALL_CIFSMOUNT)
120 AC_SUBST(CIFSSPNEGO_PROGS)
121 AC_SUBST(INSTALL_CIFSSPNEGO)
122 AC_SUBST(UNINSTALL_CIFSSPNEGO)
123 AC_SUBST(EXTRA_SBIN_PROGS)
124 AC_SUBST(EXTRA_ALL_TARGETS)
125 AC_SUBST(CONFIG_LIBS)
128 # compile with optimization and without debugging by default, but
129 # allow people to set their own preference.
130 # do this here since AC_CACHE_CHECK apparently sets the CFLAGS to "-g -O2"
131 # if it has no value. This prevent *very* large debug binaries from occurring
133 if test "x$CFLAGS" = x; then
136 if test "x$debug" = "xyes" ; then
137 CFLAGS="${CFLAGS} -g"
142 CFLAGS="${CFLAGS} -D_SAMBA_BUILD_=3"
144 m4_include(lib/socket_wrapper/config.m4)
145 m4_include(lib/nss_wrapper/config.m4)
147 m4_include(m4/swat.m4)
149 # Probe the gcc version for extra CFLAGS. We always stash these in
150 # DEVELOPER_CFLAGS, so that you can turn them on and off with a simple
151 # Makefile edit, avoiding the need to re-run configure.
152 if test x"$ac_cv_prog_gcc" = x"yes" ; then
153 DEVELOPER_CFLAGS="-g -Wall -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
154 # Add -Wdeclaration-after-statement if compiler supports it
156 [that the C compiler understands -Wdeclaration-after-statement],
157 samba_cv_HAVE_Wdeclaration_after_statement, [
162 }],[-Wdeclaration-after-statement],[$CPPFLAGS],[$LDFLAGS],
163 samba_cv_HAVE_Wdeclaration_after_statement=yes,
164 samba_cv_HAVE_Wdeclaration_after_statement=no,
165 samba_cv_HAVE_Wdeclaration_after_statement=cross)
168 if test x"$samba_cv_HAVE_Wdeclaration_after_statement" = x"yes"; then
169 DEVELOPER_CFLAGS="${DEVELOPER_CFLAGS} -Wdeclaration-after-statement"
172 #-Werror-implicit-function-declaration
174 [that the C compiler understands -Werror-implicit-function-declaration],
175 samba_cv_HAVE_Werror_implicit_function_declaration, [
180 }],[-Werror-implicit-function-declaration],[$CPPFLAGS],[$LDFLAGS],
181 samba_cv_HAVE_Werror_implicit_function_declaration=yes,
182 samba_cv_HAVE_Werror_implicit_function_declaration=no,
183 samba_cv_HAVE_Werror_implicit_function_declaration=cross)
185 if test x"$samba_cv_HAVE_Werror_implicit_function_declaration" = x"yes"; then
186 DEVELOPER_CFLAGS="${DEVELOPER_CFLAGS} -Werror-implicit-function-declaration"
189 # krb5developer is like developer, except we don't get
190 # -Wstrict-prototypes.
191 if test x"$krb5_developer" != x"$yes" ; then
192 DEVELOPER_CFLAGS="$DEVELOPER_CFLAGS -Wstrict-prototypes"
196 AC_ARG_ENABLE(dmalloc, [AS_HELP_STRING([--enable-dmalloc], [Enable heap debugging [default=no]])])
198 if test "x$enable_dmalloc" = xyes
200 AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
201 AC_DEFINE(DMALLOC_FUNC_CHECK, 1,
202 [Define to check invariants around some common functions])
203 LIBS="$LIBS -ldmalloc"
206 #################################################
207 # check for a shared memory profiling support
208 AC_MSG_CHECKING(whether to use profiling)
209 AC_ARG_WITH(profiling-data,
210 [AS_HELP_STRING([--with-profiling-data], [Include gathering source code profile information (default=no)])],
214 AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
215 samba_cv_WITH_PROFILE=yes
219 samba_cv_WITH_PROFILE=no
225 dnl Checks for programs.
229 AC_PATH_PROG(PERL, perl)
231 AC_CHECK_TOOL(AR, ar)
233 dnl Check if we use GNU ld
237 dnl Certain versions of GNU ld the default is not to have the
238 dnl --allow-shlib-undefined flag defined. This causes a stackload of
239 dnl warnings when building modules.
240 if test "$ac_cv_prog_gnu_ld" = "yes"; then
241 ac_cv_gnu_ld_version=`$LD -v 2>/dev/null | head -1`
242 AC_MSG_CHECKING(GNU ld release date)
244 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'`
246 AC_MSG_RESULT(${ac_cv_gnu_ld_date})
247 if test -n "$ac_cv_gnu_ld_date"; then
248 if test "$ac_cv_gnu_ld_date" -lt 20030217; then
249 ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
251 if test "$ac_cv_gnu_ld_date" -gt 20030101; then
252 ac_cv_gnu_ld_version_script=yes
255 AC_MSG_CHECKING(GNU ld release version)
257 ac_cv_gnu_ld_vernr=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([1-9][0-9]*\.[0-9][0-9]*\).*$,\1,p'`
258 ac_cv_gnu_ld_vernr_major=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 1`
259 ac_cv_gnu_ld_vernr_minor=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 2`
261 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr})
262 AC_MSG_CHECKING(GNU ld release version major)
263 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_major})
264 AC_MSG_CHECKING(GNU ld release version minor)
265 AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_minor})
266 if test "$ac_cv_gnu_ld_vernr_major" -lt 2 || test "$ac_cv_gnu_ld_vernr_minor" -lt 14; then
267 ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
269 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
270 ac_cv_gnu_ld_version_script=yes
275 dnl look for executable suffix
278 dnl Check if C compiler understands -c and -o at the same time
280 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
287 dnl Check if the C compiler understands -Werror
288 AC_CACHE_CHECK([that the C compiler understands -Werror],samba_cv_HAVE_Werror, [
293 }],[-Werror],[$CPPFLAGS],[$LDFLAGS],
294 samba_cv_HAVE_Werror=yes,samba_cv_HAVE_Werror=no,samba_cv_HAVE_Werror=cross)])
295 if test x"$samba_cv_HAVE_Werror" = x"yes"; then
296 Werror_FLAGS="-Werror"
298 dnl Check if the C compiler understands -w2
299 AC_CACHE_CHECK([that the C compiler understands -w2],samba_cv_HAVE_w2, [
304 }],[-w2],[$CPPFLAGS],[$LDFLAGS],
305 samba_cv_HAVE_w2=yes,samba_cv_HAVE_w2=no,samba_cv_HAVE_w2=cross)])
306 if test x"$samba_cv_HAVE_w2" = x"yes"; then
311 dnl Check if the C compiler understands volatile (it should, being ANSI).
312 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
313 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
314 samba_cv_volatile=yes,samba_cv_volatile=no)])
315 if test x"$samba_cv_volatile" = x"yes"; then
316 AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
319 ############################################
320 # check if the compiler can handle negative enum values
321 # and don't truncate the values to INT_MAX
322 # a runtime test is needed here
324 AC_CACHE_CHECK([that the C compiler understands negative enum values],SMB_BUILD_CC_NEGATIVE_ENUM_VALUES, [
328 enum negative_values { NEGATIVE_VALUE = 0xFFFFFFFF };
330 enum negative_values v1 = NEGATIVE_VALUE;
331 unsigned v2 = NEGATIVE_VALUE;
333 if (v1 != 0xFFFFFFFF) {
334 printf("%u != 0xFFFFFFFF\n", v1);
337 if (v2 != 0xFFFFFFFF) {
338 printf("%u != 0xFFFFFFFF\n", v2);
345 SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=yes,SMB_BUILD_CC_NEGATIVE_ENUM_VALUES=no)])
346 if test x"$SMB_BUILD_CC_NEGATIVE_ENUM_VALUES" != x"yes"; then
347 AC_MSG_WARN([using --unit-enums for pidl])
348 PIDL_ARGS="$PIDL_ARGS --uint-enums"
351 dnl Figure out the flags to support named structure initializers
353 LIBREPLACE_C99_STRUCT_INIT([],[AC_MSG_ERROR([c99 structure initializer are not supported])])
355 UNAME_S=`(uname -s) 2>/dev/null` || UNAME_S="unknown"
356 AC_MSG_CHECKING(uname -s)
357 AC_MSG_RESULT(${UNAME_S})
359 UNAME_R=`(uname -r) 2>/dev/null` || UNAME_R="unknown"
360 AC_MSG_CHECKING(uname -r)
361 AC_MSG_RESULT(${UNAME_R})
363 UNAME_M=`(uname -m) 2>/dev/null` || UNAME_M="unknown"
364 AC_MSG_CHECKING(uname -m)
365 AC_MSG_RESULT(${UNAME_M})
367 UNAME_P=`(uname -p) 2>/dev/null` || UNAME_P="unknown"
368 AC_MSG_CHECKING(uname -p)
369 AC_MSG_RESULT(${UNAME_P})
371 UNAME_I=`(uname -i) 2>/dev/null` || UNAME_I="unknown"
372 AC_MSG_CHECKING(uname -i)
373 AC_MSG_RESULT(${UNAME_I})
375 dnl Add #include for broken IRIX header files
378 #TODO add to libreplace
379 if test x"$ac_cv_prog_gcc" != x"yes" ; then
380 dnl Fix sensible defaults for MIPSPro compilers. The
381 dnl error numbers are valid for the 7.3 compilers,
382 dnl hopefully also valid for the 7.4 series.
384 dnl Bugzilla 3801. Force an error on warning 1035
385 dnl so we don't incorrectly detect stdint.h. This
386 dnl warning is emitted for #error directives.
387 CFLAGS="$CFLAGS -diag_error 1035"
388 dnl 1209: Controlling expression is constant
389 dnl 1174: Function foo declared but never referenced
390 dnl 3201: Parameter foo was never referenced
391 CFLAGS="$CFLAGS -woff 1209,1174,3201"
399 dnl Add modules that have to be built by default here
400 dnl These have to be built static:
401 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"
403 dnl These are preferably build shared, and static if dlopen() is not available
404 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_xattr_tdb vfs_streams_xattr"
406 if test "x$developer" = xyes; then
407 default_static_modules="$default_static_modules rpc_rpcecho"
408 default_shared_modules="$default_shared_modules charset_weird"
412 # Config CPPFLAG settings for strange OS's that must be set
413 # before other tests. Do NOT invoke AC_CHECK_HEADERS within this
414 # case statement; its first reference must be unconditional.
419 # Defines needed for HPUX support.
420 # HPUX has bigcrypt but (sometimes?) doesn't use it for
421 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
425 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
431 # CRAY Unicos has broken const handling
433 AC_MSG_RESULT([disabling const])
434 CPPFLAGS="$CPPFLAGS -Dconst="
438 # AIX4.x doesn't even admit to having large
439 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
442 AC_MSG_RESULT([enabling large file support])
443 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
444 AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
447 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
448 # to the existance of large files..
449 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
450 # recommendations on large file support, however it makes the
451 # compile work using gcc 2.7 and 2.8, whereas using the Sun
452 # recommendation makes the compile fail on gcc2.7. JRA.
454 # Solaris uses SYSV printing. Make sure to set that here. --jerry
457 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
459 5.0|5.0.*|5.1|5.1.*|5.2|5.2.*|5.3|5.3.*|5.5|5.5.*)
460 AC_MSG_RESULT([no large file support])
463 AC_MSG_RESULT([enabling large file support])
464 if test "$ac_cv_prog_gcc" = yes; then
465 ${CC-cc} -v >conftest.c 2>&1
466 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
468 case "$ac_cv_gcc_compiler_version_number" in
469 *"gcc version 2.6"*|*"gcc version 2.7"*)
470 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE -D_REENTRANT"
471 LDFLAGS="$LDFLAGS -lthread"
472 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
475 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
476 LDFLAGS="$LDFLAGS -lthread"
477 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
478 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
482 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
483 LDFLAGS="$LDFLAGS -lthread"
484 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
485 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
491 # IRIX uses SYSV printing. Make sure to set that here
494 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
496 *freebsd*|*dragonfly*)
497 AC_DEFINE(FREEBSD, 1, [Whether the host os is FreeBSD])
500 # VOS may need to have POSIX support and System V compatibility enabled.
507 CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L"
508 AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Whether to enable POSIX support])
512 *-D_SYSV*|*-D_SVID_SOURCE*)
515 CPPFLAGS="$CPPFLAGS -D_SYSV"
516 AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
520 # Tests needed for SINIX large file support.
523 if test $host = mips-sni-sysv4 ; then
524 AC_MSG_CHECKING([for LFS support])
525 old_CPPFLAGS="$CPPFLAGS"
526 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
530 #if _LFS64_LARGEFILE == 1
535 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
536 CPPFLAGS="$old_CPPFLAGS"
537 if test x$SINIX_LFS_SUPPORT = xyes ; then
538 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
539 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
540 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
541 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
542 LIBS="`getconf LFS64_LIBS` $LIBS"
544 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
548 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
551 AC_MSG_CHECKING([for LFS support])
552 old_CPPFLAGS="$CPPFLAGS"
553 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
556 #include <sys/utsname.h>
560 #if _LFS64_LARGEFILE == 1
565 /* Ensure this is glibc 2.2 or higher */
566 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
567 int libc_major = __GLIBC__;
568 int libc_minor = __GLIBC_MINOR__;
576 /* Ensure this is kernel 2.4 or higher */
579 release = strdup(uts.release);
580 major = atoi(strsep(&release, "."));
581 minor = atoi(strsep(&release, "."));
583 if (major > 2 || (major == 2 && minor > 3))
590 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
591 CPPFLAGS="$old_CPPFLAGS"
592 if test x$LINUX_LFS_SUPPORT = xyes ; then
593 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
594 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
595 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
596 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
598 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
602 # MacOS X is the *only* system that uses compose character in utf8. This
603 # is so horribly broken....
606 AC_DEFINE(BROKEN_UNICODE_COMPOSE_CHARACTERS, 1, [Does this system use unicode compose characters])
608 # Add a system specific charset module.
609 default_shared_modules="$default_shared_modules charset_macosxfs"
613 AC_MSG_CHECKING([for LFS support])
614 old_CPPFLAGS="$CPPFLAGS"
615 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
619 #if _LFS64_LARGEFILE == 1
624 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
625 CPPFLAGS="$old_CPPFLAGS"
626 if test x$GLIBC_LFS_SUPPORT = xyes ; then
627 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
628 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
629 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
631 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
636 SAVE_CPPFLAGS="${CPPFLAGS}"
637 CPPFLAGS="${CPPFLAGS} ${SAMBA_CONFIGURE_CPPFLAGS}"
639 AC_LIBREPLACE_BROKEN_CHECKS
641 CPPFLAGS="${SAVE_CPPFLAGS}"
643 LIBREPLACE_DIR=`echo ${libreplacedir} | sed -e "s;${srcdir};;" -e "s;^/;;"`
646 for obj in ${LIBREPLACEOBJ}; do
647 LIBREPLACE_OBJS="${LIBREPLACE_OBJS} ${LIBREPLACE_DIR}/${obj}"
649 AC_SUBST(LIBREPLACE_OBJS)
651 # add -ldl to the global LIBS
652 LIBS="${LIBS} ${LIBDL}"
654 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)
655 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h memory.h alloca.h)
656 AC_CHECK_HEADERS(limits.h float.h pthread.h)
657 AC_CHECK_HEADERS(rpc/rpc.h rpcsvc/nis.h rpcsvc/ypclnt.h)
658 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/prctl.h)
659 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
660 AC_CHECK_HEADERS(sys/un.h ifaddrs.h)
661 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
662 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
663 AC_CHECK_HEADERS(sys/sysmacros.h)
664 AC_CHECK_HEADERS(sys/syslog.h syslog.h)
665 AC_CHECK_HEADERS(langinfo.h locale.h)
666 AC_CHECK_HEADERS(xfs/libxfs.h)
667 AC_CHECK_HEADERS(netgroup.h)
669 AC_CHECK_HEADERS(rpcsvc/yp_prot.h,,,[[
675 ## These fail to compile on IRIX so just check for their presence
676 AC_CHECK_HEADERS(sys/mode.h,,,)
678 # Look for Darwin headers
679 old_CPPFLAGS="$CPPFLAGS"
680 CPPFLAGS="-Iinclude $CPPFLAGS"
681 AC_CHECK_HEADERS([CoreFoundation/CFStringEncodingConverter.h], [], [AC_CHECK_HEADERS([CFStringEncodingConverter.h])])
682 CPPFLAGS="$old_CPPFLAGS"
684 # In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a
685 # subdirectory of headers.
686 AC_CHECK_HEADERS(valgrind.h valgrind/valgrind.h valgrind/memcheck.h)
688 # check for linux on amd64 since valgrind is not quite there yet
693 AC_DEFINE(HAVE_64BIT_LINUX,1,[Whether we are running on 64bit linux])
701 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
702 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
706 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
707 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
708 if test x"$ac_cv_header_shadow_h" = x"yes"; then
709 AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
713 AC_CHECK_HEADERS(shadow.h)
714 AC_CHECK_HEADERS(nss.h nss_common.h nsswitch.h ns_api.h sys/security.h)
715 AC_CHECK_HEADERS(syscall.h sys/syscall.h)
717 AC_CHECK_HEADERS(sys/attributes.h attr/xattr.h sys/xattr.h sys/extattr.h sys/uio.h)
718 AC_CHECK_HEADERS(sys/ea.h sys/proplist.h)
720 AC_CHECK_HEADERS(sys/cdefs.h glob.h)
722 # For experimental utmp support (lastlog on some BSD-like systems)
723 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
725 AC_CHECK_SIZEOF(int,cross)
726 AC_CHECK_SIZEOF(long,cross)
727 AC_CHECK_SIZEOF(long long,cross)
728 AC_CHECK_SIZEOF(short,cross)
743 AC_CHECK_TYPE(ssize_t, int)
744 AC_CHECK_TYPE(wchar_t, unsigned short)
746 ############################################
747 # for cups support we need libcups, and a handful of header files
750 [AS_HELP_STRING([--enable-cups], [Turn on CUPS support (default=auto)])])
752 if test x$enable_cups != xno; then
753 AC_PATH_PROG(CUPS_CONFIG, cups-config)
755 if test "x$CUPS_CONFIG" != x; then
756 AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
757 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
758 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
759 PRINT_LIBS="$PRINT_LIBS `$CUPS_CONFIG --libs`"
760 elif test x"$enable_cups" = x"yes"; then
761 AC_MSG_ERROR(Cups support required but cups-config not located. Make sure cups-devel related files are installed.)
765 AC_ARG_ENABLE(iprint,
766 [AS_HELP_STRING([--enable-iprint], [Turn on iPrint support (default=yes if cups is yes)])])
768 if test x$enable_iprint != xno; then
769 if test "x$CUPS_CONFIG" != x; then
770 AC_DEFINE(HAVE_IPRINT,1,[Whether we have iPrint])
771 elif test x"$enable_iprint" = x"yes"; then
772 AC_MSG_ERROR(iPrint support required but cups not enabled. Make sure cups-devel related files are installed and that cups is enabled.)
776 ############################################
777 # check if the compiler will optimize out function calls
778 AC_CACHE_CHECK([if the compiler will optimize out function calls],samba_cv_optimize_out_funcation_calls, [
783 this_function_does_not_exist();
789 samba_cv_optimize_out_funcation_calls=yes,samba_cv_optimize_out_funcation_calls=no)])
790 if test x"$samba_cv_optimize_out_funcation_calls" = x"yes"; then
791 AC_DEFINE(HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS,1,[Whether the compiler will optimize out function calls])
794 ############################################
795 # check for unix domain sockets
796 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
798 #include <sys/types.h>
801 #include <sys/socket.h>
802 #include <sys/un.h>],
804 struct sockaddr_un sunaddr;
805 sunaddr.sun_family = AF_UNIX;
807 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
808 if test x"$samba_cv_unixsocket" = x"yes"; then
809 AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixsocket support])
812 #############################################
813 # check for fd passing struct via msg_control
814 AC_CACHE_CHECK([for fd passing via msg_control],samba_cv_msghdr_msg_control, [
816 #include <sys/types.h>
819 #include <sys/socket.h>
820 #include <sys/un.h>],
825 char control[CMSG_SPACE(sizeof(int))];
827 msg.msg_control = control_un.control;
828 msg.msg_controllen = sizeof(control_un.control);
830 samba_cv_msghdr_msg_control=yes,samba_cv_msghdr_msg_control=no)])
831 if test x"$samba_cv_msghdr_msg_control" = x"yes"; then
832 AC_DEFINE(HAVE_MSGHDR_MSG_CONTROL,1,
833 [If we can use msg_control for passing file descriptors])
836 #############################################
837 # check for fd passing struct via msg_acctrights
838 AC_CACHE_CHECK([for fd passing via msg_acctrights],
839 samba_cv_msghdr_msg_acctrights, [
841 #include <sys/types.h>
844 #include <sys/socket.h>
845 #include <sys/un.h>],
849 msg.msg_acctrights = (caddr_t) &fd;
850 msg.msg_acctrightslen = sizeof(fd);
852 samba_cv_msghdr_msg_acctrights=yes,samba_cv_msghdr_msg_acctrights=no)])
853 if test x"$samba_cv_msghdr_msg_acctrights" = x"yes"; then
854 AC_DEFINE(HAVE_MSGHDR_MSG_ACCTRIGHTS,1,
855 [If we can use msg_acctrights for passing file descriptors])
858 if test x"$samba_cv_msghdr_msg_control" = x"yes" -o \
859 x"$samba_cv_msghdr_msg_acctright" = x"yes"; then
860 default_shared_modules="$default_shared_modules vfs_aio_fork"
863 AC_CHECK_FUNCS(dirfd)
864 if test x"$ac_cv_func_dirfd" = x"yes"; then
865 default_shared_modules="$default_shared_modules vfs_syncops"
868 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
870 #include <sys/types.h>
875 #include <signal.h>],[sig_atomic_t i = 0],
876 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
877 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
878 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
881 AC_CACHE_CHECK([for struct timespec type],samba_cv_struct_timespec, [
883 #include <sys/types.h>
888 #if TIME_WITH_SYS_TIME
889 # include <sys/time.h>
893 # include <sys/time.h>
898 ],[struct timespec ts;],
899 samba_cv_struct_timespec=yes,samba_cv_struct_timespec=no)])
900 if test x"$samba_cv_struct_timespec" = x"yes"; then
901 AC_DEFINE(HAVE_STRUCT_TIMESPEC,1,[Whether we have struct timespec])
904 # stupid headers have the functions but no declaration. grrrr.
905 AC_HAVE_DECL(errno, [#include <errno.h>])
906 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
907 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
909 # and glibc has setresuid under linux but the function does
910 # nothing until kernel 2.1.44! very dumb.
911 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
912 AC_TRY_RUN([#include <errno.h>
913 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
914 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
915 if test x"$samba_cv_have_setresuid" = x"yes"; then
916 AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
919 # Do the same check for setresguid...
921 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
922 AC_TRY_RUN([#include <unistd.h>
924 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
925 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
926 if test x"$samba_cv_have_setresgid" = x"yes"; then
927 AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
932 ###############################################
933 # Readline included by default unless explicitly asked not to
934 test "${with_readline+set}" != "set" && with_readline=yes
936 # test for where we get readline() from
937 AC_MSG_CHECKING(whether to use readline)
938 AC_ARG_WITH(readline,
939 [AS_HELP_STRING([--with-readline[=DIR]], [Look for readline include/libs in DIR (default=auto)])],
940 [ case "$with_readline" in
944 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
945 AC_CHECK_HEADERS(readline/history.h)
947 AC_CHECK_HEADERS(readline.h readline/readline.h,[
948 for termlib in ncurses curses termcap terminfo termlib tinfo; do
949 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
951 AC_CHECK_LIB(readline, rl_callback_handler_install,
952 [TERMLIBS="-lreadline $TERMLIBS"
953 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
954 break], [TERMLIBS=], $TERMLIBS)])
962 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
963 # alternate readline path
965 _cppflags=${CPPFLAGS}
967 # Add additional search path
968 LDFLAGS="-L$with_readline/lib $LDFLAGS"
969 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
971 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
972 AC_CHECK_HEADERS(readline/history.h)
974 AC_CHECK_HEADERS(readline.h readline/readline.h,[
975 for termlib in ncurses curses termcap terminfo termlib; do
976 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
978 AC_CHECK_LIB(readline, rl_callback_handler_install,
979 [TERMLDFLAGS="-L$with_readline/lib"
980 TERMCPPFLAGS="-I$with_readline/include"
981 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
982 TERMLIBS="-lreadline $TERMLIBS"
983 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
984 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
992 AC_SUBST(TERMLDFLAGS)
994 # The readline API changed slightly from readline3 to readline4, so
995 # code will generate warnings on one of them unless we have a few
997 AC_CHECK_LIB(readline, rl_completion_matches,
998 [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
999 [Do we have rl_completion_matches?])],
1003 # not all readline libs have rl_event_hook or history_list
1004 AC_CHECK_DECLS(rl_event_hook, [], [], [#include <readline/readline.h>])
1005 AC_CHECK_LIB(readline, history_list,
1006 [AC_DEFINE(HAVE_HISTORY_LIST, 1, [Do we have history_list?])],
1010 # The following test taken from the cvs sources
1011 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
1012 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
1013 # libsocket.so which has a bad implementation of gethostbyname (it
1014 # only looks in /etc/hosts), so we only look for -lsocket if we need
1016 AC_CHECK_FUNCS(connect)
1017 if test x"$ac_cv_func_connect" = x"no"; then
1020 *) AC_CHECK_LIB(nsl_s, connect) ;;
1024 *) AC_CHECK_LIB(nsl, connect) ;;
1028 *) AC_CHECK_LIB(socket, connect) ;;
1032 *) AC_CHECK_LIB(inet, connect) ;;
1034 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
1035 dnl has been cached.
1036 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
1037 test x"$ac_cv_lib_inet_connect" = x"yes"; then
1038 # ac_cv_func_connect=yes
1039 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
1040 AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
1044 ###############################################
1045 # test for where we get yp_get_default_domain() from
1046 AC_SEARCH_LIBS(yp_get_default_domain, [nsl])
1047 AC_CHECK_FUNCS(yp_get_default_domain)
1049 # Check if we have execl, if not we need to compile smbrun.
1050 AC_CHECK_FUNCS(execl)
1051 if test x"$ac_cv_func_execl" = x"no"; then
1052 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)"
1055 AC_CHECK_FUNCS(waitpid getcwd strdup strndup strnlen strerror chown fchown lchown chmod fchmod chroot link mknod mknod64)
1056 AC_CHECK_FUNCS(strtol strtoll strtoul strtoull strtouq __strtoull)
1057 AC_CHECK_FUNCS(fstat strchr utime utimes chflags)
1058 AC_CHECK_FUNCS(getrlimit fsync fdatasync memset strlcpy strlcat setpgid)
1059 AC_CHECK_FUNCS(memmove setsid glob strpbrk pipe crypt16 getauthuid)
1060 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
1061 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
1062 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate chsize stat64 fstat64)
1063 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64)
1064 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
1065 AC_CHECK_FUNCS(opendir64 readdir64 seekdir64 telldir64 rewinddir64 closedir64)
1066 AC_CHECK_FUNCS(getpwent_r)
1067 AC_CHECK_FUNCS(getdents getdents64)
1068 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
1069 AC_CHECK_FUNCS(syslog vsyslog timegm)
1070 AC_CHECK_FUNCS(setlocale nl_langinfo)
1071 AC_CHECK_FUNCS(nanosleep)
1072 AC_CHECK_FUNCS(mlock munlock mlockall munlockall)
1073 AC_CHECK_FUNCS(memalign posix_memalign hstrerror)
1074 AC_CHECK_HEADERS(sys/mman.h)
1075 # setbuffer, shmget, shm_open are needed for smbtorture
1076 AC_CHECK_FUNCS(setbuffer shmget shm_open)
1078 # Find a method of generating a stack trace
1079 AC_CHECK_HEADERS(execinfo.h libexc.h libunwind.h)
1080 AC_CHECK_FUNCS(backtrace_symbols)
1081 AC_CHECK_LIB(exc, trace_back_stack)
1083 echo -n "checking for GPFS GPL libs... "
1085 LIBS="$LIBS -lgpfs_gpl"
1086 AC_TRY_LINK([#include <gpfs_gpl.h>],
1087 [gpfs_set_share(0,GPFS_SHARE_READ,GPFS_DENY_NONE)],
1088 samba_cv_HAVE_GPFS=yes,
1089 samba_cv_HAVE_GPFS=no)
1090 echo $samba_cv_HAVE_GPFS
1091 if test x"$samba_cv_HAVE_GPFS" = x"yes"; then
1092 AC_DEFINE(HAVE_GPFS,1,[Whether GPFS GPL libs are available])
1093 default_shared_modules="$default_shared_modules vfs_gpfs"
1097 # Note that all the libunwind symbols in the API are defined to internal
1098 # platform-specific version, so we must include libunwind.h before checking
1100 AC_MSG_CHECKING([for libunwind])
1103 UNWIND_ARCH="unknown"
1104 if test x"$UNAME_I" != x"unknown"; then
1105 UNWIND_ARCH="$UNAME_I"
1106 elif test x"$UNAME_M" != x"unknown"; then
1107 UNWIND_ARCH="$UNAME_M"
1108 elif test x"$UNAME_P" != x"unknown"; then
1109 UNWIND_ARCH="$UNAME_P"
1112 case "$UNWIND_ARCH" in
1114 # This probably won't link without
1115 # the platform-specific libunwind.
1116 LIBS="$LIBS -lunwind"
1119 # Add the platform-specific libunwind module.
1120 LIBS="$LIBS -lunwind -lunwind-x86"
1123 # Add the platform-specific libunwind module.
1124 # based on uname -i, uname -m or uname -p
1125 LIBS="$LIBS -lunwind -lunwind-$UNWIND_ARCH"
1131 #ifdef HAVE_LIBUNWIND_H
1132 #include <libunwind.h>
1136 unw_context_t ctx; unw_cursor_t cur;
1137 char buf[256]; unw_word_t off;
1138 unw_getcontext(&ctx); unw_init_local(&cur, &ctx);
1139 unw_get_proc_name(&cur, buf, sizeof(buf), &off);
1143 AC_DEFINE(HAVE_LIBUNWIND, 1, [Whether libunwind is available])
1145 # If we have libunwind, test whether we also have libunwind-ptrace
1146 # which would let us unwind arbitrary processes.
1148 AC_CHECK_HEADERS(libunwind-ptrace.h)
1149 AC_CHECK_LIB(unwind-ptrace, _UPT_create,
1151 LIBUNWIND_PTRACE="-lunwind-ptrace";
1152 AC_DEFINE(HAVE_LIBUNWIND_PTRACE, 1,
1153 [Whether libunwind-ptrace.a is available.])
1155 [ LIBUNWIND_PTRACE="" ])
1164 # To use libunwind-ptrace, we also need to make some ptrace system calls.
1165 if test x"$LIBUNWIND_PTRACE" != x"" ; then
1166 AC_CHECK_HEADERS(sys/ptrace.h)
1167 AC_MSG_CHECKING([for the Linux ptrace(2) interface])
1170 #if HAVE_SYS_TYPES_H
1171 #include <sys/types.h>
1173 #if HAVE_SYS_PTRACE_H
1174 #include <sys/ptrace.h>
1178 int main(int argc, const char ** argv)
1180 pid_t me = (pid_t)-1;
1181 ptrace(PTRACE_ATTACH, me, 0, 0);
1182 ptrace(PTRACE_DETACH, me, 0, 0);
1188 AC_DEFINE(HAVE_LINUX_PTRACE, 1,
1189 [Whether the Linux ptrace(2) interface is available.])
1197 AC_SUBST(LIBUNWIND_PTRACE)
1199 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
1200 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
1201 AC_CHECK_FUNCS(__getcwd _getcwd)
1202 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
1203 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
1204 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
1205 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
1206 AC_CHECK_FUNCS(getdents __getdents _lseek __lseek _read __read)
1207 AC_CHECK_FUNCS(getdirentries _write __write _fork __fork)
1208 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
1209 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
1210 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
1211 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
1212 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
1213 AC_CHECK_FUNCS(prctl)
1216 #ifdef HAVE_SYS_PRCTL_H
1217 #include <sys/prctl.h>
1220 [int i; i = prtcl(0); ],
1221 AC_DEFINE(HAVE_PRCTL, 1, [Whether prctl is available]),[])
1228 # glibc <= 2.3.2 has a broken getgrouplist
1231 #include <sys/utsname.h>
1233 /* glibc up to 2.3 has a broken getgrouplist */
1234 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
1235 int libc_major = __GLIBC__;
1236 int libc_minor = __GLIBC_MINOR__;
1240 if ((libc_major == 2) && (libc_minor <= 3))
1245 ], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no])
1246 if test x"$linux_getgrouplist_ok" = x"yes"; then
1247 AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
1251 AC_CHECK_FUNCS(getgrouplist)
1256 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
1259 if test x$ac_cv_func_stat64 = xno ; then
1260 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
1262 #if defined(HAVE_UNISTD_H)
1265 #include <sys/stat.h>
1266 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
1267 AC_MSG_RESULT([$ac_cv_func_stat64])
1268 if test x$ac_cv_func_stat64 = xyes ; then
1269 AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
1273 if test x$ac_cv_func_lstat64 = xno ; then
1274 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
1276 #if defined(HAVE_UNISTD_H)
1279 #include <sys/stat.h>
1280 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
1281 AC_MSG_RESULT([$ac_cv_func_lstat64])
1282 if test x$ac_cv_func_lstat64 = xyes ; then
1283 AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
1287 if test x$ac_cv_func_fstat64 = xno ; then
1288 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
1290 #if defined(HAVE_UNISTD_H)
1293 #include <sys/stat.h>
1294 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
1295 AC_MSG_RESULT([$ac_cv_func_fstat64])
1296 if test x$ac_cv_func_fstat64 = xyes ; then
1297 AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
1301 #################################################
1302 # Check whether struct stat has timestamps with sub-second resolution.
1303 # At least IRIX and Solaris have these.
1306 # all of st_mtim, st_atim and st_ctim exist
1307 # all of the members are in fact of type struct timespec
1309 # There is some conflicting standards weirdness about whether we should use
1310 # "struct timespec" or "timespec_t". Linux doesn't have timespec_t, so we
1311 # prefer struct timespec.
1313 AC_CACHE_CHECK([whether struct stat has sub-second timestamps], samba_stat_hires,
1317 #if TIME_WITH_SYS_TIME
1318 # include <sys/time.h>
1321 # if HAVE_SYS_TIME_H
1322 # include <sys/time.h>
1327 #ifdef HAVE_SYS_STAT_H
1328 #include <sys/stat.h>
1333 struct stat s = {0};
1334 t.tv_sec = s.st_mtim.tv_sec;
1335 t.tv_nsec = s.st_mtim.tv_nsec;
1336 t.tv_sec = s.st_ctim.tv_sec;
1337 t.tv_nsec = s.st_ctim.tv_nsec;
1338 t.tv_sec = s.st_atim.tv_sec;
1339 t.tv_nsec = s.st_atim.tv_nsec;
1341 samba_stat_hires=yes, samba_stat_hires=no)
1344 if test x"$samba_stat_hires" = x"yes" ; then
1345 AC_DEFINE(HAVE_STAT_ST_MTIM, 1, [whether struct stat contains st_mtim])
1346 AC_DEFINE(HAVE_STAT_ST_ATIM, 1, [whether struct stat contains st_atim])
1347 AC_DEFINE(HAVE_STAT_ST_CTIM, 1, [whether struct stat contains st_ctim])
1348 AC_DEFINE(HAVE_STAT_HIRES_TIMESTAMPS, 1,
1349 [whether struct stat has sub-second timestamps])
1352 AC_CACHE_CHECK([whether struct stat has sub-second timestamps without struct timespec], samba_stat_hires_notimespec,
1356 #if TIME_WITH_SYS_TIME
1357 # include <sys/time.h>
1360 # if HAVE_SYS_TIME_H
1361 # include <sys/time.h>
1366 #ifdef HAVE_SYS_STAT_H
1367 #include <sys/stat.h>
1372 struct stat s = {0};
1373 t.tv_sec = s.st_mtime;
1374 t.tv_nsec = s.st_mtimensec;
1375 t.tv_sec = s.st_ctime;
1376 t.tv_nsec = s.st_ctimensec;
1377 t.tv_sec = s.st_atime;
1378 t.tv_nsec = s.st_atimensec;
1380 samba_stat_hires=yes, samba_stat_hires=no)
1383 if test x"$samba_stat_hires_notimespec" = x"yes" ; then
1384 AC_DEFINE(HAVE_STAT_ST_MTIMENSEC, 1, [whether struct stat contains st_mtimensec])
1385 AC_DEFINE(HAVE_STAT_ST_ATIMENSEC, 1, [whether struct stat contains st_atimensec])
1386 AC_DEFINE(HAVE_STAT_ST_CTIMENSEC, 1, [whether struct stat contains st_ctimensec])
1387 AC_DEFINE(HAVE_STAT_HIRES_TIMESTAMPS, 1,
1388 [whether struct stat has sub-second timestamps without struct timespec])
1391 #####################################
1392 # needed for SRV lookups
1393 AC_CHECK_LIB(resolv, dn_expand)
1394 AC_CHECK_LIB(resolv, _dn_expand)
1395 AC_CHECK_LIB(resolv, __dn_expand)
1398 # Check for the functions putprpwnam, set_auth_parameters,
1399 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
1400 # Needed for OSF1 and HPUX.
1403 AC_LIBTESTFUNC(security, putprpwnam)
1404 AC_LIBTESTFUNC(sec, putprpwnam)
1406 AC_LIBTESTFUNC(security, set_auth_parameters)
1407 AC_LIBTESTFUNC(sec, set_auth_parameters)
1409 # UnixWare 7.x has its getspnam in -lgen
1410 AC_LIBTESTFUNC(gen, getspnam)
1412 AC_LIBTESTFUNC(security, getspnam)
1413 AC_LIBTESTFUNC(sec, getspnam)
1415 AC_LIBTESTFUNC(security, bigcrypt)
1416 AC_LIBTESTFUNC(sec, bigcrypt)
1418 AC_LIBTESTFUNC(security, getprpwnam)
1419 AC_LIBTESTFUNC(sec, getprpwnam)
1421 AC_CHECK_FUNCS(strsignal)
1423 ############################################
1424 # Check if we have libattr
1427 AC_SEARCH_LIBS(getproplist, [proplist])
1428 AC_CHECK_FUNCS(getproplist fgetproplist setproplist fsetproplist)
1429 AC_CHECK_FUNCS(delproplist fdelproplist add_proplist_entry get_proplist_entry)
1430 AC_CHECK_FUNCS(sizeof_proplist_entry)
1433 AC_SEARCH_LIBS(getxattr, [attr])
1434 AC_CHECK_FUNCS(getxattr lgetxattr fgetxattr listxattr llistxattr)
1435 AC_CHECK_FUNCS(getea fgetea lgetea listea flistea llistea)
1436 AC_CHECK_FUNCS(removeea fremoveea lremoveea setea fsetea lsetea)
1437 AC_CHECK_FUNCS(flistxattr removexattr lremovexattr fremovexattr)
1438 AC_CHECK_FUNCS(setxattr lsetxattr fsetxattr)
1439 AC_CHECK_FUNCS(attr_get attr_list attr_set attr_remove)
1440 AC_CHECK_FUNCS(attr_getf attr_listf attr_setf attr_removef)
1444 ########################################################
1445 # Check if attropen() is present if this is Solaris
1448 AC_CHECK_FUNCS(attropen)
1452 ########################################################
1453 # Do xattr functions take additional options like on Darwin?
1454 if test x"$ac_cv_func_getxattr" = x"yes" ; then
1455 AC_CACHE_CHECK([whether xattr interface takes additional options], smb_attr_cv_xattr_add_opt, [
1457 LIBS="$LIBS $ACL_LIBS"
1459 #include <sys/types.h>
1460 #if HAVE_ATTR_XATTR_H
1461 #include <attr/xattr.h>
1462 #elif HAVE_SYS_XATTR_H
1463 #include <sys/xattr.h>
1466 getxattr(0, 0, 0, 0, 0, 0);
1468 [smb_attr_cv_xattr_add_opt=yes],
1469 [smb_attr_cv_xattr_add_opt=no;LIBS=$old_LIBS])
1471 if test x"$smb_attr_cv_xattr_add_opt" = x"yes"; then
1472 AC_DEFINE(XATTR_ADD_OPT, 1, [xattr functions have additional options])
1476 # Check if we have extattr
1478 *freebsd4* | *dragonfly* )
1479 AC_DEFINE(BROKEN_EXTATTR, 1, [Does extattr API work])
1482 AC_CHECK_FUNCS(extattr_delete_fd extattr_delete_file extattr_delete_link)
1483 AC_CHECK_FUNCS(extattr_get_fd extattr_get_file extattr_get_link)
1484 AC_CHECK_FUNCS(extattr_list_fd extattr_list_file extattr_list_link)
1485 AC_CHECK_FUNCS(extattr_set_fd extattr_set_file extattr_set_link)
1495 AC_ARG_ENABLE(pie, [AS_HELP_STRING([--enable-pie], [Turn on pie support if available (default=yes)])])
1497 if test "x$enable_pie" != xno
1499 AC_CACHE_CHECK(for -pie and -fPIE, samba_cv_fpie,
1501 cat > conftest.c <<EOF
1503 main () { return 0;}
1505 if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fPIE -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
1513 if test x"${samba_cv_fpie}" = x"yes"
1520 # Assume non-shared by default and override below
1523 # these are the defaults, good for lots of systems
1528 SHLD="\${CC} \${CFLAGS}"
1529 PICFLAG="${PIE_CFLAGS}"
1533 # this bit needs to be modified for each OS that supports share libs
1534 # You need to specify how to create a shared library and
1535 # how to compile C code to produce PIC object files
1537 AC_MSG_CHECKING([ability to build shared libraries])
1539 # and these are for particular systems
1541 *linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux])
1543 if test "${ac_cv_gnu_ld_no_default_allow_shlib_undefined}" = "yes"; then
1544 LDSHFLAGS="-shared -Wl,-Bsymbolic -Wl,--allow-shlib-undefined"
1546 LDSHFLAGS="-shared -Wl,-Bsymbolic"
1548 DYNEXP="-Wl,--export-dynamic"
1550 SONAMEFLAG="-Wl,-soname="
1551 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1553 *solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
1557 if test "${GCC}" = "yes"; then
1559 SONAMEFLAG="-Wl,-soname="
1560 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
1565 ## ${CFLAGS} added for building 64-bit shared
1566 ## libs using Sun's Compiler
1567 LDSHFLAGS="-G \${CFLAGS}"
1569 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1570 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1572 *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
1575 SONAMEFLAG="-Wl,-h,"
1576 PICFLAG="-KPIC" # Is this correct for SunOS
1577 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1578 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1580 *netbsd* | *freebsd* | *dragonfly* )
1583 DYNEXP="-Wl,--export-dynamic"
1584 SONAMEFLAG="-Wl,-soname,"
1585 PICFLAG="-fPIC -DPIC"
1586 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1587 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1589 *openbsd*) BLDSHARED="true"
1591 DYNEXP="-Wl,-Bdynamic"
1592 SONAMEFLAG="-Wl,-soname,"
1594 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1595 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1597 *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
1599 *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
1603 LDSHFLAGS="-set_version sgi1.0 -shared"
1604 SONAMEFLAG="-soname "
1606 if test "${GCC}" = "yes"; then
1611 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1613 *aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
1615 LDSHFLAGS="-Wl,-G,-bexpfull,-bbigtoc"
1616 DYNEXP="-Wl,-brtl,-bexpfull,-bbigtoc"
1618 # as AIX code is always position independent...
1619 # .po will just create compile warnings, use po.o:
1620 if test "${GCC}" != "yes"; then
1621 ## for funky AIX compiler using strncpy()
1622 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
1625 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
1626 AC_DEFINE(BROKEN_STRNLEN,1,[Does strnlen work correctly])
1627 AC_DEFINE(BROKEN_STRNDUP,1,[Does strndup work correctly])
1629 *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
1630 # Use special PIC flags for the native HP-UX compiler.
1633 LDSHFLAGS="-b -Wl,-B,symbolic,-b,-z"
1634 SONAMEFLAG="-Wl,+h "
1636 if test "${GCC}" = "yes"; then
1639 PICFLAG="+z +ESnolit"
1641 if test "$host_cpu" = "ia64"; then
1644 DYNEXP="-Wl,-E,+b/usr/local/lib/hpux32:/usr/lib/hpux32"
1647 DYNEXP="-Wl,-E,+b/usr/local/lib:/usr/lib"
1649 AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
1650 AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element])
1652 *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx])
1653 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1655 *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
1658 SONAMEFLAG="-Wl,-soname,"
1660 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1661 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1663 *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix])
1664 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1666 *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
1669 SONAMEFLAG="-Wl,-soname,"
1671 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1673 *next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
1674 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1676 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
1677 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1679 *sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1681 *-univel-*) if [ test "$GCC" != yes ]; then
1682 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1687 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
1689 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1692 *sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1693 if [ test "$GCC" != yes ]; then
1694 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1697 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1699 *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
1704 *darwin*) AC_DEFINE(DARWINOS,1,[Whether the host os is Darwin/MacOSX])
1706 LDSHFLAGS="-dynamiclib -flat_namespace -undefined suppress"
1707 CFLAGS="$CFLAGS -fno-common"
1710 MODULE_EXPORTS="-exported_symbols_list \$(srcdir)/exports/modules-darwin.syms"
1712 # Since gcc doesn't fail on unrecognised options, the
1713 # PIE test incorrectly succeeds. Darwin gcc does not
1714 # actually support the PIE stuff.
1717 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1721 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1725 if test "$enable_shared" != "yes"; then
1729 if test "$enable_shared" = yes -a "${ac_cv_gnu_ld_version_script}" = yes; then
1730 DSO_EXPORTS=\$\(DSO_EXPORTS_CMD\)
1733 if test x"$BLDSHARED" = x"true" ; then
1734 LDFLAGS="$LDFLAGS -L./bin"
1737 AC_MSG_RESULT($BLDSHARED)
1739 AC_MSG_CHECKING([LDFLAGS])
1740 AC_MSG_RESULT([$LDFLAGS])
1741 AC_MSG_CHECKING([DYNEXP])
1742 AC_MSG_RESULT([$DYNEXP])
1744 #######################################################
1745 # test whether building a shared library actually works
1746 if test $BLDSHARED = true; then
1748 AC_MSG_CHECKING([SHLD])
1749 AC_MSG_RESULT([$SHLD])
1750 AC_MSG_CHECKING([LDSHFLAGS])
1751 AC_MSG_RESULT([$LDSHFLAGS])
1753 AC_MSG_CHECKING([SHLIBEXT])
1754 AC_MSG_RESULT([$SHLIBEXT])
1755 AC_MSG_CHECKING([SONAMEFLAG])
1756 AC_MSG_RESULT([$SONAMEFLAG])
1758 AC_MSG_CHECKING([PICFLAG])
1759 AC_MSG_RESULT([$PICFLAG])
1761 AC_MSG_CHECKING([NSSSONAMEVERSIONSUFFIX])
1762 AC_MSG_RESULT([$NSSSONAMEVERSIONSUFFIX])
1764 AC_CACHE_CHECK([whether building shared libraries actually works],
1765 [ac_cv_shlib_works],[
1766 # try building a trivial shared library
1767 ac_cv_shlib_works=no
1768 # The $SHLD and $LDSHFLAGS variables may contain references to other
1769 # variables so they need to be eval'ed.
1770 $CC $CPPFLAGS $CFLAGS $PICFLAG -c -o \
1771 shlib.o ${srcdir-.}/tests/shlib.c && \
1772 `eval echo $SHLD` `eval echo $LDSHFLAGS` -o "shlib.$SHLIBEXT" \
1773 shlib.o && ac_cv_shlib_works=yes
1774 rm -f "shlib.$SHLIBEXT" shlib.o
1777 if test $ac_cv_shlib_works = no; then
1782 if test x"$BLDSHARED" != x"true"; then
1783 LDSHFLAGS="shared-libraries-disabled"
1784 SONAMEFLAG="shared-libraries-disabled"
1785 NSSSONAMEVERSIONSUFFIX="shared-libraries-disabled"
1786 SHLD="shared-libraries-disabled"
1787 PICFLAG="${PIE_CFLAGS}"
1788 SHLIBEXT="shared_libraries_disabled"
1791 AC_MSG_CHECKING([used PICFLAG])
1792 AC_MSG_RESULT([$PICFLAG])
1794 AC_DEFINE_UNQUOTED(SHLIBEXT, "$SHLIBEXT", [Shared library extension])
1796 AC_LIBREPLACE_RUNTIME_LIB_PATH_VAR
1800 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1801 AC_TRY_RUN([#include <stdio.h>
1802 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1803 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1804 if test x"$samba_cv_have_longlong" = x"yes"; then
1805 AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1806 AC_CHECK_TYPE(intptr_t, unsigned long long)
1808 AC_CHECK_TYPE(intptr_t, unsigned long)
1812 # Check if the compiler supports the LL prefix on long long integers.
1815 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1816 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1817 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1818 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1819 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
1823 AC_CACHE_CHECK([for 64 bit time_t],samba_cv_SIZEOF_TIME_T,[
1824 AC_TRY_RUN([#include <time.h>
1825 main() { exit((sizeof(time_t) == 8) ? 0 : 1); }],
1826 samba_cv_SIZEOF_TIME_T=yes,samba_cv_SIZEOF_TIME_T=no,samba_cv_SIZEOF_TIME_T=cross)])
1827 if test x"$samba_cv_SIZEOF_TIME_T" = x"yes"; then
1828 AC_DEFINE(SIZEOF_TIME_T,8,[The size of the 'time_t' type])
1831 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1832 AC_TRY_RUN([#include <stdio.h>
1833 #include <sys/stat.h>
1834 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1835 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1836 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1837 AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1840 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1842 #if defined(HAVE_UNISTD_H)
1846 #include <sys/stat.h>
1847 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1848 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1849 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1850 AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1853 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1855 #if defined(HAVE_UNISTD_H)
1859 #include <sys/stat.h>
1860 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1861 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1862 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1863 AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1866 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1868 #if defined(HAVE_UNISTD_H)
1872 #include <sys/stat.h>
1873 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1874 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1875 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1876 AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1879 AC_CACHE_CHECK([for 64 bit dev_t],samba_cv_SIZEOF_DEV_T,[
1881 #if defined(HAVE_UNISTD_H)
1885 #include <sys/stat.h>
1886 main() { exit((sizeof(dev_t) == 8) ? 0 : 1); }],
1887 samba_cv_SIZEOF_DEV_T=yes,samba_cv_SIZEOF_DEV_T=no,samba_cv_SIZEOF_DEV_T=cross)])
1888 if test x"$samba_cv_SIZEOF_DEV_T" = x"yes"; then
1889 AC_DEFINE(SIZEOF_DEV_T,8,[The size of the 'dev_t' type])
1892 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1894 #if defined(HAVE_UNISTD_H)
1898 #include <sys/stat.h>
1899 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1900 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1901 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1902 AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
1905 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIR64,[
1907 #if defined(HAVE_UNISTD_H)
1910 #include <sys/types.h>
1911 #include <dirent.h>],
1913 samba_cv_HAVE_STRUCT_DIR64=yes,samba_cv_HAVE_STRUCT_DIR64=no)])
1914 if test x"$samba_cv_HAVE_STRUCT_DIR64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1915 AC_DEFINE(HAVE_STRUCT_DIR64,1,[Whether the 'DIR64' abstract data type is available])
1918 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1920 #if defined(HAVE_UNISTD_H)
1923 #include <sys/types.h>
1924 #include <dirent.h>],
1925 [struct dirent64 de;],
1926 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1927 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1928 AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1931 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1933 #if defined(HAVE_UNISTD_H)
1936 #include <sys/types.h>
1937 main() { dev_t dev; int i = major(dev); return 0; }],
1938 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1939 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1940 AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
1943 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1945 #if defined(HAVE_UNISTD_H)
1948 #include <sys/types.h>
1949 main() { dev_t dev; int i = minor(dev); return 0; }],
1950 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1951 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1952 AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
1955 AC_CACHE_CHECK([for makedev macro],samba_cv_HAVE_MAKEDEV,[
1957 #if defined(HAVE_UNISTD_H)
1960 #include <sys/types.h>
1961 main() { dev_t dev = makedev(1,2); return 0; }],
1962 samba_cv_HAVE_MAKEDEV=yes,samba_cv_HAVE_MAKEDEV=no,samba_cv_HAVE_MAKEDEV=cross)])
1963 if test x"$samba_cv_HAVE_MAKEDEV" = x"yes"; then
1964 AC_DEFINE(HAVE_MAKEDEV,1,[Whether the macro for makedev is available])
1967 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1968 AC_TRY_RUN([#include <stdio.h>
1969 main() { char c; c=250; exit((c > 0)?0:1); }],
1970 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1971 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1972 AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1975 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1976 AC_TRY_COMPILE([#include <sys/types.h>
1977 #include <sys/socket.h>
1978 #include <netinet/in.h>],
1979 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1980 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1981 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1982 AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
1985 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1986 AC_TRY_COMPILE([#include <sys/types.h>
1988 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1989 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1990 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1991 AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
1994 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1995 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1996 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1997 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1998 AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
2001 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
2003 #include <sys/time.h>
2004 #include <unistd.h>], [struct timeval tv; return gettimeofday(&tv, NULL);],
2005 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,
2006 samba_cv_HAVE_GETTIMEOFDAY_TZ=no)])
2007 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
2008 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday takes a tz argument])
2011 if test x"$samba_cv_WITH_PROFILE" = x"yes"; then
2013 # On some systems (eg. Linux) librt can pull in libpthread. We
2014 # don't want this to happen because libpthreads changes signal delivery
2015 # semantics in ways we are not prepared for. This breaks Linux oplocks
2016 # which rely on signals.
2018 AC_LIBTESTFUNC(rt, clock_gettime,
2020 AC_DEFINE(HAVE_CLOCK_GETTIME, 1,
2021 [Whether clock_gettime is available])
2022 SMB_CHECK_CLOCK_ID(CLOCK_MONOTONIC)
2023 SMB_CHECK_CLOCK_ID(CLOCK_PROCESS_CPUTIME_ID)
2024 SMB_CHECK_CLOCK_ID(CLOCK_REALTIME)
2029 AC_CACHE_CHECK([for broken readdir name],samba_cv_HAVE_BROKEN_READDIR_NAME,[
2030 AC_TRY_RUN([#include <sys/types.h>
2032 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
2033 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
2034 di->d_name[0] == 0) exit(0); exit(1);} ],
2035 samba_cv_HAVE_BROKEN_READDIR_NAME=yes,samba_cv_HAVE_BROKEN_READDIR_NAME=no,samba_cv_HAVE_BROKEN_READDIR_NAME=cross)])
2036 if test x"$samba_cv_HAVE_BROKEN_READDIR_NAME" = x"yes"; then
2037 AC_DEFINE(HAVE_BROKEN_READDIR_NAME,1,[Whether readdir() returns the wrong name offset])
2040 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
2041 AC_TRY_COMPILE([#include <sys/types.h>
2042 #include <utime.h>],
2043 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
2044 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
2045 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
2046 AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
2050 # Check utmp details, but only if our OS offers utmp.h
2051 if test x"$ac_cv_header_utmp_h" = x"yes"; then
2052 dnl utmp and utmpx come in many flavours
2053 dnl We need to check for many of them
2054 dnl But we don't need to do each and every one, because our code uses
2055 dnl mostly just the utmp (not utmpx) fields.
2057 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
2059 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
2060 AC_TRY_COMPILE([#include <sys/types.h>
2062 [struct utmp ut; ut.ut_name[0] = 'a';],
2063 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
2064 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
2065 AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
2068 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
2069 AC_TRY_COMPILE([#include <sys/types.h>
2071 [struct utmp ut; ut.ut_user[0] = 'a';],
2072 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
2073 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
2074 AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
2077 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
2078 AC_TRY_COMPILE([#include <sys/types.h>
2080 [struct utmp ut; ut.ut_id[0] = 'a';],
2081 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
2082 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
2083 AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
2086 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
2087 AC_TRY_COMPILE([#include <sys/types.h>
2089 [struct utmp ut; ut.ut_host[0] = 'a';],
2090 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
2091 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
2092 AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
2095 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
2096 AC_TRY_COMPILE([#include <sys/types.h>
2098 [struct utmp ut; time_t t; ut.ut_time = t;],
2099 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
2100 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
2101 AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
2104 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
2105 AC_TRY_COMPILE([#include <sys/types.h>
2107 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
2108 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
2109 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
2110 AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
2113 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
2114 AC_TRY_COMPILE([#include <sys/types.h>
2116 [struct utmp ut; ut.ut_type = 0;],
2117 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
2118 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
2119 AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
2122 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
2123 AC_TRY_COMPILE([#include <sys/types.h>
2125 [struct utmp ut; ut.ut_pid = 0;],
2126 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
2127 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
2128 AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
2131 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
2132 AC_TRY_COMPILE([#include <sys/types.h>
2134 [struct utmp ut; ut.ut_exit.e_exit = 0;],
2135 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
2136 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
2137 AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
2140 dnl Look for the IPv6 varient by preference. Many systems have both.
2141 AC_CACHE_CHECK([for ut_addr_v6 in utmp],samba_cv_HAVE_UT_UT_ADDR_V6,[
2142 AC_TRY_COMPILE([#include <sys/types.h>
2144 [struct utmp ut; ut.ut_addr_v6[0] = 0;],
2145 samba_cv_HAVE_UT_UT_ADDR_V6=yes,samba_cv_HAVE_UT_UT_ADDR_V6=no,samba_cv_HAVE_UT_UT_ADDR_V6=cross)])
2146 if test x"$samba_cv_HAVE_UT_UT_ADDR_V6" = x"yes"; then
2147 AC_DEFINE(HAVE_UT_UT_ADDR_V6,1,[Whether the utmp struct has a property ut_addr_v6])
2150 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
2151 AC_TRY_COMPILE([#include <sys/types.h>
2153 [struct utmp ut; ut.ut_addr = 0;],
2154 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
2155 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
2156 AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
2159 if test x$ac_cv_func_pututline = xyes ; then
2160 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
2161 AC_TRY_COMPILE([#include <sys/types.h>
2163 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
2164 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
2165 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
2166 AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
2170 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
2171 AC_TRY_COMPILE([#include <sys/types.h>
2172 #include <utmpx.h>],
2173 [struct utmpx ux; ux.ut_syslen = 0;],
2174 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
2175 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
2176 AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
2183 ICONV_LOOK_DIRS="/usr /usr/local /sw /opt"
2184 AC_ARG_WITH(libiconv,
2185 [AS_HELP_STRING([--with-libiconv=BASEDIR], [Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto)])],
2187 if test "$withval" = "no" ; then
2188 AC_MSG_ERROR([argument to --with-libiconv must be a directory])
2190 if test "$withval" != "yes" ; then
2192 ICONV_LOOK_DIRS="$withval"
2197 for i in $ICONV_LOOK_DIRS ; do
2200 save_LDFLAGS="$LDFLAGS"
2201 save_CPPFLAGS="$CPPFLAGS"
2203 iconv_current_LIBS=""
2204 iconv_current_LDFLAGS=""
2205 iconv_current_CPPFLAGS=""
2210 # This is here to handle -withval stuff for --with-libiconv
2211 # Perhaps we should always add a -L
2212 CPPFLAGS="$save_CPPFLAGS -I$i/include"
2214 # Check lib and lib32 library variants to cater for IRIX ABI-specific
2215 # installation paths. This gets a little tricky since we might have iconv
2216 # in both libiconv and in libc. In this case the jm_ICONV test will always
2217 # succeed when the header is found. To counter this, make sure the
2218 # library directory is there and check the ABI directory first (which
2219 # should be harmless on other systems.
2220 # For IA64 HPUX systems, the libs are located in lib/hpux32 instead of lib.
2221 for l in "lib32" "lib" "lib/hpux32"; do
2222 if test -d "$i/$l" ; then
2223 LDFLAGS="$save_LDFLAGS -L$i/$l"
2225 export LDFLAGS LIBS CPPFLAGS
2226 # Try to find iconv(3)
2228 if test x"$ICONV_FOUND" = "xyes" ; then
2235 if test x"$ICONV_FOUND" = "xyes" ; then
2236 iconv_current_LDFLAGS="-L$i/$libext"
2237 iconv_current_CPPFLAGS="-I$i/include"
2239 if test x"$jm_cv_lib_iconv" != x; then
2240 iconv_current_LIBS="$LIBS -l$jm_cv_lib_iconv"
2242 # We found iconv in libc.
2243 iconv_current_LIBS=""
2248 if test x"$ICONV_FOUND" = "xyes" ; then
2250 LDFLAGS="$save_LDFLAGS $iconv_current_LDFLAGS"
2251 CPPFLAGS="$save_CPPFLAGS $iconv_current_CPPFLAGS"
2252 LIBS="$save_LIBS $iconv_current_LIBS"
2253 export LDFLAGS LIBS CPPFLAGS
2255 default_dos_charset=no
2256 default_display_charset=no
2257 default_unix_charset=no
2259 # check for default dos charset name
2260 for j in CP850 IBM850 ; do
2262 default_dos_charset="$ICONV_CHARSET"
2263 if test x"$default_dos_charset" = x"$j"; then
2268 # check for default display charset name
2269 for j in ASCII 646 ; do
2271 default_display_charset="$ICONV_CHARSET"
2272 if test x"$default_display_charset" = x"$j"; then
2277 # check for default unix charset name
2278 for j in UTF-8 UTF8 ; do
2280 default_unix_charset="$ICONV_CHARSET"
2281 if test x"$default_unix_charset" = x"$j"; then
2286 if test "$default_dos_charset" != "no" -a \
2287 "$default_dos_charset" != "cross" -a \
2288 "$default_display_charset" != "no" -a \
2289 "$default_display_charset" != "cross" -a \
2290 "$default_unix_charset" != "no" -a \
2291 "$default_unix_charset" != "cross"
2293 samba_cv_HAVE_NATIVE_ICONV=yes
2295 if test "$default_dos_charset" = "cross" -o \
2296 "$default_display_charset" = "cross" -o \
2297 "$default_unix_charset" = "cross"
2299 samba_cv_HAVE_NATIVE_ICONV=cross
2301 samba_cv_HAVE_NATIVE_ICONV=no
2305 # At this point, we have a libiconv candidate. We know that
2306 # we have the right headers and libraries, but we don't know
2307 # whether it does the conversions we want. We can't test this
2308 # because we are cross-compiling. This is not necessarily a big
2309 # deal, since we can't guarantee that the results we get now will
2310 # match the results we get at runtime anyway.
2311 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"cross" ; then
2312 default_dos_charset="CP850"
2313 default_display_charset="ASCII"
2314 default_unix_charset="UTF-8"
2315 samba_cv_HAVE_NATIVE_ICONV=yes
2316 AC_MSG_WARN(assuming the libiconv in $iconv_current_LDFLAGS can convert)
2317 AC_MSG_WARN([$default_dos_charset, $default_display_charset and $default_unix_charset to UCS-16LE])
2320 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes" ; then
2322 CPPFLAGS=$save_CPPFLAGS
2323 LDFLAGS=$save_LDFLAGS
2326 if test x"$iconv_current_LIBS" != x; then
2327 LIBS="$LIBS $iconv_current_LIBS"
2330 # Add the flags we need to CPPFLAGS and LDFLAGS
2331 CPPFLAGS="$CPPFLAGS $iconv_current_CPPFLAGS"
2332 LDFLAGS="$LDFLAGS $iconv_current_LDFLAGS"
2334 # Turn the #defines into string literals
2335 default_dos_charset="\"$default_dos_charset\""
2336 default_display_charset="\"$default_display_charset\""
2337 default_unix_charset="\"$default_unix_charset\""
2339 AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
2340 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,$default_dos_charset,[Default dos charset name])
2341 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,$default_display_charset,[Default display charset name])
2342 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,$default_unix_charset,[Default unix charset name])
2347 # We didn't find a working iconv, so keep going
2350 # We only need to clean these up here for the next pass through the loop
2351 CPPFLAGS=$save_CPPFLAGS
2352 LDFLAGS=$save_LDFLAGS
2354 export LDFLAGS LIBS CPPFLAGS
2359 if test x"$ICONV_FOUND" = x"no" -o x"$samba_cv_HAVE_NATIVE_ICONV" != x"yes" ; then
2360 AC_MSG_WARN([Sufficient support for iconv function was not found.
2361 Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!])
2362 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,"ASCII",[Default dos charset name])
2363 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,"ASCII",[Default display charset name])
2364 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,"UTF8",[Default unix charset name])
2368 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
2370 #include <sys/types.h>
2373 #define F_GETLEASE 1025
2376 int fd = open("/dev/null", O_RDONLY);
2377 return fcntl(fd, F_GETLEASE, 0) == -1;
2380 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
2381 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
2382 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
2385 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
2387 #include <sys/types.h>
2391 #define F_NOTIFY 1026
2394 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
2397 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
2398 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
2399 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
2402 AC_CACHE_CHECK([for inotify support],samba_cv_HAVE_INOTIFY,[
2403 AC_CHECK_HEADERS(linux/inotify.h asm/unistd.h)
2404 AC_CHECK_FUNCS(inotify_init)
2405 AC_HAVE_DECL(__NR_inotify_init, [#include <asm/unistd.h>])
2407 samba_cv_HAVE_INOTIFY=yes,
2408 samba_cv_HAVE_INOTIFY=no,
2409 samba_cv_HAVE_INOTIFY=cross)
2411 if test x"$ac_cv_func_inotify_init" = x"yes" -a x"$ac_cv_header_linux_inotify_h" = x"yes"; then
2412 AC_DEFINE(HAVE_INOTIFY,1,[Whether kernel has inotify support])
2415 #################################################
2416 # Check if FAM notifications are available. For FAM info, see
2417 # http://oss.sgi.com/projects/fam/
2418 # http://savannah.nongnu.org/projects/fam/
2420 [AS_HELP_STRING([--enable-fam], [Turn on FAM support (default=auto)])])
2422 if test x$enable_fam != xno; then
2423 AC_CHECK_HEADERS(fam.h, [samba_cv_HAVE_FAM_H=yes], [samba_cv_HAVE_FAM_H=no])
2424 if test x"$samba_cv_HAVE_FAM_H" = x"yes"; then
2425 # On IRIX, libfam requires libC, but other FAM implementations
2426 # might not need it.
2427 AC_CHECK_LIB(fam, FAMOpen2,
2428 [samba_cv_HAVE_LIBFAM=yes; SMB_FAM_LIBS="-lfam"],
2429 [samba_cv_HAVE_LIBFAM=no])
2431 if test x"$samba_cv_HAVE_LIBFAM" = x"no" ; then
2433 AC_CHECK_LIB_EXT(fam, samba_fam_xtra, FAMOpen2,
2434 [samba_cv_HAVE_LIBFAM=yes; SMB_FAM_LIBS="-lfam -lC"],
2435 [samba_cv_HAVE_LIBFAM=no])
2436 unset samba_fam_xtra
2440 if test x"$samba_cv_HAVE_LIBFAM" = x"yes" ; then
2441 default_shared_modules="$default_shared_modules vfs_notify_fam"
2442 AC_TRY_COMPILE([#include <fam.h>],
2443 [FAMCodes code = FAMChanged;],
2444 AC_DEFINE(HAVE_FAM_H_FAMCODES_TYPEDEF, 1,
2445 [Whether fam.h contains a typedef for enum FAMCodes]),
2449 if test x$enable_fam = xyes && test x"$samba_cv_HAVE_LIBFAM" != xyes ; then
2450 AC_MSG_ERROR(FAM support requested but FAM library not available )
2454 AC_SUBST(SMB_FAM_LIBS)
2456 #################################################
2457 # Check for DMAPI interfaces in libdm/libjfsdm/libxsdm
2459 SMB_CHECK_DMAPI([], AC_MSG_NOTICE(DMAPI support not present) )
2461 # Add TSM SM VFS module only if there are both GPFS and DMAPI support
2462 # Theoretically it should work with AIX JFS2 too but this needs testing
2463 if test x"$samba_cv_HAVE_GPFS" = x"yes" && test x"$samba_dmapi_libs" != x"" ; then
2464 default_shared_modules="$default_shared_modules vfs_tsmsm"
2467 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
2469 #include <sys/types.h>
2472 #include <sys/file.h>
2474 #define LOCK_MAND 32
2475 #define LOCK_READ 64
2478 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
2481 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
2482 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
2483 AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
2487 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
2488 AC_TRY_COMPILE([#include <sys/types.h>
2489 #include <fcntl.h>],
2490 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
2491 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
2492 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
2493 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
2496 #################################################
2497 # Check for POSIX capability support
2499 AC_CHECK_HEADER(sys/capability.h, [samba_cv_HAVE_SYS_CAPABILITY_H=yes;
2500 AC_DEFINE(HAVE_SYS_CAPABILITY_H, 1, Whether sys/capability.h is present)],
2503 if test x"$samba_cv_HAVE_SYS_CAPABILITY_H" = x"yes"; then
2506 AC_LIBTESTFUNC(cap, cap_get_proc)
2508 AC_CACHE_CHECK([for POSIX capabilities],
2509 samba_cv_HAVE_POSIX_CAPABILITIES,
2512 #include <sys/types.h>
2513 #include <sys/capability.h>
2516 cap_value_t vals[1];
2517 if (!(cap = cap_get_proc()))
2519 vals[0] = CAP_CHOWN;
2520 cap_set_flag(cap, CAP_INHERITABLE, 1, vals, CAP_CLEAR);
2524 samba_cv_HAVE_POSIX_CAPABILITIES=yes,
2525 samba_cv_HAVE_POSIX_CAPABILITIES=no,
2526 samba_cv_HAVE_POSIX_CAPABILITIES=cross)
2529 if test x"$samba_cv_HAVE_POSIX_CAPABILITIES" = x"yes"; then
2530 AC_DEFINE(HAVE_POSIX_CAPABILITIES, 1,
2531 [Whether POSIX capabilities are available])
2539 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
2540 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
2543 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
2544 AC_TRY_COMPILE([#include <sys/types.h>
2545 #if defined(HAVE_RPC_RPC_H)
2546 #include <rpc/rpc.h>
2549 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
2550 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
2551 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
2554 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
2555 AC_TRY_COMPILE([#include <sys/types.h>
2556 #if defined(HAVE_RPC_RPC_H)
2557 #include <rpc/rpc.h>
2560 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
2561 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
2562 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
2565 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
2566 AC_TRY_COMPILE([#include <sys/types.h>
2567 #if defined(HAVE_RPC_RPC_H)
2568 #include <rpc/rpc.h>
2571 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
2572 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
2573 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
2576 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
2577 AC_TRY_COMPILE([#include <sys/types.h>
2578 #if defined(HAVE_RPC_RPC_H)
2579 #include <rpc/rpc.h>
2582 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
2583 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
2584 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
2588 dnl Some systems (SCO) have a problem including
2589 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
2590 dnl as a #define in <prot.h> and as part of an enum
2594 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
2595 AC_TRY_COMPILE([#include <sys/types.h>
2596 #ifdef HAVE_SYS_SECURITY_H
2597 #include <sys/security.h>
2599 #endif /* HAVE_SYS_SECURITY_H */
2600 #if defined(HAVE_RPC_RPC_H)
2601 #include <rpc/rpc.h>
2604 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
2605 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
2606 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
2609 AC_MSG_CHECKING([for test routines])
2610 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
2612 AC_MSG_ERROR([cant find test code. Aborting config]),
2613 AC_MSG_WARN([cannot run when cross-compiling]))
2615 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
2616 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
2617 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
2618 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
2619 AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
2622 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
2623 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
2624 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
2625 samba_cv_HAVE_WORKING_AF_LOCAL=no,
2626 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
2627 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
2629 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
2632 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
2633 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
2634 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
2635 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
2636 AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
2639 SMB_CHECK_SYSCONF(_SC_NGROUPS_MAX)
2640 SMB_CHECK_SYSCONF(_SC_NPROC_ONLN)
2641 SMB_CHECK_SYSCONF(_SC_NPROCESSORS_ONLN)
2642 SMB_CHECK_SYSCONF(_SC_PAGESIZE)
2643 AC_CHECK_FUNCS(getpagesize)
2646 AC_CACHE_CHECK([for ipv6 support],samba_cv_HAVE_IPV6,[
2648 #include <stdlib.h> /* for NULL */
2649 #include <sys/socket.h>
2650 #include <sys/types.h>
2651 #include <netdb.h>],
2653 struct sockaddr_storage sa_store;
2654 struct addrinfo *ai = NULL;
2655 struct in6_addr in6addr;
2656 int s = socket(AF_INET6, SOCK_STREAM, 0);
2657 int ret = getaddrinfo(NULL, NULL, NULL, &ai);
2659 const char *es = gai_strerror(ret);
2663 samba_cv_HAVE_IPV6=yes,samba_cv_HAVE_IPV6=no)])
2664 if test x"$samba_cv_HAVE_IPV6" = x"yes"; then
2665 AC_DEFINE(HAVE_IPV6,1,[Whether the system has IPv6 support])
2668 ################################################
2669 # look for a method of setting the effective uid
2671 if test $seteuid = no; then
2672 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
2674 #define AUTOCONF_TEST 1
2675 #define USE_SETRESUID 1
2676 #include "confdefs.h"
2677 #include "${srcdir-.}/lib/util_sec.c"],
2678 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
2679 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
2680 seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
2685 if test $seteuid = no; then
2686 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
2688 #define AUTOCONF_TEST 1
2689 #define USE_SETREUID 1
2690 #include "confdefs.h"
2691 #include "${srcdir-.}/lib/util_sec.c"],
2692 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
2693 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
2694 seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
2698 if test $seteuid = no; then
2699 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
2701 #define AUTOCONF_TEST 1
2702 #define USE_SETEUID 1
2703 #include "confdefs.h"
2704 #include "${srcdir-.}/lib/util_sec.c"],
2705 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
2706 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
2707 seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
2711 if test $seteuid = no; then
2712 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
2714 #define AUTOCONF_TEST 1
2715 #define USE_SETUIDX 1
2716 #include "confdefs.h"
2717 #include "${srcdir-.}/lib/util_sec.c"],
2718 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
2719 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
2720 seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
2724 AC_CACHE_CHECK([for the Darwin initgroups system call],
2725 samba_cv_DARWIN_INITGROUPS,
2727 #include <sys/syscall.h>
2730 [ syscall(SYS_initgroups, 16, NULL, NULL, 0); ],
2731 samba_cv_DARWIN_INITGROUPS=yes,
2732 samba_cv_DARWIN_INITGROUPS=no)
2735 if test x"$samba_cv_DARWIN_INITGROUPS" = x"yes" ; then
2736 AC_DEFINE(HAVE_DARWIN_INITGROUPS, 1,
2737 [Whether to use the Darwin-specific initgroups system call])
2740 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
2741 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
2742 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
2743 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
2744 AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
2747 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
2748 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
2749 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
2750 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
2751 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
2756 dnl Don't check for 64 bit fcntl locking if we know that the
2757 dnl glibc2.1 broken check has succeeded.
2760 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
2762 #if defined(HAVE_UNISTD_H)
2772 #ifdef HAVE_SYS_FCNTL_H
2773 #include <sys/fcntl.h>
2775 main() { struct flock64 fl64;
2776 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
2782 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
2784 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
2785 AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
2789 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
2790 AC_TRY_COMPILE([#include <sys/types.h>
2791 #include <sys/stat.h>
2792 #include <unistd.h>],
2793 [struct stat st; st.st_blocks = 0;],
2794 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
2795 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
2796 AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
2799 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
2800 AC_TRY_COMPILE([#include <sys/types.h>
2801 #include <sys/stat.h>
2802 #include <unistd.h>],
2803 [struct stat st; st.st_blksize = 0;],
2804 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
2805 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
2806 AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
2809 AC_CACHE_CHECK([for st_flags in struct stat],
2810 samba_cv_HAVE_STAT_ST_FLAGS,
2812 AC_TRY_COMPILE([#include <sys/types.h>
2813 #include <sys/stat.h>
2814 #include <unistd.h>],
2815 [struct stat st; st.st_flags = 0;],
2816 samba_cv_HAVE_STAT_ST_FLAGS=yes,
2817 samba_cv_HAVE_STAT_ST_FLAGS=no,
2818 samba_cv_HAVE_STAT_ST_FLAGS=cross)
2821 if test x"$samba_cv_HAVE_STAT_ST_FLAGS" = x"yes"; then
2822 AC_DEFINE(HAVE_STAT_ST_FLAGS, 1,
2823 [Whether the stat struct has a st_flags member])
2826 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
2828 #include <sys/types.h>
2829 #include <sys/acl.h>
2830 #if defined(HAVE_RPCSVC_NIS_H)
2831 #include <rpcsvc/nis.h>
2834 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
2835 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
2836 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
2839 AC_CACHE_CHECK([if the realpath function allows a NULL argument],samba_cv_REALPATH_TAKES_NULL,[
2844 char *newpath = realpath("/tmp", NULL);
2845 exit ((newpath != NULL) ? 0 : 1);
2848 samba_cv_REALPATH_TAKES_NULL=yes,samba_cv_REALPATH_TAKES_NULL=no,samba_cv_REALPATH_TAKES_NULL=cross)])
2849 if test x"$samba_cv_REALPATH_TAKES_NULL" = x"yes"; then
2850 AC_DEFINE(REALPATH_TAKES_NULL,1,[Whether the realpath function allows NULL])
2853 #################################################
2854 # check for AFS clear-text auth support
2855 samba_cv_WITH_AFS=no
2856 AC_MSG_CHECKING(whether to use AFS clear-text auth)
2858 [AS_HELP_STRING([--with-afs], [Include AFS clear-text auth support (default=no)])],
2859 [ case "$withval" in
2861 AC_MSG_RESULT($withval)
2862 samba_cv_WITH_AFS=$withval
2871 ####################################################
2872 # check for Linux-specific AFS fake-kaserver support
2873 samba_cv_WITH_FAKE_KASERVER=no
2874 AC_MSG_CHECKING(whether to use AFS fake-kaserver)
2875 AC_ARG_WITH(fake-kaserver,
2876 [AS_HELP_STRING([--with-fake-kaserver], [Include AFS fake-kaserver support (default=no)])],
2877 [ case "$withval" in
2879 AC_MSG_RESULT($withval)
2880 samba_cv_WITH_FAKE_KASERVER=$withval
2889 #################################################
2890 # decide whether we can support WITH_AFS and / or WITH_FAKE_KASERVER
2891 if test x"$samba_cv_WITH_AFS" != x"no" ||
2892 test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then
2894 # see if this box has the afs-headers in /usr/include/afs
2895 AC_MSG_CHECKING(for /usr/include/afs)
2896 if test -d /usr/include/afs; then
2897 CFLAGS="$CFLAGS -I/usr/include/afs"
2898 CPPFLAGS="$CPPFLAGS -I/usr/include/afs"
2906 AC_CHECK_HEADERS(afs.h afs/afs.h)
2907 if test x"$ac_cv_header_afs_h" = x"no" && test x"$ac_cv_header_afs_afs_h" = x"no"; then
2908 if test x"$samba_cv_WITH_FAKE_KASERVER" = x"auto" ||
2909 test x"$samba_cv_WITH_AFS" = x"auto"; then
2910 AC_MSG_WARN([AFS cannot be supported without afs.h])
2912 AC_MSG_ERROR([AFS cannot be supported without afs.h])
2915 have_afs_headers=yes
2919 if test x"$samba_cv_WITH_FAKE_KASERVER" != x"no" && test x"$have_afs_headers" = x"yes"; then
2920 AC_DEFINE(WITH_FAKE_KASERVER,1,[Whether to include AFS fake-kaserver support])
2923 #################################################
2924 # check whether to compile AFS/NT ACL mapping module
2925 samba_cv_WITH_VFS_AFSACL=no
2926 AC_MSG_CHECKING(whether to use AFS ACL mapping module)
2927 AC_ARG_WITH(vfs-afsacl,
2928 [AS_HELP_STRING([--with-vfs-afsacl], [Include AFS to NT ACL mapping module (default=no)])],
2929 [ case "$withval" in
2931 AC_MSG_RESULT($withval)
2932 samba_cv_WITH_VFS_AFSACL=yes
2941 if test x"$samba_cv_WITH_VFS_AFSACL" = x"yes"; then
2942 default_shared_modules="$default_shared_modules vfs_afsacl"
2945 if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then
2946 AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
2949 #################################################
2950 # check for the DFS clear-text auth system
2951 AC_MSG_CHECKING(whether to use DFS clear-text auth)
2953 [AS_HELP_STRING([--with-dce-dfs], [Include DCE/DFS clear-text auth support (default=no)])],
2954 [ case "$withval" in
2957 AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
2966 ########################################################
2967 # Compile with LDAP support?
2969 with_ldap_support=auto
2970 AC_MSG_CHECKING([for LDAP support])
2973 [AS_HELP_STRING([--with-ldap], [LDAP support (default yes)])],
2974 [ case "$withval" in
2976 with_ldap_support=$withval
2980 AC_MSG_RESULT($with_ldap_support)
2985 AC_SUBST(SMBLDAPUTIL)
2989 if test x"$with_ldap_support" != x"no"; then
2991 ##################################################################
2992 # first test for ldap.h and lber.h
2993 # (ldap.h is required for this test)
2994 AC_CHECK_HEADERS(ldap.h lber.h)
2996 if test x"$ac_cv_header_ldap_h" != x"yes"; then
2997 if test x"$with_ldap_support" = x"yes"; then
2998 AC_MSG_ERROR(ldap.h is needed for LDAP support)
3000 AC_MSG_WARN(ldap.h is needed for LDAP support)
3003 with_ldap_support=no
3006 ##################################################################
3007 # HP/UX does not have ber_tag_t in lber.h - it must be configured as
3008 # unsigned int in include/includes.h
3011 AC_MSG_WARN(ber_tag_t is needed for LDAP support)
3012 AC_MSG_WARN(ber_tag_t must be configured in includes.h for hpux)
3013 with_ldap_support=yes
3016 AC_CHECK_TYPE(ber_tag_t,,,[#include <lber.h>])
3017 if test x"$ac_cv_type_ber_tag_t" != x"yes"; then
3018 if test x"$with_ldap_support" = x"yes"; then
3019 AC_MSG_ERROR(ber_tag_t is needed for LDAP support)
3021 AC_MSG_WARN(ber_tag_t is needed for LDAP support)
3023 with_ldap_support=no
3029 if test x"$with_ldap_support" != x"no"; then
3032 ##################################################################
3033 # we might need the lber lib on some systems. To avoid link errors
3034 # this test must be before the libldap test
3035 AC_CHECK_LIB_EXT(lber, LDAP_LIBS, ber_scanf)
3037 ########################################################
3038 # If ber_sockbuf_add_io() is available we can add
3039 # SASL wrapping hooks
3040 AC_CHECK_FUNC_EXT(ber_sockbuf_add_io,$LDAP_LIBS)
3042 AC_CACHE_CHECK([for LDAP_OPT_SOCKBUF],samba_cv_HAVE_LDAP_OPT_SOCKBUF,[
3043 AC_TRY_COMPILE([#include <ldap.h>],
3044 [int val = LDAP_OPT_SOCKBUF;],
3045 samba_cv_HAVE_LDAP_OPT_SOCKBUF=yes,
3046 samba_cv_HAVE_LDAP_OPT_SOCKBUF=no)])
3048 if test x"$ac_cv_func_ext_ber_sockbuf_add_io" = x"yes" -a \
3049 x"$samba_cv_HAVE_LDAP_OPT_SOCKBUF" = x"yes"; then
3050 AC_DEFINE(HAVE_LDAP_SASL_WRAPPING, 1, [Support for SASL wrapping])
3053 #######################################################
3054 # if we have LBER_OPT_LOG_PRINT_FN, we can intercept
3055 # ldap logging and print it out in the samba logs
3056 AC_CACHE_CHECK([for LBER_OPT_LOG_PRINT_FN],
3057 samba_cv_HAVE_LBER_OPT_LOG_PRINT_FN,
3058 [AC_TRY_COMPILE([#include <lber.h>],
3059 [int val = LBER_OPT_LOG_PRINT_FN;],
3060 samba_cv_HAVE_LBER_OPT_LOG_PRINT_FN=yes,
3061 samba_cv_HAVE_LBER_OPT_LOG_PRINT_FN=no)])
3063 if test x"$samba_cv_HAVE_LBER_OPT_LOG_PRINT_FN" = x"yes"; then
3064 AC_DEFINE(HAVE_LBER_LOG_PRINT_FN, 1,
3065 [Support for LDAP/LBER logging interception])
3068 ########################################################
3069 # now see if we can find the ldap libs in standard paths
3070 AC_CHECK_LIB_EXT(ldap, LDAP_LIBS, ldap_init)
3072 ########################################################
3073 # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
3074 # Check found in pam_ldap 145.
3075 AC_CHECK_FUNC_EXT(ldap_set_rebind_proc,$LDAP_LIBS)
3077 LIBS="$LIBS $LDAP_LIBS"
3078 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, smb_ldap_cv_ldap_set_rebind_proc, [
3082 [ldap_set_rebind_proc(0, 0, 0);],
3083 [smb_ldap_cv_ldap_set_rebind_proc=3],
3084 [smb_ldap_cv_ldap_set_rebind_proc=2]
3088 AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $smb_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
3090 AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS)
3092 if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes"; then
3093 AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])
3094 CPPFLAGS="$CPPFLAGS -DLDAP_DEPRECATED"
3095 default_static_modules="$default_static_modules pdb_ldap idmap_ldap";
3096 default_shared_modules="$default_shared_modules";
3097 SMBLDAP="lib/smbldap.o"
3098 SMBLDAPUTIL="lib/smbldap_util.o"
3099 with_ldap_support=yes
3100 AC_MSG_CHECKING(whether LDAP support is used)
3103 if test x"$with_ldap_support" = x"yes"; then
3104 AC_MSG_ERROR(libldap is needed for LDAP support)
3106 AC_MSG_WARN(libldap is needed for LDAP support)
3110 with_ldap_support=no
3116 #################################################
3117 # active directory support
3119 with_ads_support=auto
3120 AC_MSG_CHECKING([for Active Directory and krb5 support])
3123 [AS_HELP_STRING([--with-ads], [Active Directory support (default auto)])],
3124 [ case "$withval" in
3126 with_ads_support="$withval"
3130 AC_MSG_RESULT($with_ads_support)
3135 if test x"$with_ldap_support" != x"yes"; then
3137 if test x"$with_ads_support" = x"yes"; then
3138 AC_MSG_ERROR(Active Directory Support requires LDAP support)
3139 elif test x"$with_ads_support" = x"auto"; then
3140 AC_MSG_WARN(Disabling Active Directory support (requires LDAP support))
3146 # Check to see whether there is enough LDAP functionality to be able
3147 # to build AD support.
3149 # HPUX only has ldap_init; ok, we take care of this in smbldap.c
3152 AC_CHECK_FUNC_EXT(ldap_init,$LDAP_LIBS)
3154 if test x"$ac_cv_func_ext_ldap_init" != x"yes"; then
3155 if test x"$with_ads_support" = x"yes"; then
3156 AC_MSG_ERROR(Active Directory support on HPUX requires ldap_init)
3157 elif test x"$with_ads_support" = x"auto"; then
3158 AC_MSG_WARN(Disabling Active Directory support (requires ldap_init on HPUX))
3164 AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS)
3166 if test x"$ac_cv_func_ext_ldap_initialize" != x"yes"; then
3167 if test x"$with_ads_support" = x"yes"; then
3168 AC_MSG_ERROR(Active Directory support requires ldap_initialize)
3169 elif test x"$with_ads_support" = x"auto"; then
3170 AC_MSG_WARN(Disabling Active Directory support (requires ldap_initialize))
3178 AC_CHECK_FUNC_EXT(ldap_add_result_entry,$LDAP_LIBS)
3180 if test x"$ac_cv_func_ext_ldap_add_result_entry" != x"yes"; then
3181 if test x"$with_ads_support" = x"yes"; then
3182 AC_MSG_ERROR(Active Directory support requires ldap_add_result_entry)
3183 elif test x"$with_ads_support" = x"auto"; then
3184 AC_MSG_WARN(Disabling Active Directory support (requires ldap_add_result_entry))
3191 if test x"$with_ads_support" != x"no"; then
3193 # Do no harm to the values of CFLAGS and LIBS while testing for
3196 if test x$FOUND_KRB5 = x"no"; then
3197 #################################################
3198 # check for location of Kerberos 5 install
3199 AC_MSG_CHECKING(for kerberos 5 install path)
3201 [AS_HELP_STRING([--with-krb5=base-dir], [Locate Kerberos 5 support (default=/usr)])],
3202 [ case "$withval" in
3204 AC_MSG_RESULT(no krb5-path given)
3211 AC_MSG_RESULT($withval)
3212 KRB5_CFLAGS="-I$withval/include"
3213 KRB5_CPPFLAGS="-I$withval/include"
3214 KRB5_LDFLAGS="-L$withval/lib"
3216 if test -x "$withval/bin/krb5-config"; then
3217 KRB5CONFIG=$withval/bin/krb5-config
3221 AC_MSG_RESULT(no krb5-path given)
3225 #################################################
3226 # check for krb5-config from recent MIT and Heimdal kerberos 5
3227 AC_PATH_PROG(KRB5CONFIG, krb5-config)
3228 AC_MSG_CHECKING(for working krb5-config)
3229 if test -x "$KRB5CONFIG"; then
3230 ac_save_CFLAGS=$CFLAGS
3231 CFLAGS="";export CFLAGS
3232 ac_save_LDFLAGS=$LDFLAGS
3233 LDFLAGS="";export LDFLAGS
3234 KRB5_LIBS="`$KRB5CONFIG --libs gssapi`"
3235 KRB5_LDFLAGS="`$KRB5CONFIG --libs gssapi | sed s/-lgss.*//`"
3236 KRB5_CFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`"
3237 KRB5_CPPFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`"
3238 CFLAGS=$ac_save_CFLAGS;export CFLAGS
3239 LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS
3243 AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
3246 if test x$FOUND_KRB5 = x"no"; then
3247 #################################################
3248 # see if this box has the SuSE location for the heimdal krb implementation
3249 AC_MSG_CHECKING(for /usr/include/heimdal)
3250 if test -d /usr/include/heimdal; then
3251 if test -f /usr/lib/heimdal/lib/libkrb5.a; then
3252 KRB5_CFLAGS="-I/usr/include/heimdal"
3253 KRB5_CPPFLAGS="-I/usr/include/heimdal"
3254 KRB5_LDFLAGS="-L/usr/lib/heimdal/lib"
3258 KRB5_CFLAGS="-I/usr/include/heimdal"
3259 KRB5_CPPFLAGS="-I/usr/include/heimdal"
3268 if test x$FOUND_KRB5 = x"no"; then
3269 #################################################
3270 # see if this box has the RedHat location for kerberos
3271 AC_MSG_CHECKING(for /usr/kerberos)
3272 if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
3273 KRB5_LDFLAGS="-L/usr/kerberos/lib"
3274 KRB5_CFLAGS="-I/usr/kerberos/include"
3275 KRB5_CPPFLAGS="-I/usr/kerberos/include"
3283 if test x$FOUND_KRB5 = x"no"; then
3284 #################################################
3285 # see if this box has the OpenBSD location for heimdal krb5
3286 AC_MSG_CHECKING(for /usr/include/kerberosV)
3287 if test -d /usr/include/kerberosV; then
3288 KRB5_CPPFLAGS="-I/usr/include/kerberosV"
3289 KRB5_LIBS="-lcrypto"
3297 ac_save_CFLAGS=$CFLAGS
3298 ac_save_CPPFLAGS=$CPPFLAGS
3299 ac_save_LDFLAGS=$LDFLAGS
3301 CFLAGS="$KRB5_CFLAGS $CFLAGS"
3302 CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS"
3303 LDFLAGS="$KRB5_LDFLAGS $LDFLAGS"
3305 KRB5_LIBS="$KRB5_LDFLAGS $KRB5_LIBS"
3307 # now check for krb5.h. Some systems have the libraries without the headers!
3308 # note that this check is done here to allow for different kerberos
3310 AC_CHECK_HEADERS(krb5.h)
3312 if test x"$ac_cv_header_krb5_h" = x"no"; then
3314 # Give a warning if AD support was not explicitly requested,
3315 # i.e with_ads_support = auto, otherwise die with an error.
3317 if test x"$with_ads_support" = x"yes"; then
3318 AC_MSG_ERROR([Active Directory cannot be supported without krb5.h])
3320 AC_MSG_WARN([Active Directory cannot be supported without krb5.h])
3323 # Turn off AD support and restore CFLAGS and LIBS variables
3325 with_ads_support="no"
3327 CFLAGS=$ac_save_CFLAGS
3328 CPPFLAGS=$ac_save_CPPFLAGS
3329 LDFLAGS=$ac_save_LDFLAGS
3331 AC_CHECK_HEADERS(krb5/locate_plugin.h)
3332 if test x"$ac_cv_header_krb5_locate_plugin_h" = x"yes"; then
3333 WINBIND_KRB5_LOCATOR="bin/winbind_krb5_locator.$SHLIBEXT"
3334 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $WINBIND_KRB5_LOCATOR"
3338 # Now we have determined whether we really want ADS support
3340 if test x"$with_ads_support" != x"no"; then
3345 # now check for gssapi headers. This is also done here to allow for
3346 # different kerberos include paths
3347 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h com_err.h)
3349 ##################################################################
3350 # we might need the k5crypto and com_err libraries on some systems
3351 AC_CHECK_LIB_EXT(com_err, KRB5_LIBS, _et_list)
3352 AC_CHECK_LIB_EXT(k5crypto, KRB5_LIBS, krb5_encrypt_data)
3355 AC_CHECK_LIB_EXT(crypto, KRB5_LIBS, des_set_key)
3356 AC_CHECK_LIB_EXT(asn1, KRB5_LIBS, copy_Authenticator)
3357 AC_CHECK_LIB_EXT(roken, KRB5_LIBS, roken_getaddrinfo_hostspec)
3359 # Heimdal checks. On static Heimdal gssapi must be linked before krb5.
3360 AC_CHECK_LIB_EXT(gssapi, KRB5_LIBS, gss_display_status,[],[],have_gssapi=yes)
3362 ########################################################
3363 # now see if we can find the krb5 libs in standard paths
3364 # or as specified above
3365 AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_mk_req_extended)
3366 AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_kt_compare)
3368 ########################################################
3369 # now see if we can find the gssapi libs in standard paths
3370 if test x"$have_gssapi" != x"yes"; then
3371 AC_CHECK_LIB_EXT(gssapi_krb5, KRB5_LIBS,gss_display_status,[],[],have_gssapi=yes)
3374 AC_CHECK_FUNC_EXT(krb5_set_real_time, $KRB5_LIBS)
3375 AC_CHECK_FUNC_EXT(krb5_set_default_in_tkt_etypes, $KRB5_LIBS)
3376 AC_CHECK_FUNC_EXT(krb5_set_default_tgs_enctypes, $KRB5_LIBS)
3377 AC_CHECK_FUNC_EXT(krb5_set_default_tgs_ktypes, $KRB5_LIBS)
3378 AC_CHECK_FUNC_EXT(krb5_principal2salt, $KRB5_LIBS)
3379 AC_CHECK_FUNC_EXT(krb5_use_enctype, $KRB5_LIBS)
3380 AC_CHECK_FUNC_EXT(krb5_string_to_key, $KRB5_LIBS)
3381 AC_CHECK_FUNC_EXT(krb5_get_pw_salt, $KRB5_LIBS)
3382 AC_CHECK_FUNC_EXT(krb5_string_to_key_salt, $KRB5_LIBS)
3383 AC_CHECK_FUNC_EXT(krb5_auth_con_setkey, $KRB5_LIBS)
3384 AC_CHECK_FUNC_EXT(krb5_auth_con_setuseruserkey, $KRB5_LIBS)
3385 AC_CHECK_FUNC_EXT(krb5_locate_kdc, $KRB5_LIBS)
3386 AC_CHECK_FUNC_EXT(krb5_get_permitted_enctypes, $KRB5_LIBS)
3387 AC_CHECK_FUNC_EXT(krb5_get_default_in_tkt_etypes, $KRB5_LIBS)
3388 AC_CHECK_FUNC_EXT(krb5_free_data_contents, $KRB5_LIBS)
3389 AC_CHECK_FUNC_EXT(krb5_principal_get_comp_string, $KRB5_LIBS)
3390 AC_CHECK_FUNC_EXT(krb5_free_unparsed_name, $KRB5_LIBS)
3391 AC_CHECK_FUNC_EXT(krb5_free_keytab_entry_contents, $KRB5_LIBS)
3392 AC_CHECK_FUNC_EXT(krb5_kt_free_entry, $KRB5_LIBS)
3393 AC_CHECK_FUNC_EXT(krb5_krbhst_init, $KRB5_LIBS)
3394 AC_CHECK_FUNC_EXT(krb5_krbhst_get_addrinfo, $KRB5_LIBS)
3395 AC_CHECK_FUNC_EXT(krb5_c_enctype_compare, $KRB5_LIBS)
3396 AC_CHECK_FUNC_EXT(krb5_enctypes_compatible_keys, $KRB5_LIBS)
3397 AC_CHECK_FUNC_EXT(krb5_crypto_init, $KRB5_LIBS)
3398 AC_CHECK_FUNC_EXT(krb5_crypto_destroy, $KRB5_LIBS)
3399 AC_CHECK_FUNC_EXT(krb5_decode_ap_req, $KRB5_LIBS)
3400 AC_CHECK_FUNC_EXT(free_AP_REQ, $KRB5_LIBS)
3401 AC_CHECK_FUNC_EXT(krb5_verify_checksum, $KRB5_LIBS)
3402 AC_CHECK_FUNC_EXT(krb5_c_verify_checksum, $KRB5_LIBS)
3403 AC_CHECK_FUNC_EXT(krb5_principal_compare_any_realm, $KRB5_LIBS)
3404 AC_CHECK_FUNC_EXT(krb5_parse_name_norealm, $KRB5_LIBS)
3405 AC_CHECK_FUNC_EXT(krb5_princ_size, $KRB5_LIBS)
3406 AC_CHECK_FUNC_EXT(krb5_get_init_creds_opt_set_pac_request, $KRB5_LIBS)
3407 AC_CHECK_FUNC_EXT(krb5_get_renewed_creds, $KRB5_LIBS)
3408 AC_CHECK_FUNC_EXT(krb5_get_kdc_cred, $KRB5_LIBS)
3409 AC_CHECK_FUNC_EXT(krb5_free_error_contents, $KRB5_LIBS)
3410 AC_CHECK_FUNC_EXT(initialize_krb5_error_table, $KRB5_LIBS)
3411 AC_CHECK_FUNC_EXT(krb5_get_init_creds_opt_alloc, $KRB5_LIBS)
3412 AC_CHECK_FUNC_EXT(krb5_get_init_creds_opt_free, $KRB5_LIBS)
3413 AC_CHECK_FUNC_EXT(krb5_get_init_creds_opt_get_error, $KRB5_LIBS)
3414 AC_CHECK_FUNC_EXT(krb5_enctype_to_string, $KRB5_LIBS)
3416 LIBS="$KRB5_LIBS $LIBS"
3418 AC_CACHE_CHECK(whether krb5_ticket contains kvno and enctype,
3419 smb_krb5_ticket_has_keyinfo,
3428 krb5_enctype enctype;
3430 enctype = ticket.enc_part.enctype;
3431 kvno = ticket.enc_part.kvno;
3433 [ smb_krb5_ticket_has_keyinfo=yes ],
3434 [ smb_krb5_ticket_has_keyinfo=no ])
3437 if test x"$smb_krb5_ticket_has_keyinfo" = x"yes" ; then
3438 AC_DEFINE(KRB5_TICKET_HAS_KEYINFO, 1,
3439 [Whether the krb5_ticket structure contains the kvno and enctype])
3442 AC_CACHE_CHECK(whether krb5_get_init_creds_opt_free takes a context argument,
3443 smb_krb5_creds_opt_free_context,
3449 krb5_get_init_creds_opt *opt = NULL;
3450 krb5_get_init_creds_opt_free(ctx, opt);
3452 [smb_krb5_creds_opt_free_context=yes],
3453 [smb_krb5_creds_opt_free_context=no]
3457 if test x"$smb_krb5_creds_opt_free_context" = x"yes" ; then
3458 AC_DEFINE(KRB5_CREDS_OPT_FREE_REQUIRES_CONTEXT, 1,
3459 [Whether krb5_get_init_creds_opt_free takes a context argument])
3462 AC_CACHE_CHECK(whether krb5_verify_checksum takes 7 arguments, smb_krb5_verify_checksum, [
3465 [krb5_verify_checksum(0, 0, 0, 0, 0, 0, 0);],
3466 [smb_krb5_verify_checksum=7],
3467 [smb_krb5_verify_checksum=6],
3470 AC_DEFINE_UNQUOTED(KRB5_VERIFY_CHECKSUM_ARGS, $smb_krb5_verify_checksum, [Number of arguments to krb5_verify_checksum])
3472 AC_CACHE_CHECK([for checksum in krb5_checksum],
3473 samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM,[
3474 AC_TRY_COMPILE([#include <krb5.h>],
3475 [krb5_checksum cksum; cksum.checksum.length = 0;],
3476 samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM=yes,
3477 samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM=no)])
3479 if test x"$samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM" = x"yes"; then
3480 AC_DEFINE(HAVE_CHECKSUM_IN_KRB5_CHECKSUM,1,
3481 [Whether the krb5_checksum struct has a checksum property])
3484 AC_CACHE_CHECK([for etype in EncryptedData],
3485 samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA,[
3486 AC_TRY_COMPILE([#include <krb5.h>],
3487 [EncryptedData edata; edata.etype = 0;],
3488 samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA=yes,
3489 samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA=no)])
3491 if test x"$samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA" = x"yes"; then
3492 AC_DEFINE(HAVE_ETYPE_IN_ENCRYPTEDDATA,1,
3493 [Whether the EncryptedData struct has a etype property])
3496 AC_CACHE_CHECK([for ticket pointer in krb5_ap_req],
3497 samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ,[
3498 AC_TRY_COMPILE([#include <krb5.h>],
3499 [krb5_ap_req *ap_req; ap_req->ticket = NULL;],
3500 samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ=yes,
3501 samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ=no)])
3503 if test x"$samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ" = x"yes"; then
3504 AC_DEFINE(HAVE_TICKET_POINTER_IN_KRB5_AP_REQ,1,
3505 [Whether the krb5_ap_req struct has a ticket pointer])
3508 AC_CACHE_CHECK([for e_data pointer in krb5_error],
3509 samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR,[
3510 AC_TRY_COMPILE([#include <krb5.h>],
3511 [krb5_error err; err.e_data = NULL;],
3512 samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR=yes,
3513 samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR=no)])
3515 if test x"$samba_cv_HAVE_E_DATA_POINTER_IN_KRB5_ERROR" = x"yes"; then
3516 AC_DEFINE(HAVE_E_DATA_POINTER_IN_KRB5_ERROR,1,
3517 [Whether the krb5_error struct has a e_data pointer])
3520 AC_CACHE_CHECK([for krb5_crypto type],
3521 samba_cv_HAVE_KRB5_CRYPTO,[
3522 AC_TRY_COMPILE([#include <krb5.h>],
3523 [krb5_crypto crypto;],
3524 samba_cv_HAVE_KRB5_CRYPTO=yes,
3525 samba_cv_HAVE_KRB5_CRYPTO=no)])
3527 if test x"$samba_cv_HAVE_KRB5_CRYPTO" = x"yes"; then
3528 AC_DEFINE(HAVE_KRB5_CRYPTO,1,
3529 [Whether the type krb5_crypto exists])
3532 AC_CACHE_CHECK([for krb5_encrypt_block type],
3533 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK,[
3534 AC_TRY_COMPILE([#include <krb5.h>],
3535 [krb5_encrypt_block block;],
3536 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=yes,
3537 samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=no)])
3539 if test x"$samba_cv_HAVE_KRB5_ENCRYPT_BLOCK" = x"yes"; then
3540 AC_DEFINE(HAVE_KRB5_ENCRYPT_BLOCK,1,
3541 [Whether the type krb5_encrypt_block exists])
3544 AC_CACHE_CHECK([for addrtype in krb5_address],
3545 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS,[
3546 AC_TRY_COMPILE([#include <krb5.h>],
3547 [krb5_address kaddr; kaddr.addrtype = ADDRTYPE_INET;],
3548 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=yes,
3549 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=no)])
3551 if test x"$samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS" = x"yes"; then
3552 AC_DEFINE(HAVE_ADDRTYPE_IN_KRB5_ADDRESS,1,
3553 [Whether the krb5_address struct has a addrtype property])
3556 AC_CACHE_CHECK([for addr_type in krb5_address],
3557 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,[
3558 AC_TRY_COMPILE([#include <krb5.h>],
3559 [krb5_address kaddr; kaddr.addr_type = KRB5_ADDRESS_INET;],
3560 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=yes,
3561 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=no)])
3563 if test x"$samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS" = x"yes"; then
3564 AC_DEFINE(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,1,
3565 [Whether the krb5_address struct has a addr_type property])
3568 AC_CACHE_CHECK([for enc_part2 in krb5_ticket],
3569 samba_cv_HAVE_KRB5_TKT_ENC_PART2,
3570 [AC_TRY_COMPILE([#include <krb5.h>],
3571 [krb5_ticket tkt; tkt.enc_part2->authorization_data[0]->contents = NULL;],
3572 samba_cv_HAVE_KRB5_TKT_ENC_PART2=yes,samba_cv_HAVE_KRB5_TKT_ENC_PART2=no)])
3574 if test x"$samba_cv_HAVE_KRB5_TKT_ENC_PART2" = x"yes"; then
3575 AC_DEFINE(HAVE_KRB5_TKT_ENC_PART2,1,
3576 [Whether the krb5_ticket struct has a enc_part2 property])
3579 AC_CACHE_CHECK([for keyblock in krb5_creds],
3580 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS,[
3581 AC_TRY_COMPILE([#include <krb5.h>],
3582 [krb5_creds creds; krb5_keyblock kb; creds.keyblock = kb;],
3583 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=yes,
3584 samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=no)])
3586 if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS" = x"yes"; then
3587 AC_DEFINE(HAVE_KRB5_KEYBLOCK_IN_CREDS,1,
3588 [Whether the krb5_creds struct has a keyblock property])
3591 AC_CACHE_CHECK([for session in krb5_creds],
3592 samba_cv_HAVE_KRB5_SESSION_IN_CREDS,[
3593 AC_TRY_COMPILE([#include <krb5.h>],
3594 [krb5_creds creds; krb5_keyblock kb; creds.session = kb;],
3595 samba_cv_HAVE_KRB5_SESSION_IN_CREDS=yes,
3596 samba_cv_HAVE_KRB5_SESSION_IN_CREDS=no)])
3598 if test x"$samba_cv_HAVE_KRB5_SESSION_IN_CREDS" = x"yes"; then
3599 AC_DEFINE(HAVE_KRB5_SESSION_IN_CREDS,1,
3600 [Whether the krb5_creds struct has a session property])
3603 AC_CACHE_CHECK([for keyvalue in krb5_keyblock],
3604 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE,[
3605 AC_TRY_COMPILE([#include <krb5.h>],
3606 [krb5_keyblock key; key.keyvalue.data = NULL;],
3607 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=yes,
3608 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=no)])
3610 if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE" = x"yes"; then
3611 AC_DEFINE(HAVE_KRB5_KEYBLOCK_KEYVALUE,1,
3612 [Whether the krb5_keyblock struct has a keyvalue property])
3615 AC_CACHE_CHECK([for ENCTYPE_ARCFOUR_HMAC_MD5],
3616 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,[
3617 AC_TRY_COMPILE([#include <krb5.h>],
3618 [krb5_enctype enctype; enctype = ENCTYPE_ARCFOUR_HMAC_MD5;],
3619 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=yes,
3620 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=no)])
3621 AC_CACHE_CHECK([for KEYTYPE_ARCFOUR_56],
3622 samba_cv_HAVE_KEYTYPE_ARCFOUR_56,[
3623 AC_TRY_COMPILE([#include <krb5.h>],
3624 [krb5_keytype keytype; keytype = KEYTYPE_ARCFOUR_56;],
3625 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=yes,
3626 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=no)])
3627 # Heimdals with KEYTYPE_ARCFOUR but not KEYTYPE_ARCFOUR_56 are broken
3628 # w.r.t. arcfour and windows, so we must not enable it here
3629 if test x"$samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5" = x"yes" -a\
3630 x"$samba_cv_HAVE_KEYTYPE_ARCFOUR_56" = x"yes"; then
3631 AC_DEFINE(HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,1,
3632 [Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available])
3635 AC_CACHE_CHECK([for AP_OPTS_USE_SUBKEY],
3636 samba_cv_HAVE_AP_OPTS_USE_SUBKEY,[
3637 AC_TRY_COMPILE([#include <krb5.h>],
3638 [krb5_flags ap_options; ap_options = AP_OPTS_USE_SUBKEY;],
3639 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=yes,
3640 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=no)])
3642 if test x"$samba_cv_HAVE_AP_OPTS_USE_SUBKEY" = x"yes"; then
3643 AC_DEFINE(HAVE_AP_OPTS_USE_SUBKEY,1,
3644 [Whether the AP_OPTS_USE_SUBKEY ap option is available])
3647 AC_CACHE_CHECK([for KV5M_KEYTAB],
3648 samba_cv_HAVE_KV5M_KEYTAB,[
3649 AC_TRY_COMPILE([#include <krb5.h>],
3650 [krb5_keytab_entry entry; entry.magic = KV5M_KEYTAB;],
3651 samba_cv_HAVE_KV5M_KEYTAB=yes,
3652 samba_cv_HAVE_KV5M_KEYTAB=no)])
3654 if test x"$samba_cv_HAVE_KV5M_KEYTAB" = x"yes"; then
3655 AC_DEFINE(HAVE_KV5M_KEYTAB,1,
3656 [Whether the KV5M_KEYTAB option is available])
3659 AC_CACHE_CHECK([for KRB5_KU_OTHER_CKSUM],
3660 samba_cv_HAVE_KRB5_KU_OTHER_CKSUM,[
3661 AC_TRY_COMPILE([#include <krb5.h>],
3662 [krb5_keyusage usage = KRB5_KU_OTHER_CKSUM;],
3663 samba_cv_HAVE_KRB5_KU_OTHER_CKSUM=yes,
3664 samba_cv_HAVE_KRB5_KU_OTHER_CKSUM=no)])
3666 if test x"$samba_cv_HAVE_KRB5_KU_OTHER_CKSUM" = x"yes"; then
3667 AC_DEFINE(HAVE_KRB5_KU_OTHER_CKSUM,1,
3668 [Whether KRB5_KU_OTHER_CKSUM is available])
3671 AC_CACHE_CHECK([for KRB5_KEYUSAGE_APP_DATA_CKSUM],
3672 samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM,[
3673 AC_TRY_COMPILE([#include <krb5.h>],
3674 [krb5_keyusage usage = KRB5_KEYUSAGE_APP_DATA_CKSUM;],
3675 samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM=yes,
3676 samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM=no)])
3678 if test x"$samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM" = x"yes"; then
3679 AC_DEFINE(HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM,1,
3680 [Whether KRB5_KEYUSAGE_APP_DATA_CKSUM is available])
3683 AC_CACHE_CHECK([for the krb5_princ_component macro],
3684 samba_cv_HAVE_KRB5_PRINC_COMPONENT,[
3685 AC_TRY_LINK([#include <krb5.h>],
3686 [const krb5_data *pkdata; krb5_context context; krb5_principal principal; pkdata = krb5_princ_component(context, principal, 0);],
3687 samba_cv_HAVE_KRB5_PRINC_COMPONENT=yes,
3688 samba_cv_HAVE_KRB5_PRINC_COMPONENT=no)])
3690 if test x"$samba_cv_HAVE_KRB5_PRINC_COMPONENT" = x"yes"; then
3691 AC_DEFINE(HAVE_KRB5_PRINC_COMPONENT,1,
3692 [Whether krb5_princ_component is available])
3695 AC_CACHE_CHECK([for key in krb5_keytab_entry],
3696 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY,[
3697 AC_TRY_COMPILE([#include <krb5.h>],
3698 [krb5_keytab_entry entry; krb5_keyblock e; entry.key = e;],
3699 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=yes,
3700 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=no)])
3702 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY" = x"yes"; then
3703 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEY,1,
3704 [Whether krb5_keytab_entry has key member])
3707 AC_CACHE_CHECK([for keyblock in krb5_keytab_entry],
3708 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,[
3709 AC_TRY_COMPILE([#include <krb5.h>],
3710 [krb5_keytab_entry entry; entry.keyblock.keytype = 0;],
3711 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=yes,
3712 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=no)])
3714 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK" = x"yes"; then
3715 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,1,
3716 [Whether krb5_keytab_entry has keyblock member])
3719 AC_CACHE_CHECK([for magic in krb5_address],
3720 samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS,[
3721 AC_TRY_COMPILE([#include <krb5.h>],
3722 [krb5_address addr; addr.magic = 0;],
3723 samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS=yes,
3724 samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS=no)])
3726 if test x"$samba_cv_HAVE_MAGIC_IN_KRB5_ADDRESS" = x"yes"; then
3727 AC_DEFINE(HAVE_MAGIC_IN_KRB5_ADDRESS,1,
3728 [Whether the krb5_address struct has a magic property])
3731 AC_CACHE_CHECK([for WRFILE: keytab support],
3732 samba_cv_HAVE_WRFILE_KEYTAB,[
3737 krb5_context context;
3740 krb5_init_context(&context);
3741 return krb5_kt_resolve(context, "WRFILE:api", &keytab);
3743 samba_cv_HAVE_WRFILE_KEYTAB=yes,
3744 samba_cv_HAVE_WRFILE_KEYTAB=no)])
3746 if test x"$samba_cv_HAVE_WRFILE_KEYTAB" = x"yes"; then
3747 AC_DEFINE(HAVE_WRFILE_KEYTAB,1,
3748 [Whether the WRFILE:-keytab is supported])
3751 AC_CACHE_CHECK([for krb5_princ_realm returns krb5_realm or krb5_data],
3752 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM,[
3753 AC_TRY_COMPILE([#include <krb5.h>],
3755 krb5_context context;
3756 krb5_principal principal;
3757 krb5_realm realm; realm = *krb5_princ_realm(context, principal);],
3758 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=yes,
3759 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=no)])
3761 if test x"$samba_cv_KRB5_PRINC_REALM_RETURNS_REALM" = x"yes"; then
3762 AC_DEFINE(KRB5_PRINC_REALM_RETURNS_REALM,1,
3763 [Whether krb5_princ_realm returns krb5_realm or krb5_data])
3766 AC_CACHE_CHECK([for krb5_addresses type],
3767 samba_cv_HAVE_KRB5_ADDRESSES,[
3768 AC_TRY_COMPILE([#include <krb5.h>],
3769 [krb5_addresses addr;],
3770 samba_cv_HAVE_KRB5_ADDRESSES=yes,
3771 samba_cv_HAVE_KRB5_ADDRESSES=no)])
3773 if test x"$samba_cv_HAVE_KRB5_ADDRESSES" = x"yes"; then
3774 AC_DEFINE(HAVE_KRB5_ADDRESSES,1,
3775 [Whether the type krb5_addresses type exists])
3778 AC_CACHE_CHECK([whether krb5_mk_error takes 3 arguments MIT or 9 Heimdal],
3779 samba_cv_HAVE_SHORT_KRB5_MK_ERROR_INTERFACE, [
3780 AC_TRY_COMPILE([#include <krb5.h>],
3782 krb5_mk_error(0,0,0);],
3783 samba_cv_HAVE_SHORT_KRB5_MK_ERROR_INTERFACE=yes,
3784 samba_cv_HAVE_SHORT_KRB5_MK_ERROR_INTERFACE=no)])
3786 if test x"$samba_cv_HAVE_SHORT_KRB5_MK_ERROR_INTERFACE" = x"yes"; then
3787 AC_DEFINE(HAVE_SHORT_KRB5_MK_ERROR_INTERFACE,1,
3788 [whether krb5_mk_error takes 3 arguments MIT or 9 Heimdal])
3791 if test x"$ac_cv_func_ext_krb5_enctype_to_string" = x"yes"; then
3792 AC_CACHE_CHECK([for krb5_error_code krb5_enctype_to_string(krb5_context context, krb5_enctype enctype, char **str)],
3793 smb_krb5_enctype_to_string_takes_krb5_context_arg,[
3797 krb5_context context = NULL;
3799 krb5_enctype_to_string(context, 1, &str);
3800 if (str) free (str);
3803 ],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3804 smb_krb5_enctype_to_string_takes_krb5_context_arg=yes,
3805 smb_krb5_enctype_to_string_takes_krb5_context_arg=no)])
3807 if test x"$smb_krb5_enctype_to_string_takes_krb5_context_arg" = x"yes"; then
3808 AC_DEFINE(HAVE_KRB5_ENCTYPE_TO_STRING_WITH_KRB5_CONTEXT_ARG,1,
3809 [whether krb5_enctype_to_string takes krb5_context argument])
3812 AC_CACHE_CHECK([for krb5_error_code krb5_enctype_to_string(krb5_enctype enctype, char *str, size_t len)],
3813 smb_krb5_enctype_to_string_takes_size_t_arg,[
3818 krb5_enctype_to_string(1, buf, 256);
3821 ],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3822 smb_krb5_enctype_to_string_takes_size_t_arg=yes,
3823 smb_krb5_enctype_to_string_takes_size_t_arg=no)])
3825 if test x"$smb_krb5_enctype_to_string_takes_size_t_arg" = x"yes"; then
3826 AC_DEFINE(HAVE_KRB5_ENCTYPE_TO_STRING_WITH_SIZE_T_ARG,1,
3827 [whether krb5_enctype_to_string takes size_t argument])
3831 AC_CACHE_CHECK([for krb5_principal_get_realm],
3832 samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM,[
3833 AC_TRY_LINK([#include <krb5.h>],
3834 [krb5_context ctx = NULL; krb5_principal princ = NULL; const char *str = krb5_principal_get_realm(ctx, princ);],
3835 samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM=yes,
3836 samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM=no)])
3838 if test x"$samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM" = x"yes"; then
3839 AC_DEFINE(HAVE_KRB5_PRINCIPAL_GET_REALM,1,
3840 [Whether the function krb5_principal_get_realm is defined])
3843 AC_CACHE_CHECK([for krb5_princ_realm],
3844 samba_cv_HAVE_KRB5_PRINC_REALM,[
3845 AC_TRY_LINK([#include <krb5.h>],
3846 [krb5_context ctx = NULL; krb5_principal princ = NULL; const char *str = krb5_princ_realm(ctx, princ)->data;],
3847 samba_cv_HAVE_KRB5_PRINC_REALM=yes,
3848 samba_cv_HAVE_KRB5_PRINC_REALM=no)])
3850 if test x"$samba_cv_HAVE_KRB5_PRINC_REALM" = x"yes"; then
3851 AC_DEFINE(HAVE_KRB5_PRINC_REALM,1,
3852 [Whether the macro krb5_princ_realm is defined])
3857 # Now the decisions whether we can support krb5
3859 # NOTE: all tests should be done before this block!
3862 if test x"$ac_cv_lib_ext_krb5_krb5_mk_req_extended" != x"yes"; then
3863 AC_MSG_WARN(krb5_mk_req_extended not found in -lkrb5)
3867 if test x"$ac_cv_func_ext_krb5_principal2salt" != x"yes" -a \
3868 x"$ac_cv_func_ext_krb5_get_pw_salt" != x"yes"
3870 AC_MSG_WARN(no CREATE_KEY_FUNCTIONS detected)
3874 if test x"$ac_cv_func_ext_krb5_get_permitted_enctypes" != x"yes" -a \
3875 x"$ac_cv_func_ext_krb5_get_default_in_tkt_etypes" != x"yes"
3877 AC_MSG_WARN(no GET_ENCTYPES_FUNCTIONS detected)
3881 if test x"$ac_cv_func_ext_krb5_kt_free_entry" != x"yes" -a \
3882 x"$ac_cv_func_ext_krb5_free_keytab_entry_contents" != x"yes"
3884 AC_MSG_WARN(no KT_FREE_FUNCTION detected)
3888 if test x"$ac_cv_func_ext_krb5_c_verify_checksum" != x"yes" -a \
3889 x"$ac_cv_func_ext_krb5_verify_checksum" != x"yes"
3891 AC_MSG_WARN(no KRB5_VERIFY_CHECKSUM_FUNCTION detected)
3895 if test x"$smb_krb5_ticket_has_keyinfo" != x"yes" ; then
3897 # We only need the following functions if we can't get the enctype
3898 # and kvno out of the ticket directly (ie. on Heimdal).
3900 if test x"$ac_cv_func_ext_free_AP_REQ" != x"yes"
3902 AC_MSG_WARN(no KRB5_AP_REQ_FREE_FUNCTION detected)
3906 if test x"$ac_cv_func_ext_krb5_decode_ap_req" != x"yes"
3908 AC_MSG_WARN(no KRB5_AP_REQ_DECODING_FUNCTION detected)
3914 if test x"$use_ads" = x"yes"; then
3915 AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
3916 AC_DEFINE(HAVE_KRB5,1,[Whether to have KRB5 support])
3917 if test x"$have_gssapi" = x"yes"; then
3918 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])
3921 if test x"$with_ads_support" = x"yes"; then
3922 AC_MSG_ERROR(krb5 libs don't have all features required for Active Directory support)
3924 AC_MSG_WARN(krb5 libs don't have all features required for Active Directory support)
3926 AC_REMOVE_DEFINE(HAVE_KRB5_H)
3927 AC_REMOVE_DEFINE(HAVE_GSSAPI_H)
3928 AC_REMOVE_DEFINE(HAVE_GSSAPI_GSSAPI_GENERIC_H)
3929 AC_REMOVE_DEFINE(HAVE_GSSAPI_GSSAPI_H)
3933 AC_MSG_CHECKING(whether Active Directory and krb5 support is used)
3934 AC_MSG_RESULT([$use_ads])
3936 LIBS="$ac_save_LIBS"
3939 AC_CHECK_LIB_EXT(nscd, NSCD_LIBS, nscd_flush_cache)
3940 PASSDB_LIBS="$PASSDB_LIBS $NSCD_LIBS"
3943 ########################################################
3944 # Compile with DNS Updates support?
3946 with_dnsupdate_support=no
3947 AC_MSG_CHECKING([whether to enable DNS Updates support])
3949 AC_ARG_WITH(dnsupdate,
3950 [AS_HELP_STRING([--with-dnsupdate], [Enable DNS Updates support (default no)])],
3951 [ case "$withval" in
3953 with_dnsupdate_support=$withval
3957 AC_MSG_RESULT($with_dnsupdate_support)
3959 if test x"$with_dnsupdate_support" != x"no"; then
3961 ################################################################
3962 # first test for Active Directory support being enabled
3963 #if test x"$with_ads_support" = x"no"; then
3964 # AC_MSG_ERROR(Active Directory support is required to enable DNS Update support)
3965 # with_dnsupdate_support=no
3967 ##################################################################
3968 # then test for uuid.h (necessary to generate unique DNS keynames
3969 # (uuid.h is required for this test)
3970 AC_CHECK_HEADERS(uuid/uuid.h)
3972 if test x"$ac_cv_header_uuid_uuid_h" != x"yes"; then
3973 if test x"$with_dnsupdate_support" = x"yes"; then
3974 AC_MSG_ERROR(uuid.h is needed to enable DNS Updates support)
3976 AC_MSG_WARN(uuid.h is needed to enable DNS Updates support)
3978 with_dnsupdate_support=no
3982 if test x"$with_dnsupdate_support" != x"no"; then
3984 ########################################################
3985 # Now see if we can find the uuid libs in standard paths
3986 # On some systems, the uuid API is in libc, so we have to
3987 # be careful not to insert a spurious -luuid.
3990 AC_LIBTESTFUNC(uuid, uuid_generate,
3995 SMB_REMOVE_LIB(uuid)
3999 with_dnsupdate_support=yes
4000 AC_DEFINE(WITH_DNS_UPDATES,1,[Whether to enable DNS Update support])
4003 if test x"$with_dnsupdate_support" = x"yes"; then
4004 AC_MSG_ERROR(libuuid is needed to enable DNS Updates support)
4006 AC_MSG_WARN(libuuid is needed to enable DNS Updates support)
4008 with_dnsupdate_support=no
4012 #################################################
4013 # check for automount support
4014 AC_MSG_CHECKING(whether to use automount)
4015 AC_ARG_WITH(automount,
4016 [AS_HELP_STRING([--with-automount], [Include automount support (default=no)])],
4017 [ case "$withval" in
4020 AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
4029 #################################################
4030 # check for mount- and umount.cifs support
4032 INSTALL_CIFSMOUNT=""
4033 UNINSTALL_CIFSMOUNT=""
4034 AC_MSG_CHECKING(whether to build mount.cifs and umount.cifs)
4035 AC_ARG_WITH(cifsmount,
4036 [AS_HELP_STRING([--with-cifsmount], [Include mount.cifs and umount.cifs (Linux only) support (default=yes)])],
4037 [ case "$withval" in
4045 AC_DEFINE(WITH_CIFSMOUNT,1,[Whether to build mount.cifs and umount.cifs])
4046 CIFSMOUNT_PROGS="bin/mount.cifs bin/umount.cifs"
4047 INSTALL_CIFSMOUNT="installcifsmount"
4048 UNINSTALL_CIFSMOUNT="uninstallcifsmount"
4051 AC_MSG_ERROR(not on a linux system!)
4056 [ case "$host_os" in
4059 AC_DEFINE(WITH_CIFSMOUNT,1,[Whether to build mount.cifs and umount.cifs])
4060 CIFSMOUNT_PROGS="bin/mount.cifs bin/umount.cifs"
4061 INSTALL_CIFSMOUNT="installcifsmount"
4062 UNINSTALL_CIFSMOUNT="uninstallcifsmount"
4070 #################################################
4071 # check for cifs.spnego support
4072 AC_CHECK_HEADERS([keyutils.h], [HAVE_KEYUTILS_H=1], [HAVE_KEYUTILS_H=0])
4074 INSTALL_CIFSSPNEGO=""
4075 UNINSTALL_CIFSSPNEGO=""
4076 AC_MSG_CHECKING(whether to build cifs.spnego)
4077 AC_ARG_WITH(cifsspnego,
4078 [AS_HELP_STRING([--with-cifsspnego], [Include cifs.spnego (Linux only) support (default=no)])],
4079 [ case "$withval" in
4086 if test x"$use_ads" != x"yes"; then
4087 AC_MSG_ERROR(ADS support should be enabled for building cifs.spnego)
4088 elif test x"$HAVE_KEYUTILS_H" != "x1"; then
4089 AC_MSG_ERROR(keyutils package is required for cifs.spnego)
4092 AC_DEFINE(WITH_CIFSSPNEGO,1,[whether to build cifs.spnego])
4093 CIFSSPNEGO_PROGS="bin/cifs.spnego"
4094 INSTALL_CIFSSPNEGO="installcifsspnego"
4095 UNINSTALL_CIFSSPNEGO="uninstallcifsspnego"
4099 AC_MSG_ERROR(not on a linux system!)
4110 #################################################
4111 # Check for a PAM clear-text auth, accounts, password
4112 # and session support. Most PAM implementations keep their
4113 # headers in /usr/include/security. Darwin keeps its in
4116 with_pam_for_crypt=no
4118 AC_MSG_CHECKING(whether to try PAM support)
4120 [AS_HELP_STRING([--with-pam], [Include PAM support (default=no)])],
4121 [ case "$withval" in
4127 AC_MSG_RESULT([$try_pam])
4130 create_pam_modules=no
4131 if test x"${try_pam}" != x"no";then
4133 create_pam_modules=yes
4135 # Most systems have PAM headers in /usr/include/security, but Darwin
4136 # has them in /usr/include/pam.
4137 AC_CHECK_HEADERS(security/pam_appl.h pam/pam_appl.h)
4138 if test x"$ac_cv_header_security_pam_appl_h" != x"yes" -a \
4139 x"$ac_cv_header_pam_pam_appl_h" != x"yes"; then
4140 if test x"${try_pam}" = x"yes";then
4141 AC_MSG_ERROR([--with-pam=yes but pam_appl.h not found])
4144 create_pam_modules=no
4147 AC_CHECK_LIB_EXT(pam, PAM_LIBS, pam_get_data)
4148 if test x"$ac_cv_lib_ext_pam_pam_get_data" != x"yes"; then
4149 if test x"${try_pam}" = x"yes";then
4150 AC_MSG_ERROR([--with-pam=yes but libpam not found])
4153 create_pam_modules=no
4156 AC_CHECK_HEADERS(security/pam_modules.h pam/pam_modules.h,,,[[
4157 #if HAVE_SECURITY_PAM_APPL_H
4158 #include <security/pam_appl.h>
4160 #if HAVE_PAM_PAM_APPL_H
4161 #include <pam/pam_appl.h>
4164 if test x"$ac_cv_header_security_pam_modules_h" = x"no" -a \
4165 x"$ac_cv_header_pam_pam_modules_h" = x"no" ; then
4166 if test x"${try_pam}" = x"yes";then
4167 AC_MSG_ERROR([--with-pam=yes but pam_modules.h not found])
4169 create_pam_modules=no
4172 if test x"$use_pam" = x"yes"; then
4173 AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
4174 AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])
4175 AUTH_LIBS="$AUTH_LIBS $PAM_LIBS"
4176 with_pam_for_crypt=yes
4178 if test x"$create_pam_modules" = x"yes"; then
4179 AC_DEFINE(WITH_PAM_MODULES,1,[Whether to include PAM MODULES support])
4180 # this checks are optional,
4181 # we don't care about the results here
4182 AC_CHECK_HEADERS(security/pam_ext.h security/_pam_macros.h)
4183 AC_CHECK_HEADERS(pam/pam_ext.h pam/_pam_macros.h)
4184 AC_CHECK_FUNC_EXT(pam_vsyslog,$PAM_LIBS)
4186 AC_MSG_WARN([PAM support detected but PAM MODULES support is missing])
4189 AC_MSG_CHECKING(whether to use PAM support)
4190 AC_MSG_RESULT([$use_pam])
4192 AC_MSG_CHECKING(whether to have PAM MODULES support)
4193 AC_MSG_RESULT([$create_pam_modules])
4196 #################################################
4197 # check for pam_smbpass support
4199 INSTALL_PAM_MODULES=""
4200 UNINSTALL_PAM_MODULES=""
4201 AC_MSG_CHECKING(whether to use pam_smbpass)
4202 AC_ARG_WITH(pam_smbpass,
4203 [AS_HELP_STRING([--with-pam_smbpass], [Build PAM module for authenticating against passdb backends (default=no)])],
4204 [ case "$withval" in
4208 # Conditions under which pam_smbpass should not be built.
4210 if test x"$BLDSHARED" != x"true"; then
4211 AC_MSG_ERROR([No support for shared modules])
4212 elif test x"$create_pam_modules" != x"yes"; then
4213 AC_MSG_ERROR([No support for PAM MODULES])
4215 PAM_MODULES="pam_smbpass"
4216 INSTALL_PAM_MODULES="installpammodules"
4217 UNINSTALL_PAM_MODULES="uninstallpammodules"
4228 ###############################################
4229 # test for where we get crypt() from
4230 AC_SEARCH_LIBS(crypt, [crypt],
4231 [test "$ac_cv_search_crypt" = "none required" || AUTH_LIBS="-lcrypt $AUTH_LIBS"
4232 AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
4235 ## moved after the check for -lcrypt in order to
4236 ## ensure that the necessary libraries are included
4237 ## check checking for truncated salt. Wrapped by the
4238 ## $with_pam_for_crypt variable as above --jerry
4240 if test $with_pam_for_crypt = no; then
4241 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
4243 LIBS="$AUTH_LIBS $LIBS"
4244 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
4245 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
4246 LIBS="$crypt_LIBS"])
4247 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
4248 AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
4252 #################################################
4253 # check for a NISPLUS_HOME support
4254 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
4255 AC_ARG_WITH(nisplus-home,
4256 [AS_HELP_STRING([--with-nisplus-home], [Include NISPLUS_HOME support (default=no)])],
4257 [ case "$withval" in
4260 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
4269 #################################################
4270 # check for syslog logging
4271 AC_MSG_CHECKING(whether to use syslog logging)
4273 [AS_HELP_STRING([--with-syslog], [Include experimental SYSLOG support (default=no)])],
4274 [ case "$withval" in
4277 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
4286 #################################################
4287 # check for experimental disk-quotas support
4289 samba_cv_WITH_QUOTAS=auto
4290 samba_cv_TRY_QUOTAS=no
4291 samba_cv_RUN_QUOTA_TESTS=auto
4292 samba_cv_WITH_SYS_QUOTAS=auto
4293 samba_cv_TRY_SYS_QUOTAS=auto
4294 samba_cv_SYSQUOTA_FOUND=no
4296 AC_MSG_CHECKING(whether to try disk-quotas support)
4298 [AS_HELP_STRING([--with-quotas], [Include disk-quota support (default=no)])],
4299 [ case "$withval" in
4302 samba_cv_WITH_QUOTAS=yes
4303 samba_cv_TRY_QUOTAS=yes
4304 samba_cv_RUN_QUOTA_TESTS=yes
4305 #set sys quotas to auto in this case
4306 samba_cv_TRY_SYS_QUOTAS=auto
4310 samba_cv_WITH_QUOTAS=auto
4311 samba_cv_TRY_QUOTAS=auto
4312 samba_cv_RUN_QUOTA_TESTS=auto
4313 #set sys quotas to auto in this case
4314 samba_cv_TRY_SYS_QUOTAS=auto
4318 samba_cv_WITH_QUOTAS=no
4319 samba_cv_TRY_QUOTAS=no
4320 samba_cv_RUN_QUOTA_TESTS=no
4323 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
4326 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
4329 AC_MSG_CHECKING(whether to try the new lib/sysquotas.c interface)
4330 AC_ARG_WITH(sys-quotas,
4331 [AS_HELP_STRING([--with-sys-quotas], [Include lib/sysquotas.c support (default=auto)])],
4332 [ case "$withval" in
4335 samba_cv_WITH_SYS_QUOTAS=yes
4336 samba_cv_TRY_SYS_QUOTAS=yes
4337 samba_cv_RUN_QUOTA_TESTS=yes
4341 samba_cv_WITH_SYS_QUOTAS=auto
4342 samba_cv_TRY_SYS_QUOTAS=auto
4343 samba_cv_RUN_QUOTA_TESTS=auto
4347 samba_cv_WITH_SYS_QUOTAS=no
4348 samba_cv_TRY_SYS_QUOTAS=no
4351 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
4354 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
4357 if test x"$samba_cv_TRY_SYS_QUOTAS" = x"auto"; then
4358 AC_MSG_CHECKING(whether to try the lib/sysquotas.c interface on ${host_os})
4362 samba_cv_TRY_SYS_QUOTAS=yes
4363 samba_cv_RUN_QUOTA_TESTS=yes
4367 samba_cv_TRY_SYS_QUOTAS=no
4372 #############################################
4373 # only check for quota stuff if --with-quotas
4374 if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then
4377 # on linux we didn't need to test we have builtin support
4379 samba_cv_SYSQUOTA_FOUND=yes
4380 AC_DEFINE(HAVE_QUOTACTL_LINUX,1,[Whether Linux quota support is available])
4381 samba_cv_sysquotas_file="lib/sysquotas_linux.c"
4382 AC_MSG_CHECKING(whether to use the lib/sysquotas_linux.c builtin support)
4385 AC_DEFINE(HAVE_LINUX_XFS_QUOTAS,1,[Whether Linux xfs quota support is available])
4386 samba_cv_found_xfs_header=yes
4387 AC_MSG_CHECKING(whether to use the lib/sysquotas_xfs.c builtin support)
4391 # need to set this define when using static linking (BUG 1473)
4392 CPPFLAGS="$CPPFLAGS -DSUNOS5"
4398 # some broken header files need this
4399 AC_CHECK_HEADER(asm/types.h,[
4400 AC_DEFINE(HAVE_ASM_TYPES_H,1,[check for <asm/types.h>])
4401 AC_ADD_INCLUDE(<asm/types.h>)
4404 # For quotas on Veritas VxFS filesystems
4405 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
4407 # For quotas on Linux XFS filesystems
4408 AC_CHECK_HEADERS(linux/dqblk_xfs.h)
4410 # For sys/quota.h and linux/quota.h
4411 AC_CHECK_HEADERS(sys/quota.h)
4413 if test x"$samba_cv_found_xfs_header" != x"yes"; then
4414 # if we have xfs quota support <sys/quota.h> (IRIX) we should use it
4415 AC_CACHE_CHECK([for XFS QUOTA in <sys/quota.h>],samba_cv_HAVE_SYS_QUOTA_XFS, [
4417 #include "confdefs.h"
4418 #ifdef HAVE_SYS_TYPES_H
4419 #include <sys/types.h>
4421 #ifdef HAVE_ASM_TYPES_H
4422 #include <asm/types.h>
4424 #include <sys/quota.h>
4425 ],[int i = Q_XGETQUOTA;],
4426 samba_cv_HAVE_SYS_QUOTA_XFS=yes,samba_cv_HAVE_SYS_QUOTA_XFS=no)])
4427 if test "$samba_cv_HAVE_SYS_QUOTA_XFS"x = "yes"x; then
4428 samba_cv_found_xfs_header=yes
4432 # if we have struct dqblk .dqb_fsoftlimit instead of .dqb_isoftlimit on IRIX
4433 AC_CACHE_CHECK([if struct dqblk has .dqb_fsoftlimit],samba_cv_HAVE_DQB_FSOFTLIMIT, [
4435 #include "confdefs.h"
4436 #ifdef HAVE_SYS_QUOTA_H
4437 #include <sys/quota.h>
4441 D.dqb_fsoftlimit = 0;],
4442 samba_cv_HAVE_DQB_FSOFTLIMIT=yes,samba_cv_HAVE_DQB_FSOFTLIMIT=no)])
4443 if test "$samba_cv_HAVE_DQB_FSOFTLIMIT"x = "yes"x; then
4444 AC_DEFINE(HAVE_DQB_FSOFTLIMIT,1,[struct dqblk .dqb_fsoftlimit])
4448 # look for a working quota system
4450 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
4451 AC_CACHE_CHECK([for long quotactl(int cmd, char *special, qid_t id, caddr_t addr)],samba_cv_HAVE_QUOTACTL_4A,[
4453 #define HAVE_QUOTACTL_4A 1
4454 #define AUTOCONF_TEST 1
4455 #include "confdefs.h"
4456 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
4457 samba_cv_HAVE_QUOTACTL_4A=yes,samba_cv_HAVE_QUOTACTL_4A=no,samba_cv_HAVE_QUOTACTL_4A=cross)])
4458 if test x"$samba_cv_HAVE_QUOTACTL_4A" = x"yes"; then
4459 samba_cv_SYSQUOTA_FOUND=yes;
4460 AC_DEFINE(HAVE_QUOTACTL_4A,1,[Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is available])
4461 samba_cv_sysquotas_file="lib/sysquotas_4A.c"
4465 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
4466 AC_CACHE_CHECK([for int quotactl(const char *path, int cmd, int id, char *addr)],samba_cv_HAVE_QUOTACTL_4B,[
4468 #define HAVE_QUOTACTL_4B 1
4469 #define AUTOCONF_TEST 1
4470 #include "confdefs.h"
4471 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
4472 samba_cv_HAVE_QUOTACTL_4B=yes,samba_cv_HAVE_QUOTACTL_4B=no,samba_cv_HAVE_QUOTACTL_4B=cross)])
4473 if test x"$samba_cv_HAVE_QUOTACTL_4B" = x"yes"; then
4474 echo "int quotactl(const char *path, int cmd, int id, char *addr) is not reworked for the new sys_quota api"
4475 samba_cv_SYSQUOTA_FOUND=yes;
4476 AC_DEFINE(HAVE_QUOTACTL_4B,1,[Whether int quotactl(const char *path, int cmd, int id, char *addr) is available])
4477 samba_cv_sysquotas_file="lib/sysquotas_4B.c"
4481 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
4482 AC_CACHE_CHECK([for CRAY int quotactl (char *spec, int request, char *arg)],samba_cv_HAVE_QUOTACTL_3,[
4484 #define HAVE_QUOTACTL_3 1
4485 #define AUTOCONF_TEST 1
4486 #include "confdefs.h"
4487 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
4488 samba_cv_HAVE_QUOTACTL_3=yes,samba_cv_HAVE_QUOTACTL_3=no,samba_cv_HAVE_QUOTACTL_3=cross)])
4489 if test x"$samba_cv_HAVE_QUOTACTL_3" = x"yes"; then
4490 echo "CRAY int quotactl (char *spec, int request, char *arg) is NOT reworked for the sys_quota api"
4491 samba_cv_SYSQUOTA_FOUND=yes;
4492 AC_DEFINE(HAVE_QUOTACTL_3,1,[Whether CRAY int quotactl (char *spec, int request, char *arg); is available])
4493 samba_cv_sysquotas_file="lib/sysquotas_3.c"
4497 #################################################
4498 # check for mntent.h and struct mntent
4499 AC_CHECK_HEADERS(mntent.h)
4500 #################################################
4501 # check for setmntent,getmntent,endmntent
4502 AC_CHECK_FUNCS(setmntent getmntent endmntent)
4504 #################################################
4505 # check for devnm.h and struct mntent
4506 AC_CHECK_HEADERS(devnm.h)
4507 #################################################
4509 AC_CHECK_FUNCS(devnm)
4511 if test x"$samba_cv_WITH_SYS_QUOTAS" = x"yes"; then
4512 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
4513 # if --with-sys-quotas=yes then build it
4514 # you have can use the get/set quota command smb.conf
4516 samba_cv_SYSQUOTA_FOUND=auto
4518 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"yes"; then
4519 # if --with-sys-quotas=yes then build it
4520 # you have can use the get/set quota command smb.conf
4522 samba_cv_TRY_SYS_QUOTAS=auto
4526 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then
4527 AC_CACHE_CHECK([whether the sys_quota interface works],samba_cv_SYSQUOTA_WORKS,[
4528 SAVE_CPPFLAGS="$CPPFLAGS"
4529 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
4531 #include "confdefs.h"
4532 #define NO_PROTO_H 1
4533 #define NO_CONFIG_H 1
4534 #define HAVE_SYS_QUOTAS 1
4535 #include "${srcdir-.}/${samba_cv_sysquotas_file}"
4536 #include "${srcdir-.}/lib/sysquotas.c"
4537 ],[],samba_cv_SYSQUOTA_WORKS=yes,samba_cv_SYSQUOTA_WORKS=no)
4538 CPPFLAGS="$SAVE_CPPFLAGS"
4540 if test x"$samba_cv_SYSQUOTA_WORKS" = x"yes"; then
4541 AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface)
4542 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then
4543 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
4544 AC_DEFINE(HAVE_SYS_QUOTAS,1,[Whether the new lib/sysquotas.c interface can be used])
4545 samba_cv_WE_USE_SYS_QUOTAS=yes
4553 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no" -a x"$samba_cv_found_xfs_header" = x"yes"; then
4554 AC_CACHE_CHECK([whether the sys_quota interface works with XFS],samba_cv_SYSQUOTA_WORKS_XFS,[
4555 SAVE_CPPFLAGS="$CPPFLAGS"
4556 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
4558 #include "confdefs.h"
4559 #define NO_PROTO_H 1
4560 #define NO_CONFIG_H 1
4561 #define HAVE_SYS_QUOTAS 1
4562 #define HAVE_XFS_QUOTAS 1
4563 #include "${srcdir-.}/lib/sysquotas_xfs.c"
4564 ],[],samba_cv_SYSQUOTA_WORKS_XFS=yes,samba_cv_SYSQUOTA_WORKS_XFS=no)
4565 CPPFLAGS="$SAVE_CPPFLAGS"
4567 if test x"$samba_cv_SYSQUOTA_WORKS_XFS" = x"yes"; then
4568 if test x"$samba_cv_WE_USE_SYS_QUOTAS" = x"yes"; then
4569 AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available])
4574 AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[
4575 SAVE_CPPFLAGS="$CPPFLAGS"
4576 CPPFLAGS="$CPPFLAGS ${SAMBA_CONFIGURE_CPPFLAGS}"
4578 #include "confdefs.h"
4579 #define NO_PROTO_H 1
4580 #define NO_CONFIG_H 1
4581 #include "${srcdir-.}/smbd/quotas.c"
4582 ],[],samba_cv_QUOTA_WORKS=yes,samba_cv_QUOTA_WORKS=no)
4583 CPPFLAGS="$SAVE_CPPFLAGS"
4585 if test x"$samba_cv_QUOTA_WORKS" = x"yes"; then
4586 AC_MSG_CHECKING(whether to use the old quota support)
4587 if test x"$samba_cv_WE_USE_SYS_QUOTAS" != x"yes"; then
4588 if test x"$samba_cv_TRY_QUOTAS" != x"no"; then
4589 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
4599 ####################
4600 # End of quota check samba_cv_RUN_QUOTA_TESTS
4603 #################################################
4604 # check for experimental utmp accounting
4606 AC_MSG_CHECKING(whether to support utmp accounting)
4609 [AS_HELP_STRING([--with-utmp], [Include utmp accounting (default, if supported by OS)])],
4610 [ case "$withval" in
4620 # utmp requires utmp.h
4621 # Note similar check earlier, when checking utmp details.
4623 if test x"$WITH_UTMP" = x"yes" -a x"$ac_cv_header_utmp_h" = x"no"; then
4624 utmp_no_reason=", no utmp.h on $host_os"
4628 # Display test results
4630 if test x"$WITH_UTMP" = x"yes"; then
4632 AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
4634 AC_MSG_RESULT(no$utmp_no_reason)
4639 UNINSTALLLIBCMD_SH=:
4642 if test $BLDSHARED = true; then
4643 INSTALLLIBCMD_SH="\$(INSTALLCMD)"
4644 UNINSTALLLIBCMD_SH="rm -f"
4646 if test $enable_static = yes; then
4647 INSTALLLIBCMD_A="\$(INSTALLCMD)"
4648 UNINSTALLLIBCMD_A="rm -f"
4651 #################################################
4652 # --disable-shared-libs
4653 # can be used to disable the internal use of shared libs altogether
4654 # (this only has an effect when building shared libs is enabled)
4659 AC_MSG_CHECKING(whether to use shared libraries internally)
4660 AC_ARG_ENABLE([shared-libs],
4661 AS_HELP_STRING([--enable-shared-libs],
4662 [Use shared libraries internally (default=yes)]),
4663 [enable_shared_libs=$enableval],
4664 [enable_shared_libs=yes])
4666 if test x"$enable_shared_libs" != x"no" ; then
4667 USESHARED=$BLDSHARED
4670 AC_MSG_RESULT([$USESHARED])
4672 if test x"$enable_shared_libs" = x"yes" -a x"$BLDSHARED" != x"true" ; then
4673 AC_MSG_WARN([--enable-shared-libs: no support for shared libraries])
4676 #################################################
4677 # --with-static-libs=LIBS:
4678 # link (internal) libs dynamically or statically?
4680 # If a subsystem is built as a library then this controls whether they are
4681 # linked into Samba targets statically or dynamically:
4683 # * If we build the shared library at all, we link dynamically by default.
4685 # * We only link statically if we don't build shared or if the library
4686 # appears in the --with-static-libs configure option.
4689 # --with-static-libs=libtalloc makes use of libtalloc.a instead
4690 # of linking the dynamic variant with -ltalloc.
4692 # NOTE: This option only affects libraries that we do not only build
4693 # but that samba also links against as libraries (as opposed to linking
4694 # the plain object files. - This has to be configured in Makefile.in.
4695 # So in particular it does not harm to give invalid or unknown names here.
4698 AC_ARG_WITH([static-libs],
4699 [AS_HELP_STRING([--with-static-libs=LIBS],
4700 [Comma-separated list of names of (internal) libraries to link statically (instead of dynamically)])],
4701 [AS_IF([test $withval],
4702 [for lib in `echo $withval | sed -e 's/,/ /g'` ; do
4703 [lib=`echo $lib | tr '[a-z]' '[A-Z]'`]
4704 eval LINK_$lib=STATIC
4714 #################################################
4715 # should we build libaddns?
4720 AC_MSG_CHECKING(whether to build the libaddns shared library)
4721 AC_ARG_WITH(libaddns,
4722 [AS_HELP_STRING([--with-libaddns], [Build the libaddns shared library (default=no undefined API)])],
4723 [ case "$withval" in
4728 if test $BLDSHARED = true; then
4729 LIBADDNS_SHARED=bin/libaddns.$SHLIBEXT
4734 AC_MSG_RESULT(no shared library support -- will supply static library)
4736 if test $enable_static = yes; then
4739 INSTALL_LIBADDNS=installlibaddns
4740 UNINSTALL_LIBADDNS=uninstalllibaddns
4746 #################################################
4747 # should we build libsmbclient?
4749 INSTALL_LIBSMBCLIENT=
4750 UNINSTALL_LIBSMBCLIENT=
4751 LIBSMBCLIENT_SHARED=
4753 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
4754 AC_ARG_WITH(libsmbclient,
4755 [AS_HELP_STRING([--with-libsmbclient], [Build the libsmbclient shared library (default=yes if shared libs supported)])],
4756 [ case "$withval" in
4761 if test $BLDSHARED = true; then
4762 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
4763 LIBSMBCLIENT=libsmbclient
4767 AC_MSG_RESULT(no shared library support -- will supply static library)
4769 if test $enable_static = yes; then
4770 LIBSMBCLIENT=libsmbclient
4772 INSTALL_LIBSMBCLIENT=installclientlib
4773 UNINSTALL_LIBSMBCLIENT=uninstallclientlib
4777 # if unspecified, default is to build it if possible.
4778 if test $BLDSHARED = true; then
4779 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
4780 LIBSMBCLIENT=libsmbclient
4784 AC_MSG_RESULT(no shared library support -- will supply static library)
4786 if test $enable_static = yes; then
4787 LIBSMBCLIENT=libsmbclient
4789 INSTALL_LIBSMBCLIENT=installclientlib
4790 UNINSTALL_LIBSMBCLIENT=uninstallclientlib
4793 INSTALL_LIBSMBSHAREMODES=
4794 LIBSMBSHAREMODES_SHARED=
4796 AC_MSG_CHECKING(whether to build the libsmbsharemodes shared library)
4797 AC_ARG_WITH(libsmbsharemodes,
4798 [AS_HELP_STRING([--with-libsmbsharemodes], [Build the libsmbsharemodes shared library (default=yes if shared libs supported)])],
4799 [ case "$withval" in
4804 if test $BLDSHARED = true; then
4805 LIBSMBSHAREMODES_SHARED=bin/libsmbsharemodes.$SHLIBEXT
4806 LIBSMBSHAREMODES=libsmbsharemodes
4810 AC_MSG_RESULT(no shared library support -- will supply static library)
4812 if test $enable_static = yes; then
4813 LIBSMBSHAREMODES=libsmbsharemodes
4815 INSTALL_LIBSMBSHAREMODES=installlibsmbsharemodes
4816 UNINSTALL_LIBSMBSHAREMODES=uninstalllibsmbsharemodes
4820 # if unspecified, default is to build it if possible.
4821 if test $BLDSHARED = true; then
4822 LIBSMBSHAREMODES_SHARED=bin/libsmbsharemodes.$SHLIBEXT
4823 LIBSMBSHAREMODES=libsmbsharemodes
4827 AC_MSG_RESULT(no shared library support -- will supply static library)
4829 if test $enable_static = yes; then
4830 LIBSMBSHAREMODES=libsmbsharemodes
4832 INSTALL_LIBSMBSHAREMODES=installlibsmbsharemodes
4836 #################################################
4837 # these tests are taken from the GNU fileutils package
4838 AC_CHECKING(how to get filesystem space usage)
4841 # Test for statvfs64.
4842 if test $space = no; then
4844 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
4846 #if defined(HAVE_UNISTD_H)
4849 #include <sys/types.h>
4850 #include <sys/statvfs.h>
4853 struct statvfs64 fsd;
4854 exit (statvfs64 (".", &fsd));
4856 fu_cv_sys_stat_statvfs64=yes,
4857 fu_cv_sys_stat_statvfs64=no,
4858 fu_cv_sys_stat_statvfs64=cross)])
4859 if test $fu_cv_sys_stat_statvfs64 = yes; then
4861 AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
4865 # Perform only the link test since it seems there are no variants of the
4866 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
4867 # because that got a false positive on SCO OSR5. Adding the declaration
4868 # of a `struct statvfs' causes this test to fail (as it should) on such
4869 # systems. That system is reported to work fine with STAT_STATFS4 which
4870 # is what it gets when this test fails.
4871 if test $space = no; then
4873 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
4874 [AC_TRY_LINK([#include <sys/types.h>
4875 #include <sys/statvfs.h>],
4876 [struct statvfs fsd; statvfs (0, &fsd);],
4877 fu_cv_sys_stat_statvfs=yes,
4878 fu_cv_sys_stat_statvfs=no)])
4879 if test $fu_cv_sys_stat_statvfs = yes; then
4881 AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
4885 # smbd/statvfs.c assumes that statvfs.f_fsid is an integer.
4886 # This is not the case on ancient Linux systems.
4888 AC_CACHE_CHECK([that statvfs.f_fsid is an integer],samba_cv_fsid_int, [
4889 AC_TRY_COMPILE([#include <sys/statvfs.h>],[struct statvfs buf; buf.f_fsid = 0],
4890 samba_cv_fsid_int=yes,samba_cv_fsid_int=no)])
4891 if test x"$samba_cv_fsid_int" = x"yes"; then
4892 AC_DEFINE(HAVE_FSID_INT, 1, [Whether statvfs.f_fsid is an integer])
4895 if test $space = no; then
4896 # DEC Alpha running OSF/1
4897 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
4898 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
4900 #include <sys/param.h>
4901 #include <sys/types.h>
4902 #include <sys/mount.h>
4907 exit (statfs (".", &fsd, sizeof (struct statfs)));
4909 fu_cv_sys_stat_statfs3_osf1=yes,
4910 fu_cv_sys_stat_statfs3_osf1=no,
4911 fu_cv_sys_stat_statfs3_osf1=no)])
4912 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
4913 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
4915 AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
4919 if test $space = no; then
4921 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
4922 member (AIX, 4.3BSD)])
4923 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
4925 #ifdef HAVE_SYS_PARAM_H
4926 #include <sys/param.h>
4928 #ifdef HAVE_SYS_MOUNT_H
4929 #include <sys/mount.h>
4931 #ifdef HAVE_SYS_VFS_H
4932 #include <sys/vfs.h>
4938 exit (statfs (".", &fsd));
4940 fu_cv_sys_stat_statfs2_bsize=yes,
4941 fu_cv_sys_stat_statfs2_bsize=no,
4942 fu_cv_sys_stat_statfs2_bsize=no)])
4943 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
4944 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
4946 AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
4950 if test $space = no; then
4952 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
4953 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
4954 [AC_TRY_RUN([#include <sys/types.h>
4955 #include <sys/statfs.h>
4959 exit (statfs (".", &fsd, sizeof fsd, 0));
4961 fu_cv_sys_stat_statfs4=yes,
4962 fu_cv_sys_stat_statfs4=no,
4963 fu_cv_sys_stat_statfs4=no)])
4964 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
4965 if test $fu_cv_sys_stat_statfs4 = yes; then
4967 AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
4971 if test $space = no; then
4973 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
4974 member (4.4BSD and NetBSD)])
4975 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
4976 [AC_TRY_RUN([#include <sys/types.h>
4977 #ifdef HAVE_SYS_PARAM_H
4978 #include <sys/param.h>
4980 #ifdef HAVE_SYS_MOUNT_H
4981 #include <sys/mount.h>
4987 exit (statfs (".", &fsd));
4989 fu_cv_sys_stat_statfs2_fsize=yes,
4990 fu_cv_sys_stat_statfs2_fsize=no,
4991 fu_cv_sys_stat_statfs2_fsize=no)])
4992 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
4993 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
4995 AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
4999 if test $space = no; then
5001 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
5002 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
5003 [AC_TRY_RUN([#include <sys/types.h>
5004 #ifdef HAVE_SYS_PARAM_H
5005 #include <sys/param.h>
5007 #ifdef HAVE_SYS_MOUNT_H
5008 #include <sys/mount.h>
5010 #ifdef HAVE_SYS_FS_TYPES_H
5011 #include <sys/fs_types.h>
5016 /* Ultrix's statfs returns 1 for success,
5017 0 for not mounted, -1 for failure. */
5018 exit (statfs (".", &fsd) != 1);
5020 fu_cv_sys_stat_fs_data=yes,
5021 fu_cv_sys_stat_fs_data=no,
5022 fu_cv_sys_stat_fs_data=no)])
5023 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
5024 if test $fu_cv_sys_stat_fs_data = yes; then
5026 AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
5031 # As a gating factor for large file support, in order to
5032 # use <4GB files we must have the following minimal support
5034 # long long, and a 64 bit off_t or off64_t.
5035 # If we don't have all of these then disable large
5038 AC_MSG_CHECKING([if large file support can be enabled])
5040 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
5041 #include <sys/types.h>
5047 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
5048 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
5049 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
5051 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
5053 #################################################
5054 # check for cluster extensions
5056 AC_MSG_CHECKING(whether to include cluster support)
5057 AC_ARG_WITH(cluster-support,
5058 [AS_HELP_STRING([--with-cluster-support], [Enable cluster extensions (default=no)])])
5059 if test "x$with_cluster_support" = "xyes"; then
5060 AC_DEFINE(CLUSTER_SUPPORT,1,[Whether to enable cluster extensions])
5067 #################################################
5068 # check for ACL support
5070 AC_MSG_CHECKING(whether to support ACLs)
5071 AC_ARG_WITH(acl-support,
5072 [AS_HELP_STRING([--with-acl-support], [Include ACL support (default=auto)])],
5073 [ case "$withval" in
5075 with_acl_support="$withval"
5079 if test x"$with_acl_support" = x ; then
5080 with_acl_support="auto"
5083 AC_MSG_RESULT($with_acl_support)
5085 if test x"$with_acl_support" = x"no"; then
5086 AC_MSG_RESULT(Disabling ACL support)
5087 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
5089 AC_MSG_NOTICE(checking whether ACL support is available:)
5092 AC_MSG_NOTICE(Using UnixWare ACLs)
5093 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
5094 default_static_modules="$default_static_modules vfs_solarisacl"
5097 AC_MSG_NOTICE(Using solaris ACLs)
5098 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
5099 ACL_LIBS="$ACL_LIBS -lsec"
5100 default_static_modules="$default_static_modules vfs_solarisacl"
5103 AC_MSG_NOTICE(Using HPUX ACLs)
5104 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
5105 default_static_modules="$default_static_modules vfs_hpuxacl"
5108 AC_MSG_NOTICE(Using IRIX ACLs)
5109 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
5110 default_static_modules="$default_static_modules vfs_irixacl"
5113 AC_MSG_NOTICE(Using AIX ACLs)
5114 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
5115 default_static_modules="$default_static_modules vfs_aixacl"
5118 AC_MSG_NOTICE(Using Tru64 ACLs)
5119 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
5120 ACL_LIBS="$ACL_LIBS -lpacl"
5121 default_static_modules="$default_static_modules vfs_tru64acl"
5124 AC_MSG_NOTICE(ACLs on Darwin currently not supported)
5125 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
5128 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
5131 AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
5134 AC_CACHE_CHECK([for POSIX ACL support],samba_cv_HAVE_POSIX_ACLS,[
5136 LIBS="$LIBS $ACL_LIBS"
5138 #include <sys/types.h>
5139 #include <sys/acl.h>
5143 acl_entry_t *entry_p;
5144 return acl_get_entry(acl, entry_id, entry_p);
5146 [samba_cv_HAVE_POSIX_ACLS=yes],
5147 [samba_cv_HAVE_POSIX_ACLS=no])
5150 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
5151 AC_MSG_NOTICE(Using posix ACLs)
5152 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
5153 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
5155 LIBS="$LIBS $ACL_LIBS"
5157 #include <sys/types.h>
5158 #include <sys/acl.h>
5160 acl_permset_t permset_d;
5162 return acl_get_perm_np(permset_d, perm);
5164 [samba_cv_HAVE_ACL_GET_PERM_NP=yes],
5165 [samba_cv_HAVE_ACL_GET_PERM_NP=no])
5168 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
5169 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
5171 default_static_modules="$default_static_modules vfs_posixacl"
5173 AC_MSG_NOTICE(ACL support is not avaliable)
5174 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
5178 fi # with_acl_support
5182 #################################################
5183 # check for AIO support
5185 AC_MSG_CHECKING(whether to support asynchronous io)
5186 AC_ARG_WITH(aio-support,
5187 [AS_HELP_STRING([--with-aio-support], [Include asynchronous io support (default=no)])],
5188 [ case "$withval" in
5195 AC_CHECK_LIB(rt,aio_read,[AIO_LIBS="$LIBS -lrt"])
5196 AC_CHECK_LIB(aio,aio_read,[AIO_LIBS="$LIBS -laio"])
5197 AC_CACHE_CHECK([for asynchronous io support],samba_cv_HAVE_AIO,[
5200 AC_TRY_LINK([#include <sys/types.h>
5202 [ struct aiocb a; return aio_read(&a);],
5203 samba_cv_HAVE_AIO=yes,samba_cv_HAVE_AIO=no)
5205 AC_CACHE_CHECK([for 64-bit asynchronous io support],samba_cv_HAVE_AIO64,[
5208 AC_TRY_LINK([#include <sys/types.h>
5210 [ struct aiocb64 a; return aio_read64(&a);],
5211 samba_cv_HAVE_AIO64=yes,samba_cv_HAVE_AIO64=no)
5213 if test x"$samba_cv_HAVE_AIO64" = x"yes"; then
5214 AC_DEFINE(HAVE_AIOCB64,1,[Whether 64 bit aio is available])
5215 AC_DEFINE(WITH_AIO, 1, [Using asynchronous io])
5217 elif test x"$samba_cv_HAVE_AIO" = x"yes"; then
5218 AC_DEFINE(WITH_AIO, 1, [Using asynchronous io])
5222 if test x"$samba_cv_HAVE_AIO" = x"yes"; then
5223 AC_MSG_CHECKING(for aio_read)
5224 AC_LINK_IFELSE([#include <aio.h>
5225 int main() { struct aiocb a; return aio_read(&a); }],
5226 [AC_DEFINE(HAVE_AIO_READ, 1, [Have aio_read]) AC_MSG_RESULT(yes)],
5227 [AC_MSG_RESULT(no)])
5229 AC_MSG_CHECKING(for aio_write)
5230 AC_LINK_IFELSE([#include <aio.h>
5231 int main() { struct aiocb a; return aio_write(&a); }],
5232 [AC_DEFINE(HAVE_AIO_WRITE, 1, [Have aio_write]) AC_MSG_RESULT(yes)],
5233 [AC_MSG_RESULT(no)])
5235 AC_MSG_CHECKING(for aio_fsync)
5236 AC_LINK_IFELSE([#include <aio.h>
5237 int main() { struct aiocb a; return aio_fsync(1, &a); }],
5238 [AC_DEFINE(HAVE_AIO_FSYNC, 1, [Have aio_fsync]) AC_MSG_RESULT(yes)],
5239 [AC_MSG_RESULT(no)])
5241 AC_MSG_CHECKING(for aio_return)
5242 AC_LINK_IFELSE([#include <aio.h>
5243 int main() { struct aiocb a; return aio_return(&a); }],
5244 [AC_DEFINE(HAVE_AIO_RETURN, 1, [Have aio_return]) AC_MSG_RESULT(yes)],
5245 [AC_MSG_RESULT(no)])
5247 AC_MSG_CHECKING(for aio_error)
5248 AC_LINK_IFELSE([#include <aio.h>
5249 int main() { struct aiocb a; return aio_error(&a); }],
5250 [AC_DEFINE(HAVE_AIO_ERROR, 1, [Have aio_error]) AC_MSG_RESULT(yes)],
5251 [AC_MSG_RESULT(no)])
5253 AC_MSG_CHECKING(for aio_cancel)
5254 AC_LINK_IFELSE([#include <aio.h>
5255 int main() { struct aiocb a; return aio_cancel(1, &a); }],
5256 [AC_DEFINE(HAVE_AIO_CANCEL, 1, [Have aio_cancel]) AC_MSG_RESULT(yes)],
5257 [AC_MSG_RESULT(no)])
5259 AC_MSG_CHECKING(for aio_suspend)
5260 AC_LINK_IFELSE([#include <aio.h>
5261 int main() { struct aiocb a; return aio_suspend(&a, 1, NULL); }],
5262 [AC_DEFINE(HAVE_AIO_SUSPEND, 1, [Have aio_suspend]) AC_MSG_RESULT(yes)],
5263 [AC_MSG_RESULT(no)])
5266 if test x"$samba_cv_HAVE_AIO64" = x"yes"; then
5267 AC_MSG_CHECKING(for aio_read64)
5268 AC_LINK_IFELSE([#include <aio.h>
5269 int main() { struct aiocb a; return aio_read64(&a); }],
5270 [AC_DEFINE(HAVE_AIO_READ64, 1, [Have aio_read64]) AC_MSG_RESULT(yes)],
5271 [AC_MSG_RESULT(no)])
5273 AC_MSG_CHECKING(for aio_write64)
5274 AC_LINK_IFELSE([#include <aio.h>
5275 int main() { struct aiocb a; return aio_write64(&a); }],
5276 [AC_DEFINE(HAVE_AIO_WRITE64, 1, [Have aio_write64]) AC_MSG_RESULT(yes)],
5277 [AC_MSG_RESULT(no)])
5279 AC_MSG_CHECKING(for aio_fsync64)
5280 AC_LINK_IFELSE([#include <aio.h>
5281 int main() { struct aiocb a; return aio_fsync64(1, &a); }],
5282 [AC_DEFINE(HAVE_AIO_FSYNC64, 1, [Have aio_fsync64]) AC_MSG_RESULT(yes)],
5283 [AC_MSG_RESULT(no)])
5285 AC_MSG_CHECKING(for aio_return64)
5286 AC_LINK_IFELSE([#include <aio.h>
5287 int main() { struct aiocb a; return aio_return64(&a); }],
5288 [AC_DEFINE(HAVE_AIO_RETURN64, 1, [Have aio_return64]) AC_MSG_RESULT(yes)],
5289 [AC_MSG_RESULT(no)])
5291 AC_MSG_CHECKING(for aio_error64)
5292 AC_LINK_IFELSE([#include <aio.h>
5293 int main() { struct aiocb a; return aio_error64(&a); }],
5294 [AC_DEFINE(HAVE_AIO_ERROR64, 1, [Have aio_error64]) AC_MSG_RESULT(yes)],
5295 [AC_MSG_RESULT(no)])
5297 AC_MSG_CHECKING(for aio_cancel64)
5298 AC_LINK_IFELSE([#include <aio.h>
5299 int main() { struct aiocb a; return aio_cancel64(1, &a); }],
5300 [AC_DEFINE(HAVE_AIO_CANCEL64, 1, [Have aio_cancel64]) AC_MSG_RESULT(yes)],
5301 [AC_MSG_RESULT(no)])
5303 AC_MSG_CHECKING(for aio_suspend64)
5304 AC_LINK_IFELSE([#include <aio.h>
5305 int main() { struct aiocb a; return aio_suspend64(&a, 1, NULL); }],
5306 [AC_DEFINE(HAVE_AIO_SUSPEND64, 1, [Have aio_suspend64]) AC_MSG_RESULT(yes)],
5307 [AC_MSG_RESULT(no)])
5314 AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support is available])
5317 AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support should be built in])
5321 #################################################
5322 # check for sendfile support
5324 with_sendfile_support=yes
5325 AC_MSG_CHECKING(whether to check to support sendfile)
5326 AC_ARG_WITH(sendfile-support,
5327 [AS_HELP_STRING([--with-sendfile-support], [Check for sendfile support (default=yes)])],
5328 [ case "$withval" in
5335 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
5336 AC_TRY_LINK([#include <sys/sendfile.h>],
5341 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
5343 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
5345 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
5346 AC_TRY_LINK([#include <sys/sendfile.h>],
5351 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
5353 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
5355 # Try and cope with broken Linux sendfile....
5356 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
5358 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
5359 #undef _FILE_OFFSET_BITS
5361 #include <sys/sendfile.h>],
5366 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
5368 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
5370 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
5371 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
5372 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
5373 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
5374 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
5375 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
5376 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
5377 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
5378 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
5379 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
5380 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
5386 *freebsd* | *dragonfly* )
5387 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
5389 #include <sys/types.h>
5391 #include <sys/socket.h>
5392 #include <sys/uio.h>],
5394 int fromfd, tofd, ret, total=0;
5395 off_t offset, nwritten;
5398 hdr.headers = &hdtrl;
5400 hdr.trailers = NULL;
5402 hdtrl.iov_base = NULL;
5404 ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
5406 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
5408 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
5409 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
5410 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
5411 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
5418 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
5420 #include <sys/socket.h>
5421 #include <sys/uio.h>],
5425 struct iovec hdtrl[2];
5429 hdtrl[0].iov_base = 0;
5430 hdtrl[0].iov_len = 0;
5432 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
5434 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
5435 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
5436 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
5437 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
5438 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
5443 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
5445 #include <sys/socket.h>
5446 #include <sys/uio.h>],
5450 struct iovec hdtrl[2];
5454 hdtrl[0].iov_base = 0;
5455 hdtrl[0].iov_len = 0;
5457 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
5459 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
5460 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
5461 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
5462 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
5463 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
5470 AC_CHECK_LIB(sendfile,sendfilev)
5471 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
5473 #include <sys/sendfile.h>],
5477 struct sendfilevec vec[2];
5483 vec[0].sfv_fd = SFV_FD_SELF;
5484 vec[0].sfv_flag = 0;
5489 vec[1].sfv_flag = 0;
5492 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
5494 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
5496 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
5497 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
5498 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
5499 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
5504 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
5506 #include <sys/sendfile.h>],
5510 struct sendfilevec vec[2];
5516 vec[0].sfv_fd = SFV_FD_SELF;
5517 vec[0].sfv_flag = 0;
5522 vec[1].sfv_flag = 0;
5525 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
5527 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
5529 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
5530 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
5531 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
5532 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
5538 AC_CACHE_CHECK([for AIX send_file support],samba_cv_HAVE_SENDFILE,[
5540 #include <sys/socket.h>],
5544 struct sf_parms hdtrl;
5548 hdtrl.header_data = 0;
5549 hdtrl.header_length = 0;
5550 hdtrl.file_descriptor = fromfd;
5551 hdtrl.file_offset = 0;
5552 hdtrl.file_bytes = 0;
5553 hdtrl.trailer_data = 0;
5554 hdtrl.trailer_length = 0;
5556 nwritten = send_file(&tofd, &hdtrl, 0);
5558 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
5559 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
5560 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
5561 AC_DEFINE(AIX_SENDFILE_API,1,[Whether the AIX send_file() API is available])
5562 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
5578 ############################################
5579 # See if we have the Linux readahead syscall.
5581 AC_CACHE_CHECK([for Linux readahead],
5582 samba_cv_HAVE_LINUX_READAHEAD,[
5584 #if defined(HAVE_UNISTD_H)
5587 #include <fcntl.h>],
5588 [ssize_t err = readahead(0,0,0x80000);],
5589 samba_cv_HAVE_LINUX_READAHEAD=yes,
5590 samba_cv_HAVE_LINUX_READAHEAD=no)])
5592 if test x"$samba_cv_HAVE_LINUX_READAHEAD" = x"yes"; then
5593 AC_DEFINE(HAVE_LINUX_READAHEAD,1,
5594 [Whether Linux readahead is available])
5597 AC_HAVE_DECL(readahead, [#include <fcntl.h>])
5599 ############################################
5600 # See if we have the posix_fadvise syscall.
5602 AC_CACHE_CHECK([for posix_fadvise],
5603 samba_cv_HAVE_POSIX_FADVISE,[
5605 #if defined(HAVE_UNISTD_H)
5608 #include <fcntl.h>],
5609 [ssize_t err = posix_fadvise(0,0,0x80000,POSIX_FADV_WILLNEED);],
5610 samba_cv_HAVE_POSIX_FADVISE=yes,
5611 samba_cv_HAVE_POSIX_FADVISE=no)])
5613 if test x"$samba_cv_HAVE_POSIX_FADVISE" = x"yes"; then
5614 AC_DEFINE(HAVE_POSIX_FADVISE,1,
5615 [Whether posix_fadvise is available])
5620 #################################################
5621 # Check whether winbind is supported on this platform. If so we need to
5622 # build and install client programs, sbin programs and shared libraries
5624 AC_MSG_CHECKING(whether to build winbind)
5626 # Initially, the value of $host_os decides whether winbind is supported
5630 # Define the winbind shared library name and any specific linker flags
5631 # it needs to be built with.
5633 WINBIND_NSS="nsswitch/libnss_winbind.$SHLIBEXT"
5634 WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT"
5635 WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
5636 NSSSONAMEVERSIONSUFFIX=""
5637 WINBIND_NSS_PTHREAD=""
5641 NSSSONAMEVERSIONSUFFIX=".2"
5642 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
5645 # FreeBSD winbind client is implemented as a wrapper around
5646 # the Linux version.
5647 NSSSONAMEVERSIONSUFFIX=".1"
5648 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
5649 nsswitch/winbind_nss_linux.o"
5650 WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
5651 WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
5655 # NetBSD winbind client is implemented as a wrapper
5656 # around the Linux version. It needs getpwent_r() to
5657 # indicate libc's use of the correct nsdispatch API.
5659 if test x"$ac_cv_func_getpwent_r" = x"yes"; then
5660 WINBIND_NSS_EXTRA_OBJS="\
5661 nsswitch/winbind_nss_netbsd.o \
5662 nsswitch/winbind_nss_linux.o"
5663 WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
5664 WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
5667 winbind_no_reason=", getpwent_r is missing on $host_os so winbind is unsupported"
5671 # IRIX has differently named shared libraries
5672 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
5673 WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT"
5674 WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT"
5677 # Solaris winbind client is implemented as a wrapper around
5678 # the Linux version.
5679 NSSSONAMEVERSIONSUFFIX=".1"
5680 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \
5681 nsswitch/winbind_nss_linux.o"
5682 WINBIND_NSS_EXTRA_LIBS="-lsocket"
5685 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
5688 # AIX has even differently named shared libraries. No
5689 # WINS support has been implemented yet.
5690 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o"
5691 WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init"
5692 WINBIND_NSS="nsswitch/WINBIND"
5697 winbind_no_reason=", unsupported on $host_os"
5701 # Check the setting of --with-winbind
5703 AC_ARG_WITH(winbind,
5704 [AS_HELP_STRING([--with-winbind], [Build winbind (default, if supported by OS)])],
5717 # We need unix domain sockets for winbind
5719 if test x"$HAVE_WINBIND" = x"yes"; then
5720 if test x"$samba_cv_unixsocket" = x"no"; then
5721 winbind_no_reason=", no unix domain socket support on $host_os"
5726 # Display test results
5728 if test x"$HAVE_WINBIND" = x"no"; then
5733 if test x"$enable_developer" = x"yes" -a x"$LINK_LIBWBCLIENT" = x"STATIC" ; then
5734 BUILD_LIBWBCLIENT_SHARED=no
5736 BUILD_LIBWBCLIENT_SHARED=yes
5739 if test $BLDSHARED = true -a x"$HAVE_WINBIND" = x"yes" -a x"$BUILD_LIBWBCLIENT_SHARED" = x"yes"; then
5740 NSS_MODULES="${WINBIND_NSS} ${WINBIND_WINS_NSS}"
5741 ## Only worry about libwbclient if we have shared library support
5743 LIBWBCLIENT_SHARED=bin/libwbclient.$SHLIBEXT
5744 LIBWBCLIENT=libwbclient
5745 INSTALL_LIBWBCLIENT=installlibwbclient
5746 UNINSTALL_LIBWBCLIENT=uninstalllibwbclient
5747 WINBIND_LIBS="-lwbclient"
5749 LIBWBCLIENT_STATIC=bin/libwbclient.a
5752 if test x"$HAVE_WINBIND" = x"yes"; then
5754 AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
5756 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)"
5757 EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)"
5758 if test $BLDSHARED = true -a x"$create_pam_modules" = x"yes"; then
5759 PAM_MODULES="$PAM_MODULES pam_winbind"
5760 INSTALL_PAM_MODULES="installpammodules"
5761 UNINSTALL_PAM_MODULES="uninstallpammodules"
5764 AC_MSG_RESULT(no$winbind_no_reason)
5767 AC_CHECK_LIB(pthread, pthread_mutex_lock, [WINBIND_NSS_PTHREAD="-lpthread"
5768 AC_DEFINE(HAVE_PTHREAD, 1, [whether pthread exists])])
5770 AC_SUBST(WINBIND_NSS_PTHREAD)
5771 AC_SUBST(WINBIND_NSS)
5772 AC_SUBST(WINBIND_WINS_NSS)
5773 AC_SUBST(WINBIND_NSS_LDSHFLAGS)
5774 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
5775 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
5776 AC_SUBST(NSSSONAMEVERSIONSUFFIX)
5778 AC_SUBST(WINBIND_KRB5_LOCATOR)
5780 # Solaris 10 does have new member in nss_XbyY_key
5781 AC_CHECK_MEMBER(union nss_XbyY_key.ipnode.af_family,
5782 AC_DEFINE(HAVE_NSS_XBYY_KEY_IPNODE, 1, [Defined if union nss_XbyY_key has ipnode field]),,
5783 [#include <nss_dbdefs.h>])
5785 # Solaris has some extra fields in struct passwd that need to be
5786 # initialised otherwise nscd crashes.
5788 AC_CHECK_MEMBER(struct passwd.pw_comment,
5789 AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),,
5792 AC_CHECK_MEMBER(struct passwd.pw_age,
5793 AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),,
5796 # AIX 4.3.x and 5.1 do not have as many members in
5797 # struct secmethod_table as AIX 5.2
5798 AC_CHECK_MEMBERS([struct secmethod_table.method_attrlist], , ,
5799 [#include <usersec.h>])
5800 AC_CHECK_MEMBERS([struct secmethod_table.method_version], , ,
5801 [#include <usersec.h>])
5803 AC_CACHE_CHECK([for SO_PEERCRED],samba_cv_HAVE_PEERCRED,[
5804 AC_TRY_COMPILE([#include <sys/types.h>
5805 #include <sys/socket.h>],
5808 int ret = getsockopt(0, SOL_SOCKET, SO_PEERCRED, &cred, &cred_len);
5810 samba_cv_HAVE_PEERCRED=yes,samba_cv_HAVE_PEERCRED=no,samba_cv_HAVE_PEERCRED=cross)])
5811 if test x"$samba_cv_HAVE_PEERCRED" = x"yes"; then
5812 AC_DEFINE(HAVE_PEERCRED,1,[Whether we can use SO_PEERCRED to get socket credentials])
5816 #################################################
5817 # Check to see if we should use the included popt
5819 AC_ARG_WITH(included-popt,
5820 [AS_HELP_STRING([--with-included-popt], [use bundled popt library, not from system])],
5831 if test x"$INCLUDED_POPT" != x"yes"; then
5832 AC_CHECK_LIB(popt, poptGetContext,
5833 INCLUDED_POPT=no, INCLUDED_POPT=yes)
5836 AC_MSG_CHECKING(whether to use included popt)
5837 if test x"$INCLUDED_POPT" = x"yes"; then
5839 BUILD_POPT='$(POPT_OBJ)'
5840 POPTLIBS='$(POPT_OBJ)'
5841 FLAGS1="-I\$(srcdir)/popt"
5847 AC_SUBST(BUILD_POPT)
5851 #################################################
5852 # Check if user wants DNS service discovery support
5854 AC_ARG_ENABLE(dnssd,
5855 [AS_HELP_STRING([--enable-dnssd], [Enable DNS service discovery support (default=auto)])])
5857 AC_SUBST(DNSSD_LIBS)
5858 if test x"$enable_dnssd" != x"no"; then
5859 have_dnssd_support=yes
5861 AC_CHECK_HEADERS(dns_sd.h)
5862 if test x"$ac_cv_header_dns_sd_h" != x"yes"; then
5863 have_dnssd_support=no
5866 # On Darwin the DNSSD API is in libc, but on other platforms it's
5867 # probably in -ldns_sd
5868 AC_CHECK_FUNCS(DNSServiceRegister)
5869 AC_CHECK_LIB_EXT(dns_sd, DNSSD_LIBS, DNSServiceRegister)
5870 if test x"$ac_cv_func_DNSServiceRegister" != x"yes" -a \
5871 x"$ac_cv_lib_ext_DNSServiceRegister" != x"yes"; then
5872 have_dnssd_support=no
5875 if test x"$have_dnssd_support" = x"yes"; then
5876 AC_DEFINE(WITH_DNSSD_SUPPORT, 1,
5877 [Whether to enable DNS service discovery support])
5879 if test x"$enable_dnssd" = x"yes"; then
5880 AC_MSG_ERROR(DNS service discovery support not available)
5886 #################################################
5887 # Check to see if we should use the included iniparser
5889 AC_ARG_WITH(included-iniparser,
5890 [AS_HELP_STRING([--with-included-iniparser], [use bundled iniparser library, not from system])],
5894 INCLUDED_INIPARSER=yes
5897 INCLUDED_INIPARSER=no
5901 if test x"$INCLUDED_INIPARSER" != x"yes"; then
5902 AC_CHECK_LIB(iniparser, iniparser_load,
5903 INCLUDED_INIPARSER=no, INCLUDED_INIPARSER=yes)
5906 AC_MSG_CHECKING(whether to use included iniparser)
5907 if test x"$INCLUDED_INIPARSER" = x"yes"; then
5909 BUILD_INIPARSER='$(INIPARSER_OBJ)'
5911 FLAGS1="$FLAGS1 -I\$(srcdir)/iniparser/src"
5915 INIPARSERLIBS="-liniparser"
5917 AC_SUBST(BUILD_INIPARSER)
5918 AC_SUBST(INIPARSERLIBS)
5923 # Checks for the vfs_fileid module
5925 AC_CHECK_FUNC(getmntent)
5927 AC_CHECK_HEADERS(sys/statfs.h)
5929 AC_MSG_CHECKING([vfs_fileid: checking for statfs() and struct statfs.f_fsid)])
5930 AC_CACHE_VAL(vfsfileid_cv_statfs,[
5932 #include <sys/types.h>
5933 #include <sys/statfs.h>
5937 fsid_t fsid = fsd.f_fsid;
5938 return statfs (".", &fsd);
5940 vfsfileid_cv_statfs=yes,
5941 vfsfileid_cv_statfs=no,
5942 vfsfileid_cv_statfs=cross)
5944 AC_MSG_RESULT($vfsfileid_cv_statfs)
5946 if test x"$ac_cv_func_getmntent" = x"yes" -a \
5947 x"$vfsfileid_cv_statfs" = x"yes"; then
5948 default_shared_modules="$default_shared_modules vfs_fileid"
5951 # Checks for the vfs_fileid module
5954 for i in `echo $default_static_modules | sed -e 's/,/ /g'`
5956 eval MODULE_DEFAULT_$i=STATIC
5959 for i in `echo $default_shared_modules | sed -e 's/,/ /g'`
5961 dnl Fall back to static if we cannot build shared libraries
5962 eval MODULE_DEFAULT_$i=STATIC
5964 if test $BLDSHARED = true; then
5965 eval MODULE_DEFAULT_$i=SHARED
5969 dnl Always build these modules static
5970 MODULE_rpc_spoolss=STATIC
5971 MODULE_rpc_srvsvc2=STATIC
5972 MODULE_idmap_tdb=STATIC
5973 MODULE_idmap_passdb=STATIC
5974 MODULE_idmap_nss=STATIC
5976 MODULE_nss_info_template=STATIC
5978 AC_ARG_WITH(static-modules,
5979 [AS_HELP_STRING([--with-static-modules=MODULES], [Comma-separated list of names of modules to statically link in])],
5980 [ if test $withval; then
5981 for i in `echo $withval | sed -e 's/,/ /g'`
5983 eval MODULE_$i=STATIC
5987 AC_ARG_WITH(shared-modules,
5988 [AS_HELP_STRING([--with-shared-modules=MODULES], [Comma-separated list of names of modules to build shared])],
5989 [ if test $withval; then
5990 for i in `echo $withval | sed -e 's/,/ /g'`
5992 eval MODULE_$i=SHARED
5996 SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o passdb/pdb_nds.o, "bin/ldapsam.$SHLIBEXT", PDB,
5997 [ PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" ] )
5998 SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB)
5999 SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB)
6000 SMB_SUBSYSTEM(PDB,passdb/pdb_interface.o)
6003 SMB_MODULE(rpc_lsarpc, \$(RPC_LSA_OBJ), "bin/librpc_lsarpc.$SHLIBEXT", RPC)
6004 SMB_MODULE(rpc_winreg, \$(RPC_REG_OBJ), "bin/librpc_winreg.$SHLIBEXT", RPC)
6005 SMB_MODULE(rpc_initshutdown, \$(RPC_INITSHUTDOWN_OBJ), "bin/librpc_initshutdown.$SHLIBEXT", RPC)
6006 SMB_MODULE(rpc_dssetup, \$(RPC_DSSETUP_OBJ), "bin/librpc_dssetup.$SHLIBEXT", RPC)
6007 SMB_MODULE(rpc_wkssvc, \$(RPC_WKS_OBJ), "bin/librpc_wkssvc.$SHLIBEXT", RPC)
6008 SMB_MODULE(rpc_svcctl2, \$(RPC_SVCCTL_OBJ), "bin/librpc_svcctl2.$SHLIBEXT", RPC)
6009 SMB_MODULE(rpc_ntsvcs2, \$(RPC_NTSVCS_OBJ), "bin/librpc_ntsvcs2.$SHLIBEXT", RPC)
6010 SMB_MODULE(rpc_netlogon, \$(RPC_NETLOG_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC)
6011 SMB_MODULE(rpc_netdfs, \$(RPC_DFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC)
6012 SMB_MODULE(rpc_srvsvc2, \$(RPC_SVC_OBJ), "bin/librpc_svcsvc2.$SHLIBEXT", RPC)
6013 SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC)
6014 SMB_MODULE(rpc_eventlog2, \$(RPC_EVENTLOG_OBJ), "bin/librpc_eventlog2.$SHLIBEXT", RPC)
6015 SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC)
6016 SMB_MODULE(rpc_rpcecho, \$(RPC_ECHO_OBJ), "bin/librpc_rpcecho.$SHLIBEXT", RPC)
6017 SMB_SUBSYSTEM(RPC,smbd/server.o)
6019 SMB_MODULE(idmap_ldap, winbindd/idmap_ldap.o, "bin/ldap.$SHLIBEXT", IDMAP)
6020 SMB_MODULE(idmap_tdb, winbindd/idmap_tdb.o, "bin/tdb.$SHLIBEXT", IDMAP)
6021 SMB_MODULE(idmap_tdb2, winbindd/idmap_tdb2.o, "bin/tdb2.$SHLIBEXT", IDMAP)
6022 SMB_MODULE(idmap_passdb, winbindd/idmap_passdb.o, "bin/passdb.$SHLIBEXT", IDMAP)
6023 SMB_MODULE(idmap_nss, winbindd/idmap_nss.o, "bin/nss.$SHLIBEXT", IDMAP)
6024 SMB_MODULE(idmap_rid, winbindd/idmap_rid.o, "bin/rid.$SHLIBEXT", IDMAP)
6025 SMB_MODULE(idmap_ad, winbindd/idmap_ad.o, "bin/ad.$SHLIBEXT", IDMAP)
6026 SMB_SUBSYSTEM(IDMAP, winbindd/idmap.o)
6028 SMB_MODULE(nss_info_template, winbindd/nss_info_template.o, "bin/template.$SHLIBEXT", NSS_INFO)
6029 SMB_SUBSYSTEM(NSS_INFO, winbindd/nss_info.o)
6031 SMB_MODULE(charset_weird, modules/weird.o, "bin/weird.$SHLIBEXT", CHARSET)
6032 SMB_MODULE(charset_CP850, modules/CP850.o, "bin/CP850.$SHLIBEXT", CHARSET)
6033 SMB_MODULE(charset_CP437, modules/CP437.o, "bin/CP437.$SHLIBEXT", CHARSET)
6034 SMB_MODULE(charset_macosxfs, modules/charset_macosxfs.o,"bin/macosxfs.$SHLIBEXT", CHARSET)
6035 SMB_SUBSYSTEM(CHARSET,lib/iconv.o)
6037 SMB_MODULE(auth_sam, \$(AUTH_SAM_OBJ), "bin/sam.$SHLIBEXT", AUTH)
6038 SMB_MODULE(auth_unix, \$(AUTH_UNIX_OBJ), "bin/unix.$SHLIBEXT", AUTH)
6039 SMB_MODULE(auth_winbind, \$(AUTH_WINBIND_OBJ), "bin/winbind.$SHLIBEXT", AUTH)
6040 SMB_MODULE(auth_server, \$(AUTH_SERVER_OBJ), "bin/smbserver.$SHLIBEXT", AUTH)
6041 SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), "bin/domain.$SHLIBEXT", AUTH)
6042 SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), "bin/builtin.$SHLIBEXT", AUTH)
6043 SMB_MODULE(auth_script, \$(AUTH_SCRIPT_OBJ), "bin/script.$SHLIBEXT", AUTH)
6044 SMB_SUBSYSTEM(AUTH,auth/auth.o)
6046 SMB_MODULE(vfs_default, \$(VFS_DEFAULT_OBJ), "bin/default.$SHLIBEXT", VFS)
6047 SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), "bin/recycle.$SHLIBEXT", VFS)
6048 SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), "bin/audit.$SHLIBEXT", VFS)
6049 SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), "bin/extd_audit.$SHLIBEXT", VFS)
6050 SMB_MODULE(vfs_full_audit, \$(VFS_FULL_AUDIT_OBJ), "bin/full_audit.$SHLIBEXT", VFS)
6051 SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK_OBJ), "bin/netatalk.$SHLIBEXT", VFS)
6052 SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), "bin/fake_perms.$SHLIBEXT", VFS)
6053 SMB_MODULE(vfs_default_quota, \$(VFS_DEFAULT_QUOTA_OBJ), "bin/default_quota.$SHLIBEXT", VFS)
6054 SMB_MODULE(vfs_readonly, \$(VFS_READONLY_OBJ), "bin/readonly.$SHLIBEXT", VFS)
6055 SMB_MODULE(vfs_cap, \$(VFS_CAP_OBJ), "bin/cap.$SHLIBEXT", VFS)
6056 SMB_MODULE(vfs_expand_msdfs, \$(VFS_EXPAND_MSDFS_OBJ), "bin/expand_msdfs.$SHLIBEXT", VFS)
6057 SMB_MODULE(vfs_shadow_copy, \$(VFS_SHADOW_COPY_OBJ), "bin/shadow_copy.$SHLIBEXT", VFS)
6058 SMB_MODULE(vfs_shadow_copy2, \$(VFS_SHADOW_COPY2_OBJ), "bin/shadow_copy2.$SHLIBEXT", VFS)
6059 SMB_MODULE(vfs_afsacl, \$(VFS_AFSACL_OBJ), "bin/afsacl.$SHLIBEXT", VFS)
6060 SMB_MODULE(vfs_xattr_tdb, \$(VFS_XATTR_TDB_OBJ), "bin/xattr_tdb.$SHLIBEXT", VFS)
6061 SMB_MODULE(vfs_posixacl, \$(VFS_POSIXACL_OBJ), "bin/posixacl.$SHLIBEXT", VFS)
6062 SMB_MODULE(vfs_aixacl, \$(VFS_AIXACL_OBJ), "bin/aixacl.$SHLIBEXT", VFS)
6063 SMB_MODULE(vfs_aixacl2, \$(VFS_AIXACL2_OBJ), "bin/aixacl2.$SHLIBEXT", VFS)
6064 SMB_MODULE(vfs_solarisacl, \$(VFS_SOLARISACL_OBJ), "bin/solarisacl.$SHLIBEXT", VFS)
6065 SMB_MODULE(vfs_irixacl, \$(VFS_IRIXACL_OBJ), "bin/irixacl.$SHLIBEXT", VFS)
6066 SMB_MODULE(vfs_hpuxacl, \$(VFS_HPUXACL_OBJ), "bin/hpuxacl.$SHLIBEXT", VFS)
6067 SMB_MODULE(vfs_tru64acl, \$(VFS_TRU64ACL_OBJ), "bin/tru64acl.$SHLIBEXT", VFS)
6068 SMB_MODULE(vfs_catia, \$(VFS_CATIA_OBJ), "bin/catia.$SHLIBEXT", VFS)
6069 SMB_MODULE(vfs_streams_xattr, \$(VFS_STREAMS_XATTR_OBJ), "bin/streams_xattr.$SHLIBEXT", VFS)
6070 SMB_MODULE(vfs_streams_depot, \$(VFS_STREAMS_DEPOT_OBJ), "bin/streams_depot.$SHLIBEXT", VFS)
6071 SMB_MODULE(vfs_cacheprime, \$(VFS_CACHEPRIME_OBJ), "bin/cacheprime.$SHLIBEXT", VFS)
6072 SMB_MODULE(vfs_prealloc, \$(VFS_PREALLOC_OBJ), "bin/prealloc.$SHLIBEXT", VFS)
6073 SMB_MODULE(vfs_commit, \$(VFS_COMMIT_OBJ), "bin/commit.$SHLIBEXT", VFS)
6074 SMB_MODULE(vfs_gpfs, \$(VFS_GPFS_OBJ), "bin/gpfs.$SHLIBEXT", VFS)
6075 SMB_MODULE(vfs_readahead, \$(VFS_READAHEAD_OBJ), "bin/readahead.$SHLIBEXT", VFS)
6076 SMB_MODULE(vfs_tsmsm, \$(VFS_TSMSM_OBJ), "bin/tsmsm.$SHLIBEXT", VFS)
6077 SMB_MODULE(vfs_fileid, \$(VFS_FILEID_OBJ), "bin/fileid.$SHLIBEXT", VFS)
6078 SMB_MODULE(vfs_aio_fork, \$(VFS_AIO_FORK_OBJ), "bin/aio_fork.$SHLIBEXT", VFS)
6079 SMB_MODULE(vfs_syncops, \$(VFS_SYNCOPS_OBJ), "bin/syncops.$SHLIBEXT", VFS)
6080 SMB_MODULE(vfs_zfsacl, \$(VFS_ZFSACL_OBJ), "bin/zfsacl.$SHLIBEXT", VFS)
6081 SMB_MODULE(vfs_notify_fam, \$(VFS_NOTIFY_FAM_OBJ), "bin/notify_fam.$SHLIBEXT", VFS)
6084 SMB_SUBSYSTEM(VFS,smbd/vfs.o)
6086 AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules])
6088 #################################################
6089 # do extra things if we are running insure
6091 if test "${ac_cv_prog_CC}" = "insure"; then
6092 CPPFLAGS="$CPPFLAGS -D__INSURE__"
6095 #################################################
6096 # If run from the build farm, enable NASTY hacks
6097 #################################################
6098 AC_MSG_CHECKING(whether to enable build farm hacks)
6099 if test x"$RUN_FROM_BUILD_FARM" = x"yes"; then
6101 AC_DEFINE(ENABLE_BUILD_FARM_HACKS, 1, [Defined if running in the build farm])
6106 #################################################
6107 # check for bad librt/libpthread interactions
6109 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes" -o \
6110 x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes" -o \
6111 x"$samba_cv_HAVE_AIO64" = x"yes" -o \
6112 x"$samba_cv_HAVE_AIO" = x"yes" ; then
6114 SMB_IF_RTSIGNAL_BUG(
6116 # Have RT_SIGNAL bug, need to check whether the problem will
6117 # affect anything we have configured.
6120 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
6121 if test x"$rt_signal_lease_ok" = x"no" ; then
6126 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
6127 if test x"$rt_signal_notify_ok" = x"no" ; then
6132 if test x"$samba_cv_HAVE_AIO64" = x"yes" -o \
6133 x"$samba_cv_HAVE_AIO" = x"yes" ; then
6134 if test x"$rt_signal_aio_ok" = x"no" ; then
6139 if test x"$rt_do_error" = x"yes" ; then
6140 SMB_IS_LIBPTHREAD_LINKED(
6144 *** On this platforms, linking Samba against pthreads causes problems
6145 *** with the oplock and change notification mechanisms. You may be
6146 *** using pthreads as a side-effect of using the --with-aio-support
6147 *** or --with-profiling-data options. Please remove these and try again.
6154 *** On this platform, the oplock and change notification mechanisms do not
6155 *** appear to work. Please report this problem to samba-technical@samba.org
6156 *** and attach the config.log file from this directory.
6160 AC_MSG_ERROR(unable to use realtime signals on this platform)
6164 # no RT_SIGNAL bug, we are golden
6165 SMB_IS_LIBPTHREAD_LINKED(
6167 AC_MSG_WARN(using libpthreads - this may degrade performance)
6172 # cross compiling, I hope you know what you are doing
6178 dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
6179 LIB_REMOVE_USR_LIB(LDFLAGS)
6180 LIB_REMOVE_USR_LIB(LIBS)
6181 LIB_REMOVE_USR_LIB(KRB5_LIBS)
6183 dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
6184 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
6185 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
6187 #################################################
6188 # Display summary of libraries detected
6190 AC_MSG_RESULT([Using libraries:])
6191 AC_MSG_RESULT([ LIBS = $LIBS])
6192 if test x"$with_ads_support" != x"no"; then
6193 AC_MSG_RESULT([ KRB5_LIBS = $KRB5_LIBS])
6195 if test x"$with_ldap_support" != x"no"; then
6196 AC_MSG_RESULT([ LDAP_LIBS = $LDAP_LIBS])
6198 if test x"$with_dnsupdate_support" != x"no"; then
6199 AC_MSG_RESULT([ UUID_LIBS = $UUID_LIBS])
6201 if test x"$have_dnssd_support" != x"no"; then
6202 AC_MSG_RESULT([ DNSSD_LIBS = $DNSSD_LIBS])
6204 AC_MSG_RESULT([ AUTH_LIBS = $AUTH_LIBS])
6206 #################################################
6207 # final configure stuff
6209 AC_MSG_CHECKING([configure summary])
6210 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
6212 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
6213 AC_MSG_WARN([cannot run when cross-compiling]))
6215 dnl Merge in developer cflags from now on
6216 AC_SUBST(DEVELOPER_CFLAGS)
6217 if test x"$krb5_developer" = x"yes" -o x"$developer" = x"yes"; then
6218 CFLAGS="${CFLAGS} \$(DEVELOPER_CFLAGS)"
6221 # Stuff the smbd-only libraries at the end of the smbd link
6222 # path (if we have them).
6223 SMBD_LIBS="$samba_dmapi_libs"
6226 AC_OUTPUT(Makefile library-versions
6227 script/findsmb smbadduser script/gen-8bit-gap.sh script/installbin.sh script/uninstallbin.sh
6228 lib/netapi/examples/Makefile
6229 pkgconfig/smbclient.pc
6230 pkgconfig/wbclient.pc
6232 pkgconfig/smbsharemodes.pc
6235 #################################################
6236 # Print very concise instructions on building/use
6237 if test "x$enable_dmalloc" = xyes
6239 AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
6240 AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])