1 dnl Process this file with autoconf to produce a configure script.
3 dnl We must use autotools 2.53 or above
5 AC_INIT(include/includes.h)
6 AC_CONFIG_HEADER(include/config.h)
11 SMB_VERSION_STRING=`cat include/version.h | grep 'SAMBA_VERSION_OFFICIAL_STRING' | cut -d '"' -f2`
12 echo "SAMBA VERSION: ${SMB_VERSION_STRING}"
14 SAMBA_VERSION_SVN_REVISION=`cat include/version.h | grep 'SAMBA_VERSION_SVN_REVISION' | cut -d ' ' -f3-`
15 if test -n "${SAMBA_VERSION_SVN_REVISION}";then
16 echo "BUILD REVISION: ${SAMBA_VERSION_SVN_REVISION}"
19 #################################################
20 # Directory handling stuff to support both the
21 # legacy SAMBA directories and FHS compliant
23 AC_PREFIX_DEFAULT(/usr/local/samba)
25 lockdir="\${VARDIR}/locks"
26 piddir="\${VARDIR}/locks"
27 mandir="\${prefix}/man"
28 logfilebase="\${VARDIR}"
29 privatedir="\${prefix}/private"
30 libdir="\${prefix}/lib"
31 configdir="\${LIBDIR}"
32 swatdir="\${prefix}/swat"
35 [ --with-fhs Use FHS-compliant paths (default=no)],
38 lockdir="\${VARDIR}/lib/samba"
39 piddir="\${VARDIR}/run"
40 mandir="\${prefix}/share/man"
41 logfilebase="\${VARDIR}/log/samba"
42 privatedir="\${CONFIGDIR}/private"
43 libdir="\${prefix}/lib/samba"
44 configdir="${sysconfdir}/samba"
45 swatdir="\${DATADIR}/samba/swat"
49 #################################################
50 # set private directory location
51 AC_ARG_WITH(privatedir,
52 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
56 # Just in case anybody calls it without argument
58 AC_MSG_WARN([--with-privatedir called without argument - will use default])
65 #################################################
66 # set lock directory location
68 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
72 # Just in case anybody calls it without argument
74 AC_MSG_WARN([--with-lockdir called without argument - will use default])
81 #################################################
82 # set pid directory location
84 [ --with-piddir=DIR Where to put pid files ($ac_default_prefix/var/locks)],
88 # Just in case anybody calls it without argument
90 AC_MSG_WARN([--with-piddir called without argument - will use default])
97 #################################################
98 # set SWAT directory location
100 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
104 # Just in case anybody does it
106 AC_MSG_WARN([--with-swatdir called without argument - will use default])
113 #################################################
114 # set configuration directory location
115 AC_ARG_WITH(configdir,
116 [ --with-configdir=DIR Where to put configuration files ($libdir)],
120 # Just in case anybody does it
122 AC_MSG_WARN([--with-configdir called without argument - will use default])
129 #################################################
130 # set log directory location
131 AC_ARG_WITH(logfilebase,
132 [ --with-logfilebase=DIR Where to put log files ($VARDIR)],
136 # Just in case anybody does it
138 AC_MSG_WARN([--with-logfilebase called without argument - will use default])
141 logfilebase="$withval"
145 #################################################
146 # set lib directory location
148 [ --with-libdir=DIR Where to put libdir ($libdir)],
152 # Just in case anybody does it
154 AC_MSG_WARN([--with-libdir without argument - will use default])
161 #################################################
162 # set lib directory location
164 [ --with-mandir=DIR Where to put man pages ($mandir)],
168 # Just in case anybody does it
170 AC_MSG_WARN([--with-mandir without argument - will use default])
178 [ --with-cfenc=HEADERDIR Use internal CoreFoundation encoding API
179 for optimization (Mac OS X/Darwin only)],
181 # May be in source $withval/CoreFoundation/StringEncodings.subproj.
182 # Should have been in framework $withval/CoreFoundation.framework/Headers.
184 $withval/CoreFoundation/StringEncodings.subproj \
185 $withval/StringEncodings.subproj \
186 $withval/CoreFoundation.framework/Headers \
190 if test -r $d/CFStringEncodingConverter.h; then
191 ln -sfh $d include/CoreFoundation
199 AC_SUBST(logfilebase)
205 dnl Unique-to-Samba variables we'll be playing with.
214 AC_SUBST(INSTALLCLIENT)
215 AC_SUBST(INSTALLCLIENTCMD_SH)
216 AC_SUBST(INSTALLCLIENTCMD_A)
217 AC_SUBST(LIBSMBCLIENT_SHARED)
218 AC_SUBST(LIBSMBCLIENT)
222 AC_SUBST(PASSDB_LIBS)
226 AC_SUBST(SHLIB_PROGS)
228 AC_SUBST(EXTRA_BIN_PROGS)
229 AC_SUBST(EXTRA_SBIN_PROGS)
230 AC_SUBST(EXTRA_ALL_TARGETS)
233 [ --enable-debug Turn on compiler debugging information (default=no)],
234 [if eval "test x$enable_debug = xyes"; then
235 CFLAGS="${CFLAGS} -g"
238 AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings and debugging (default=no)],
239 [if eval "test x$enable_developer = xyes"; then
241 CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
244 AC_ARG_ENABLE(krb5developer, [ --enable-krb5developer Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
245 [if eval "test x$enable_krb5developer = xyes"; then
247 CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
250 AC_ARG_ENABLE(dmalloc, [ --enable-dmalloc Enable heap debugging [default=no]])
252 if test "x$enable_dmalloc" = xyes
254 AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
255 AC_DEFINE(DMALLOC_FUNC_CHECK, 1,
256 [Define to check invariants around some common functions])
257 LIBS="$LIBS -ldmalloc"
260 dnl Checks for programs.
263 ## for some reason this macro resets the CFLAGS
264 ## so save and restore
276 AC_PATH_PROG(PERL, perl)
278 AC_CHECK_TOOL(AR, ar)
280 # compile with optimization and without debugging by default, but
281 # allow people to set their own preference.
282 if test "x$CFLAGS" = x
284 CFLAGS="-O ${CFLAGS}"
287 dnl Check if we use GNU ld
291 dnl needed before AC_TRY_COMPILE
294 dnl look for executable suffix
297 dnl Check if C compiler understands -c and -o at the same time
299 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
306 dnl Check if the C compiler understands -Werror
307 AC_CACHE_CHECK([that the C compiler understands -Werror],samba_cv_HAVE_Werror, [
312 }],[-Werror],[$CPPFLAGS],[$LDFLAGS],
313 samba_cv_HAVE_Werror=yes,samba_cv_HAVE_Werror=no,samba_cv_HAVE_Werror=cross)])
314 if test x"$samba_cv_HAVE_Werror" = x"yes"; then
315 Werror_FLAGS="-Werror"
317 dnl Check if the C compiler understands -w2
318 AC_CACHE_CHECK([that the C compiler understands -w2],samba_cv_HAVE_w2, [
323 }],[-w2],[$CPPFLAGS],[$LDFLAGS],
324 samba_cv_HAVE_w2=yes,samba_cv_HAVE_w2=no,samba_cv_HAVE_w2=cross)])
325 if test x"$samba_cv_HAVE_w2" = x"yes"; then
330 dnl Check if the C compiler understands volatile (it should, being ANSI).
331 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
332 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
333 samba_cv_volatile=yes,samba_cv_volatile=no)])
334 if test x"$samba_cv_volatile" = x"yes"; then
335 AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
338 UNAME_S=`(uname -s) 2>/dev/null` || UNAME_S="unknown"
339 AC_MSG_CHECKING(uname -s)
340 AC_MSG_RESULT(${UNAME_S})
342 UNAME_R=`(uname -r) 2>/dev/null` || UNAME_R="unknown"
343 AC_MSG_CHECKING(uname -r)
344 AC_MSG_RESULT(${UNAME_R})
346 UNAME_M=`(uname -m) 2>/dev/null` || UNAME_M="unknown"
347 AC_MSG_CHECKING(uname -m)
348 AC_MSG_RESULT(${UNAME_M})
350 UNAME_P=`(uname -p) 2>/dev/null` || UNAME_P="unknown"
351 AC_MSG_CHECKING(uname -p)
352 AC_MSG_RESULT(${UNAME_P})
356 dnl Add #include for broken IRIX header files
358 *irix6*) AC_ADD_INCLUDE(<standards.h>)
362 AC_VALIDATE_CACHE_SYSTEM_TYPE
366 dnl Add modules that have to be built by default here
367 dnl These have to be built static:
368 default_static_modules="pdb_smbpasswd pdb_tdbsam rpc_lsa rpc_samr rpc_reg rpc_lsa_ds rpc_wks rpc_net rpc_dfs rpc_srv rpc_spoolss auth_rhosts auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin"
370 dnl These are preferably build shared, and static if dlopen() is not available
371 default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy charset_CP850 charset_CP437"
373 if test "x$developer" = xyes; then
374 default_static_modules="$default_static_modules rpc_echo"
375 default_shared_modules="$default_shared_modules charset_weird"
379 # Config CPPFLAG settings for strange OS's that must be set
380 # before other tests. Do NOT invoke AC_CHECK_HEADERS within this
381 # case statement; its first reference must be unconditional.
384 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
388 # mmap on HPUX is completely broken...
389 AC_DEFINE(MMAP_BLACKLIST, 1, [Whether MMAP is broken])
390 if test $ac_cv_prog_cc_Ae = yes; then
391 CPPFLAGS="$CPPFLAGS -Ae"
394 # Defines needed for HPUX support.
395 # HPUX has bigcrypt but (sometimes?) doesn't use it for
396 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
400 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
401 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
402 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
403 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
404 AC_DEFINE(_ALIGNMENT_REQUIRED,1,[Required alignment])
405 AC_DEFINE(_MAX_ALIGNMENT,4,[Maximum alignment])
408 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
409 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
410 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
411 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
412 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to use large file support])
413 AC_DEFINE(_ALIGNMENT_REQUIRED, 1, [Required alignment])
414 AC_DEFINE(_MAX_ALIGNMENT, 4, [Maximum alignment])
421 # CRAY Unicos has broken const handling
423 AC_MSG_RESULT([disabling const])
424 CPPFLAGS="$CPPFLAGS -Dconst="
428 # AIX4.x doesn't even admit to having large
429 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
432 AC_MSG_RESULT([enabling large file support])
433 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
434 AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
437 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
438 # to the existance of large files..
439 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
440 # recommendations on large file support, however it makes the
441 # compile work using gcc 2.7 and 2.8, whereas using the Sun
442 # recommendation makes the compile fail on gcc2.7. JRA.
444 # Solaris uses SYSV printing. Make sure to set that here. --jerry
447 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
449 5.0*|5.1*|5.2*|5.3*|5.5*)
450 AC_MSG_RESULT([no large file support])
453 AC_MSG_RESULT([enabling large file support])
454 if test "$ac_cv_prog_gcc" = yes; then
455 ${CC-cc} -v >conftest.c 2>&1
456 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
458 case "$ac_cv_gcc_compiler_version_number" in
459 *"gcc version 2.6"*|*"gcc version 2.7"*)
460 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
461 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
464 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
465 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
466 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
470 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
471 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
472 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
478 # IRIX uses SYSV printing. Make sure to set that here
481 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
484 AC_DEFINE(FREEBSD, 1, [Whether the host os is FreeBSD])
487 # VOS may need to have POSIX support and System V compatibility enabled.
494 CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L"
495 AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Whether to enable POSIX support])
499 *-D_SYSV*|*-D_SVID_SOURCE*)
502 CPPFLAGS="$CPPFLAGS -D_SYSV"
503 AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
507 # Tests needed for SINIX large file support.
510 if test $host = mips-sni-sysv4 ; then
511 AC_MSG_CHECKING([for LFS support])
512 old_CPPFLAGS="$CPPFLAGS"
513 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
517 #if _LFS64_LARGEFILE == 1
522 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
523 CPPFLAGS="$old_CPPFLAGS"
524 if test x$SINIX_LFS_SUPPORT = xyes ; then
525 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
526 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
527 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
528 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
529 LIBS="`getconf LFS64_LIBS` $LIBS"
531 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
535 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
538 AC_MSG_CHECKING([for LFS support])
539 old_CPPFLAGS="$CPPFLAGS"
540 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
543 #include <sys/utsname.h>
547 #if _LFS64_LARGEFILE == 1
552 /* Ensure this is glibc 2.2 or higher */
553 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
554 int libc_major = __GLIBC__;
555 int libc_minor = __GLIBC_MINOR__;
563 /* Ensure this is kernel 2.4 or higher */
566 release = strdup(uts.release);
567 major = atoi(strsep(&release, "."));
568 minor = atoi(strsep(&release, "."));
570 if (major > 2 || (major == 2 && minor > 3))
577 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
578 CPPFLAGS="$old_CPPFLAGS"
579 if test x$LINUX_LFS_SUPPORT = xyes ; then
580 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
581 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
582 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
583 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
585 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
589 # MacOS X is the *only* system that uses compose character in utf8. This
590 # is so horribly broken....
593 AC_DEFINE(BROKEN_UNICODE_COMPOSE_CHARACTERS, 1, [Does this system use unicode compose characters])
594 # Add Fink directories for various packages, like dlcompat.
595 # Note: iconv does that explicitly below, but other packages
597 CPPFLAGS="$CPPFLAGS -I/sw/include"
598 LDFLAGS="$LDFLAGS -L/sw/lib"
600 # If we have dlsym_prepend_underscore (from Fink's dlcompat),
601 # use that instead of plain dlsym.
603 AC_CHECK_LIB(dl,dlopen)
604 AC_CHECK_FUNCS(dlsym_prepend_underscore,[CPPFLAGS="$CPPFLAGS -Ddlsym=dlsym_prepend_underscore"])
606 # Add a system specific charset module.
608 default_shared_modules="$default_shared_modules charset_macosxfs"
611 AC_MSG_CHECKING([for LFS support])
612 old_CPPFLAGS="$CPPFLAGS"
613 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
617 #if _LFS64_LARGEFILE == 1
622 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
623 CPPFLAGS="$old_CPPFLAGS"
624 if test x$GLIBC_LFS_SUPPORT = xyes ; then
625 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
626 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
627 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
629 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
639 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
640 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
641 AC_CHECK_HEADERS(rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
642 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
643 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
644 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
645 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
646 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h dlfcn.h)
647 AC_CHECK_HEADERS(sys/syslog.h syslog.h execinfo.h)
648 AC_CHECK_HEADERS(langinfo.h locale.h)
650 # Look for Darwin headers
651 old_CPPFLAGS="$CPPFLAGS"
652 CPPFLAGS="-Iinclude $CPPFLAGS"
653 AC_CHECK_HEADERS([CoreFoundation/CFStringEncodingConverter.h], [], [AC_CHECK_HEADERS([CFStringEncodingConverter.h])])
654 CPPFLAGS="$old_CPPFLAGS"
656 # In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a
657 # subdirectory of headers.
658 AC_CHECK_HEADERS(valgrind.h valgrind/valgrind.h valgrind/memcheck.h)
661 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
662 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
666 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
667 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
668 if test x"$ac_cv_header_shadow_h" = x"yes"; then
669 AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
673 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
674 AC_CHECK_HEADERS(nss.h nss_common.h nsswitch.h ns_api.h sys/security.h security/pam_appl.h security/pam_modules.h)
675 AC_CHECK_HEADERS(stropts.h poll.h)
676 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
677 AC_CHECK_HEADERS(sys/acl.h sys/attributes.h attr/xattr.h sys/xattr.h sys/cdefs.h glob.h)
679 # For experimental utmp support (lastlog on some BSD-like systems)
680 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
682 AC_CHECK_SIZEOF(int,cross)
683 AC_CHECK_SIZEOF(long,cross)
684 AC_CHECK_SIZEOF(short,cross)
699 AC_CHECK_TYPE(ino_t,unsigned)
700 AC_CHECK_TYPE(loff_t,off_t)
701 AC_CHECK_TYPE(offset_t,loff_t)
702 AC_CHECK_TYPE(ssize_t, int)
703 AC_CHECK_TYPE(wchar_t, unsigned short)
705 ############################################
706 # for cups support we need libcups, and a handful of header files
709 [ --enable-cups Turn on CUPS support (default=auto)])
711 if test x$enable_cups != xno; then
712 AC_PATH_PROG(CUPS_CONFIG, cups-config)
714 if test "x$CUPS_CONFIG" != x; then
715 AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
716 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
717 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
718 PRINT_LIBS="$PRINT_LIBS `$CUPS_CONFIG --libs`"
719 elif test x$enable_cups == xyes; then
720 AC_MSG_ERROR(Cups support required but cups-config not located. Make sure cups-devel related files are installed.)
724 ############################################
725 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code
726 AC_SEARCH_LIBS(dlopen, [dl])
727 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
729 ############################################
730 # check if the compiler can do immediate structures
731 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
735 typedef struct {unsigned x;} FOOBAR;
736 #define X_FOOBAR(x) ((FOOBAR) { x })
737 #define FOO_ONE X_FOOBAR(1)
745 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
746 if test x"$samba_cv_immediate_structures" = x"yes"; then
747 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures])
750 ############################################
751 # check if the compiler can do immediate structures
752 AC_CACHE_CHECK([if the compiler will optimize out function calls],samba_cv_optimize_out_funcation_calls, [
757 this_function_does_not_exist();
763 samba_cv_optimize_out_funcation_calls=yes,samba_cv_optimize_out_funcation_calls=no)])
764 if test x"$samba_cv_optimize_out_funcation_calls" = x"yes"; then
765 AC_DEFINE(HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS,1,[Whether the compiler will optimize out function calls])
768 ############################################
769 # check for unix domain sockets
770 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
772 #include <sys/types.h>
775 #include <sys/socket.h>
776 #include <sys/un.h>],
778 struct sockaddr_un sunaddr;
779 sunaddr.sun_family = AF_UNIX;
781 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
782 if test x"$samba_cv_unixsocket" = x"yes"; then
783 AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support])
787 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
789 #include <sys/types.h>
794 #include <sys/socket.h>],[socklen_t i = 0],
795 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
796 if test x"$samba_cv_socklen_t" = x"yes"; then
797 AC_DEFINE(HAVE_SOCKLEN_T_TYPE,1,[Whether we have the variable type socklen_t])
800 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
802 #include <sys/types.h>
807 #include <signal.h>],[sig_atomic_t i = 0],
808 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
809 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
810 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
813 # stupid headers have the functions but no declaration. grrrr.
814 AC_HAVE_DECL(errno, [#include <errno.h>])
815 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
816 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
817 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
818 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
819 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
820 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
822 # and glibc has setresuid under linux but the function does
823 # nothing until kernel 2.1.44! very dumb.
824 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
825 AC_TRY_RUN([#include <errno.h>
826 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
827 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
828 if test x"$samba_cv_have_setresuid" = x"yes"; then
829 AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
832 # Do the same check for setresguid...
834 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
835 AC_TRY_RUN([#include <unistd.h>
837 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
838 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
839 if test x"$samba_cv_have_setresgid" = x"yes"; then
840 AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
845 ###############################################
846 # Readline included by default unless explicitly asked not to
847 test "${with_readline+set}" != "set" && with_readline=yes
849 # test for where we get readline() from
850 AC_MSG_CHECKING(whether to use readline)
851 AC_ARG_WITH(readline,
852 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto) ],
853 [ case "$with_readline" in
857 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
858 AC_CHECK_HEADERS(readline/history.h)
860 AC_CHECK_HEADERS(readline.h readline/readline.h,[
861 for termlib in ncurses curses termcap terminfo termlib tinfo; do
862 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
864 AC_CHECK_LIB(readline, rl_callback_handler_install,
865 [TERMLIBS="-lreadline $TERMLIBS"
866 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
867 break], [TERMLIBS=], $TERMLIBS)])
875 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
876 # alternate readline path
878 _cppflags=${CPPFLAGS}
880 # Add additional search path
881 LDFLAGS="-L$with_readline/lib $LDFLAGS"
882 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
884 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
885 AC_CHECK_HEADERS(readline/history.h)
887 AC_CHECK_HEADERS(readline.h readline/readline.h,[
888 for termlib in ncurses curses termcap terminfo termlib; do
889 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
891 AC_CHECK_LIB(readline, rl_callback_handler_install,
892 [TERMLDFLAGS="-L$with_readline/lib"
893 TERMCPPFLAGS="-I$with_readline/include"
894 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
895 TERMLIBS="-lreadline $TERMLIBS"
896 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
897 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
905 AC_SUBST(TERMLDFLAGS)
907 # The readline API changed slightly from readline3 to readline4, so
908 # code will generate warnings on one of them unless we have a few
910 AC_CHECK_LIB(readline, rl_completion_matches,
911 [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
912 [Do we have rl_completion_matches?])],
916 # The following test taken from the cvs sources
917 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
918 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
919 # libsocket.so which has a bad implementation of gethostbyname (it
920 # only looks in /etc/hosts), so we only look for -lsocket if we need
922 AC_CHECK_FUNCS(connect)
923 if test x"$ac_cv_func_connect" = x"no"; then
926 *) AC_CHECK_LIB(nsl_s, printf) ;;
930 *) AC_CHECK_LIB(nsl, printf) ;;
934 *) AC_CHECK_LIB(socket, connect) ;;
938 *) AC_CHECK_LIB(inet, connect) ;;
940 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
942 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
943 test x"$ac_cv_lib_inet_connect" = x"yes"; then
944 # ac_cv_func_connect=yes
945 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
946 AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
950 ###############################################
951 # test for where we get yp_get_default_domain() from
952 AC_SEARCH_LIBS(yp_get_default_domain, [nsl])
953 AC_CHECK_FUNCS(yp_get_default_domain)
955 # Check if we have execl, if not we need to compile smbrun.
956 AC_CHECK_FUNCS(execl)
957 if test x"$ac_cv_func_execl" = x"no"; then
958 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)"
961 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
962 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid)
963 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
964 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
965 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
966 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
967 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
968 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
969 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
970 AC_CHECK_FUNCS(syslog vsyslog timegm)
971 AC_CHECK_FUNCS(setlocale nl_langinfo)
972 # setbuffer, shmget, shm_open are needed for smbtorture
973 AC_CHECK_FUNCS(setbuffer shmget shm_open backtrace_symbols)
974 AC_CHECK_HEADERS(libexc.h)
975 AC_CHECK_LIB(exc, trace_back_stack)
977 # syscall() is needed for smbwrapper.
978 AC_CHECK_FUNCS(syscall)
980 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
981 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
982 AC_CHECK_FUNCS(__getcwd _getcwd)
983 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
984 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
985 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
986 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
987 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
988 AC_CHECK_FUNCS(getdirentries _write __write _fork __fork)
989 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
990 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
991 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
992 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
993 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
1000 # glibc <= 2.3.2 has a broken getgrouplist
1003 #include <sys/utsname.h>
1005 /* glibc up to 2.3 has a broken getgrouplist */
1006 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
1007 int libc_major = __GLIBC__;
1008 int libc_minor = __GLIBC_MINOR__;
1012 if ((libc_major == 2) && (libc_minor <= 3))
1017 ], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no])
1018 if test x"$linux_getgrouplist_ok" = x"yes"; then
1019 AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
1023 AC_CHECK_FUNCS(getgrouplist)
1028 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
1031 if test x$ac_cv_func_stat64 = xno ; then
1032 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
1034 #if defined(HAVE_UNISTD_H)
1037 #include <sys/stat.h>
1038 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
1039 AC_MSG_RESULT([$ac_cv_func_stat64])
1040 if test x$ac_cv_func_stat64 = xyes ; then
1041 AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
1045 if test x$ac_cv_func_lstat64 = xno ; then
1046 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
1048 #if defined(HAVE_UNISTD_H)
1051 #include <sys/stat.h>
1052 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
1053 AC_MSG_RESULT([$ac_cv_func_lstat64])
1054 if test x$ac_cv_func_lstat64 = xyes ; then
1055 AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
1059 if test x$ac_cv_func_fstat64 = xno ; then
1060 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
1062 #if defined(HAVE_UNISTD_H)
1065 #include <sys/stat.h>
1066 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
1067 AC_MSG_RESULT([$ac_cv_func_fstat64])
1068 if test x$ac_cv_func_fstat64 = xyes ; then
1069 AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
1073 #####################################
1074 # we might need the resolv library on some systems
1075 AC_CHECK_LIB(resolv, dn_expand)
1078 # Check for the functions putprpwnam, set_auth_parameters,
1079 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
1080 # Needed for OSF1 and HPUX.
1083 AC_LIBTESTFUNC(security, putprpwnam)
1084 AC_LIBTESTFUNC(sec, putprpwnam)
1086 AC_LIBTESTFUNC(security, set_auth_parameters)
1087 AC_LIBTESTFUNC(sec, set_auth_parameters)
1089 # UnixWare 7.x has its getspnam in -lgen
1090 AC_LIBTESTFUNC(gen, getspnam)
1092 AC_LIBTESTFUNC(security, getspnam)
1093 AC_LIBTESTFUNC(sec, getspnam)
1095 AC_LIBTESTFUNC(security, bigcrypt)
1096 AC_LIBTESTFUNC(sec, bigcrypt)
1098 AC_LIBTESTFUNC(security, getprpwnam)
1099 AC_LIBTESTFUNC(sec, getprpwnam)
1101 ############################################
1102 # Check if we have libattr
1103 AC_SEARCH_LIBS(getxattr, [attr])
1104 AC_CHECK_FUNCS(getxattr lgetxattr fgetxattr listxattr llistxattr)
1105 AC_CHECK_FUNCS(flistxattr removexattr lremovexattr fremovexattr)
1106 AC_CHECK_FUNCS(setxattr lsetxattr fsetxattr)
1107 AC_CHECK_FUNCS(attr_get attr_list attr_set attr_remove)
1108 AC_CHECK_FUNCS(attr_getf attr_listf attr_setf attr_removef)
1110 # Assume non-shared by default and override below
1113 # these are the defaults, good for lots of systems
1117 SHLD="\${CC} \${CFLAGS}"
1122 if test "$enable_shared" = "yes"; then
1123 # this bit needs to be modified for each OS that is suported by
1124 # smbwrapper. You need to specify how to created a shared library and
1125 # how to compile C code to produce PIC object files
1127 AC_MSG_CHECKING([ability to build shared libraries])
1129 # and these are for particular systems
1131 *linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux])
1134 DYNEXP="-Wl,--export-dynamic"
1136 SONAMEFLAG="-Wl,-soname="
1137 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1139 *solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
1143 if test "${GCC}" = "yes"; then
1145 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
1150 ## ${CFLAGS} added for building 64-bit shared
1151 ## libs using Sun's Compiler
1152 LDSHFLAGS="-G \${CFLAGS}"
1155 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1156 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1158 *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
1161 SONAMEFLAG="-Wl,-h,"
1162 PICFLAGS="-KPIC" # Is this correct for SunOS
1163 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1164 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1166 *netbsd* | *freebsd*) BLDSHARED="true"
1168 DYNEXP="-Wl,--export-dynamic"
1169 SONAMEFLAG="-Wl,-soname,"
1170 PICFLAGS="-fPIC -DPIC"
1171 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1172 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1174 *openbsd*) BLDSHARED="true"
1176 DYNEXP="-Wl,-Bdynamic"
1177 SONAMEFLAG="-Wl,-soname,"
1179 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1180 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1182 *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
1184 *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
1188 LDSHFLAGS="-set_version sgi1.0 -shared"
1189 SONAMEFLAG="-soname "
1191 if test "${GCC}" = "yes"; then
1196 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1198 *aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
1200 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry,-berok"
1201 DYNEXP="-Wl,-brtl,-bexpall"
1203 if test "${GCC}" != "yes"; then
1204 ## for funky AIX compiler using strncpy()
1205 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
1208 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
1210 *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
1212 # Use special PIC flags for the native HP-UX compiler.
1213 if test $ac_cv_prog_cc_Ae = yes; then
1216 LDSHFLAGS="-B symbolic -b -z"
1219 elif test "${GCC}" = "yes"; then
1223 AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
1224 AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element])
1226 *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx])
1227 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1229 *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
1232 SONAMEFLAG="-Wl,-soname,"
1234 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1235 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1237 *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix])
1238 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1240 *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
1243 SONAMEFLAG="-Wl,-soname,"
1245 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1247 *next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
1248 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1250 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
1251 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1253 *sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1255 *-univel-*) if [ test "$GCC" != yes ]; then
1256 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1261 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
1263 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1266 *sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1267 if [ test "$GCC" != yes ]; then
1268 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1271 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1273 *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
1278 *darwin*) AC_DEFINE(DARWINOS,1,[Whether the host os is Darwin/MacOSX])
1280 LDSHFLAGS="-bundle -flat_namespace -undefined suppress"
1282 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1286 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1290 AC_MSG_RESULT($BLDSHARED)
1291 AC_MSG_CHECKING([linker flags for shared libraries])
1292 AC_MSG_RESULT([$LDSHFLAGS])
1293 AC_MSG_CHECKING([compiler flags for position-independent code])
1294 AC_MSG_RESULT([$PICFLAGS])
1297 #######################################################
1298 # test whether building a shared library actually works
1299 if test $BLDSHARED = true; then
1300 AC_CACHE_CHECK([whether building shared libraries actually works],
1301 [ac_cv_shlib_works],[
1302 ac_cv_shlib_works=no
1303 # try building a trivial shared library
1304 $CC $CPPFLAGS $CFLAGS $PICFLAGS -c -o \
1305 shlib.$PICSUFFIX ${srcdir-.}/tests/shlib.c && \
1306 $CC $CPPFLAGS $CFLAGS `eval echo $LDSHFLAGS` -o "shlib.$SHLIBEXT" \
1307 shlib.$PICSUFFIX && \
1308 ac_cv_shlib_works=yes
1309 rm -f "shlib.$SHLIBEXT" shlib.$PICSUFFIX
1311 if test $ac_cv_shlib_works = no; then
1318 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1319 AC_TRY_RUN([#include <stdio.h>
1320 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1321 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1322 if test x"$samba_cv_have_longlong" = x"yes"; then
1323 AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1327 # Check if the compiler supports the LL prefix on long long integers.
1330 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1331 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1332 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1333 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1334 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
1338 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1339 AC_TRY_RUN([#include <stdio.h>
1340 #include <sys/stat.h>
1341 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1342 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1343 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1344 AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1347 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1349 #if defined(HAVE_UNISTD_H)
1353 #include <sys/stat.h>
1354 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1355 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1356 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1357 AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1360 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1361 AC_TRY_RUN([#include <stdio.h>
1362 #include <sys/stat.h>
1363 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1364 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1365 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1366 AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1369 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1371 #if defined(HAVE_UNISTD_H)
1375 #include <sys/stat.h>
1376 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1377 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1378 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1379 AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1382 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1384 #if defined(HAVE_UNISTD_H)
1388 #include <sys/stat.h>
1389 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1390 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1391 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1392 AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
1395 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1397 #if defined(HAVE_UNISTD_H)
1400 #include <sys/types.h>
1401 #include <dirent.h>],
1402 [struct dirent64 de;],
1403 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1404 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1405 AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1408 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1410 #if defined(HAVE_UNISTD_H)
1413 #include <sys/types.h>
1414 main() { dev_t dev; int i = major(dev); return 0; }],
1415 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1416 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1417 AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
1420 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1422 #if defined(HAVE_UNISTD_H)
1425 #include <sys/types.h>
1426 main() { dev_t dev; int i = minor(dev); return 0; }],
1427 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1428 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1429 AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
1432 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1433 AC_TRY_RUN([#include <stdio.h>
1434 main() { char c; c=250; exit((c > 0)?0:1); }],
1435 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1436 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1437 AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1440 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1441 AC_TRY_COMPILE([#include <sys/types.h>
1442 #include <sys/socket.h>
1443 #include <netinet/in.h>],
1444 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1445 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1446 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1447 AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
1450 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1451 AC_TRY_COMPILE([#include <sys/types.h>
1453 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1454 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1455 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1456 AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
1459 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1460 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1461 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1462 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1463 AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
1466 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1468 #include <sys/time.h>
1470 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1471 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1472 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1473 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available])
1476 AC_CACHE_CHECK([for va_copy],samba_cv_HAVE_VA_COPY,[
1477 AC_TRY_LINK([#include <stdarg.h>
1478 va_list ap1,ap2;], [va_copy(ap1,ap2);],
1479 samba_cv_HAVE_VA_COPY=yes,
1480 samba_cv_HAVE_VA_COPY=no)])
1481 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1482 AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
1484 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE___VA_COPY,[
1485 AC_TRY_LINK([#include <stdarg.h>
1486 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1487 samba_cv_HAVE___VA_COPY=yes,
1488 samba_cv_HAVE___VA_COPY=no)])
1489 if test x"$samba_cv_HAVE___VA_COPY" = x"yes"; then
1490 AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
1494 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1496 #include <sys/types.h>
1498 void foo(const char *format, ...) {
1503 va_start(ap, format);
1504 len = vsnprintf(buf, 0, format, ap);
1506 if (len != 5) exit(1);
1508 va_start(ap, format);
1509 len = vsnprintf(0, 0, format, ap);
1511 if (len != 5) exit(1);
1513 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1517 main() { foo("hello"); }
1519 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1520 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1521 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
1524 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1525 AC_TRY_RUN([#include <sys/types.h>
1527 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1528 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1529 di->d_name[0] == 0) exit(0); exit(1);} ],
1530 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1531 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1532 AC_DEFINE(HAVE_BROKEN_READDIR,1,[Whether readdir() is broken])
1535 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1536 AC_TRY_COMPILE([#include <sys/types.h>
1537 #include <utime.h>],
1538 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1539 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1540 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1541 AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
1545 # Check utmp details, but only if our OS offers utmp.h
1546 if test x"$ac_cv_header_utmp_h" = x"yes"; then
1547 dnl utmp and utmpx come in many flavours
1548 dnl We need to check for many of them
1549 dnl But we don't need to do each and every one, because our code uses
1550 dnl mostly just the utmp (not utmpx) fields.
1552 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1554 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1555 AC_TRY_COMPILE([#include <sys/types.h>
1557 [struct utmp ut; ut.ut_name[0] = 'a';],
1558 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1559 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1560 AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
1563 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1564 AC_TRY_COMPILE([#include <sys/types.h>
1566 [struct utmp ut; ut.ut_user[0] = 'a';],
1567 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1568 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1569 AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
1572 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1573 AC_TRY_COMPILE([#include <sys/types.h>
1575 [struct utmp ut; ut.ut_id[0] = 'a';],
1576 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1577 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1578 AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
1581 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1582 AC_TRY_COMPILE([#include <sys/types.h>
1584 [struct utmp ut; ut.ut_host[0] = 'a';],
1585 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1586 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1587 AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
1590 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1591 AC_TRY_COMPILE([#include <sys/types.h>
1593 [struct utmp ut; time_t t; ut.ut_time = t;],
1594 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1595 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1596 AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
1599 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1600 AC_TRY_COMPILE([#include <sys/types.h>
1602 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
1603 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1604 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1605 AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
1608 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1609 AC_TRY_COMPILE([#include <sys/types.h>
1611 [struct utmp ut; ut.ut_type = 0;],
1612 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1613 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1614 AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
1617 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1618 AC_TRY_COMPILE([#include <sys/types.h>
1620 [struct utmp ut; ut.ut_pid = 0;],
1621 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1622 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1623 AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
1626 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1627 AC_TRY_COMPILE([#include <sys/types.h>
1629 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1630 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1631 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1632 AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
1635 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1636 AC_TRY_COMPILE([#include <sys/types.h>
1638 [struct utmp ut; ut.ut_addr = 0;],
1639 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1640 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1641 AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
1644 if test x$ac_cv_func_pututline = xyes ; then
1645 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1646 AC_TRY_COMPILE([#include <sys/types.h>
1648 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1649 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1650 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1651 AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
1655 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1656 AC_TRY_COMPILE([#include <sys/types.h>
1657 #include <utmpx.h>],
1658 [struct utmpx ux; ux.ut_syslen = 0;],
1659 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1660 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1661 AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
1668 ICONV_LOCATION=standard
1669 LOOK_DIRS="/usr /usr/local /sw /opt"
1670 AC_ARG_WITH(libiconv,
1671 [ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1673 if test "$withval" = "no" ; then
1674 AC_MSG_ERROR([argument to --with-libiconv must be a directory])
1676 if test "$withval" != "yes" ; then
1678 LOOK_DIRS="$withval"
1685 for i in $LOOK_DIRS ; do
1687 save_LDFLAGS=$LDFLAGS
1688 save_CPPFLAGS=$CPPFLAGS
1689 CPPFLAGS="$CPPFLAGS -I$i/include"
1690 dnl This is here to handle -withval stuff for --with-libiconv
1691 dnl Perhaps we should always add a -L
1693 dnl Check lib and lib32 library variants to cater for IRIX ABI-specific
1694 dnl installation paths.
1695 for l in "lib" "lib32" ; do
1696 LDFLAGS="$LDFLAGS -L$i/$l"
1698 export LDFLAGS LIBS CPPFLAGS
1699 dnl Try to find iconv(3)
1701 if test "$ICONV_FOUND" = yes; then
1707 if test "$ICONV_FOUND" = yes; then
1708 LDFLAGS=$save_LDFLAGS
1709 LIB_ADD_DIR(LDFLAGS, "$i/$libext")
1710 CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
1713 export LDFLAGS LIBS CPPFLAGS
1714 dnl Now, check for a working iconv ... we want to do it here because
1715 dnl there might be a working iconv further down the list of LOOK_DIRS
1718 # check for iconv in libc
1719 ic_save_LIBS="$LIBS"
1720 if test x"$ICONV_PATH_SPEC" = "xyes" ; then
1721 LIBS="$LIBS -L$ICONV_LOCATION/lib"
1723 if test x"$jm_cv_lib_iconv" != x; then
1724 LIBS="$LIBS -l$jm_cv_lib_iconv"
1726 dnl AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1727 default_dos_charset=no
1728 default_display_charset=no
1729 default_unix_charset=no
1731 # check for default dos charset name
1732 for j in CP850 IBM850 ; do
1734 if test x"$ICONV_CHARSET" = x"$j"; then
1735 default_dos_charset="\"$j\""
1739 # check for default display charset name
1740 for j in ASCII 646 ; do
1742 if test x"$ICONV_CHARSET" = x"$j"; then
1743 default_display_charset="\"$j\""
1747 # check for default unix charset name
1748 for j in UTF-8 UTF8 ; do
1750 if test x"$ICONV_CHARSET" = x"$j"; then
1751 default_unix_charset="\"$j\""
1756 if test "$default_dos_charset" != "no" -a \
1757 "$default_dos_charset" != "cross" -a \
1758 "$default_display_charset" != "no" -a \
1759 "$default_display_charset" != "cross" -a \
1760 "$default_unix_charset" != "no" -a \
1761 "$default_unix_charset" != "cross"
1763 samba_cv_HAVE_NATIVE_ICONV=yes
1764 else if test "$default_dos_charset" = "cross" -o \
1765 "$default_display_charset" = "cross" -o \
1766 "$default_unix_charset" = "cross"
1768 samba_cv_HAVE_NATIVE_ICONV=cross
1770 samba_cv_HAVE_NATIVE_ICONV=no
1775 LIBS="$ic_save_LIBS"
1776 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1777 CPPFLAGS=$save_CPPFLAGS
1778 LDFLAGS=$save_LDFLAGS
1780 if test x"$jm_cv_lib_iconv" != x; then
1781 LIBS="$LIBS -l$jm_cv_lib_iconv"
1783 dnl Add the flags we need to CPPFLAGS and LDFLAGS
1784 CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
1785 LIB_ADD_DIR(LDFLAGS, "$i/$libext")
1787 AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
1788 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,$default_dos_charset,[Default dos charset name])
1789 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,$default_display_charset,[Default display charset name])
1790 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,$default_unix_charset,[Default unix charset name])
1793 dnl We didn't find a working iconv, so keep going
1795 dnl We only need to clean these up here for the next pass through the loop
1796 CPPFLAGS=$save_CPPFLAGS
1797 LDFLAGS=$save_LDFLAGS
1799 export LDFLAGS LIBS CPPFLAGS
1804 if test x"$ICONV_FOUND" = x"no" -o x"$samba_cv_HAVE_NATIVE_ICONV" != x"yes" ; then
1805 AC_MSG_WARN([Sufficient support for iconv function was not found.
1806 Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!])
1807 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,"ASCII",[Default dos charset name])
1808 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,"ASCII",[Default display charset name])
1809 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,"UTF8",[Default unix charset name])
1813 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1815 #include <sys/types.h>
1818 #define F_GETLEASE 1025
1821 int fd = open("/dev/null", O_RDONLY);
1822 return fcntl(fd, F_GETLEASE, 0) == -1;
1825 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1826 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1827 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
1830 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1832 #include <sys/types.h>
1836 #define F_NOTIFY 1026
1839 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1842 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1843 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1844 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
1847 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1849 #include <sys/types.h>
1852 #include <sys/file.h>
1854 #define LOCK_MAND 32
1855 #define LOCK_READ 64
1858 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1861 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1862 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1863 AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
1869 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1870 AC_TRY_COMPILE([#include <sys/types.h>
1871 #include <fcntl.h>],
1872 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1873 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1874 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1875 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
1878 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1879 AC_TRY_RUN([#include <sys/types.h>
1880 #include <sys/capability.h>
1883 if ((cap = cap_get_proc()) == NULL)
1885 cap->cap_effective |= CAP_NETWORK_MGT;
1886 cap->cap_inheritable |= CAP_NETWORK_MGT;
1891 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1892 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1893 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES,1,[Whether IRIX specific capabilities are available])
1897 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1898 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1901 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1902 AC_TRY_COMPILE([#include <sys/types.h>
1903 #if defined(HAVE_RPC_RPC_H)
1904 #include <rpc/rpc.h>
1907 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1908 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1909 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
1912 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1913 AC_TRY_COMPILE([#include <sys/types.h>
1914 #if defined(HAVE_RPC_RPC_H)
1915 #include <rpc/rpc.h>
1918 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1919 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1920 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
1923 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1924 AC_TRY_COMPILE([#include <sys/types.h>
1925 #if defined(HAVE_RPC_RPC_H)
1926 #include <rpc/rpc.h>
1929 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1930 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1931 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
1934 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1935 AC_TRY_COMPILE([#include <sys/types.h>
1936 #if defined(HAVE_RPC_RPC_H)
1937 #include <rpc/rpc.h>
1940 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1941 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1942 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
1946 dnl Some systems (SCO) have a problem including
1947 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1948 dnl as a #define in <prot.h> and as part of an enum
1952 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1953 AC_TRY_COMPILE([#include <sys/types.h>
1954 #ifdef HAVE_SYS_SECURITY_H
1955 #include <sys/security.h>
1957 #endif /* HAVE_SYS_SECURITY_H */
1958 #if defined(HAVE_RPC_RPC_H)
1959 #include <rpc/rpc.h>
1962 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1963 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1964 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
1967 AC_MSG_CHECKING([for test routines])
1968 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1970 AC_MSG_ERROR([cant find test code. Aborting config]),
1971 AC_MSG_WARN([cannot run when cross-compiling]))
1973 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1974 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1975 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1976 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1977 AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
1980 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1981 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1982 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1983 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1984 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1985 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1987 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1990 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1991 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1992 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1993 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1994 AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
1997 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1998 SAVE_CPPFLAGS="$CPPFLAGS"
1999 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper"
2001 #define REPLACE_GETPASS 1
2002 #define NO_PROTO_H 1
2003 #define NO_CONFIG_H 1
2004 #define main dont_declare_main
2005 #include "${srcdir-.}/lib/getsmbpass.c"
2007 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
2008 CPPFLAGS="$SAVE_CPPFLAGS"
2010 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
2011 AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced])
2014 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
2017 #include <sys/types.h>
2018 #include <netinet/in.h>
2019 #ifdef HAVE_ARPA_INET_H
2020 #include <arpa/inet.h>
2022 main() { struct in_addr ip; ip.s_addr = 0x12345678;
2023 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
2024 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
2026 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
2027 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
2028 AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced])
2031 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
2032 AC_TRY_RUN([#include <stdlib.h>
2033 #include <sys/types.h>
2034 #include <sys/stat.h>
2038 char tpl[20]="/tmp/test.XXXXXX";
2039 int fd = mkstemp(tpl);
2040 if (fd == -1) exit(1);
2042 if (fstat(fd, &st) != 0) exit(1);
2043 if ((st.st_mode & 0777) != 0600) exit(1);
2046 samba_cv_HAVE_SECURE_MKSTEMP=yes,
2047 samba_cv_HAVE_SECURE_MKSTEMP=no,
2048 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
2049 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
2050 AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
2053 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
2054 AC_TRY_RUN([#include <unistd.h>
2055 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
2056 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
2057 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
2058 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX,1,[Whether sysconf(_SC_NGROUPS_MAX) is available])
2061 AC_CACHE_CHECK([for sysconf(_SC_NPROC_ONLN)],samba_cv_SYSCONF_SC_NPROC_ONLN,[
2062 AC_TRY_RUN([#include <unistd.h>
2063 main() { exit(sysconf(_SC_NPROC_ONLN) == -1 ? 1 : 0); }],
2064 samba_cv_SYSCONF_SC_NPROC_ONLN=yes,samba_cv_SYSCONF_SC_NPROC_ONLN=no,samba_cv_SYSCONF_SC_NPROC_ONLN=cross)])
2065 if test x"$samba_cv_SYSCONF_SC_NPROC_ONLN" = x"yes"; then
2066 AC_DEFINE(SYSCONF_SC_NPROC_ONLN,1,[Whether sysconf(_SC_NPROC_ONLN) is available])
2069 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
2070 AC_TRY_RUN([main() { exit(getuid() != 0); }],
2071 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
2072 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
2073 AC_DEFINE(HAVE_ROOT,1,[Whether current user is root])
2075 AC_MSG_WARN(running as non-root will disable some tests)
2079 # look for a method of finding the list of network interfaces
2081 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
2083 #define HAVE_IFACE_AIX 1
2084 #define AUTOCONF_TEST 1
2085 #include "confdefs.h"
2086 #include "${srcdir-.}/lib/interfaces.c"],
2087 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
2088 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
2089 iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
2092 if test $iface = no; then
2093 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
2095 #define HAVE_IFACE_IFCONF 1
2096 #define AUTOCONF_TEST 1
2097 #include "confdefs.h"
2098 #include "${srcdir-.}/lib/interfaces.c"],
2099 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
2100 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
2101 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
2105 if test $iface = no; then
2106 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
2108 #define HAVE_IFACE_IFREQ 1
2109 #define AUTOCONF_TEST 1
2110 #include "confdefs.h"
2111 #include "${srcdir-.}/lib/interfaces.c"],
2112 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
2113 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
2114 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
2119 ################################################
2120 # look for a method of setting the effective uid
2122 if test $seteuid = no; then
2123 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
2125 #define AUTOCONF_TEST 1
2126 #define USE_SETRESUID 1
2127 #include "confdefs.h"
2128 #include "${srcdir-.}/lib/util_sec.c"],
2129 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
2130 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
2131 seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
2136 if test $seteuid = no; then
2137 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
2139 #define AUTOCONF_TEST 1
2140 #define USE_SETREUID 1
2141 #include "confdefs.h"
2142 #include "${srcdir-.}/lib/util_sec.c"],
2143 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
2144 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
2145 seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
2149 if test $seteuid = no; then
2150 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
2152 #define AUTOCONF_TEST 1
2153 #define USE_SETEUID 1
2154 #include "confdefs.h"
2155 #include "${srcdir-.}/lib/util_sec.c"],
2156 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
2157 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
2158 seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
2162 if test $seteuid = no; then
2163 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
2165 #define AUTOCONF_TEST 1
2166 #define USE_SETUIDX 1
2167 #include "confdefs.h"
2168 #include "${srcdir-.}/lib/util_sec.c"],
2169 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
2170 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
2171 seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
2176 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
2177 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
2178 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
2179 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
2180 AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
2183 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
2184 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
2185 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
2186 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
2187 AC_DEFINE(FTRUNCATE_NEEDS_ROOT,1,[Whether ftruncate() needs root])
2190 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
2191 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
2192 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
2193 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
2194 AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
2197 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
2198 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
2199 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
2200 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
2201 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
2206 dnl Don't check for 64 bit fcntl locking if we know that the
2207 dnl glibc2.1 broken check has succeeded.
2210 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
2212 #if defined(HAVE_UNISTD_H)
2222 #ifdef HAVE_SYS_FCNTL_H
2223 #include <sys/fcntl.h>
2225 main() { struct flock64 fl64;
2226 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
2232 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
2234 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
2235 AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
2239 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
2240 AC_TRY_COMPILE([#include <sys/types.h>
2241 #include <sys/stat.h>
2242 #include <unistd.h>],
2243 [struct stat st; st.st_blocks = 0;],
2244 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
2245 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
2246 AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
2249 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
2250 AC_TRY_COMPILE([#include <sys/types.h>
2251 #include <sys/stat.h>
2252 #include <unistd.h>],
2253 [struct stat st; st.st_blksize = 0;],
2254 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
2255 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
2256 AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
2261 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
2263 #ifdef HAVE_SYS_VFS_H
2264 #include <sys/vfs.h>
2266 #ifdef HAVE_SYS_CAPABILITY_H
2267 #include <sys/capability.h>
2270 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
2271 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
2272 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
2277 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
2279 #include <sys/types.h>
2280 #include <sys/acl.h>
2281 #if defined(HAVE_RPCSVC_NIS_H)
2282 #include <rpcsvc/nis.h>
2285 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
2286 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
2287 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
2290 AC_CACHE_CHECK([if the realpath function allows a NULL argument],samba_cv_REALPATH_TAKES_NULL,[
2295 char *newpath = realpath("/tmp", NULL);
2296 exit ((newpath != NULL) ? 0 : 1);
2299 samba_cv_REALPATH_TAKES_NULL=yes,samba_cv_REALPATH_TAKES_NULL=no,samba_cv_REALPATH_TAKES_NULL=cross)])
2300 if test x"$samba_cv_REALPATH_TAKES_NULL" = x"yes"; then
2301 AC_DEFINE(REALPATH_TAKES_NULL,1,[Whether the realpath function allows NULL])
2305 #################################################
2306 # check for smbwrapper support
2307 AC_MSG_CHECKING(whether to use smbwrapper)
2308 AC_ARG_WITH(smbwrapper,
2309 [ --with-smbwrapper Include SMB wrapper support (default=no) ],
2310 [ case "$withval" in
2313 AC_DEFINE(WITH_SMBWRAPPER,1,[Whether to include smbwrapper support])
2314 WRAPPROG="bin/smbsh\$(EXEEXT)"
2315 WRAP="bin/smbwrapper.$SHLIBEXT"
2317 # Conditions under which smbwrapper should not be built.
2319 if test x$PICFLAGS = x; then
2320 echo No support for PIC code - disabling smbwrapper and smbsh
2323 elif test x$ac_cv_func_syscall = xno; then
2324 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
2328 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $WRAPPROG $WRAP"
2329 SMBWRAPPER="$WRAPPROG $WRAP"
2338 #################################################
2339 # check for AFS clear-text auth support
2340 samba_cv_WITH_AFS=no
2341 AC_MSG_CHECKING(whether to use AFS clear-text auth)
2343 [ --with-afs Include AFS clear-text auth support (default=no) ],
2344 [ case "$withval" in
2346 AC_MSG_RESULT($withval)
2347 samba_cv_WITH_AFS=$withval
2356 ####################################################
2357 # check for Linux-specific AFS fake-kaserver support
2358 samba_cv_WITH_FAKE_KASERVER=no
2359 AC_MSG_CHECKING(whether to use AFS fake-kaserver)
2360 AC_ARG_WITH(fake-kaserver,
2361 [ --with-fake-kaserver Include AFS fake-kaserver support (default=no) ],
2362 [ case "$withval" in
2364 AC_MSG_RESULT($withval)
2365 samba_cv_WITH_FAKE_KASERVER=$withval
2374 #################################################
2375 # decide whether we can support WITH_AFS and / or WITH_FAKE_KASERVER
2376 if test x"$samba_cv_WITH_AFS" != x"no" ||
2377 test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then
2379 # see if this box has the afs-headers in /usr/include/afs
2380 AC_MSG_CHECKING(for /usr/include/afs)
2381 if test -d /usr/include/afs; then
2382 CFLAGS="$CFLAGS -I/usr/include/afs"
2383 CPPFLAGS="$CPPFLAGS -I/usr/include/afs"
2391 AC_CHECK_HEADERS(afs.h afs/afs.h)
2392 if test x"$ac_cv_header_afs_h" = x"no" && test x"$ac_cv_header_afs_afs_h" = x"no"; then
2393 if test x"$samba_cv_WITH_FAKE_KASERVER" = x"auto" ||
2394 test x"$samba_cv_WITH_AFS" = x"auto"; then
2395 AC_MSG_WARN([AFS cannot be supported without afs.h])
2397 AC_MSG_ERROR([AFS cannot be supported without afs.h])
2400 have_afs_headers=yes
2404 if test x"$samba_cv_WITH_FAKE_KASERVER" != x"no" && test x"$have_afs_headers" == x"yes"; then
2405 AC_DEFINE(WITH_FAKE_KASERVER,1,[Whether to include AFS fake-kaserver support])
2408 #################################################
2409 # check whether to compile AFS/NT ACL mapping module
2410 samba_cv_WITH_VFS_AFSACL=no
2411 AC_MSG_CHECKING(whether to use AFS fake-kaserver)
2412 AC_ARG_WITH(vfs-afsacl,
2413 [ --with-vfs-afsacl Include AFS to NT ACL mapping module (default=no) ],
2414 [ case "$withval" in
2416 AC_MSG_RESULT($withval)
2417 samba_cv_WITH_VFS_AFSACL=yes
2426 if test x"$samba_cv_WITH_VFS_AFSACL" == x"yes"; then
2427 default_shared_modules="$default_shared_modules vfs_afsacl"
2430 if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then
2431 AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
2434 #################################################
2435 # check for the DFS clear-text auth system
2436 AC_MSG_CHECKING(whether to use DFS clear-text auth)
2438 [ --with-dce-dfs Include DCE/DFS clear-text auth support (default=no)],
2439 [ case "$withval" in
2442 AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
2451 ########################################################
2452 # Compile with LDAP support?
2454 with_ldap_support=auto
2455 AC_MSG_CHECKING([for LDAP support])
2458 [ --with-ldap LDAP support (default yes)],
2459 [ case "$withval" in
2461 with_ldap_support=$withval
2465 AC_MSG_RESULT($with_ldap_support)
2469 if test x"$with_ldap_support" != x"no"; then
2471 ##################################################################
2472 # first test for ldap.h and lber.h
2473 # (ldap.h is required for this test)
2474 AC_CHECK_HEADERS(ldap.h lber.h)
2476 if test x"$ac_cv_header_ldap_h" != x"yes"; then
2477 if test x"$with_ldap_support" = x"yes"; then
2478 AC_MSG_ERROR(ldap.h is needed for LDAP support)
2480 AC_MSG_WARN(ldap.h is needed for LDAP support)
2483 with_ldap_support=no
2487 if test x"$with_ldap_support" != x"no"; then
2490 ##################################################################
2491 # we might need the lber lib on some systems. To avoid link errors
2492 # this test must be before the libldap test
2493 AC_CHECK_LIB_EXT(lber, LDAP_LIBS, ber_scanf)
2495 ########################################################
2496 # now see if we can find the ldap libs in standard paths
2497 AC_CHECK_LIB_EXT(ldap, LDAP_LIBS, ldap_init)
2499 AC_CHECK_FUNC_EXT(ldap_domain2hostlist,$LDAP_LIBS)
2501 ########################################################
2502 # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
2503 # Check found in pam_ldap 145.
2504 AC_CHECK_FUNC_EXT(ldap_set_rebind_proc,$LDAP_LIBS)
2506 LIBS="$LIBS $LDAP_LIBS"
2507 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, smb_ldap_cv_ldap_set_rebind_proc, [
2511 [ldap_set_rebind_proc(0, 0, 0);],
2512 [smb_ldap_cv_ldap_set_rebind_proc=3],
2513 [smb_ldap_cv_ldap_set_rebind_proc=2]
2517 AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $smb_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
2519 AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS)
2521 if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes" -a x"$ac_cv_func_ext_ldap_domain2hostlist" = x"yes"; then
2522 AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])
2523 default_static_modules="$default_static_modules pdb_ldap idmap_ldap";
2524 SMBLDAP="lib/smbldap.o"
2525 with_ldap_support=yes
2526 AC_MSG_CHECKING(whether LDAP support is used)
2529 if test x"$with_ldap_support" = x"yes"; then
2530 AC_MSG_ERROR(libldap is needed for LDAP support)
2532 AC_MSG_WARN(libldap is needed for LDAP support)
2536 with_ldap_support=no
2542 #################################################
2543 # active directory support
2545 with_ads_support=auto
2546 AC_MSG_CHECKING([for Active Directory and krb5 support])
2549 [ --with-ads Active Directory support (default auto)],
2550 [ case "$withval" in
2552 with_ads_support="$withval"
2556 AC_MSG_RESULT($with_ads_support)
2561 if test x"$with_ldap_support" != x"yes"; then
2562 if test x"$with_ads_support" = x"yes"; then
2563 AC_MSG_ERROR(Active Directory Support requires LDAP support)
2564 elif test x"$with_ads_support" != x"no"; then
2565 AC_MSG_WARN(Active Directory Support requires LDAP support)
2570 if test x"$with_ads_support" != x"no"; then
2572 # Do no harm to the values of CFLAGS and LIBS while testing for
2575 #################################################
2576 # check for krb5-config from recent MIT and Heimdal kerberos 5
2577 AC_PATH_PROG(KRB5_CONFIG, krb5-config)
2578 AC_MSG_CHECKING(for working krb5-config)
2579 if test -x "$KRB5_CONFIG"; then
2580 ac_save_CFLAGS=$CFLAGS
2581 CFLAGS="";export CFLAGS
2582 ac_save_LDFLAGS=$LDFLAGS
2583 LDFLAGS="";export LDFLAGS
2584 KRB5_LIBS="`$KRB5_CONFIG --libs gssapi`"
2585 KRB5_CFLAGS="`$KRB5_CONFIG --cflags | sed s/@INCLUDE_des@//`"
2586 KRB5_CPPFLAGS="`$KRB5_CONFIG --cflags | sed s/@INCLUDE_des@//`"
2587 CFLAGS=$ac_save_CFLAGS;export CFLAGS
2588 LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS
2592 AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
2595 if test x$FOUND_KRB5 = x"no"; then
2596 #################################################
2597 # check for location of Kerberos 5 install
2598 AC_MSG_CHECKING(for kerberos 5 install path)
2600 [ --with-krb5=base-dir Locate Kerberos 5 support (default=/usr)],
2601 [ case "$withval" in
2603 AC_MSG_RESULT(no krb5-path given)
2610 AC_MSG_RESULT($withval)
2611 KRB5_CFLAGS="-I$withval/include"
2612 KRB5_CPPFLAGS="-I$withval/include"
2613 KRB5_LDFLAGS="-L$withval/lib"
2617 AC_MSG_RESULT(no krb5-path given)
2621 if test x$FOUND_KRB5 = x"no"; then
2622 #################################################
2623 # see if this box has the SuSE location for the heimdal krb implementation
2624 AC_MSG_CHECKING(for /usr/include/heimdal)
2625 if test -d /usr/include/heimdal; then
2626 if test -f /usr/lib/heimdal/lib/libkrb5.a; then
2627 KRB5_CFLAGS="-I/usr/include/heimdal"
2628 KRB5_CPPFLAGS="-I/usr/include/heimdal"
2629 KRB5_LDFLAGS="-L/usr/lib/heimdal/lib"
2632 KRB5_CFLAGS="-I/usr/include/heimdal"
2633 KRB5_CPPFLAGS="-I/usr/include/heimdal"
2641 if test x$FOUND_KRB5 = x"no"; then
2642 #################################################
2643 # see if this box has the RedHat location for kerberos
2644 AC_MSG_CHECKING(for /usr/kerberos)
2645 if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
2646 KRB5_LDFLAGS="-L/usr/kerberos/lib"
2647 KRB5_CFLAGS="-I/usr/kerberos/include"
2648 KRB5_CPPFLAGS="-I/usr/kerberos/include"
2655 ac_save_CFLAGS=$CFLAGS
2656 ac_save_CPPFLAGS=$CPPFLAGS
2657 ac_save_LDFLAGS=$LDFLAGS
2659 CFLAGS="$CFLAGS $KRB5_CFLAGS"
2660 CPPFLAGS="$CPPFLAGS $KRB5_CPPFLAGS"
2661 LDFLAGS="$LDFLAGS $KRB5_LDFLAGS"
2663 KRB5_LIBS="$KRB5_LDFLAGS $KRB5_LIBS"
2665 # now check for krb5.h. Some systems have the libraries without the headers!
2666 # note that this check is done here to allow for different kerberos
2668 AC_CHECK_HEADERS(krb5.h)
2670 if test x"$ac_cv_header_krb5_h" = x"no"; then
2672 # Give a warning if AD support was not explicitly requested,
2673 # i.e with_ads_support = auto, otherwise die with an error.
2675 if test x"$with_ads_support" = x"yes"; then
2676 AC_MSG_ERROR([Active Directory cannot be supported without krb5.h])
2678 AC_MSG_WARN([Active Directory cannot be supported without krb5.h])
2681 # Turn off AD support and restore CFLAGS and LIBS variables
2683 with_ads_support="no"
2685 CFLAGS=$ac_save_CFLAGS
2686 CPPFLAGS=$ac_save_CPPFLAGS
2687 LDFLAGS=$ac_save_LDFLAGS
2691 # Now we have determined whether we really want ADS support
2693 if test x"$with_ads_support" != x"no"; then
2696 # now check for gssapi headers. This is also done here to allow for
2697 # different kerberos include paths
2698 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h com_err.h)
2700 ##################################################################
2701 # we might need the k5crypto and com_err libraries on some systems
2702 AC_CHECK_LIB_EXT(com_err, KRB5_LIBS, _et_list)
2703 AC_CHECK_LIB_EXT(k5crypto, KRB5_LIBS, krb5_encrypt_data)
2706 AC_CHECK_LIB_EXT(crypto, KRB5_LIBS, des_set_key)
2707 AC_CHECK_LIB_EXT(asn1, KRB5_LIBS, copy_Authenticator)
2708 AC_CHECK_LIB_EXT(roken, KRB5_LIBS, roken_getaddrinfo_hostspec)
2710 # Heimdal checks. On static Heimdal gssapi must be linked before krb5.
2711 AC_CHECK_LIB_EXT(gssapi, KRB5_LIBS, gss_display_status,[],[],
2712 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
2714 ########################################################
2715 # now see if we can find the krb5 libs in standard paths
2716 # or as specified above
2717 AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_mk_req_extended)
2718 AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_kt_compare)
2720 ########################################################
2721 # now see if we can find the gssapi libs in standard paths
2722 AC_CHECK_LIB_EXT(gssapi_krb5, KRB5_LIBS,gss_display_status,[],[],
2723 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
2725 AC_CHECK_FUNC_EXT(krb5_set_real_time, $KRB5_LIBS)
2726 AC_CHECK_FUNC_EXT(krb5_set_default_in_tkt_etypes, $KRB5_LIBS)
2727 AC_CHECK_FUNC_EXT(krb5_set_default_tgs_ktypes, $KRB5_LIBS)
2728 AC_CHECK_FUNC_EXT(krb5_principal2salt, $KRB5_LIBS)
2729 AC_CHECK_FUNC_EXT(krb5_use_enctype, $KRB5_LIBS)
2730 AC_CHECK_FUNC_EXT(krb5_string_to_key, $KRB5_LIBS)
2731 AC_CHECK_FUNC_EXT(krb5_get_pw_salt, $KRB5_LIBS)
2732 AC_CHECK_FUNC_EXT(krb5_string_to_key_salt, $KRB5_LIBS)
2733 AC_CHECK_FUNC_EXT(krb5_auth_con_setkey, $KRB5_LIBS)
2734 AC_CHECK_FUNC_EXT(krb5_auth_con_setuseruserkey, $KRB5_LIBS)
2735 AC_CHECK_FUNC_EXT(krb5_locate_kdc, $KRB5_LIBS)
2736 AC_CHECK_FUNC_EXT(krb5_get_permitted_enctypes, $KRB5_LIBS)
2737 AC_CHECK_FUNC_EXT(krb5_get_default_in_tkt_etypes, $KRB5_LIBS)
2738 AC_CHECK_FUNC_EXT(krb5_free_ktypes, $KRB5_LIBS)
2739 AC_CHECK_FUNC_EXT(krb5_free_data_contents, $KRB5_LIBS)
2740 AC_CHECK_FUNC_EXT(krb5_principal_get_comp_string, $KRB5_LIBS)
2741 AC_CHECK_FUNC_EXT(krb5_free_unparsed_name, $KRB5_LIBS)
2742 AC_CHECK_FUNC_EXT(krb5_free_keytab_entry_contents, $KRB5_LIBS)
2743 AC_CHECK_FUNC_EXT(krb5_kt_free_entry, $KRB5_LIBS)
2745 LIBS="$LIBS $KRB5_LIBS"
2747 AC_CACHE_CHECK([for addrtype in krb5_address],
2748 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS,[
2749 AC_TRY_COMPILE([#include <krb5.h>],
2750 [krb5_address kaddr; kaddr.addrtype = ADDRTYPE_INET;],
2751 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=yes,
2752 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=no)])
2754 if test x"$samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS" = x"yes"; then
2755 AC_DEFINE(HAVE_ADDRTYPE_IN_KRB5_ADDRESS,1,
2756 [Whether the krb5_address struct has a addrtype property])
2759 AC_CACHE_CHECK([for addr_type in krb5_address],
2760 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,[
2761 AC_TRY_COMPILE([#include <krb5.h>],
2762 [krb5_address kaddr; kaddr.addr_type = KRB5_ADDRESS_INET;],
2763 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=yes,
2764 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=no)])
2766 if test x"$samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS" = x"yes"; then
2767 AC_DEFINE(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,1,
2768 [Whether the krb5_address struct has a addr_type property])
2771 AC_CACHE_CHECK([for enc_part2 in krb5_ticket],
2772 samba_cv_HAVE_KRB5_TKT_ENC_PART2,
2773 [AC_TRY_COMPILE([#include <krb5.h>],
2774 [krb5_ticket tkt; tkt.enc_part2->authorization_data[0]->contents = NULL;],
2775 samba_cv_HAVE_KRB5_TKT_ENC_PART2=yes,samba_cv_HAVE_KRB5_TKT_ENC_PART2=no)])
2777 if test x"$samba_cv_HAVE_KRB5_TKT_ENC_PART2" = x"yes"; then
2778 AC_DEFINE(HAVE_KRB5_TKT_ENC_PART2,1,
2779 [Whether the krb5_ticket struct has a enc_part2 property])
2782 AC_CACHE_CHECK([for keyvalue in krb5_keyblock],
2783 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE,[
2784 AC_TRY_COMPILE([#include <krb5.h>],
2785 [krb5_keyblock key; key.keyvalue.data = NULL;],
2786 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=yes,
2787 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=no)])
2789 if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE" = x"yes"; then
2790 AC_DEFINE(HAVE_KRB5_KEYBLOCK_KEYVALUE,1,
2791 [Whether the krb5_keyblock struct has a keyvalue property])
2794 AC_CACHE_CHECK([for ENCTYPE_ARCFOUR_HMAC_MD5],
2795 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,[
2796 AC_TRY_COMPILE([#include <krb5.h>],
2797 [krb5_enctype enctype; enctype = ENCTYPE_ARCFOUR_HMAC_MD5;],
2798 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=yes,
2799 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=no)])
2800 AC_CACHE_CHECK([for KEYTYPE_ARCFOUR_56],
2801 samba_cv_HAVE_KEYTYPE_ARCFOUR_56,[
2802 AC_TRY_COMPILE([#include <krb5.h>],
2803 [krb5_keytype keytype; keytype = KEYTYPE_ARCFOUR_56;],
2804 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=yes,
2805 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=no)])
2806 # Heimdals with KEYTYPE_ARCFOUR but not KEYTYPE_ARCFOUR_56 are broken
2807 # w.r.t. arcfour and windows, so we must not enable it here
2808 if test x"$samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5" = x"yes" -a\
2809 x"$samba_cv_HAVE_KEYTYPE_ARCFOUR_56" = x"yes"; then
2810 AC_DEFINE(HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,1,
2811 [Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available])
2814 AC_CACHE_CHECK([for AP_OPTS_USE_SUBKEY],
2815 samba_cv_HAVE_AP_OPTS_USE_SUBKEY,[
2816 AC_TRY_COMPILE([#include <krb5.h>],
2817 [krb5_flags ap_options; ap_options = AP_OPTS_USE_SUBKEY;],
2818 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=yes,
2819 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=no)])
2821 if test x"$samba_cv_HAVE_AP_OPTS_USE_SUBKEY" = x"yes"; then
2822 AC_DEFINE(HAVE_AP_OPTS_USE_SUBKEY,1,
2823 [Whether the AP_OPTS_USE_SUBKEY ap option is available])
2826 AC_CACHE_CHECK([for KV5M_KEYTAB],
2827 samba_cv_HAVE_KV5M_KEYTAB,[
2828 AC_TRY_COMPILE([#include <krb5.h>],
2829 [krb5_keytab_entry entry; entry.magic = KV5M_KEYTAB;],
2830 samba_cv_HAVE_KV5M_KEYTAB=yes,
2831 samba_cv_HAVE_KV5M_KEYTAB=no)])
2833 if test x"$samba_cv_HAVE_KV5M_KEYTAB" = x"yes"; then
2834 AC_DEFINE(HAVE_KV5M_KEYTAB,1,
2835 [Whether the KV5M_KEYTAB option is available])
2838 AC_CACHE_CHECK([for the krb5_princ_component macro],
2839 samba_cv_HAVE_KRB5_PRINC_COMPONENT,[
2840 AC_TRY_LINK([#include <krb5.h>],
2841 [const krb5_data *pkdata; krb5_context context; krb5_principal principal; pkdata = krb5_princ_component(context, principal, 0);],
2842 samba_cv_HAVE_KRB5_PRINC_COMPONENT=yes,
2843 samba_cv_HAVE_KRB5_PRINC_COMPONENT=no)])
2845 if test x"$samba_cv_HAVE_KRB5_PRINC_COMPONENT" = x"yes"; then
2846 AC_DEFINE(HAVE_KRB5_PRINC_COMPONENT,1,
2847 [Whether krb5_princ_component is available])
2850 AC_CACHE_CHECK([for key in krb5_keytab_entry],
2851 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY,[
2852 AC_TRY_COMPILE([#include <krb5.h>],
2853 [krb5_keytab_entry entry; krb5_keyblock e; entry.key = e;],
2854 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=yes,
2855 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=no)])
2857 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY" = x"yes"; then
2858 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEY,1,
2859 [Whether krb5_keytab_entry has key member])
2862 AC_CACHE_CHECK([for keyblock in krb5_keytab_entry],
2863 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,[
2864 AC_TRY_COMPILE([#include <krb5.h>],
2865 [krb5_keytab_entry entry; entry.keyblock.keytype = 0;],
2866 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=yes,
2867 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=no)])
2869 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK" = x"yes"; then
2870 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,1,
2871 [Whether krb5_keytab_entry has keyblock member])
2874 if test x"$ac_cv_lib_ext_krb5_krb5_mk_req_extended" = x"yes"; then
2875 AC_DEFINE(HAVE_KRB5,1,[Whether to have KRB5 support])
2876 AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
2877 AC_MSG_CHECKING(whether Active Directory and krb5 support is used)
2880 if test x"$with_ads_support" = x"yes"; then
2881 AC_MSG_ERROR(libkrb5 is needed for Active Directory support)
2883 AC_MSG_WARN(libkrb5 is needed for Active Directory support)
2889 AC_CACHE_CHECK([for WRFILE: keytab support],
2890 samba_cv_HAVE_WRFILE_KEYTAB,[
2895 krb5_context context;
2898 krb5_init_context(&context);
2899 if (krb5_kt_resolve(context, "WRFILE:api", &keytab))
2903 samba_cv_HAVE_WRFILE_KEYTAB=no,
2904 samba_cv_HAVE_WRFILE_KEYTAB=yes)])
2906 if test x"$samba_cv_HAVE_WRFILE_KEYTAB" = x"yes"; then
2907 AC_DEFINE(HAVE_WRFILE_KEYTAB,1,
2908 [Whether the WRFILE:-keytab is supported])
2911 AC_CACHE_CHECK([for krb5_princ_realm returns krb5_realm or krb5_data],
2912 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM,[
2913 AC_TRY_COMPILE([#include <krb5.h>],
2915 krb5_context context;
2916 krb5_principal principal;
2917 krb5_realm realm; realm = *krb5_princ_realm(context, principal);],
2918 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=yes,
2919 samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=no)])
2921 if test x"$samba_cv_KRB5_PRINC_REALM_RETURNS_REALM" = x"yes"; then
2922 AC_DEFINE(KRB5_PRINC_REALM_RETURNS_REALM,1,
2923 [Whether krb5_princ_realm returns krb5_realm or krb5_data])
2926 LIBS="$ac_save_LIBS"
2929 ########################################################
2930 # Compile experimental passdb backends?
2931 # (pdb_xml, pdb_mysql, pdb_pgsql)
2932 AC_MSG_CHECKING(whether to build experimental passdb libraries)
2934 [ --with-expsam=<list> Include experimental passdb libraries (default=no)]
2935 [ Valid choices include (comma separated list): ]
2936 [ xml, mysql & pgsql],
2937 [ expsam_pdb_modules=`echo "$withval" | sed 's/,/ /g'`
2938 if test "z$expsam_pdb_modules" = "zyes"; then
2939 expsam_pdb_modules="xml mysql pgsql"
2941 AC_MSG_RESULT($expsam_pdb_modules)
2942 for i in $expsam_pdb_modules
2947 AM_PATH_XML2([2.0.0],[default_shared_modules="$default_shared_modules pdb_xml"],[AC_MSG_ERROR([Can't find XML libraries while XML support is requested])])
2948 CFLAGS="$CFLAGS $XML_CFLAGS"
2952 AM_PATH_MYSQL([default_shared_modules="$default_shared_modules pdb_mysql"],[AC_MSG_ERROR([Can't find MySQL libraries while MySQL support is requested])])
2953 CFLAGS="$CFLAGS $MYSQL_CFLAGS"
2957 AM_PATH_PGSQL([default_shared_modules="$default_shared_modules pdb_pgsql"],[])
2958 CFLAGS="$CFLAGS $PGSQL_CFLAGS"
2963 echo "Unknown module name \"$i\"! Exiting..."
2971 #################################################
2972 # check for automount support
2973 AC_MSG_CHECKING(whether to use automount)
2974 AC_ARG_WITH(automount,
2975 [ --with-automount Include automount support (default=no)],
2976 [ case "$withval" in
2979 AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
2988 #################################################
2989 # check for smbmount support
2990 AC_MSG_CHECKING(whether to use smbmount)
2991 AC_ARG_WITH(smbmount,
2992 [ --with-smbmount Include smbmount (Linux only) support (default=no)],
2993 [ case "$withval" in
2998 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
2999 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbmount bin/smbmnt bin/smbumount"
3002 AC_MSG_ERROR(not on a linux system!)
3015 #################################################
3016 # check for a PAM clear-text auth, accounts, password and session support
3017 with_pam_for_crypt=no
3018 AC_MSG_CHECKING(whether to use PAM)
3020 [ --with-pam Include PAM support (default=no)],
3021 [ case "$withval" in
3024 if test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
3025 if test x"$ac_cv_header_security_pam_modules_h" = x"no"; then
3026 if test x"$ac_cv_header_security__pam_macros_h" = x"no"; then
3027 AC_MSG_ERROR(--with-pam specified but no PAM headers found)
3031 AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
3032 AUTH_LIBS="$AUTH_LIBS -lpam"
3033 with_pam_for_crypt=yes
3042 # we can't build a pam module if we don't have pam.
3043 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
3045 #################################################
3046 # check for pam_smbpass support
3047 AC_MSG_CHECKING(whether to use pam_smbpass)
3048 AC_ARG_WITH(pam_smbpass,
3049 [ --with-pam_smbpass Build PAM module for authenticating against passdb backends (default=no)],
3050 [ case "$withval" in
3054 # Conditions under which pam_smbpass should not be built.
3056 if test x$PICFLAGS = x; then
3057 AC_MSG_ERROR([No support for PIC code])
3058 elif test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
3059 AC_MSG_ERROR([No security/pam_appl.h found])
3060 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
3061 AC_MSG_ERROR([No libpam found])
3063 AUTH_LIBS="$AUTH_LIBS -lpam"
3064 SHLIB_PROGS="$SHLIB_PROGS bin/pam_smbpass.$SHLIBEXT"
3075 ###############################################
3076 # test for where we get crypt() from
3077 AC_SEARCH_LIBS(crypt, [crypt],
3078 [test "$ac_cv_search_crypt" = "none required" || AUTH_LIBS="-lcrypt $AUTH_LIBS"
3079 AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
3082 ## moved after the check for -lcrypt in order to
3083 ## ensure that the necessary libraries are included
3084 ## check checking for truncated salt. Wrapped by the
3085 ## $with_pam_for_crypt variable as above --jerry
3087 if test $with_pam_for_crypt = no; then
3088 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
3090 LIBS="$AUTH_LIBS $LIBS"
3091 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
3092 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
3093 LIBS="$crypt_LIBS"])
3094 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
3095 AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
3100 ########################################################################################
3102 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
3104 ########################################################################################
3106 #################################################
3107 # check for a LDAP password database configuration backwards compatibility
3108 AC_MSG_CHECKING(whether to use LDAP SAM 2.2 compatible configuration)
3109 AC_ARG_WITH(ldapsam,
3110 [ --with-ldapsam Include LDAP SAM 2.2 compatible configuration (default=no)],
3111 [ case "$withval" in
3114 AC_DEFINE(WITH_LDAP_SAMCONFIG,1,[Whether to include 2.2 compatible LDAP SAM configuration])
3123 ########################################################################################
3125 ## END OF TESTS FOR SAM BACKENDS.
3127 ########################################################################################
3129 #################################################
3130 # check for a NISPLUS_HOME support
3131 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
3132 AC_ARG_WITH(nisplus-home,
3133 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
3134 [ case "$withval" in
3137 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
3146 #################################################
3147 # check for syslog logging
3148 AC_MSG_CHECKING(whether to use syslog logging)
3150 [ --with-syslog Include experimental SYSLOG support (default=no)],
3151 [ case "$withval" in
3154 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
3163 #################################################
3164 # check for a shared memory profiling support
3165 AC_MSG_CHECKING(whether to use profiling)
3166 AC_ARG_WITH(profiling-data,
3167 [ --with-profiling-data Include gathering source code profile information (default=no)],
3168 [ case "$withval" in
3171 AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
3181 #################################################
3182 # check for experimental disk-quotas support
3184 samba_cv_WITH_QUOTAS=auto
3185 samba_cv_TRY_QUOTAS=no
3186 samba_cv_RUN_QUOTA_TESTS=auto
3187 samba_cv_WITH_SYS_QUOTAS=auto
3188 samba_cv_TRY_SYS_QUOTAS=no
3189 samba_cv_SYSQUOTA_FOUND=no;
3191 AC_MSG_CHECKING(whether to try disk-quotas support)
3193 [ --with-quotas Include disk-quota support (default=no)],
3194 [ case "$withval" in
3197 samba_cv_WITH_QUOTAS=yes
3198 samba_cv_TRY_QUOTAS=yes
3199 samba_cv_RUN_QUOTA_TESTS=yes
3200 #set sys quotas to auto in this case
3201 samba_cv_TRY_SYS_QUOTAS=auto
3205 samba_cv_WITH_QUOTAS=auto
3206 samba_cv_TRY_QUOTAS=auto
3207 samba_cv_RUN_QUOTA_TESTS=auto
3208 #set sys quotas to auto in this case
3209 samba_cv_TRY_SYS_QUOTAS=auto
3213 samba_cv_WITH_QUOTAS=no
3214 samba_cv_TRY_QUOTAS=no
3215 samba_cv_RUN_QUOTA_TESTS=no
3218 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
3221 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
3224 AC_MSG_CHECKING(whether to try the new lib/sysquotas.c interface)
3225 AC_ARG_WITH(sys-quotas,
3226 [ --with-sys-quotas Include lib/sysquotas.c support (default=auto)],
3227 [ case "$withval" in
3230 samba_cv_WITH_SYS_QUOTAS=yes
3231 samba_cv_TRY_SYS_QUOTAS=yes
3232 samba_cv_RUN_QUOTA_TESTS=yes
3236 samba_cv_WITH_SYS_QUOTAS=auto
3237 samba_cv_TRY_SYS_QUOTAS=auto
3238 samba_cv_RUN_QUOTA_TESTS=auto
3242 samba_cv_WITH_SYS_QUOTAS=no
3243 samba_cv_TRY_SYS_QUOTAS=no
3246 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
3249 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
3252 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then
3253 AC_MSG_CHECKING(whether to try the lib/sysquotas.c interface on ${host_os})
3257 samba_cv_TRY_SYS_QUOTAS=yes
3258 samba_cv_RUN_QUOTA_TESTS=yes
3259 samba_cv_SYSQUOTA_FOUND=yes
3260 AC_DEFINE(HAVE_QUOTACTL_LINUX,1,[Whether Linux quota support is available])
3261 samba_cv_sysquotas_file="lib/sysquotas_linux.c"
3262 AC_DEFINE(HAVE_LINUX_XFS_QUOTAS,1,[Whether Linux xfs quota support is available])
3263 samba_cv_found_xfs_header=yes
3267 samba_cv_TRY_SYS_QUOTAS=no
3272 #############################################
3273 # only check for quota stuff if --with-quotas
3274 if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then
3276 # some broken header files need this
3277 AC_CHECK_HEADER(asm/types.h,[
3278 AC_DEFINE(HAVE_ASM_TYPES_H,1,[check for <asm/types.h>])
3279 AC_ADD_INCLUDE(<asm/types.h>)
3282 # For quotas on Veritas VxFS filesystems
3283 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
3285 # For sys/quota.h and linux/quota.h
3286 AC_CHECK_HEADERS(sys/quota.h)
3288 if test x"$samba_cv_found_xfs_header" != x"yes"; then
3289 # if we have xfs quota support <sys/quota.h> (IRIX) we should use it
3290 AC_CACHE_CHECK([for XFS QUOTA in <sys/quota.h>],samba_cv_HAVE_SYS_QUOTA_XFS, [
3292 #include "confdefs.h"
3293 #ifdef HAVE_SYS_TYPES_H
3294 #include <sys/types.h>
3296 #ifdef HAVE_ASM_TYPES_H
3297 #include <asm/types.h>
3299 #include <sys/quota.h>
3300 ],[int i = Q_XGETQUOTA;],
3301 samba_cv_HAVE_SYS_QUOTA_XFS=yes,samba_cv_HAVE_SYS_QUOTA_XFS=no)])
3302 if test "$samba_cv_HAVE_SYS_QUOTA_XFS"x = "yes"x; then
3303 samba_cv_found_xfs_header=yes
3307 # if we have struct dqblk .dqb_fsoftlimit instead of .dqb_isoftlimit on IRIX
3308 AC_CACHE_CHECK([if struct dqblk has .dqb_fsoftlimit],samba_cv_HAVE_DQB_FSOFTLIMIT, [
3310 #include "confdefs.h"
3311 #ifdef HAVE_SYS_QUOTA_H
3312 #include <sys/quota.h>
3316 D.dqb_fsoftlimit = 0;],
3317 samba_cv_HAVE_DQB_FSOFTLIMIT=yes,samba_cv_HAVE_DQB_FSOFTLIMIT=no)])
3318 if test "$samba_cv_HAVE_DQB_FSOFTLIMIT"x = "yes"x; then
3319 AC_DEFINE(HAVE_DQB_FSOFTLIMIT,1,[struct dqblk .dqb_fsoftlimit])
3323 # look for a working quota system
3325 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3326 AC_CACHE_CHECK([for long quotactl(int cmd, char *special, qid_t id, caddr_t addr)],samba_cv_HAVE_QUOTACTL_4A,[
3328 #define HAVE_QUOTACTL_4A 1
3329 #define AUTOCONF_TEST 1
3330 #include "confdefs.h"
3331 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3332 samba_cv_HAVE_QUOTACTL_4A=yes,samba_cv_HAVE_QUOTACTL_4A=no,samba_cv_HAVE_QUOTACTL_4A=cross)])
3333 if test x"$samba_cv_HAVE_QUOTACTL_4A" = x"yes"; then
3334 samba_cv_SYSQUOTA_FOUND=yes;
3335 AC_DEFINE(HAVE_QUOTACTL_4A,1,[Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is available])
3336 samba_cv_sysquotas_file="lib/sysquotas_4A.c"
3340 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3341 AC_CACHE_CHECK([for int quotactl(const char *path, int cmd, int id, char *addr)],samba_cv_HAVE_QUOTACTL_4B,[
3343 #define HAVE_QUOTACTL_4B 1
3344 #define AUTOCONF_TEST 1
3345 #include "confdefs.h"
3346 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3347 samba_cv_HAVE_QUOTACTL_4B=yes,samba_cv_HAVE_QUOTACTL_4B=no,samba_cv_HAVE_QUOTACTL_4B=cross)])
3348 if test x"$samba_cv_HAVE_QUOTACTL_4B" = x"yes"; then
3349 echo "int quotactl(const char *path, int cmd, int id, char *addr) is not reworked for the new sys_quota api"
3350 samba_cv_SYSQUOTA_FOUND=yes;
3351 AC_DEFINE(HAVE_QUOTACTL_4B,1,[Whether int quotactl(const char *path, int cmd, int id, char *addr) is available])
3352 samba_cv_sysquotas_file="lib/sysquotas_4B.c"
3356 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3357 AC_CACHE_CHECK([for CRAY int quotactl (char *spec, int request, char *arg)],samba_cv_HAVE_QUOTACTL_3,[
3359 #define HAVE_QUOTACTL_3 1
3360 #define AUTOCONF_TEST 1
3361 #include "confdefs.h"
3362 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3363 samba_cv_HAVE_QUOTACTL_3=yes,samba_cv_HAVE_QUOTACTL_3=no,samba_cv_HAVE_QUOTACTL_3=cross)])
3364 if test x"$samba_cv_HAVE_QUOTACTL_3" = x"yes"; then
3365 echo "CRAY int quotactl (char *spec, int request, char *arg) is NOT reworked for the sys_quota api"
3366 samba_cv_SYSQUOTA_FOUND=yes;
3367 AC_DEFINE(HAVE_QUOTACTL_3,1,[Whether CRAY int quotactl (char *spec, int request, char *arg); is available])
3368 samba_cv_sysquotas_file="lib/sysquotas_3.c"
3372 #################################################
3373 # check for mntent.h and struct mntent
3374 AC_CHECK_HEADERS(mntent.h)
3375 #################################################
3376 # check for setmntent,getmntent,endmntent
3377 AC_CHECK_FUNCS(setmntent getmntent endmntent)
3379 #################################################
3380 # check for devnm.h and struct mntent
3381 AC_CHECK_HEADERS(devnm.h)
3382 #################################################
3384 AC_CHECK_FUNCS(devnm)
3386 if test x"$samba_cv_WITH_SYS_QUOTAS" = x"yes"; then
3387 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3388 # if --with-sys-quotas=yes then build it
3389 # you have can use the get/set quota command smb.conf
3391 samba_cv_SYSQUOTA_FOUND=auto
3393 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"yes"; then
3394 # if --with-sys-quotas=yes then build it
3395 # you have can use the get/set quota command smb.conf
3397 samba_cv_TRY_SYS_QUOTAS=auto
3401 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then
3402 AC_CACHE_CHECK([whether the sys_quota interface works],samba_cv_SYSQUOTA_WORKS,[
3403 SAVE_CPPFLAGS="$CPPFLAGS"
3404 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper -I${srcdir-.}/nsswitch"
3406 #include "confdefs.h"
3407 #define NO_PROTO_H 1
3408 #define NO_CONFIG_H 1
3409 #define HAVE_SYS_QUOTAS 1
3410 #include "${srcdir-.}/${samba_cv_sysquotas_file}"
3411 #include "${srcdir-.}/lib/sysquotas.c"
3412 ],[],samba_cv_SYSQUOTA_WORKS=yes,samba_cv_SYSQUOTA_WORKS=no)
3413 CPPFLAGS="$SAVE_CPPFLAGS"
3415 if test x"$samba_cv_SYSQUOTA_WORKS" = x"yes"; then
3416 AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface)
3417 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then
3418 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
3419 AC_DEFINE(HAVE_SYS_QUOTAS,1,[Whether the new lib/sysquotas.c interface can be used])
3420 samba_cv_WE_USE_SYS_QUOTAS=yes
3428 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no" -a x"$samba_cv_found_xfs_header" = x"yes"; then
3429 AC_CACHE_CHECK([whether the sys_quota interface works with XFS],samba_cv_SYSQUOTA_WORKS_XFS,[
3430 SAVE_CPPFLAGS="$CPPFLAGS"
3431 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper -I${srcdir-.}/nsswitch"
3433 #include "confdefs.h"
3434 #define NO_PROTO_H 1
3435 #define NO_CONFIG_H 1
3436 #define HAVE_SYS_QUOTAS 1
3437 #define HAVE_XFS_QUOTAS 1
3438 #include "${srcdir-.}/lib/sysquotas_xfs.c"
3439 ],[],samba_cv_SYSQUOTA_WORKS_XFS=yes,samba_cv_SYSQUOTA_WORKS_XFS=no)
3440 CPPFLAGS="$SAVE_CPPFLAGS"
3442 if test x"$samba_cv_SYSQUOTA_WORKS_XFS" = x"yes"; then
3443 if test x"$samba_cv_WE_USE_SYS_QUOTAS" = x"yes"; then
3444 AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available])
3449 AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[
3450 SAVE_CPPFLAGS="$CPPFLAGS"
3451 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper -I${srcdir-.}/nsswitch"
3453 #include "confdefs.h"
3454 #define NO_PROTO_H 1
3455 #define NO_CONFIG_H 1
3456 #include "${srcdir-.}/smbd/quotas.c"
3457 ],[],samba_cv_QUOTA_WORKS=yes,samba_cv_QUOTA_WORKS=no)
3458 CPPFLAGS="$SAVE_CPPFLAGS"
3460 if test x"$samba_cv_QUOTA_WORKS" = x"yes"; then
3461 AC_MSG_CHECKING(whether to use the old quota support)
3462 if test x"$samba_cv_WE_USE_SYS_QUOTAS" != x"yes"; then
3463 if test x"$samba_cv_TRY_QUOTAS" != x"no"; then
3464 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
3474 ####################
3475 # End of quota check samba_cv_RUN_QUOTA_TESTS
3478 #################################################
3479 # check for experimental utmp accounting
3481 AC_MSG_CHECKING(whether to support utmp accounting)
3484 [ --with-utmp Include utmp accounting (default, if supported by OS)],
3485 [ case "$withval" in
3495 # utmp requires utmp.h
3496 # Note similar check earlier, when checking utmp details.
3498 if test x"$WITH_UTMP" = x"yes" -a x"$ac_cv_header_utmp_h" = x"no"; then
3499 utmp_no_reason=", no utmp.h on $host_os"
3503 # Display test results
3505 if test x"$WITH_UTMP" = x"yes"; then
3507 AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
3509 AC_MSG_RESULT(no$utmp_no_reason)
3512 #################################################
3513 # choose native language(s) of man pages
3514 AC_MSG_CHECKING(chosen man pages' language(s))
3515 AC_ARG_WITH(manpages-langs,
3516 [ --with-manpages-langs={en,ja,pl} Choose man pages' language(s). (en)],
3517 [ case "$withval" in
3519 AC_MSG_WARN(--with-manpages-langs called without argument - will use default)
3527 AC_MSG_RESULT($manlangs)
3528 manlangs=`echo $manlangs | sed "s/,/ /g"` # replacing commas with spaces to produce a list
3529 AC_SUBST(manlangs)],
3532 AC_MSG_RESULT($manlangs)
3536 #################################################
3537 # should we build libsmbclient?
3539 INSTALLCLIENTCMD_SH=:
3540 INSTALLCLIENTCMD_A=:
3542 LIBSMBCLIENT_SHARED=
3544 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
3545 AC_ARG_WITH(libsmbclient,
3546 [ --with-libsmbclient Build the libsmbclient shared library (default=yes if shared libs supported)],
3547 [ case "$withval" in
3552 if test $BLDSHARED = true; then
3553 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
3554 ## build the static version of libsmbclient as well
3555 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3556 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
3557 LIBSMBCLIENT=libsmbclient
3561 AC_MSG_RESULT(no shared library support -- will supply static library)
3563 if test $enable_static = yes; then
3564 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3565 LIBSMBCLIENT=libsmbclient
3567 INSTALLCLIENT=installclientlib
3571 # if unspecified, default is to built it iff possible.
3572 if test $BLDSHARED = true; then
3573 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
3574 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
3575 LIBSMBCLIENT=libsmbclient
3579 AC_MSG_RESULT(no shared library support -- will supply static library)
3581 if test $enable_static = yes; then
3582 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3583 LIBSMBCLIENT=libsmbclient
3585 INSTALLCLIENT=installclientlib
3589 #################################################
3590 # these tests are taken from the GNU fileutils package
3591 AC_CHECKING(how to get filesystem space usage)
3594 # Test for statvfs64.
3595 if test $space = no; then
3597 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
3599 #if defined(HAVE_UNISTD_H)
3602 #include <sys/types.h>
3603 #include <sys/statvfs.h>
3606 struct statvfs64 fsd;
3607 exit (statvfs64 (".", &fsd));
3609 fu_cv_sys_stat_statvfs64=yes,
3610 fu_cv_sys_stat_statvfs64=no,
3611 fu_cv_sys_stat_statvfs64=cross)])
3612 if test $fu_cv_sys_stat_statvfs64 = yes; then
3614 AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
3618 # Perform only the link test since it seems there are no variants of the
3619 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
3620 # because that got a false positive on SCO OSR5. Adding the declaration
3621 # of a `struct statvfs' causes this test to fail (as it should) on such
3622 # systems. That system is reported to work fine with STAT_STATFS4 which
3623 # is what it gets when this test fails.
3624 if test $space = no; then
3626 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
3627 [AC_TRY_LINK([#include <sys/types.h>
3628 #include <sys/statvfs.h>],
3629 [struct statvfs fsd; statvfs (0, &fsd);],
3630 fu_cv_sys_stat_statvfs=yes,
3631 fu_cv_sys_stat_statvfs=no)])
3632 if test $fu_cv_sys_stat_statvfs = yes; then
3634 AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
3638 if test $space = no; then
3639 # DEC Alpha running OSF/1
3640 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
3641 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
3643 #include <sys/param.h>
3644 #include <sys/types.h>
3645 #include <sys/mount.h>
3650 exit (statfs (".", &fsd, sizeof (struct statfs)));
3652 fu_cv_sys_stat_statfs3_osf1=yes,
3653 fu_cv_sys_stat_statfs3_osf1=no,
3654 fu_cv_sys_stat_statfs3_osf1=no)])
3655 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
3656 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
3658 AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
3662 if test $space = no; then
3664 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
3665 member (AIX, 4.3BSD)])
3666 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
3668 #ifdef HAVE_SYS_PARAM_H
3669 #include <sys/param.h>
3671 #ifdef HAVE_SYS_MOUNT_H
3672 #include <sys/mount.h>
3674 #ifdef HAVE_SYS_VFS_H
3675 #include <sys/vfs.h>
3681 exit (statfs (".", &fsd));
3683 fu_cv_sys_stat_statfs2_bsize=yes,
3684 fu_cv_sys_stat_statfs2_bsize=no,
3685 fu_cv_sys_stat_statfs2_bsize=no)])
3686 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
3687 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
3689 AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
3693 if test $space = no; then
3695 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
3696 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
3697 [AC_TRY_RUN([#include <sys/types.h>
3698 #include <sys/statfs.h>
3702 exit (statfs (".", &fsd, sizeof fsd, 0));
3704 fu_cv_sys_stat_statfs4=yes,
3705 fu_cv_sys_stat_statfs4=no,
3706 fu_cv_sys_stat_statfs4=no)])
3707 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
3708 if test $fu_cv_sys_stat_statfs4 = yes; then
3710 AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
3714 if test $space = no; then
3716 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
3717 member (4.4BSD and NetBSD)])
3718 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
3719 [AC_TRY_RUN([#include <sys/types.h>
3720 #ifdef HAVE_SYS_PARAM_H
3721 #include <sys/param.h>
3723 #ifdef HAVE_SYS_MOUNT_H
3724 #include <sys/mount.h>
3730 exit (statfs (".", &fsd));
3732 fu_cv_sys_stat_statfs2_fsize=yes,
3733 fu_cv_sys_stat_statfs2_fsize=no,
3734 fu_cv_sys_stat_statfs2_fsize=no)])
3735 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
3736 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
3738 AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
3742 if test $space = no; then
3744 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
3745 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
3746 [AC_TRY_RUN([#include <sys/types.h>
3747 #ifdef HAVE_SYS_PARAM_H
3748 #include <sys/param.h>
3750 #ifdef HAVE_SYS_MOUNT_H
3751 #include <sys/mount.h>
3753 #ifdef HAVE_SYS_FS_TYPES_H
3754 #include <sys/fs_types.h>
3759 /* Ultrix's statfs returns 1 for success,
3760 0 for not mounted, -1 for failure. */
3761 exit (statfs (".", &fsd) != 1);
3763 fu_cv_sys_stat_fs_data=yes,
3764 fu_cv_sys_stat_fs_data=no,
3765 fu_cv_sys_stat_fs_data=no)])
3766 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
3767 if test $fu_cv_sys_stat_fs_data = yes; then
3769 AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
3774 # As a gating factor for large file support, in order to
3775 # use <4GB files we must have the following minimal support
3777 # long long, and a 64 bit off_t or off64_t.
3778 # If we don't have all of these then disable large
3781 AC_MSG_CHECKING([if large file support can be enabled])
3783 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
3784 #include <sys/types.h>
3790 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
3791 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
3792 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
3794 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
3796 AC_ARG_WITH(spinlocks,
3797 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no) ])
3798 if test "x$with_spinlocks" = "xyes"; then
3799 AC_DEFINE(USE_SPINLOCKS,1,[Whether to use spin locks instead of fcntl locks])
3803 AC_DEFINE(SPARC_SPINLOCKS,1,[Whether to use sparc spinlocks])
3806 i386|i486|i586|i686)
3807 AC_DEFINE(INTEL_SPINLOCKS,1,[Whether to use intel spinlocks])
3811 AC_DEFINE(MIPS_SPINLOCKS,1,[Whether to use mips spinlocks])
3815 AC_DEFINE(POWERPC_SPINLOCKS,1,[Whether to use powerpc spinlocks])
3820 #################################################
3821 # check for ACL support
3823 AC_MSG_CHECKING(whether to support ACLs)
3824 AC_ARG_WITH(acl-support,
3825 [ --with-acl-support Include ACL support (default=no)],
3826 [ case "$withval" in
3831 AC_MSG_RESULT(Using UnixWare ACLs)
3832 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
3835 AC_MSG_RESULT(Using solaris ACLs)
3836 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
3839 AC_MSG_RESULT(Using HPUX ACLs)
3840 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
3843 AC_MSG_RESULT(Using IRIX ACLs)
3844 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
3847 AC_MSG_RESULT(Using AIX ACLs)
3848 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
3851 AC_MSG_RESULT(Using Tru64 ACLs)
3852 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
3853 ACL_LIBS="$ACL_LIBS -lpacl"
3856 AC_MSG_RESULT(Using FreeBSD posix ACLs)
3857 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether FreeBSD POSIX ACLs are available])
3858 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
3861 AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
3862 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
3863 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
3866 AC_TRY_LINK([#include <sys/types.h>
3867 #include <sys/acl.h>],
3868 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
3869 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
3871 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
3872 AC_MSG_RESULT(Using posix ACLs)
3873 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
3874 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
3877 AC_TRY_LINK([#include <sys/types.h>
3878 #include <sys/acl.h>],
3879 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
3880 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
3882 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
3883 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
3888 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
3889 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
3892 AC_TRY_LINK([#include <sys/types.h>
3893 #include <sys/acl.h>],
3894 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
3895 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
3897 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
3898 AC_MSG_RESULT(Using posix ACLs)
3899 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
3900 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
3903 AC_TRY_LINK([#include <sys/types.h>
3904 #include <sys/acl.h>],
3905 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
3906 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
3908 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
3909 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
3917 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
3920 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
3924 #################################################
3925 # check for sendfile support
3927 with_sendfile_support=yes
3928 AC_MSG_CHECKING(whether to check to support sendfile)
3929 AC_ARG_WITH(sendfile-support,
3930 [ --with-sendfile-support Check for sendfile support (default=yes)],
3931 [ case "$withval" in
3938 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
3939 AC_TRY_LINK([#include <sys/sendfile.h>],
3944 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
3946 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
3948 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
3949 AC_TRY_LINK([#include <sys/sendfile.h>],
3954 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
3956 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
3958 # Try and cope with broken Linux sendfile....
3959 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
3961 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
3962 #undef _FILE_OFFSET_BITS
3964 #include <sys/sendfile.h>],
3969 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
3971 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
3973 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
3974 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
3975 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
3976 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
3977 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
3978 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
3979 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
3980 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
3981 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
3982 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
3983 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
3990 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
3992 #include <sys/types.h>
3994 #include <sys/socket.h>
3995 #include <sys/uio.h>],
3997 int fromfd, tofd, ret, total=0;
3998 off_t offset, nwritten;
4001 hdr.headers = &hdtrl;
4003 hdr.trailers = NULL;
4005 hdtrl.iov_base = NULL;
4007 ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
4009 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
4011 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
4012 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
4013 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
4014 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4021 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
4023 #include <sys/socket.h>
4024 #include <sys/uio.h>],
4028 struct iovec hdtrl[2];
4032 hdtrl[0].iov_base = 0;
4033 hdtrl[0].iov_len = 0;
4035 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
4037 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
4038 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
4039 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
4040 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
4041 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4046 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
4048 #include <sys/socket.h>
4049 #include <sys/uio.h>],
4053 struct iovec hdtrl[2];
4057 hdtrl[0].iov_base = 0;
4058 hdtrl[0].iov_len = 0;
4060 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
4062 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
4063 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
4064 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
4065 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
4066 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4073 AC_CHECK_LIB(sendfile,sendfilev)
4074 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
4076 #include <sys/sendfile.h>],
4080 struct sendfilevec vec[2];
4086 vec[0].sfv_fd = SFV_FD_SELF;
4087 vec[0].sfv_flag = 0;
4092 vec[1].sfv_flag = 0;
4095 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
4097 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
4099 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
4100 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
4101 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
4102 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
4107 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
4109 #include <sys/sendfile.h>],
4113 struct sendfilevec vec[2];
4119 vec[0].sfv_fd = SFV_FD_SELF;
4120 vec[0].sfv_flag = 0;
4125 vec[1].sfv_flag = 0;
4128 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
4130 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
4132 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
4133 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
4134 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
4135 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
4153 #################################################
4154 # Check whether winbind is supported on this platform. If so we need to
4155 # build and install client programs, sbin programs and shared libraries
4157 AC_MSG_CHECKING(whether to build winbind)
4159 # Initially, the value of $host_os decides whether winbind is supported
4163 # Define the winbind shared library name and any specific linker flags
4164 # it needs to be built with.
4166 WINBIND_NSS="nsswitch/libnss_winbind.$SHLIBEXT"
4167 WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT"
4168 WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
4172 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
4175 # FreeBSD winbind client is implemented as a wrapper around
4176 # the Linux version.
4177 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
4178 nsswitch/winbind_nss_linux.o"
4179 WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
4180 WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
4183 # IRIX has differently named shared libraries
4184 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
4185 WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT"
4186 WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT"
4189 # Solaris winbind client is implemented as a wrapper around
4190 # the Linux version.
4191 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \
4192 nsswitch/winbind_nss_linux.o"
4193 WINBIND_NSS_EXTRA_LIBS="-lsocket"
4196 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
4199 # AIX has even differently named shared libraries. No
4200 # WINS support has been implemented yet.
4201 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o"
4202 WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init"
4203 WINBIND_NSS="nsswitch/WINBIND"
4208 winbind_no_reason=", unsupported on $host_os"
4212 AC_SUBST(WINBIND_NSS)
4213 AC_SUBST(WINBIND_WINS_NSS)
4214 AC_SUBST(WINBIND_NSS_LDSHFLAGS)
4215 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
4216 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
4218 # Check the setting of --with-winbindd
4220 AC_ARG_WITH(winbind,
4221 [ --with-winbind Build winbind (default, if supported by OS)],
4234 # We need unix domain sockets for winbind
4236 if test x"$HAVE_WINBIND" = x"yes"; then
4237 if test x"$samba_cv_unixsocket" = x"no"; then
4238 winbind_no_reason=", no unix domain socket support on $host_os"
4243 # Display test results
4245 if test x"$HAVE_WINBIND" = x"yes"; then
4247 AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
4249 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)"
4250 EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)"
4251 if test $BLDSHARED = true; then
4252 SHLIB_PROGS="$SHLIB_PROGS $WINBIND_NSS $WINBIND_WINS_NSS"
4254 if test x"$with_pam" = x"yes"; then
4255 SHLIB_PROGS="$SHLIB_PROGS nsswitch/pam_winbind.$SHLIBEXT"
4259 AC_MSG_RESULT(no$winbind_no_reason)
4262 # Solaris has some extra fields in struct passwd that need to be
4263 # initialised otherwise nscd crashes.
4265 AC_CHECK_MEMBER(struct passwd.pw_comment,
4266 AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),,
4269 AC_CHECK_MEMBER(struct passwd.pw_age,
4270 AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),,
4273 #################################################
4274 # Check to see if we should use the included popt
4276 AC_ARG_WITH(included-popt,
4277 [ --with-included-popt use bundled popt library, not from system],
4288 if test x"$INCLUDED_POPT" != x"yes"; then
4289 AC_CHECK_LIB(popt, poptGetContext,
4290 INCLUDED_POPT=no, INCLUDED_POPT=yes)
4293 AC_MSG_CHECKING(whether to use included popt)
4294 if test x"$INCLUDED_POPT" = x"yes"; then
4296 BUILD_POPT='$(POPT_OBJS)'
4297 POPTLIBS='$(POPT_OBJS)'
4298 FLAGS1="-I$srcdir/popt"
4304 AC_SUBST(BUILD_POPT)
4308 #################################################
4309 # Check if the user wants Python
4311 # At the moment, you can use this to set which Python binary to link
4312 # against. (Libraries built for Python2.2 can't be used by 2.1,
4313 # though they can coexist in different directories.) In the future
4314 # this might make the Python stuff be built by default.
4316 # Defaulting python breaks the clean target if python isn't installed
4321 [ --with-python=PYTHONNAME build Python libraries],
4322 [ case "${withval-python}" in
4325 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS python_ext"
4331 PYTHON=${withval-python}
4336 for i in `echo $default_static_modules | sed -e's/,/ /g'`
4338 eval MODULE_DEFAULT_$i=STATIC
4341 for i in `echo $default_shared_modules | sed -e's/,/ /g'`
4343 dnl Fall back to static if we cannot build shared libraries
4344 eval MODULE_DEFAULT_$i=STATIC
4346 if test $BLDSHARED = true; then
4347 eval MODULE_DEFAULT_$i=SHARED
4351 dnl Always built these modules static
4352 MODULE_pdb_guest=STATIC
4353 MODULE_rpc_spoolss=STATIC
4354 MODULE_rpc_srv=STATIC
4355 MODULE_idmap_tdb=STATIC
4357 AC_ARG_WITH(static-modules,
4358 [ --with-static-modules=MODULES Comma-seperated list of names of modules to statically link in],
4359 [ if test $withval; then
4360 for i in `echo $withval | sed -e's/,/ /g'`
4362 eval MODULE_$i=STATIC
4366 AC_ARG_WITH(shared-modules,
4367 [ --with-shared-modules=MODULES Comma-seperated list of names of modules to build shared],
4368 [ if test $withval; then
4369 for i in `echo $withval | sed -e's/,/ /g'`
4371 eval MODULE_$i=SHARED
4375 ###########################################################################
4376 ## contributed pdb_modules
4378 SMB_MODULE(pdb_xml, passdb/pdb_xml.o, "bin/xml.$SHLIBEXT", PDB,
4379 [ PASSDB_LIBS="$PASSDB_LIBS $XML_LIBS" ] )
4380 SMB_MODULE(pdb_mysql, passdb/pdb_mysql.o, "bin/mysql.$SHLIBEXT", PDB,
4381 [ PASSDB_LIBS="$PASSDB_LIBS $MYSQL_LIBS" ] )
4382 SMB_MODULE(pdb_pgsql, passdb/pdb_pgsql.o, "bin/pgsql.$SHLIBEXT", PDB,
4383 [ PASSDB_LIBS="$PASSDB_LIBS $PGSQL_LIBS" ] )
4385 ## end of contributed pdb_modules
4386 ###########################################################################
4388 SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o, "bin/ldapsam.$SHLIBEXT", PDB,
4389 [ PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" ] )
4390 SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB)
4391 SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB)
4392 SMB_MODULE(pdb_guest, passdb/pdb_guest.o, "bin/guest.$SHLIBEXT", PDB)
4393 SMB_SUBSYSTEM(PDB,passdb/pdb_interface.o)
4395 SMB_MODULE(rpc_lsa, \$(RPC_LSA_OBJ), "bin/librpc_lsarpc.$SHLIBEXT", RPC)
4396 SMB_MODULE(rpc_reg, \$(RPC_REG_OBJ), "bin/librpc_winreg.$SHLIBEXT", RPC)
4397 SMB_MODULE(rpc_lsa_ds, \$(RPC_LSA_DS_OBJ), "bin/librpc_lsa_ds.$SHLIBEXT", RPC)
4398 SMB_MODULE(rpc_wks, \$(RPC_WKS_OBJ), "bin/librpc_wkssvc.$SHLIBEXT", RPC)
4399 SMB_MODULE(rpc_net, \$(RPC_NETLOG_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC)
4400 SMB_MODULE(rpc_dfs, \$(RPC_DFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC)
4401 SMB_MODULE(rpc_srv, \$(RPC_SVC_OBJ), "bin/librpc_srvsvc.$SHLIBEXT", RPC)
4402 SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC)
4403 SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC)
4404 SMB_MODULE(rpc_echo, \$(RPC_ECHO_OBJ), "bin/librpc_echo.$SHLIBEXT", RPC)
4405 SMB_SUBSYSTEM(RPC,smbd/server.o)
4407 SMB_MODULE(idmap_ldap, sam/idmap_ldap.o, "bin/idmap_ldap.$SHLIBEXT", IDMAP)
4408 SMB_MODULE(idmap_tdb, sam/idmap_tdb.o, "bin/idmap_tdb.$SHLIBEXT", IDMAP)
4409 SMB_SUBSYSTEM(IDMAP,sam/idmap.o)
4411 SMB_MODULE(charset_weird, modules/weird.o, "bin/weird.$SHLIBEXT", CHARSET)
4412 SMB_MODULE(charset_CP850, modules/CP850.o, "bin/CP850.$SHLIBEXT", CHARSET)
4413 SMB_MODULE(charset_CP437, modules/CP437.o, "bin/CP437.$SHLIBEXT", CHARSET)
4414 SMB_MODULE(charset_macosxfs, modules/charset_macosxfs.o,"bin/macosxfs.$SHLIBEXT", CHARSET)
4415 SMB_SUBSYSTEM(CHARSET,lib/iconv.o)
4417 SMB_MODULE(auth_rhosts, \$(AUTH_RHOSTS_OBJ), "bin/rhosts.$SHLIBEXT", AUTH)
4418 SMB_MODULE(auth_sam, \$(AUTH_SAM_OBJ), "bin/sam.$SHLIBEXT", AUTH)
4419 SMB_MODULE(auth_unix, \$(AUTH_UNIX_OBJ), "bin/unix.$SHLIBEXT", AUTH)
4420 SMB_MODULE(auth_winbind, \$(AUTH_WINBIND_OBJ), "bin/winbind.$SHLIBEXT", AUTH)
4421 SMB_MODULE(auth_server, \$(AUTH_SERVER_OBJ), "bin/smbserver.$SHLIBEXT", AUTH)
4422 SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), "bin/domain.$SHLIBEXT", AUTH)
4423 SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), "bin/builtin.$SHLIBEXT", AUTH)
4424 SMB_SUBSYSTEM(AUTH,auth/auth.o)
4426 SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), "bin/recycle.$SHLIBEXT", VFS)
4427 SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), "bin/audit.$SHLIBEXT", VFS)
4428 SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), "bin/extd_audit.$SHLIBEXT", VFS)
4429 SMB_MODULE(vfs_full_audit, \$(VFS_FULL_AUDIT_OBJ), "bin/full_audit.$SHLIBEXT", VFS)
4430 SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK_OBJ), "bin/netatalk.$SHLIBEXT", VFS)
4431 SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), "bin/fake_perms.$SHLIBEXT", VFS)
4432 SMB_MODULE(vfs_default_quota, \$(VFS_DEFAULT_QUOTA_OBJ), "bin/default_quota.$SHLIBEXT", VFS)
4433 SMB_MODULE(vfs_readonly, \$(VFS_READONLY_OBJ), "bin/readonly.$SHLIBEXT", VFS)
4434 SMB_MODULE(vfs_cap, \$(VFS_CAP_OBJ), "bin/cap.$SHLIBEXT", VFS)
4435 SMB_MODULE(vfs_expand_msdfs, \$(VFS_EXPAND_MSDFS_OBJ), "bin/expand_msdfs.$SHLIBEXT", VFS)
4436 SMB_MODULE(vfs_shadow_copy, \$(VFS_SHADOW_COPY_OBJ), "bin/shadow_copy.$SHLIBEXT", VFS)
4437 SMB_MODULE(vfs_afsacl, \$(VFS_AFSACL_OBJ), "bin/afsacl.$SHLIBEXT", VFS)
4438 SMB_SUBSYSTEM(VFS,smbd/vfs.o)
4440 AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules])
4442 #################################################
4443 # do extra things if we are running insure
4445 if test "${ac_cv_prog_CC}" = "insure"; then
4446 CPPFLAGS="$CPPFLAGS -D__INSURE__"
4449 #################################################
4450 # Display summary of libraries detected
4452 AC_MSG_RESULT([Using libraries:])
4453 AC_MSG_RESULT([ LIBS = $LIBS])
4454 if test x"$with_ads_support" != x"no"; then
4455 AC_MSG_RESULT([ KRB5_LIBS = $KRB5_LIBS])
4457 if test x"$with_ldap_support" != x"no"; then
4458 AC_MSG_RESULT([ LDAP_LIBS = $LDAP_LIBS])
4460 AC_MSG_RESULT([ AUTH_LIBS = $AUTH_LIBS])
4462 #################################################
4463 # final configure stuff
4465 AC_MSG_CHECKING([configure summary])
4466 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
4468 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
4469 AC_MSG_WARN([cannot run when cross-compiling]))
4474 dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
4475 LIB_REMOVE_USR_LIB(LDFLAGS)
4476 LIB_REMOVE_USR_LIB(LIBS)
4478 dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
4479 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
4480 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
4482 AC_OUTPUT(include/stamp-h Makefile script/findsmb smbadduser script/gen-8bit-gap.sh)
4484 #################################################
4485 # Print very concise instructions on building/use
4486 if test "x$enable_dmalloc" = xyes
4488 AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
4489 AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])