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 #################################################
12 # Directory handling stuff to support both the
13 # legacy SAMBA directories and FHS compliant
15 AC_PREFIX_DEFAULT(/usr/local/samba)
18 [ --with-fhs Use FHS-compliant paths (default=no)],
19 configdir="${sysconfdir}/samba"
20 lockdir="\${VARDIR}/lib/samba"
21 piddir="\${VARDIR}/run"
22 mandir="\${prefix}/share/man"
23 logfilebase="\${VARDIR}/log/samba"
24 privatedir="\${CONFIGDIR}/private"
25 libdir="\${prefix}/lib/samba"
26 swatdir="\${DATADIR}/samba/swat",
27 configdir="\${LIBDIR}"
28 logfilebase="\${VARDIR}"
29 lockdir="\${VARDIR}/locks"
30 piddir="\${VARDIR}/locks"
31 privatedir="\${prefix}/private"
32 swatdir="\${prefix}/swat")
34 #################################################
35 # set private directory location
36 AC_ARG_WITH(privatedir,
37 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
41 # Just in case anybody calls it without argument
43 AC_MSG_WARN([--with-privatedir called without argument - will use default])
50 #################################################
51 # set lock directory location
53 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
57 # Just in case anybody calls it without argument
59 AC_MSG_WARN([--with-lockdir called without argument - will use default])
66 #################################################
67 # set pid directory location
69 [ --with-piddir=DIR Where to put pid files ($ac_default_prefix/var/locks)],
73 # Just in case anybody calls it without argument
75 AC_MSG_WARN([--with-piddir called without argument - will use default])
82 #################################################
83 # set SWAT directory location
85 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
89 # Just in case anybody does it
91 AC_MSG_WARN([--with-swatdir called without argument - will use default])
98 #################################################
99 # set configuration directory location
100 AC_ARG_WITH(configdir,
101 [ --with-configdir=DIR Where to put configuration files (\$libdir)],
105 # Just in case anybody does it
107 AC_MSG_WARN([--with-configdir called without argument - will use default])
114 #################################################
115 # set log directory location
116 AC_ARG_WITH(logfilebase,
117 [ --with-logfilebase=DIR Where to put log files (\$(VARDIR))],
121 # Just in case anybody does it
123 AC_MSG_WARN([--with-logfilebase called without argument - will use default])
126 logfilebase="$withval"
131 [ --with-cfenc=HEADERDIR Use internal CoreFoundation encoding API
132 for optimization (Mac OS X/Darwin only)],
134 # May be in source $withval/CoreFoundation/StringEncodings.subproj.
135 # Should have been in framework $withval/CoreFoundation.framework/Headers.
137 $withval/CoreFoundation/StringEncodings.subproj \
138 $withval/StringEncodings.subproj \
139 $withval/CoreFoundation.framework/Headers \
143 if test -r $d/CFStringEncodingConverter.h; then
144 ln -sfh $d include/CoreFoundation
152 AC_SUBST(logfilebase)
158 dnl Unique-to-Samba variables we'll be playing with.
167 AC_SUBST(INSTALLCLIENT)
168 AC_SUBST(INSTALLCLIENTCMD_SH)
169 AC_SUBST(INSTALLCLIENTCMD_A)
170 AC_SUBST(LIBSMBCLIENT_SHARED)
171 AC_SUBST(LIBSMBCLIENT)
175 AC_SUBST(PASSDB_LIBS)
179 AC_SUBST(SHLIB_PROGS)
181 AC_SUBST(EXTRA_BIN_PROGS)
182 AC_SUBST(EXTRA_SBIN_PROGS)
183 AC_SUBST(EXTRA_ALL_TARGETS)
186 [ --enable-debug Turn on compiler debugging information (default=no)],
187 [if eval "test x$enable_debug = xyes"; then
188 CFLAGS="${CFLAGS} -g"
191 AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings and debugging (default=no)],
192 [if eval "test x$enable_developer = xyes"; then
194 CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
197 AC_ARG_ENABLE(krb5developer, [ --enable-krb5developer Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
198 [if eval "test x$enable_krb5developer = xyes"; then
200 CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
203 AC_ARG_ENABLE(dmalloc, [ --enable-dmalloc Enable heap debugging [default=no]])
205 if test "x$enable_dmalloc" = xyes
207 AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
208 AC_DEFINE(DMALLOC_FUNC_CHECK, 1,
209 [Define to check invariants around some common functions])
210 LIBS="$LIBS -ldmalloc"
213 dnl Checks for programs.
216 ## for some reason this macro resets the CFLAGS
217 ## so save and restore
229 AC_PATH_PROG(PERL, perl)
231 AC_CHECK_TOOL(AR, ar)
233 # compile with optimization and without debugging by default, but
234 # allow people to set their own preference.
235 if test "x$CFLAGS" = x
237 CFLAGS="-O ${CFLAGS}"
240 dnl Check if we use GNU ld
244 dnl needed before AC_TRY_COMPILE
247 dnl look for executable suffix
250 dnl Check if C compiler understands -c and -o at the same time
252 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
259 dnl Check if the C compiler understands -Werror
260 AC_CACHE_CHECK([that the C compiler understands -Werror],samba_cv_HAVE_Werror, [
265 }],[-Werror],[$CPPFLAGS],[$LDFLAGS],
266 samba_cv_HAVE_Werror=yes,samba_cv_HAVE_Werror=no,samba_cv_HAVE_Werror=cross)])
267 if test x"$samba_cv_HAVE_Werror" = x"yes"; then
268 Werror_FLAGS="-Werror"
270 dnl Check if the C compiler understands -w2
271 AC_CACHE_CHECK([that the C compiler understands -w2],samba_cv_HAVE_w2, [
276 }],[-w2],[$CPPFLAGS],[$LDFLAGS],
277 samba_cv_HAVE_w2=yes,samba_cv_HAVE_w2=no,samba_cv_HAVE_w2=cross)])
278 if test x"$samba_cv_HAVE_w2" = x"yes"; then
283 dnl Check if the C compiler understands volatile (it should, being ANSI).
284 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
285 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
286 samba_cv_volatile=yes,samba_cv_volatile=no)])
287 if test x"$samba_cv_volatile" = x"yes"; then
288 AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
291 UNAME_S=`(uname -s) 2>/dev/null` || UNAME_S="unknown"
292 AC_MSG_CHECKING(uname -s)
293 AC_MSG_RESULT(${UNAME_S})
295 UNAME_R=`(uname -r) 2>/dev/null` || UNAME_R="unknown"
296 AC_MSG_CHECKING(uname -r)
297 AC_MSG_RESULT(${UNAME_R})
299 UNAME_M=`(uname -m) 2>/dev/null` || UNAME_M="unknown"
300 AC_MSG_CHECKING(uname -m)
301 AC_MSG_RESULT(${UNAME_M})
303 UNAME_P=`(uname -p) 2>/dev/null` || UNAME_P="unknown"
304 AC_MSG_CHECKING(uname -p)
305 AC_MSG_RESULT(${UNAME_P})
309 dnl Add #include for broken IRIX header files
311 *irix6*) AC_ADD_INCLUDE(<standards.h>)
315 AC_VALIDATE_CACHE_SYSTEM_TYPE
319 dnl Add modules that have to be built by default here
320 dnl These have to be built static:
321 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"
323 dnl These are preferably build shared, and static if dlopen() is not available
324 default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap charset_CP850 charset_CP437"
326 if test "x$developer" = xyes; then
327 default_static_modules="$default_static_modules rpc_echo"
328 default_shared_modules="$default_shared_modules charset_weird"
332 # Config CPPFLAG settings for strange OS's that must be set
333 # before other tests.
336 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
340 # mmap on HPUX is completely broken...
341 AC_DEFINE(MMAP_BLACKLIST, 1, [Whether MMAP is broken])
342 if test $ac_cv_prog_cc_Ae = yes; then
343 CPPFLAGS="$CPPFLAGS -Ae"
346 # Defines needed for HPUX support.
347 # HPUX has bigcrypt but (sometimes?) doesn't use it for
348 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
352 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
353 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
354 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
355 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
356 AC_DEFINE(_ALIGNMENT_REQUIRED,1,[Required alignment])
357 AC_DEFINE(_MAX_ALIGNMENT,4,[Maximum alignment])
360 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
361 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
362 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
363 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
364 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to use large file support])
365 AC_DEFINE(_ALIGNMENT_REQUIRED, 1, [Required alignment])
366 AC_DEFINE(_MAX_ALIGNMENT, 4, [Maximum alignment])
373 # CRAY Unicos has broken const handling
375 AC_MSG_RESULT([disabling const])
376 CPPFLAGS="$CPPFLAGS -Dconst="
380 # AIX4.x doesn't even admit to having large
381 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
384 AC_MSG_RESULT([enabling large file support])
385 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
386 AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
389 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
390 # to the existance of large files..
391 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
392 # recommendations on large file support, however it makes the
393 # compile work using gcc 2.7 and 2.8, whereas using the Sun
394 # recommendation makes the compile fail on gcc2.7. JRA.
396 # Solaris uses SYSV printing. Make sure to set that here. --jerry
399 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
401 5.0*|5.1*|5.2*|5.3*|5.5*)
402 AC_MSG_RESULT([no large file support])
405 AC_MSG_RESULT([enabling large file support])
406 if test "$ac_cv_prog_gcc" = yes; then
407 ${CC-cc} -v >conftest.c 2>&1
408 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
410 case "$ac_cv_gcc_compiler_version_number" in
411 *"gcc version 2.6"*|*"gcc version 2.7"*)
412 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
413 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
416 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
417 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
418 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
422 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
423 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
424 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
430 # IRIX uses SYSV printing. Make sure to set that here
433 AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
436 AC_DEFINE(FREEBSD, 1, [Whether the host os is FreeBSD])
439 # VOS may need to have POSIX support and System V compatibility enabled.
446 CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=199506L"
447 AC_DEFINE(_POSIX_C_SOURCE, 199506L, [Whether to enable POSIX support])
451 *-D_SYSV*|*-D_SVID_SOURCE*)
454 CPPFLAGS="$CPPFLAGS -D_SYSV"
455 AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
459 # Tests needed for SINIX large file support.
462 if test $host = mips-sni-sysv4 ; then
463 AC_MSG_CHECKING([for LFS support])
464 old_CPPFLAGS="$CPPFLAGS"
465 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
469 #if _LFS64_LARGEFILE == 1
474 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
475 CPPFLAGS="$old_CPPFLAGS"
476 if test x$SINIX_LFS_SUPPORT = xyes ; then
477 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
478 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
479 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
480 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
481 LIBS="`getconf LFS64_LIBS` $LIBS"
483 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
487 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
490 AC_MSG_CHECKING([for LFS support])
491 old_CPPFLAGS="$CPPFLAGS"
492 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
495 #include <sys/utsname.h>
497 #if _LFS64_LARGEFILE == 1
502 /* Ensure this is glibc 2.2 or higher */
503 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
504 int libc_major = __GLIBC__;
505 int libc_minor = __GLIBC_MINOR__;
513 /* Ensure this is kernel 2.4 or higher */
516 release = strdup(uts.release);
517 major = atoi(strsep(&release, "."));
518 minor = atoi(strsep(&release, "."));
520 if (major > 2 || (major == 2 && minor > 3))
527 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
528 CPPFLAGS="$old_CPPFLAGS"
529 if test x$LINUX_LFS_SUPPORT = xyes ; then
530 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
531 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
532 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
533 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
535 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
539 # MacOS X is the *only* system that uses compose character in utf8. This
540 # is so horribly broken....
543 AC_DEFINE(BROKEN_UNICODE_COMPOSE_CHARACTERS, 1, [Does this system use unicode compose characters])
544 # Add Fink directories for various packages, like dlcompat.
545 # Note: iconv does that explicitly below, but other packages
547 CPPFLAGS="$CPPFLAGS -I/sw/include"
548 LDFLAGS="$LDFLAGS -L/sw/lib"
550 # If we have dlsym_prepend_underscore (from Fink's dlcompat),
551 # use that instead of plain dlsym.
553 AC_CHECK_LIB(dl,dlopen)
554 AC_CHECK_FUNCS(dlsym_prepend_underscore,[CPPFLAGS="$CPPFLAGS -Ddlsym=dlsym_prepend_underscore"])
556 #Add a system specific charset module.
558 default_shared_modules="$default_shared_modules charset_macosxfs"
559 old_CPPFLAGS="$CPPFLAGS"
560 CPPFLAGS="-Iinclude $CPPFLAGS"
561 AC_CHECK_HEADERS([CoreFoundation/CFStringEncodingConverter.h], [], [AC_CHECK_HEADERS([CFStringEncodingConverter.h])])
562 CPPFLAGS="$old_CPPFLAGS"
565 AC_MSG_CHECKING([for LFS support])
566 old_CPPFLAGS="$CPPFLAGS"
567 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
571 #if _LFS64_LARGEFILE == 1
576 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
577 CPPFLAGS="$old_CPPFLAGS"
578 if test x$GLIBC_LFS_SUPPORT = xyes ; then
579 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
580 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
581 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
583 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
593 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
594 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
595 AC_CHECK_HEADERS(rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
596 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
597 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
598 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
599 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
600 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h dlfcn.h)
601 AC_CHECK_HEADERS(sys/syslog.h syslog.h execinfo.h)
602 AC_CHECK_HEADERS(langinfo.h locale.h)
604 # In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a
605 # subdirectory of headers.
606 AC_CHECK_HEADERS(valgrind.h valgrind/valgrind.h valgrind/memcheck.h)
609 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
610 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
614 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
615 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
616 if test x"$ac_cv_header_shadow_h" = x"yes"; then
617 AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
621 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
622 AC_CHECK_HEADERS(nss.h nss_common.h nsswitch.h ns_api.h sys/security.h security/pam_appl.h security/pam_modules.h)
623 AC_CHECK_HEADERS(stropts.h poll.h)
624 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
625 AC_CHECK_HEADERS(sys/acl.h sys/attributes.h attr/xattr.h sys/cdefs.h glob.h)
627 # For experimental utmp support (lastlog on some BSD-like systems)
628 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
630 AC_CHECK_SIZEOF(int,cross)
631 AC_CHECK_SIZEOF(long,cross)
632 AC_CHECK_SIZEOF(short,cross)
647 AC_CHECK_TYPE(ino_t,unsigned)
648 AC_CHECK_TYPE(loff_t,off_t)
649 AC_CHECK_TYPE(offset_t,loff_t)
650 AC_CHECK_TYPE(ssize_t, int)
651 AC_CHECK_TYPE(wchar_t, unsigned short)
653 ############################################
654 # for cups support we need libcups, and a handful of header files
657 [ --enable-cups Turn on CUPS support (default=auto)])
659 if test x$enable_cups != xno; then
660 AC_PATH_PROG(CUPS_CONFIG, cups-config)
662 if test "x$CUPS_CONFIG" != x; then
663 AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
664 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
665 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
666 PRINT_LIBS="$PRINT_LIBS `$CUPS_CONFIG --libs`"
670 ############################################
671 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code
672 AC_SEARCH_LIBS(dlopen, [dl])
673 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
675 ############################################
676 # check if the compiler can do immediate structures
677 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
681 typedef struct {unsigned x;} FOOBAR;
682 #define X_FOOBAR(x) ((FOOBAR) { x })
683 #define FOO_ONE X_FOOBAR(1)
691 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
692 if test x"$samba_cv_immediate_structures" = x"yes"; then
693 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures])
696 ############################################
697 # check if the compiler can do immediate structures
698 AC_CACHE_CHECK([if the compiler will optimize out function calls],samba_cv_optimize_out_funcation_calls, [
703 this_function_does_not_exist();
709 samba_cv_optimize_out_funcation_calls=yes,samba_cv_optimize_out_funcation_calls=no)])
710 if test x"$samba_cv_optimize_out_funcation_calls" = x"yes"; then
711 AC_DEFINE(HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS,1,[Whether the compiler will optimize out function calls])
714 ############################################
715 # check for unix domain sockets
716 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
718 #include <sys/types.h>
721 #include <sys/socket.h>
722 #include <sys/un.h>],
724 struct sockaddr_un sunaddr;
725 sunaddr.sun_family = AF_UNIX;
727 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
728 if test x"$samba_cv_unixsocket" = x"yes"; then
729 AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support])
733 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
735 #include <sys/types.h>
740 #include <sys/socket.h>],[socklen_t i = 0],
741 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
742 if test x"$samba_cv_socklen_t" = x"yes"; then
743 AC_DEFINE(HAVE_SOCKLEN_T_TYPE,1,[Whether we have the variable type socklen_t])
746 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
748 #include <sys/types.h>
753 #include <signal.h>],[sig_atomic_t i = 0],
754 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
755 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
756 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
759 # stupid headers have the functions but no declaration. grrrr.
760 AC_HAVE_DECL(errno, [#include <errno.h>])
761 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
762 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
763 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
764 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
765 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
766 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
768 # and glibc has setresuid under linux but the function does
769 # nothing until kernel 2.1.44! very dumb.
770 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
771 AC_TRY_RUN([#include <errno.h>
772 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
773 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
774 if test x"$samba_cv_have_setresuid" = x"yes"; then
775 AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
778 # Do the same check for setresguid...
780 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
781 AC_TRY_RUN([#include <unistd.h>
783 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
784 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
785 if test x"$samba_cv_have_setresgid" = x"yes"; then
786 AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
791 ###############################################
792 # Readline included by default unless explicitly asked not to
793 test "${with_readline+set}" != "set" && with_readline=yes
795 # test for where we get readline() from
796 AC_MSG_CHECKING(whether to use readline)
797 AC_ARG_WITH(readline,
798 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto) ],
799 [ case "$with_readline" in
803 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
804 AC_CHECK_HEADERS(readline/history.h)
806 AC_CHECK_HEADERS(readline.h readline/readline.h,[
807 for termlib in ncurses curses termcap terminfo termlib tinfo; do
808 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
810 AC_CHECK_LIB(readline, rl_callback_handler_install,
811 [TERMLIBS="-lreadline $TERMLIBS"
812 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
813 break], [TERMLIBS=], $TERMLIBS)])
821 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
822 # alternate readline path
824 _cppflags=${CPPFLAGS}
826 # Add additional search path
827 LDFLAGS="-L$with_readline/lib $LDFLAGS"
828 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
830 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
831 AC_CHECK_HEADERS(readline/history.h)
833 AC_CHECK_HEADERS(readline.h readline/readline.h,[
834 for termlib in ncurses curses termcap terminfo termlib; do
835 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
837 AC_CHECK_LIB(readline, rl_callback_handler_install,
838 [TERMLDFLAGS="-L$with_readline/lib"
839 TERMCPPFLAGS="-I$with_readline/include"
840 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
841 TERMLIBS="-lreadline $TERMLIBS"
842 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
843 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
851 AC_SUBST(TERMLDFLAGS)
853 # The readline API changed slightly from readline3 to readline4, so
854 # code will generate warnings on one of them unless we have a few
856 AC_CHECK_LIB(readline, rl_completion_matches,
857 [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
858 [Do we have rl_completion_matches?])],
862 # The following test taken from the cvs sources
863 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
864 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
865 # libsocket.so which has a bad implementation of gethostbyname (it
866 # only looks in /etc/hosts), so we only look for -lsocket if we need
868 AC_CHECK_FUNCS(connect)
869 if test x"$ac_cv_func_connect" = x"no"; then
872 *) AC_CHECK_LIB(nsl_s, printf) ;;
876 *) AC_CHECK_LIB(nsl, printf) ;;
880 *) AC_CHECK_LIB(socket, connect) ;;
884 *) AC_CHECK_LIB(inet, connect) ;;
886 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
888 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
889 test x"$ac_cv_lib_inet_connect" = x"yes"; then
890 # ac_cv_func_connect=yes
891 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
892 AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
896 ###############################################
897 # test for where we get yp_get_default_domain() from
898 AC_SEARCH_LIBS(yp_get_default_domain, [nsl])
899 AC_CHECK_FUNCS(yp_get_default_domain)
901 # Check if we have execl, if not we need to compile smbrun.
902 AC_CHECK_FUNCS(execl)
903 if test x"$ac_cv_func_execl" = x"no"; then
904 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)"
907 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
908 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid)
909 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
910 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
911 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
912 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
913 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
914 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
915 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
916 AC_CHECK_FUNCS(syslog vsyslog timegm)
917 AC_CHECK_FUNCS(setlocale nl_langinfo)
918 # setbuffer, shmget, shm_open are needed for smbtorture
919 AC_CHECK_FUNCS(setbuffer shmget shm_open backtrace_symbols)
921 # syscall() is needed for smbwrapper.
922 AC_CHECK_FUNCS(syscall)
924 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
925 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
926 AC_CHECK_FUNCS(__getcwd _getcwd)
927 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
928 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
929 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
930 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
931 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
932 AC_CHECK_FUNCS(getdirentries _write __write _fork __fork)
933 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
934 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
935 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
936 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
937 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
944 # glibc <= 2.3.2 has a broken getgrouplist
947 #include <sys/utsname.h>
949 /* glibc up to 2.3 has a broken getgrouplist */
950 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
951 int libc_major = __GLIBC__;
952 int libc_minor = __GLIBC_MINOR__;
956 if ((libc_major == 2) && (libc_minor <= 3))
961 ], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no])
962 if test x"$linux_getgrouplist_ok" = x"yes"; then
963 AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
967 AC_CHECK_FUNCS(getgrouplist)
972 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
975 if test x$ac_cv_func_stat64 = xno ; then
976 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
978 #if defined(HAVE_UNISTD_H)
981 #include <sys/stat.h>
982 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
983 AC_MSG_RESULT([$ac_cv_func_stat64])
984 if test x$ac_cv_func_stat64 = xyes ; then
985 AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
989 if test x$ac_cv_func_lstat64 = xno ; then
990 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
992 #if defined(HAVE_UNISTD_H)
995 #include <sys/stat.h>
996 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
997 AC_MSG_RESULT([$ac_cv_func_lstat64])
998 if test x$ac_cv_func_lstat64 = xyes ; then
999 AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
1003 if test x$ac_cv_func_fstat64 = xno ; then
1004 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
1006 #if defined(HAVE_UNISTD_H)
1009 #include <sys/stat.h>
1010 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
1011 AC_MSG_RESULT([$ac_cv_func_fstat64])
1012 if test x$ac_cv_func_fstat64 = xyes ; then
1013 AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
1017 #####################################
1018 # we might need the resolv library on some systems
1019 AC_CHECK_LIB(resolv, dn_expand)
1022 # Check for the functions putprpwnam, set_auth_parameters,
1023 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
1024 # Needed for OSF1 and HPUX.
1027 AC_LIBTESTFUNC(security, putprpwnam)
1028 AC_LIBTESTFUNC(sec, putprpwnam)
1030 AC_LIBTESTFUNC(security, set_auth_parameters)
1031 AC_LIBTESTFUNC(sec, set_auth_parameters)
1033 # UnixWare 7.x has its getspnam in -lgen
1034 AC_LIBTESTFUNC(gen, getspnam)
1036 AC_LIBTESTFUNC(security, getspnam)
1037 AC_LIBTESTFUNC(sec, getspnam)
1039 AC_LIBTESTFUNC(security, bigcrypt)
1040 AC_LIBTESTFUNC(sec, bigcrypt)
1042 AC_LIBTESTFUNC(security, getprpwnam)
1043 AC_LIBTESTFUNC(sec, getprpwnam)
1045 ############################################
1046 # Check if we have libattr
1047 AC_SEARCH_LIBS(getxattr, [attr])
1048 AC_CHECK_FUNCS(getxattr lgetxattr fgetxattr listxattr llistxattr)
1049 AC_CHECK_FUNCS(flistxattr removexattr lremovexattr fremovexattr)
1050 AC_CHECK_FUNCS(setxattr lsetxattr fsetxattr)
1051 AC_CHECK_FUNCS(attr_get attr_list attr_set attr_remove)
1052 AC_CHECK_FUNCS(attr_getf attr_listf attr_setf attr_removef)
1054 # Assume non-shared by default and override below
1057 # these are the defaults, good for lots of systems
1061 SHLD="\${CC} \${CFLAGS}"
1066 if test "$enable_shared" = "yes"; then
1067 # this bit needs to be modified for each OS that is suported by
1068 # smbwrapper. You need to specify how to created a shared library and
1069 # how to compile C code to produce PIC object files
1071 AC_MSG_CHECKING([ability to build shared libraries])
1073 # and these are for particular systems
1075 *linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux])
1078 DYNEXP="-Wl,--export-dynamic"
1080 SONAMEFLAG="-Wl,-soname="
1081 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1083 *solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
1087 if test "${GCC}" = "yes"; then
1089 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
1094 ## ${CFLAGS} added for building 64-bit shared
1095 ## libs using Sun's Compiler
1096 LDSHFLAGS="-G \${CFLAGS}"
1099 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1100 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1102 *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
1105 SONAMEFLAG="-Wl,-h,"
1106 PICFLAGS="-KPIC" # Is this correct for SunOS
1107 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1108 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1110 *netbsd* | *freebsd*) BLDSHARED="true"
1112 DYNEXP="-Wl,--export-dynamic"
1113 SONAMEFLAG="-Wl,-soname,"
1114 PICFLAGS="-fPIC -DPIC"
1115 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1116 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1118 *openbsd*) BLDSHARED="true"
1120 DYNEXP="-Wl,-Bdynamic"
1121 SONAMEFLAG="-Wl,-soname,"
1123 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1124 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1126 *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
1128 *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
1132 LDSHFLAGS="-set_version sgi1.0 -shared"
1133 SONAMEFLAG="-soname "
1135 if test "${GCC}" = "yes"; then
1140 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
1142 *aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
1144 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry,-berok"
1145 DYNEXP="-Wl,-brtl,-bexpall"
1147 if test "${GCC}" != "yes"; then
1148 ## for funky AIX compiler using strncpy()
1149 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
1152 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
1154 *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
1156 # Use special PIC flags for the native HP-UX compiler.
1157 if test $ac_cv_prog_cc_Ae = yes; then
1160 LDSHFLAGS="-B symbolic -b -z"
1163 elif test "${GCC}" = "yes"; then
1167 AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
1168 AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element])
1170 *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx])
1171 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1173 *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
1176 SONAMEFLAG="-Wl,-soname,"
1178 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1179 AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
1181 *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix])
1182 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1184 *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
1187 SONAMEFLAG="-Wl,-soname,"
1189 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1191 *next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
1192 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1194 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
1195 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1197 *sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1199 *-univel-*) if [ test "$GCC" != yes ]; then
1200 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1205 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
1207 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1210 *sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1211 if [ test "$GCC" != yes ]; then
1212 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1215 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1217 *vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
1222 *darwin*) AC_DEFINE(DARWINOS,1,[Whether the host os is Darwin/MacOSX])
1224 LDSHFLAGS="-bundle -flat_namespace -undefined suppress"
1226 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1230 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
1234 AC_MSG_RESULT($BLDSHARED)
1235 AC_MSG_CHECKING([linker flags for shared libraries])
1236 AC_MSG_RESULT([$LDSHFLAGS])
1237 AC_MSG_CHECKING([compiler flags for position-independent code])
1238 AC_MSG_RESULT([$PICFLAGS])
1241 #######################################################
1242 # test whether building a shared library actually works
1243 if test $BLDSHARED = true; then
1244 AC_CACHE_CHECK([whether building shared libraries actually works],
1245 [ac_cv_shlib_works],[
1246 ac_cv_shlib_works=no
1247 # try building a trivial shared library
1248 $CC $CPPFLAGS $CFLAGS $PICFLAGS -c -o \
1249 shlib.$PICSUFFIX ${srcdir-.}/tests/shlib.c && \
1250 $CC $CPPFLAGS $CFLAGS `eval echo $LDSHFLAGS` -o "shlib.$SHLIBEXT" \
1251 shlib.$PICSUFFIX && \
1252 ac_cv_shlib_works=yes
1253 rm -f "shlib.$SHLIBEXT" shlib.$PICSUFFIX
1255 if test $ac_cv_shlib_works = no; then
1262 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1263 AC_TRY_RUN([#include <stdio.h>
1264 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1265 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1266 if test x"$samba_cv_have_longlong" = x"yes"; then
1267 AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1271 # Check if the compiler supports the LL prefix on long long integers.
1274 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1275 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1276 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1277 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1278 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
1282 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1283 AC_TRY_RUN([#include <stdio.h>
1284 #include <sys/stat.h>
1285 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1286 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1287 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1288 AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1291 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1293 #if defined(HAVE_UNISTD_H)
1297 #include <sys/stat.h>
1298 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1299 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1300 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1301 AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1304 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1305 AC_TRY_RUN([#include <stdio.h>
1306 #include <sys/stat.h>
1307 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1308 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1309 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1310 AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1313 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1315 #if defined(HAVE_UNISTD_H)
1319 #include <sys/stat.h>
1320 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1321 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1322 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1323 AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1326 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1328 #if defined(HAVE_UNISTD_H)
1332 #include <sys/stat.h>
1333 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1334 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1335 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1336 AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
1339 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1341 #if defined(HAVE_UNISTD_H)
1344 #include <sys/types.h>
1345 #include <dirent.h>],
1346 [struct dirent64 de;],
1347 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1348 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1349 AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1352 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1354 #if defined(HAVE_UNISTD_H)
1357 #include <sys/types.h>
1358 main() { dev_t dev; int i = major(dev); return 0; }],
1359 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1360 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1361 AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
1364 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1366 #if defined(HAVE_UNISTD_H)
1369 #include <sys/types.h>
1370 main() { dev_t dev; int i = minor(dev); return 0; }],
1371 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1372 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1373 AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
1376 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1377 AC_TRY_RUN([#include <stdio.h>
1378 main() { char c; c=250; exit((c > 0)?0:1); }],
1379 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1380 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1381 AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1384 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1385 AC_TRY_COMPILE([#include <sys/types.h>
1386 #include <sys/socket.h>
1387 #include <netinet/in.h>],
1388 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1389 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1390 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1391 AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
1394 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1395 AC_TRY_COMPILE([#include <sys/types.h>
1397 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1398 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1399 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1400 AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
1403 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1404 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1405 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1406 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1407 AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
1410 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1412 #include <sys/time.h>
1414 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1415 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1416 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1417 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available])
1420 AC_CACHE_CHECK([for va_copy],samba_cv_HAVE_VA_COPY,[
1421 AC_TRY_LINK([#include <stdarg.h>
1422 va_list ap1,ap2;], [va_copy(ap1,ap2);],
1423 samba_cv_HAVE_VA_COPY=yes,
1424 samba_cv_HAVE_VA_COPY=no)])
1425 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1426 AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
1428 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE___VA_COPY,[
1429 AC_TRY_LINK([#include <stdarg.h>
1430 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1431 samba_cv_HAVE___VA_COPY=yes,
1432 samba_cv_HAVE___VA_COPY=no)])
1433 if test x"$samba_cv_HAVE___VA_COPY" = x"yes"; then
1434 AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
1438 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1440 #include <sys/types.h>
1442 void foo(const char *format, ...) {
1447 va_start(ap, format);
1448 len = vsnprintf(buf, 0, format, ap);
1450 if (len != 5) exit(1);
1452 va_start(ap, format);
1453 len = vsnprintf(0, 0, format, ap);
1455 if (len != 5) exit(1);
1457 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1461 main() { foo("hello"); }
1463 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1464 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1465 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
1468 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1469 AC_TRY_RUN([#include <sys/types.h>
1471 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1472 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1473 di->d_name[0] == 0) exit(0); exit(1);} ],
1474 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1475 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1476 AC_DEFINE(HAVE_BROKEN_READDIR,1,[Whether readdir() is broken])
1479 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1480 AC_TRY_COMPILE([#include <sys/types.h>
1481 #include <utime.h>],
1482 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1483 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1484 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1485 AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
1489 # Check utmp details, but only if our OS offers utmp.h
1490 if test x"$ac_cv_header_utmp_h" = x"yes"; then
1491 dnl utmp and utmpx come in many flavours
1492 dnl We need to check for many of them
1493 dnl But we don't need to do each and every one, because our code uses
1494 dnl mostly just the utmp (not utmpx) fields.
1496 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1498 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1499 AC_TRY_COMPILE([#include <sys/types.h>
1501 [struct utmp ut; ut.ut_name[0] = 'a';],
1502 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1503 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1504 AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
1507 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1508 AC_TRY_COMPILE([#include <sys/types.h>
1510 [struct utmp ut; ut.ut_user[0] = 'a';],
1511 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1512 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1513 AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
1516 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1517 AC_TRY_COMPILE([#include <sys/types.h>
1519 [struct utmp ut; ut.ut_id[0] = 'a';],
1520 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1521 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1522 AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
1525 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1526 AC_TRY_COMPILE([#include <sys/types.h>
1528 [struct utmp ut; ut.ut_host[0] = 'a';],
1529 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1530 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1531 AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
1534 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1535 AC_TRY_COMPILE([#include <sys/types.h>
1537 [struct utmp ut; time_t t; ut.ut_time = t;],
1538 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1539 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1540 AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
1543 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1544 AC_TRY_COMPILE([#include <sys/types.h>
1546 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
1547 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1548 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1549 AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
1552 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1553 AC_TRY_COMPILE([#include <sys/types.h>
1555 [struct utmp ut; ut.ut_type = 0;],
1556 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1557 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1558 AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
1561 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1562 AC_TRY_COMPILE([#include <sys/types.h>
1564 [struct utmp ut; ut.ut_pid = 0;],
1565 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1566 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1567 AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
1570 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1571 AC_TRY_COMPILE([#include <sys/types.h>
1573 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1574 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1575 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1576 AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
1579 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1580 AC_TRY_COMPILE([#include <sys/types.h>
1582 [struct utmp ut; ut.ut_addr = 0;],
1583 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1584 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1585 AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
1588 if test x$ac_cv_func_pututline = xyes ; then
1589 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1590 AC_TRY_COMPILE([#include <sys/types.h>
1592 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1593 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1594 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1595 AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
1599 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1600 AC_TRY_COMPILE([#include <sys/types.h>
1601 #include <utmpx.h>],
1602 [struct utmpx ux; ux.ut_syslen = 0;],
1603 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1604 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1605 AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
1612 ICONV_LOCATION=standard
1613 LOOK_DIRS="/usr /usr/local /sw"
1614 AC_ARG_WITH(libiconv,
1615 [ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1617 if test "$withval" = "no" ; then
1618 AC_MSG_ERROR([argument to --with-libiconv must be a directory])
1620 if test "$withval" != "yes" ; then
1622 LOOK_DIRS="$withval"
1628 for i in $LOOK_DIRS ; do
1630 save_LDFLAGS=$LDFLAGS
1631 save_CPPFLAGS=$CPPFLAGS
1632 CPPFLAGS="$CPPFLAGS -I$i/include"
1633 dnl This is here to handle -withval stuff for --with-libiconv
1634 dnl Perhaps we should always add a -L
1635 LDFLAGS="$LDFLAGS -L$i/lib"
1637 export LDFLAGS LIBS CPPFLAGS
1638 dnl Try to find iconv(3)
1641 if test "$ICONV_FOUND" = yes; then
1642 LDFLAGS=$save_LDFLAG
1643 LIB_ADD_DIR(LDFLAGS, "$i/lib")
1644 CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
1647 export LDFLAGS LIBS CPPFLAGS
1648 dnl Now, check for a working iconv ... we want to do it here because
1649 dnl there might be a working iconv further down the list of LOOK_DIRS
1652 # check for iconv in libc
1653 ic_save_LIBS="$LIBS"
1654 if test x"$ICONV_PATH_SPEC" = "xyes" ; then
1655 LIBS="$LIBS -L$ICONV_LOCATION/lib"
1657 if test x"$jm_cv_lib_iconv" != x; then
1658 LIBS="$LIBS -l$jm_cv_lib_iconv"
1660 dnl AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1661 default_dos_charset=no
1662 default_display_charset=no
1663 default_unix_charset=no
1665 # check for default dos charset name
1666 for j in CP850 IBM850 ; do
1668 if test x"$ICONV_CHARSET" = x"$j"; then
1669 default_dos_charset="\"$j\""
1673 # check for default display charset name
1674 for j in ASCII 646 ; do
1676 if test x"$ICONV_CHARSET" = x"$j"; then
1677 default_display_charset="\"$j\""
1681 # check for default unix charset name
1682 for j in UTF-8 UTF8 ; do
1684 if test x"$ICONV_CHARSET" = x"$j"; then
1685 default_unix_charset="\"$j\""
1690 if test "$default_dos_charset" != "no" -a \
1691 "$default_dos_charset" != "cross" -a \
1692 "$default_display_charset" != "no" -a \
1693 "$default_display_charset" != "cross" -a \
1694 "$default_unix_charset" != "no" -a \
1695 "$default_unix_charset" != "cross"
1697 samba_cv_HAVE_NATIVE_ICONV=yes
1698 else if test "$default_dos_charset" = "cross" -o \
1699 "$default_display_charset" = "cross" -o \
1700 "$default_unix_charset" = "cross"
1702 samba_cv_HAVE_NATIVE_ICONV=cross
1704 samba_cv_HAVE_NATIVE_ICONV=no
1709 LIBS="$ic_save_LIBS"
1710 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1711 CPPFLAGS=$save_CPPFLAGS
1712 LDFLAGS=$save_LDFLAGS
1714 if test x"$jm_cv_lib_iconv" != x; then
1715 LIBS="$LIBS -l$jm_cv_lib_iconv"
1717 dnl Add the flags we need to CPPFLAGS and LDFLAGS
1718 CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
1719 LIB_ADD_DIR(LDFLAGS, "$i/lib")
1721 AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
1722 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,$default_dos_charset,[Default dos charset name])
1723 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,$default_display_charset,[Default display charset name])
1724 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,$default_unix_charset,[Default unix charset name])
1727 dnl We didn't find a working iconv, so keep going
1729 dnl We only need to clean these up here for the next pass through the loop
1730 CPPFLAGS=$save_CPPFLAGS
1731 LDFLAGS=$save_LDFLAGS
1733 export LDFLAGS LIBS CPPFLAGS
1737 if test x"$ICONV_FOUND" = x"no" -o x"$samba_cv_HAVE_NATIVE_ICONV" != x"yes" ; then
1738 AC_MSG_WARN([Sufficient support for iconv function was not found.
1739 Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!])
1740 AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,"ASCII",[Default dos charset name])
1741 AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,"ASCII",[Default display charset name])
1742 AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,"UTF8",[Default unix charset name])
1746 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1748 #include <sys/types.h>
1751 #define F_GETLEASE 1025
1754 int fd = open("/dev/null", O_RDONLY);
1755 return fcntl(fd, F_GETLEASE, 0) == -1;
1758 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1759 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1760 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
1763 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1765 #include <sys/types.h>
1769 #define F_NOTIFY 1026
1772 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1775 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1776 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1777 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
1780 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1782 #include <sys/types.h>
1785 #include <sys/file.h>
1787 #define LOCK_MAND 32
1788 #define LOCK_READ 64
1791 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1794 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1795 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1796 AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
1802 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1803 AC_TRY_COMPILE([#include <sys/types.h>
1804 #include <fcntl.h>],
1805 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1806 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1807 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1808 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
1811 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1812 AC_TRY_RUN([#include <sys/types.h>
1813 #include <sys/capability.h>
1816 if ((cap = cap_get_proc()) == NULL)
1818 cap->cap_effective |= CAP_NETWORK_MGT;
1819 cap->cap_inheritable |= CAP_NETWORK_MGT;
1824 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1825 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1826 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES,1,[Whether IRIX specific capabilities are available])
1830 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1831 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1834 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1835 AC_TRY_COMPILE([#include <sys/types.h>
1836 #if defined(HAVE_RPC_RPC_H)
1837 #include <rpc/rpc.h>
1840 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1841 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1842 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
1845 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1846 AC_TRY_COMPILE([#include <sys/types.h>
1847 #if defined(HAVE_RPC_RPC_H)
1848 #include <rpc/rpc.h>
1851 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1852 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1853 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
1856 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1857 AC_TRY_COMPILE([#include <sys/types.h>
1858 #if defined(HAVE_RPC_RPC_H)
1859 #include <rpc/rpc.h>
1862 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1863 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1864 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
1867 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1868 AC_TRY_COMPILE([#include <sys/types.h>
1869 #if defined(HAVE_RPC_RPC_H)
1870 #include <rpc/rpc.h>
1873 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1874 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1875 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
1879 dnl Some systems (SCO) have a problem including
1880 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1881 dnl as a #define in <prot.h> and as part of an enum
1885 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1886 AC_TRY_COMPILE([#include <sys/types.h>
1887 #ifdef HAVE_SYS_SECURITY_H
1888 #include <sys/security.h>
1890 #endif /* HAVE_SYS_SECURITY_H */
1891 #if defined(HAVE_RPC_RPC_H)
1892 #include <rpc/rpc.h>
1895 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1896 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1897 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
1900 AC_MSG_CHECKING([for test routines])
1901 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1903 AC_MSG_ERROR([cant find test code. Aborting config]),
1904 AC_MSG_WARN([cannot run when cross-compiling]))
1906 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1907 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1908 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1909 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1910 AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
1913 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1914 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1915 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1916 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1917 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1918 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1920 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1923 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1924 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1925 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1926 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1927 AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
1930 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1931 SAVE_CPPFLAGS="$CPPFLAGS"
1932 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper"
1934 #define REPLACE_GETPASS 1
1935 #define NO_PROTO_H 1
1936 #define NO_CONFIG_H 1
1937 #define main dont_declare_main
1938 #include "${srcdir-.}/lib/getsmbpass.c"
1940 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1941 CPPFLAGS="$SAVE_CPPFLAGS"
1943 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1944 AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced])
1947 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1950 #include <sys/types.h>
1951 #include <netinet/in.h>
1952 #ifdef HAVE_ARPA_INET_H
1953 #include <arpa/inet.h>
1955 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1956 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1957 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1959 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1960 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1961 AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced])
1964 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1965 AC_TRY_RUN([#include <stdlib.h>
1966 #include <sys/types.h>
1967 #include <sys/stat.h>
1971 char tpl[20]="/tmp/test.XXXXXX";
1972 int fd = mkstemp(tpl);
1973 if (fd == -1) exit(1);
1975 if (fstat(fd, &st) != 0) exit(1);
1976 if ((st.st_mode & 0777) != 0600) exit(1);
1979 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1980 samba_cv_HAVE_SECURE_MKSTEMP=no,
1981 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1982 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1983 AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
1986 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1987 AC_TRY_RUN([#include <unistd.h>
1988 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1989 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1990 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1991 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX,1,[Whether sysconf(_SC_NGROUPS_MAX) is available])
1994 AC_CACHE_CHECK([for sysconf(_SC_NPROC_ONLN)],samba_cv_SYSCONF_SC_NPROC_ONLN,[
1995 AC_TRY_RUN([#include <unistd.h>
1996 main() { exit(sysconf(_SC_NPROC_ONLN) == -1 ? 1 : 0); }],
1997 samba_cv_SYSCONF_SC_NPROC_ONLN=yes,samba_cv_SYSCONF_SC_NPROC_ONLN=no,samba_cv_SYSCONF_SC_NPROC_ONLN=cross)])
1998 if test x"$samba_cv_SYSCONF_SC_NPROC_ONLN" = x"yes"; then
1999 AC_DEFINE(SYSCONF_SC_NPROC_ONLN,1,[Whether sysconf(_SC_NPROC_ONLN) is available])
2002 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
2003 AC_TRY_RUN([main() { exit(getuid() != 0); }],
2004 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
2005 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
2006 AC_DEFINE(HAVE_ROOT,1,[Whether current user is root])
2008 AC_MSG_WARN(running as non-root will disable some tests)
2012 # look for a method of finding the list of network interfaces
2014 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
2016 #define HAVE_IFACE_AIX 1
2017 #define AUTOCONF_TEST 1
2018 #include "confdefs.h"
2019 #include "${srcdir-.}/lib/interfaces.c"],
2020 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
2021 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
2022 iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
2025 if test $iface = no; then
2026 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
2028 #define HAVE_IFACE_IFCONF 1
2029 #define AUTOCONF_TEST 1
2030 #include "confdefs.h"
2031 #include "${srcdir-.}/lib/interfaces.c"],
2032 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
2033 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
2034 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
2038 if test $iface = no; then
2039 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
2041 #define HAVE_IFACE_IFREQ 1
2042 #define AUTOCONF_TEST 1
2043 #include "confdefs.h"
2044 #include "${srcdir-.}/lib/interfaces.c"],
2045 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
2046 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
2047 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
2052 ################################################
2053 # look for a method of setting the effective uid
2055 if test $seteuid = no; then
2056 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
2058 #define AUTOCONF_TEST 1
2059 #define USE_SETRESUID 1
2060 #include "confdefs.h"
2061 #include "${srcdir-.}/lib/util_sec.c"],
2062 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
2063 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
2064 seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
2069 if test $seteuid = no; then
2070 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
2072 #define AUTOCONF_TEST 1
2073 #define USE_SETREUID 1
2074 #include "confdefs.h"
2075 #include "${srcdir-.}/lib/util_sec.c"],
2076 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
2077 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
2078 seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
2082 if test $seteuid = no; then
2083 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
2085 #define AUTOCONF_TEST 1
2086 #define USE_SETEUID 1
2087 #include "confdefs.h"
2088 #include "${srcdir-.}/lib/util_sec.c"],
2089 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
2090 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
2091 seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
2095 if test $seteuid = no; then
2096 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
2098 #define AUTOCONF_TEST 1
2099 #define USE_SETUIDX 1
2100 #include "confdefs.h"
2101 #include "${srcdir-.}/lib/util_sec.c"],
2102 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
2103 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
2104 seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
2109 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
2110 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
2111 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
2112 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
2113 AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
2116 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
2117 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
2118 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
2119 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
2120 AC_DEFINE(FTRUNCATE_NEEDS_ROOT,1,[Whether ftruncate() needs root])
2123 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
2124 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
2125 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
2126 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
2127 AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
2130 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
2131 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
2132 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
2133 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
2134 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
2139 dnl Don't check for 64 bit fcntl locking if we know that the
2140 dnl glibc2.1 broken check has succeeded.
2143 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
2145 #if defined(HAVE_UNISTD_H)
2155 #ifdef HAVE_SYS_FCNTL_H
2156 #include <sys/fcntl.h>
2158 main() { struct flock64 fl64;
2159 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
2165 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
2167 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
2168 AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
2172 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
2173 AC_TRY_COMPILE([#include <sys/types.h>
2174 #include <sys/stat.h>
2175 #include <unistd.h>],
2176 [struct stat st; st.st_blocks = 0;],
2177 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
2178 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
2179 AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
2182 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
2183 AC_TRY_COMPILE([#include <sys/types.h>
2184 #include <sys/stat.h>
2185 #include <unistd.h>],
2186 [struct stat st; st.st_blksize = 0;],
2187 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
2188 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
2189 AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
2194 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
2196 #ifdef HAVE_SYS_VFS_H
2197 #include <sys/vfs.h>
2199 #ifdef HAVE_SYS_CAPABILITY_H
2200 #include <sys/capability.h>
2203 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
2204 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
2205 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
2210 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
2211 AC_TRY_COMPILE([#include <sys/acl.h>
2212 #if defined(HAVE_RPCSVC_NIS_H)
2213 #include <rpcsvc/nis.h>
2216 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
2217 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
2218 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
2222 #################################################
2223 # check for smbwrapper support
2224 AC_MSG_CHECKING(whether to use smbwrapper)
2225 AC_ARG_WITH(smbwrapper,
2226 [ --with-smbwrapper Include SMB wrapper support (default=no) ],
2227 [ case "$withval" in
2230 AC_DEFINE(WITH_SMBWRAPPER,1,[Whether to include smbwrapper support])
2231 WRAPPROG="bin/smbsh\$(EXEEXT)"
2232 WRAP="bin/smbwrapper.$SHLIBEXT"
2234 # Conditions under which smbwrapper should not be built.
2236 if test x$PICFLAGS = x; then
2237 echo No support for PIC code - disabling smbwrapper and smbsh
2240 elif test x$ac_cv_func_syscall = xno; then
2241 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
2245 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $WRAPPROG $WRAP"
2246 SMBWRAPPER="$WRAPPROG $WRAP"
2255 #################################################
2256 # check for AFS clear-text auth support
2257 samba_cv_WITH_AFS=no
2258 AC_MSG_CHECKING(whether to use AFS clear-text auth)
2260 [ --with-afs Include AFS clear-text auth support (default=no) ],
2261 [ case "$withval" in
2263 AC_MSG_RESULT($withval)
2264 samba_cv_WITH_AFS=$withval
2273 ####################################################
2274 # check for Linux-specific AFS fake-kaserver support
2275 samba_cv_WITH_FAKE_KASERVER=no
2276 AC_MSG_CHECKING(whether to use AFS fake-kaserver)
2277 AC_ARG_WITH(fake-kaserver,
2278 [ --with-fake-kaserver Include AFS fake-kaserver support (default=no) ],
2279 [ case "$withval" in
2281 AC_MSG_RESULT($withval)
2282 samba_cv_WITH_FAKE_KASERVER=$withval
2291 #################################################
2292 # decide whether we can support WITH_AFS and / or WITH_FAKE_KASERVER
2293 if test x"$samba_cv_WITH_AFS" != x"no" ||
2294 test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then
2296 # see if this box has the afs-headers in /usr/include/afs
2297 AC_MSG_CHECKING(for /usr/include/afs)
2298 if test -d /usr/include/afs; then
2299 CFLAGS="$CFLAGS -I/usr/include/afs"
2300 CPPFLAGS="$CPPFLAGS -I/usr/include/afs"
2308 AC_CHECK_HEADERS(afs.h afs/afs.h)
2309 if test x"$ac_cv_header_afs_h" = x"no" && test x"$ac_cv_header_afs_afs_h" = x"no"; then
2310 if test x"$samba_cv_WITH_FAKE_KASERVER" = x"auto" ||
2311 test x"$samba_cv_WITH_AFS" = x"auto"; then
2312 AC_MSG_WARN([AFS cannot be supported without afs.h])
2314 AC_MSG_ERROR([AFS cannot be supported without afs.h])
2317 have_afs_headers=yes
2321 if test x"$samba_cv_WITH_FAKE_KASERVER" != x"no" && test x"$have_afs_headers" == x"yes"; then
2322 AC_DEFINE(WITH_FAKE_KASERVER,1,[Whether to include AFS fake-kaserver support])
2325 if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then
2326 AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
2329 #################################################
2330 # check for the DFS clear-text auth system
2331 AC_MSG_CHECKING(whether to use DFS clear-text auth)
2333 [ --with-dce-dfs Include DCE/DFS clear-text auth support (default=no)],
2334 [ case "$withval" in
2337 AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
2346 ########################################################
2347 # Compile with LDAP support?
2349 with_ldap_support=auto
2350 AC_MSG_CHECKING([for LDAP support])
2353 [ --with-ldap LDAP support (default yes)],
2354 [ case "$withval" in
2356 with_ldap_support=$withval
2360 AC_MSG_RESULT($with_ldap_support)
2364 if test x"$with_ldap_support" != x"no"; then
2366 ##################################################################
2367 # first test for ldap.h and lber.h
2368 # (ldap.h is required for this test)
2369 AC_CHECK_HEADERS(ldap.h lber.h)
2371 if test x"$ac_cv_header_ldap_h" != x"yes"; then
2372 if test x"$with_ldap_support" = x"yes"; then
2373 AC_MSG_ERROR(ldap.h is needed for LDAP support)
2375 AC_MSG_WARN(ldap.h is needed for LDAP support)
2378 with_ldap_support=no
2382 if test x"$with_ldap_support" != x"no"; then
2385 ##################################################################
2386 # we might need the lber lib on some systems. To avoid link errors
2387 # this test must be before the libldap test
2388 AC_CHECK_LIB_EXT(lber, LDAP_LIBS, ber_scanf)
2390 ########################################################
2391 # now see if we can find the ldap libs in standard paths
2392 AC_CHECK_LIB_EXT(ldap, LDAP_LIBS, ldap_init)
2394 AC_CHECK_FUNC_EXT(ldap_domain2hostlist,$LDAP_LIBS)
2396 ########################################################
2397 # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
2398 # Check found in pam_ldap 145.
2399 AC_CHECK_FUNC_EXT(ldap_set_rebind_proc,$LDAP_LIBS)
2401 LIBS="$LIBS $LDAP_LIBS"
2402 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, smb_ldap_cv_ldap_set_rebind_proc, [
2406 [ldap_set_rebind_proc(0, 0, 0);],
2407 [smb_ldap_cv_ldap_set_rebind_proc=3],
2408 [smb_ldap_cv_ldap_set_rebind_proc=2]
2412 AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $smb_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
2414 AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS)
2416 if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes" -a x"$ac_cv_func_ext_ldap_domain2hostlist" = x"yes"; then
2417 AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])
2418 default_static_modules="$default_static_modules pdb_ldap idmap_ldap";
2419 SMBLDAP="lib/smbldap.o"
2420 with_ldap_support=yes
2421 AC_MSG_CHECKING(whether LDAP support is used)
2424 if test x"$with_ldap_support" = x"yes"; then
2425 AC_MSG_ERROR(libldap is needed for LDAP support)
2427 AC_MSG_WARN(libldap is needed for LDAP support)
2431 with_ldap_support=no
2437 #################################################
2438 # active directory support
2440 with_ads_support=auto
2441 AC_MSG_CHECKING([for Active Directory and krb5 support])
2444 [ --with-ads Active Directory support (default auto)],
2445 [ case "$withval" in
2447 with_ads_support="$withval"
2451 AC_MSG_RESULT($with_ads_support)
2456 if test x"$with_ldap_support" != x"yes"; then
2457 if test x"$with_ads_support" = x"yes"; then
2458 AC_MSG_ERROR(Active Directory Support requires LDAP support)
2459 elif test x"$with_ads_support" != x"no"; then
2460 AC_MSG_WARN(Active Directory Support requires LDAP support)
2465 if test x"$with_ads_support" != x"no"; then
2467 # Do no harm to the values of CFLAGS and LIBS while testing for
2470 #################################################
2471 # check for krb5-config from recent MIT and Heimdal kerberos 5
2472 AC_PATH_PROG(KRB5_CONFIG, krb5-config)
2473 AC_MSG_CHECKING(for working krb5-config)
2474 if test -x "$KRB5_CONFIG"; then
2475 ac_save_CFLAGS=$CFLAGS
2476 CFLAGS="";export CFLAGS
2477 ac_save_LDFLAGS=$LDFLAGS
2478 LDFLAGS="";export LDFLAGS
2479 KRB5_LIBS="`$KRB5_CONFIG --libs gssapi`"
2480 KRB5_CFLAGS="`$KRB5_CONFIG --cflags | sed s/@INCLUDE_des@//`"
2481 KRB5_CPPFLAGS="`$KRB5_CONFIG --cflags | sed s/@INCLUDE_des@//`"
2482 CFLAGS=$ac_save_CFLAGS;export CFLAGS
2483 LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS
2487 AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
2490 if test x$FOUND_KRB5 = x"no"; then
2491 #################################################
2492 # check for location of Kerberos 5 install
2493 AC_MSG_CHECKING(for kerberos 5 install path)
2495 [ --with-krb5=base-dir Locate Kerberos 5 support (default=/usr)],
2496 [ case "$withval" in
2498 AC_MSG_RESULT(no krb5-path given)
2505 AC_MSG_RESULT($withval)
2506 KRB5_CFLAGS="-I$withval/include"
2507 KRB5_CPPFLAGS="-I$withval/include"
2508 KRB5_LDFLAGS="-L$withval/lib"
2512 AC_MSG_RESULT(no krb5-path given)
2516 if test x$FOUND_KRB5 = x"no"; then
2517 #################################################
2518 # see if this box has the SuSE location for the heimdal krb implementation
2519 AC_MSG_CHECKING(for /usr/include/heimdal)
2520 if test -d /usr/include/heimdal; then
2521 if test -f /usr/lib/heimdal/lib/libkrb5.a; then
2522 KRB5_CFLAGS="-I/usr/include/heimdal"
2523 KRB5_CPPFLAGS="-I/usr/include/heimdal"
2524 KRB5_LDFLAGS="-L/usr/lib/heimdal/lib"
2527 KRB5_CFLAGS="-I/usr/include/heimdal"
2528 KRB5_CPPFLAGS="-I/usr/include/heimdal"
2536 if test x$FOUND_KRB5 = x"no"; then
2537 #################################################
2538 # see if this box has the RedHat location for kerberos
2539 AC_MSG_CHECKING(for /usr/kerberos)
2540 if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
2541 KRB5_LDFLAGS="-L/usr/kerberos/lib"
2542 KRB5_CFLAGS="-I/usr/kerberos/include"
2543 KRB5_CPPFLAGS="-I/usr/kerberos/include"
2550 ac_save_CFLAGS=$CFLAGS
2551 ac_save_CPPFLAGS=$CPPFLAGS
2552 ac_save_LDFLAGS=$LDFLAGS
2554 CFLAGS="$CFLAGS $KRB5_CFLAGS"
2555 CPPFLAGS="$CPPFLAGS $KRB5_CPPFLAGS"
2556 LDFLAGS="$LDFLAGS $KRB5_LDFLAGS"
2558 KRB5_LIBS="$KRB5_LDFLAGS $KRB5_LIBS"
2560 # now check for krb5.h. Some systems have the libraries without the headers!
2561 # note that this check is done here to allow for different kerberos
2563 AC_CHECK_HEADERS(krb5.h)
2565 if test x"$ac_cv_header_krb5_h" = x"no"; then
2567 # Give a warning if AD support was not explicitly requested,
2568 # i.e with_ads_support = auto, otherwise die with an error.
2570 if test x"$with_ads_support" = x"yes"; then
2571 AC_MSG_ERROR([Active Directory cannot be supported without krb5.h])
2573 AC_MSG_WARN([Active Directory cannot be supported without krb5.h])
2576 # Turn off AD support and restore CFLAGS and LIBS variables
2578 with_ads_support="no"
2580 CFLAGS=$ac_save_CFLAGS
2581 CPPFLAGS=$ac_save_CPPFLAGS
2582 LDFLAGS=$ac_save_LDFLAGS
2586 # Now we have determined whether we really want ADS support
2588 if test x"$with_ads_support" != x"no"; then
2591 # now check for gssapi headers. This is also done here to allow for
2592 # different kerberos include paths
2593 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h com_err.h)
2595 ##################################################################
2596 # we might need the k5crypto and com_err libraries on some systems
2597 AC_CHECK_LIB_EXT(com_err, KRB5_LIBS, _et_list)
2598 AC_CHECK_LIB_EXT(k5crypto, KRB5_LIBS, krb5_encrypt_data)
2601 AC_CHECK_LIB_EXT(crypto, KRB5_LIBS, des_set_key)
2602 AC_CHECK_LIB_EXT(asn1, KRB5_LIBS, copy_Authenticator)
2603 AC_CHECK_LIB_EXT(roken, KRB5_LIBS, roken_getaddrinfo_hostspec)
2605 # Heimdal checks. On static Heimdal gssapi must be linked before krb5.
2606 AC_CHECK_LIB_EXT(gssapi, KRB5_LIBS, gss_display_status,[],[],
2607 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
2609 ########################################################
2610 # now see if we can find the krb5 libs in standard paths
2611 # or as specified above
2612 AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_mk_req_extended)
2614 ########################################################
2615 # now see if we can find the gssapi libs in standard paths
2616 AC_CHECK_LIB_EXT(gssapi_krb5, KRB5_LIBS,gss_display_status,[],[],
2617 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
2619 AC_CHECK_FUNC_EXT(krb5_set_real_time, $KRB5_LIBS)
2620 AC_CHECK_FUNC_EXT(krb5_set_default_in_tkt_etypes, $KRB5_LIBS)
2621 AC_CHECK_FUNC_EXT(krb5_set_default_tgs_ktypes, $KRB5_LIBS)
2622 AC_CHECK_FUNC_EXT(krb5_principal2salt, $KRB5_LIBS)
2623 AC_CHECK_FUNC_EXT(krb5_use_enctype, $KRB5_LIBS)
2624 AC_CHECK_FUNC_EXT(krb5_string_to_key, $KRB5_LIBS)
2625 AC_CHECK_FUNC_EXT(krb5_get_pw_salt, $KRB5_LIBS)
2626 AC_CHECK_FUNC_EXT(krb5_string_to_key_salt, $KRB5_LIBS)
2627 AC_CHECK_FUNC_EXT(krb5_auth_con_setkey, $KRB5_LIBS)
2628 AC_CHECK_FUNC_EXT(krb5_auth_con_setuseruserkey, $KRB5_LIBS)
2629 AC_CHECK_FUNC_EXT(krb5_locate_kdc, $KRB5_LIBS)
2630 AC_CHECK_FUNC_EXT(krb5_get_permitted_enctypes, $KRB5_LIBS)
2631 AC_CHECK_FUNC_EXT(krb5_get_default_in_tkt_etypes, $KRB5_LIBS)
2632 AC_CHECK_FUNC_EXT(krb5_free_ktypes, $KRB5_LIBS)
2633 AC_CHECK_FUNC_EXT(krb5_free_data_contents, $KRB5_LIBS)
2634 AC_CHECK_FUNC_EXT(krb5_principal_get_comp_string, $KRB5_LIBS)
2636 LIBS="$LIBS $KRB5_LIBS"
2638 AC_CACHE_CHECK([for addrtype in krb5_address],
2639 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS,[
2640 AC_TRY_COMPILE([#include <krb5.h>],
2641 [krb5_address kaddr; kaddr.addrtype = ADDRTYPE_INET;],
2642 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=yes,
2643 samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=no)])
2645 if test x"$samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS" = x"yes"; then
2646 AC_DEFINE(HAVE_ADDRTYPE_IN_KRB5_ADDRESS,1,
2647 [Whether the krb5_address struct has a addrtype property])
2650 AC_CACHE_CHECK([for addr_type in krb5_address],
2651 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,[
2652 AC_TRY_COMPILE([#include <krb5.h>],
2653 [krb5_address kaddr; kaddr.addr_type = KRB5_ADDRESS_INET;],
2654 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=yes,
2655 samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=no)])
2657 if test x"$samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS" = x"yes"; then
2658 AC_DEFINE(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,1,
2659 [Whether the krb5_address struct has a addr_type property])
2662 AC_CACHE_CHECK([for enc_part2 in krb5_ticket],
2663 samba_cv_HAVE_KRB5_TKT_ENC_PART2,
2664 [AC_TRY_COMPILE([#include <krb5.h>],
2665 [krb5_ticket tkt; tkt.enc_part2->authorization_data[0]->contents = NULL;],
2666 samba_cv_HAVE_KRB5_TKT_ENC_PART2=yes,samba_cv_HAVE_KRB5_TKT_ENC_PART2=no)])
2668 if test x"$samba_cv_HAVE_KRB5_TKT_ENC_PART2" = x"yes"; then
2669 AC_DEFINE(HAVE_KRB5_TKT_ENC_PART2,1,
2670 [Whether the krb5_ticket struct has a enc_part2 property])
2673 AC_CACHE_CHECK([for keyvalue in krb5_keyblock],
2674 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE,[
2675 AC_TRY_COMPILE([#include <krb5.h>],
2676 [krb5_keyblock key; key.keyvalue.data = NULL;],
2677 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=yes,
2678 samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=no)])
2680 if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE" = x"yes"; then
2681 AC_DEFINE(HAVE_KRB5_KEYBLOCK_KEYVALUE,1,
2682 [Whether the krb5_keyblock struct has a keyvalue property])
2685 AC_CACHE_CHECK([for ENCTYPE_ARCFOUR_HMAC_MD5],
2686 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,[
2687 AC_TRY_COMPILE([#include <krb5.h>],
2688 [krb5_enctype enctype; enctype = ENCTYPE_ARCFOUR_HMAC_MD5;],
2689 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=yes,
2690 samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=no)])
2691 AC_CACHE_CHECK([for KEYTYPE_ARCFOUR_56],
2692 samba_cv_HAVE_KEYTYPE_ARCFOUR_56,[
2693 AC_TRY_COMPILE([#include <krb5.h>],
2694 [krb5_keytype keytype; keytype = KEYTYPE_ARCFOUR_56;],
2695 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=yes,
2696 samba_cv_HAVE_KEYTYPE_ARCFOUR_56=no)])
2697 # Heimdals with KEYTYPE_ARCFOUR but not KEYTYPE_ARCFOUR_56 are broken
2698 # w.r.t. arcfour and windows, so we must not enable it here
2699 if test x"$samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5" = x"yes" -a\
2700 x"$samba_cv_HAVE_KEYTYPE_ARCFOUR_56" = x"yes"; then
2701 AC_DEFINE(HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,1,
2702 [Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available])
2705 AC_CACHE_CHECK([for AP_OPTS_USE_SUBKEY],
2706 samba_cv_HAVE_AP_OPTS_USE_SUBKEY,[
2707 AC_TRY_COMPILE([#include <krb5.h>],
2708 [krb5_flags ap_options; ap_options = AP_OPTS_USE_SUBKEY;],
2709 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=yes,
2710 samba_cv_HAVE_AP_OPTS_USE_SUBKEY=no)])
2712 if test x"$samba_cv_HAVE_AP_OPTS_USE_SUBKEY" = x"yes"; then
2713 AC_DEFINE(HAVE_AP_OPTS_USE_SUBKEY,1,
2714 [Whether the AP_OPTS_USE_SUBKEY ap option is available])
2717 AC_CACHE_CHECK([for the krb5_princ_component macro],
2718 samba_cv_HAVE_KRB5_PRINC_COMPONENT,[
2719 AC_TRY_LINK([#include <krb5.h>],
2720 [const krb5_data *pkdata; krb5_context context; krb5_principal principal; pkdata = krb5_princ_component(context, principal, 0);],
2721 samba_cv_HAVE_KRB5_PRINC_COMPONENT=yes,
2722 samba_cv_HAVE_KRB5_PRINC_COMPONENT=no)])
2724 if test x"$samba_cv_HAVE_KRB5_PRINC_COMPONENT" = x"yes"; then
2725 AC_DEFINE(HAVE_KRB5_PRINC_COMPONENT,1,
2726 [Whether krb5_princ_component is available])
2729 AC_CACHE_CHECK([for memory keytab support],
2730 samba_cv_HAVE_MEMORY_KEYTAB,[
2735 krb5_context context;
2738 krb5_init_context(&context);
2739 if (krb5_kt_resolve(context, "MEMORY:", &keytab))
2743 samba_cv_HAVE_MEMORY_KEYTAB=yes,
2744 samba_cv_HAVE_MEMORY_KEYTAB=no)])
2746 if test x"$samba_cv_HAVE_MEMORY_KEYTAB" = x"yes"; then
2747 AC_DEFINE(HAVE_MEMORY_KEYTAB,1,
2748 [Whether in-memory keytabs are supported])
2751 AC_CACHE_CHECK([for key in krb5_keytab_entry],
2752 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY,[
2753 AC_TRY_COMPILE([#include <krb5.h>],
2754 [krb5_keytab_entry entry; krb5_keyblock e; entry.key = e;],
2755 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=yes,
2756 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=no)])
2758 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY" = x"yes"; then
2759 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEY,1,
2760 [Whether krb5_keytab_entry has key member])
2763 AC_CACHE_CHECK([for keyblock in krb5_keytab_entry],
2764 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,[
2765 AC_TRY_COMPILE([#include <krb5.h>],
2766 [krb5_keytab_entry entry; entry.keyblock.keytype = 0;],
2767 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=yes,
2768 samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=no)])
2770 if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK" = x"yes"; then
2771 AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,1,
2772 [Whether krb5_keytab_entry has keyblock member])
2775 if test x"$ac_cv_lib_ext_krb5_krb5_mk_req_extended" = x"yes"; then
2776 AC_DEFINE(HAVE_KRB5,1,[Whether to have KRB5 support])
2777 AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
2778 AC_MSG_CHECKING(whether Active Directory and krb5 support is used)
2781 if test x"$with_ads_support" = x"yes"; then
2782 AC_MSG_ERROR(libkrb5 is needed for Active Directory support)
2784 AC_MSG_WARN(libkrb5 is needed for Active Directory support)
2789 LIBS="$ac_save_LIBS"
2792 ########################################################
2793 # Compile experimental passdb backends?
2794 # (pdb_xml, pdb_mysql, pdb_pgsql)
2795 AC_MSG_CHECKING(whether to build experimental passdb libraries)
2797 [ --with-expsam=<list> Include experimental passdb libraries (default=no)]
2798 [ Valid choices include (comma separated list): ]
2799 [ xml, mysql & pgsql],
2800 [ expsam_pdb_modules=`echo "$withval" | sed 's/,/ /g'`
2801 if test "z$expsam_pdb_modules" = "zyes"; then
2802 expsam_pdb_modules="xml mysql pgsql"
2804 AC_MSG_RESULT($expsam_pdb_modules)
2805 for i in $expsam_pdb_modules
2810 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])])
2811 CFLAGS="$CFLAGS $XML_CFLAGS"
2815 AM_PATH_MYSQL([default_shared_modules="$default_shared_modules pdb_mysql"],[AC_MSG_ERROR([Can't find MySQL libraries while MySQL support is requested])])
2816 CFLAGS="$CFLAGS $MYSQL_CFLAGS"
2820 AM_PATH_PGSQL([default_shared_modules="$default_shared_modules pdb_pgsql"],[])
2821 CFLAGS="$CFLAGS $PGSQL_CFLAGS"
2826 echo "Unknown module name \"$i\"! Exiting..."
2834 #################################################
2835 # check for automount support
2836 AC_MSG_CHECKING(whether to use automount)
2837 AC_ARG_WITH(automount,
2838 [ --with-automount Include automount support (default=no)],
2839 [ case "$withval" in
2842 AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
2851 #################################################
2852 # check for smbmount support
2853 AC_MSG_CHECKING(whether to use smbmount)
2854 AC_ARG_WITH(smbmount,
2855 [ --with-smbmount Include smbmount (Linux only) support (default=no)],
2856 [ case "$withval" in
2861 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
2862 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbmount bin/smbmnt bin/smbumount"
2865 AC_MSG_ERROR(not on a linux system!)
2877 #################################################
2878 # check for a PAM clear-text auth, accounts, password and session support
2879 with_pam_for_crypt=no
2880 AC_MSG_CHECKING(whether to use PAM)
2882 [ --with-pam Include PAM support (default=no)],
2883 [ case "$withval" in
2886 if test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
2887 if test x"$ac_cv_header_security_pam_modules_h" = x"no"; then
2888 if test x"$ac_cv_header_security__pam_macros_h" = x"no"; then
2889 AC_MSG_ERROR(--with-pam specified but no PAM headers found)
2893 AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
2894 AUTH_LIBS="$AUTH_LIBS -lpam"
2895 with_pam_for_crypt=yes
2904 # we can't build a pam module if we don't have pam.
2905 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
2907 #################################################
2908 # check for pam_smbpass support
2909 AC_MSG_CHECKING(whether to use pam_smbpass)
2910 AC_ARG_WITH(pam_smbpass,
2911 [ --with-pam_smbpass Build PAM module for authenticating against passdb backends (default=no)],
2912 [ case "$withval" in
2916 # Conditions under which pam_smbpass should not be built.
2918 if test x$PICFLAGS = x; then
2919 AC_MSG_ERROR([No support for PIC code])
2920 elif test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
2921 AC_MSG_ERROR([No security/pam_appl.h found])
2922 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
2923 AC_MSG_ERROR([No libpam found])
2925 AUTH_LIBS="$AUTH_LIBS -lpam"
2926 SHLIB_PROGS="$SHLIB_PROGS bin/pam_smbpass.$SHLIBEXT"
2937 ###############################################
2938 # test for where we get crypt() from
2939 AC_SEARCH_LIBS(crypt, [crypt],
2940 [test "$ac_cv_search_crypt" = "none required" || AUTH_LIBS="-lcrypt $AUTH_LIBS"
2941 AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
2944 ## moved after the check for -lcrypt in order to
2945 ## ensure that the necessary libraries are included
2946 ## check checking for truncated salt. Wrapped by the
2947 ## $with_pam_for_crypt variable as above --jerry
2949 if test $with_pam_for_crypt = no; then
2950 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2952 LIBS="$AUTH_LIBS $LIBS"
2953 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2954 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
2955 LIBS="$crypt_LIBS"])
2956 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2957 AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
2961 ########################################################################################
2963 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
2965 ########################################################################################
2967 #################################################
2968 # check for a LDAP password database configuration backwards compatibility
2969 AC_MSG_CHECKING(whether to use LDAP SAM 2.2 compatible configuration)
2970 AC_ARG_WITH(ldapsam,
2971 [ --with-ldapsam Include LDAP SAM 2.2 compatible configuration (default=no)],
2972 [ case "$withval" in
2975 AC_DEFINE(WITH_LDAP_SAMCONFIG,1,[Whether to include 2.2 compatible LDAP SAM configuration])
2984 ########################################################################################
2986 ## END OF TESTS FOR SAM BACKENDS.
2988 ########################################################################################
2990 #################################################
2991 # check for a NISPLUS_HOME support
2992 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
2993 AC_ARG_WITH(nisplus-home,
2994 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
2995 [ case "$withval" in
2998 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
3007 #################################################
3008 # check for syslog logging
3009 AC_MSG_CHECKING(whether to use syslog logging)
3011 [ --with-syslog Include experimental SYSLOG support (default=no)],
3012 [ case "$withval" in
3015 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
3024 #################################################
3025 # check for a shared memory profiling support
3026 AC_MSG_CHECKING(whether to use profiling)
3027 AC_ARG_WITH(profiling-data,
3028 [ --with-profiling-data Include gathering source code profile information (default=no)],
3029 [ case "$withval" in
3032 AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
3042 #################################################
3043 # check for experimental disk-quotas support
3045 samba_cv_WITH_QUOTAS=auto
3046 samba_cv_TRY_QUOTAS=no
3047 samba_cv_RUN_QUOTA_TESTS=auto
3048 samba_cv_WITH_SYS_QUOTAS=auto
3049 samba_cv_TRY_SYS_QUOTAS=no
3050 samba_cv_SYSQUOTA_FOUND=no;
3052 AC_MSG_CHECKING(whether to try disk-quotas support)
3054 [ --with-quotas Include disk-quota support (default=no)],
3055 [ case "$withval" in
3058 samba_cv_WITH_QUOTAS=yes
3059 samba_cv_TRY_QUOTAS=yes
3060 samba_cv_RUN_QUOTA_TESTS=yes
3061 #set sys quotas to auto in this case
3062 samba_cv_TRY_SYS_QUOTAS=auto
3066 samba_cv_WITH_QUOTAS=auto
3067 samba_cv_TRY_QUOTAS=auto
3068 samba_cv_RUN_QUOTA_TESTS=auto
3069 #set sys quotas to auto in this case
3070 samba_cv_TRY_SYS_QUOTAS=auto
3074 samba_cv_WITH_QUOTAS=no
3075 samba_cv_TRY_QUOTAS=no
3076 samba_cv_RUN_QUOTA_TESTS=no
3079 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
3082 AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
3085 AC_MSG_CHECKING(whether to try the new lib/sysquotas.c interface)
3086 AC_ARG_WITH(sys-quotas,
3087 [ --with-sys-quotas Include lib/sysquotas.c support (default=auto)],
3088 [ case "$withval" in
3091 samba_cv_WITH_SYS_QUOTAS=yes
3092 samba_cv_TRY_SYS_QUOTAS=yes
3093 samba_cv_RUN_QUOTA_TESTS=yes
3097 samba_cv_WITH_SYS_QUOTAS=auto
3098 samba_cv_TRY_SYS_QUOTAS=auto
3099 samba_cv_RUN_QUOTA_TESTS=auto
3103 samba_cv_WITH_SYS_QUOTAS=no
3104 samba_cv_TRY_SYS_QUOTAS=no
3107 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
3110 AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
3113 if test x"$samba_cv_TRY_SYS_QUOTAS" = x"auto"; then
3114 AC_MSG_CHECKING(whether to try the lib/sysquotas.c interface on ${host_os})
3118 samba_cv_TRY_SYS_QUOTAS=yes
3119 samba_cv_RUN_QUOTA_TESTS=yes
3120 samba_cv_SYSQUOTA_FOUND=yes
3121 AC_DEFINE(HAVE_QUOTACTL_LINUX,1,[Whether Linux quota support is available])
3122 samba_cv_sysquotas_file="lib/sysquotas_linux.c"
3123 AC_DEFINE(HAVE_LINUX_XFS_QUOTAS,1,[Whether Linux xfs quota support is available])
3124 samba_cv_found_xfs_header=yes
3128 samba_cv_TRY_SYS_QUOTAS=no
3133 #############################################
3134 # only check for quota stuff if --with-quotas
3135 if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then
3137 # some broken header files need this
3138 AC_CHECK_HEADER(asm/types.h,[
3139 AC_DEFINE(HAVE_ASM_TYPES_H,1,[check for <asm/types.h>])
3140 AC_ADD_INCLUDE(<asm/types.h>)
3143 # For quotas on Veritas VxFS filesystems
3144 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
3146 # For sys/quota.h and linux/quota.h
3147 AC_CHECK_HEADERS(sys/quota.h)
3149 if test x"$samba_cv_found_xfs_header" != x"yes"; then
3150 # if we have xfs quota support <sys/quota.h> (IRIX) we should use it
3151 AC_CACHE_CHECK([for XFS QUOTA in <sys/quota.h>],samba_cv_HAVE_SYS_QUOTA_XFS, [
3153 #include "confdefs.h"
3154 #ifdef HAVE_SYS_TYPES_H
3155 #include <sys/types.h>
3157 #ifdef HAVE_ASM_TYPES_H
3158 #include <asm/types.h>
3160 #include <sys/quota.h>
3161 ],[int i = Q_XGETQUOTA;],
3162 samba_cv_HAVE_SYS_QUOTA_XFS=yes,samba_cv_HAVE_SYS_QUOTA_XFS=no)])
3163 if test "$samba_cv_HAVE_SYS_QUOTA_XFS"x = "yes"x; then
3164 samba_cv_found_xfs_header=yes
3168 # if we have struct dqblk .dqb_fsoftlimit instead of .dqb_isoftlimit on IRIX
3169 AC_CACHE_CHECK([if struct dqblk has .dqb_fsoftlimit],samba_cv_HAVE_DQB_FSOFTLIMIT, [
3171 #include "confdefs.h"
3172 #ifdef HAVE_SYS_QUOTA_H
3173 #include <sys/quota.h>
3177 D.dqb_fsoftlimit = 0;],
3178 samba_cv_HAVE_DQB_FSOFTLIMIT=yes,samba_cv_HAVE_DQB_FSOFTLIMIT=no)])
3179 if test "$samba_cv_HAVE_DQB_FSOFTLIMIT"x = "yes"x; then
3180 AC_DEFINE(HAVE_DQB_FSOFTLIMIT,1,[struct dqblk .dqb_fsoftlimit])
3184 # look for a working quota system
3186 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3187 AC_CACHE_CHECK([for long quotactl(int cmd, char *special, qid_t id, caddr_t addr)],samba_cv_HAVE_QUOTACTL_4A,[
3189 #define HAVE_QUOTACTL_4A 1
3190 #define AUTOCONF_TEST 1
3191 #include "confdefs.h"
3192 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3193 samba_cv_HAVE_QUOTACTL_4A=yes,samba_cv_HAVE_QUOTACTL_4A=no,samba_cv_HAVE_QUOTACTL_4A=cross)])
3194 if test x"$samba_cv_HAVE_QUOTACTL_4A" = x"yes"; then
3195 samba_cv_SYSQUOTA_FOUND=yes;
3196 AC_DEFINE(HAVE_QUOTACTL_4A,1,[Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is available])
3197 samba_cv_sysquotas_file="lib/sysquotas_4A.c"
3201 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3202 AC_CACHE_CHECK([for int quotactl(const char *path, int cmd, int id, char *addr)],samba_cv_HAVE_QUOTACTL_4B,[
3204 #define HAVE_QUOTACTL_4B 1
3205 #define AUTOCONF_TEST 1
3206 #include "confdefs.h"
3207 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3208 samba_cv_HAVE_QUOTACTL_4B=yes,samba_cv_HAVE_QUOTACTL_4B=no,samba_cv_HAVE_QUOTACTL_4B=cross)])
3209 if test x"$samba_cv_HAVE_QUOTACTL_4B" = x"yes"; then
3210 echo "int quotactl(const char *path, int cmd, int id, char *addr) is not reworked for the new sys_quota api"
3211 samba_cv_SYSQUOTA_FOUND=yes;
3212 AC_DEFINE(HAVE_QUOTACTL_4B,1,[Whether int quotactl(const char *path, int cmd, int id, char *addr) is available])
3213 samba_cv_sysquotas_file="lib/sysquotas_4B.c"
3217 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3218 AC_CACHE_CHECK([for CRAY int quotactl (char *spec, int request, char *arg)],samba_cv_HAVE_QUOTACTL_3,[
3220 #define HAVE_QUOTACTL_3 1
3221 #define AUTOCONF_TEST 1
3222 #include "confdefs.h"
3223 #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
3224 samba_cv_HAVE_QUOTACTL_3=yes,samba_cv_HAVE_QUOTACTL_3=no,samba_cv_HAVE_QUOTACTL_3=cross)])
3225 if test x"$samba_cv_HAVE_QUOTACTL_3" = x"yes"; then
3226 echo "CRAY int quotactl (char *spec, int request, char *arg) is NOT reworked for the sys_quota api"
3227 samba_cv_SYSQUOTA_FOUND=yes;
3228 AC_DEFINE(HAVE_QUOTACTL_3,1,[Whether CRAY int quotactl (char *spec, int request, char *arg); is available])
3229 samba_cv_sysquotas_file="lib/sysquotas_3.c"
3233 #################################################
3234 # check for mntent.h and struct mntent
3235 AC_CHECK_HEADERS(mntent.h)
3236 #################################################
3237 # check for setmntent,getmntent,endmntent
3238 AC_CHECK_FUNCS(setmntent getmntent endmntent)
3240 #################################################
3241 # check for devnm.h and struct mntent
3242 AC_CHECK_HEADERS(devnm.h)
3243 #################################################
3245 AC_CHECK_FUNCS(devnm)
3247 if test x"$samba_cv_WITH_SYS_QUOTAS" = x"yes"; then
3248 if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
3249 # if --with-sys-quotas=yes then build it
3250 # you have can use the get/set quota command smb.conf
3252 samba_cv_SYSQUOTA_FOUND=auto
3254 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"yes"; then
3255 # if --with-sys-quotas=yes then build it
3256 # you have can use the get/set quota command smb.conf
3258 samba_cv_TRY_SYS_QUOTAS=auto
3262 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then
3263 AC_CACHE_CHECK([whether the sys_quota interface works],samba_cv_SYSQUOTA_WORKS,[
3264 SAVE_CPPFLAGS="$CPPFLAGS"
3265 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper -I${srcdir-.}/nsswitch"
3267 #include "confdefs.h"
3268 #define NO_PROTO_H 1
3269 #define NO_CONFIG_H 1
3270 #define HAVE_SYS_QUOTAS 1
3271 #include "${srcdir-.}/${samba_cv_sysquotas_file}"
3272 #include "${srcdir-.}/lib/sysquotas.c"
3273 ],[],samba_cv_SYSQUOTA_WORKS=yes,samba_cv_SYSQUOTA_WORKS=no)
3274 CPPFLAGS="$SAVE_CPPFLAGS"
3276 if test x"$samba_cv_SYSQUOTA_WORKS" = x"yes"; then
3277 AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface)
3278 if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then
3279 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
3280 AC_DEFINE(HAVE_SYS_QUOTAS,1,[Whether the new lib/sysquotas.c interface can be used])
3281 samba_cv_WE_USE_SYS_QUOTAS=yes
3289 if test x"$samba_cv_SYSQUOTA_FOUND" != x"no" -a x"$samba_cv_found_xfs_header" = x"yes"; then
3290 AC_CACHE_CHECK([whether the sys_quota interface works with XFS],samba_cv_SYSQUOTA_WORKS_XFS,[
3291 SAVE_CPPFLAGS="$CPPFLAGS"
3292 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper -I${srcdir-.}/nsswitch"
3294 #include "confdefs.h"
3295 #define NO_PROTO_H 1
3296 #define NO_CONFIG_H 1
3297 #define HAVE_SYS_QUOTAS 1
3298 #define HAVE_XFS_QUOTAS 1
3299 #include "${srcdir-.}/lib/sysquotas_xfs.c"
3300 ],[],samba_cv_SYSQUOTA_WORKS_XFS=yes,samba_cv_SYSQUOTA_WORKS_XFS=no)
3301 CPPFLAGS="$SAVE_CPPFLAGS"
3303 if test x"$samba_cv_SYSQUOTA_WORKS_XFS" = x"yes"; then
3304 if test x"$samba_cv_WE_USE_SYS_QUOTAS" = x"yes"; then
3305 AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available])
3310 AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[
3311 SAVE_CPPFLAGS="$CPPFLAGS"
3312 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper -I${srcdir-.}/nsswitch"
3314 #include "confdefs.h"
3315 #define NO_PROTO_H 1
3316 #define NO_CONFIG_H 1
3317 #include "${srcdir-.}/smbd/quotas.c"
3318 ],[],samba_cv_QUOTA_WORKS=yes,samba_cv_QUOTA_WORKS=no)
3319 CPPFLAGS="$SAVE_CPPFLAGS"
3321 if test x"$samba_cv_QUOTA_WORKS" = x"yes"; then
3322 AC_MSG_CHECKING(whether to use the old quota support)
3323 if test x"$samba_cv_WE_USE_SYS_QUOTAS" != x"yes"; then
3324 if test x"$samba_cv_TRY_QUOTAS" != x"no"; then
3325 AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
3335 ####################
3336 # End of quota check samba_cv_RUN_QUOTA_TESTS
3339 #################################################
3340 # check for experimental utmp accounting
3342 AC_MSG_CHECKING(whether to support utmp accounting)
3345 [ --with-utmp Include utmp accounting (default, if supported by OS)],
3346 [ case "$withval" in
3356 # utmp requires utmp.h
3357 # Note similar check earlier, when checking utmp details.
3359 if test x"$WITH_UTMP" = x"yes" -a x"$ac_cv_header_utmp_h" = x"no"; then
3360 utmp_no_reason=", no utmp.h on $host_os"
3364 # Display test results
3366 if test x"$WITH_UTMP" = x"yes"; then
3368 AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
3370 AC_MSG_RESULT(no$utmp_no_reason)
3373 #################################################
3374 # choose native language(s) of man pages
3375 AC_MSG_CHECKING(chosen man pages' language(s))
3376 AC_ARG_WITH(manpages-langs,
3377 [ --with-manpages-langs={en,ja,pl} Choose man pages' language(s). (en)],
3378 [ case "$withval" in
3380 AC_MSG_WARN(--with-manpages-langs called without argument - will use default)
3388 AC_MSG_RESULT($manlangs)
3389 manlangs=`echo $manlangs | sed "s/,/ /g"` # replacing commas with spaces to produce a list
3390 AC_SUBST(manlangs)],
3393 AC_MSG_RESULT($manlangs)
3397 #################################################
3398 # should we build libsmbclient?
3400 INSTALLCLIENTCMD_SH=:
3401 INSTALLCLIENTCMD_A=:
3403 LIBSMBCLIENT_SHARED=
3405 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
3406 AC_ARG_WITH(libsmbclient,
3407 [ --with-libsmbclient Build the libsmbclient shared library (default=yes if shared libs supported)],
3408 [ case "$withval" in
3413 if test $BLDSHARED = true; then
3414 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
3415 ## build the static version of libsmbclient as well
3416 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3417 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
3418 LIBSMBCLIENT=libsmbclient
3422 AC_MSG_RESULT(no shared library support -- will supply static library)
3424 if test $enable_static = yes; then
3425 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3426 LIBSMBCLIENT=libsmbclient
3428 INSTALLCLIENT=installclientlib
3432 # if unspecified, default is to built it iff possible.
3433 if test $BLDSHARED = true; then
3434 INSTALLCLIENTCMD_SH="\$(INSTALLCMD)"
3435 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
3436 LIBSMBCLIENT=libsmbclient
3440 AC_MSG_RESULT(no shared library support -- will supply static library)
3442 if test $enable_static = yes; then
3443 INSTALLCLIENTCMD_A="\$(INSTALLCMD)"
3444 LIBSMBCLIENT=libsmbclient
3446 INSTALLCLIENT=installclientlib
3450 #################################################
3451 # these tests are taken from the GNU fileutils package
3452 AC_CHECKING(how to get filesystem space usage)
3455 # Test for statvfs64.
3456 if test $space = no; then
3458 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
3460 #if defined(HAVE_UNISTD_H)
3463 #include <sys/types.h>
3464 #include <sys/statvfs.h>
3467 struct statvfs64 fsd;
3468 exit (statvfs64 (".", &fsd));
3470 fu_cv_sys_stat_statvfs64=yes,
3471 fu_cv_sys_stat_statvfs64=no,
3472 fu_cv_sys_stat_statvfs64=cross)])
3473 if test $fu_cv_sys_stat_statvfs64 = yes; then
3475 AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
3479 # Perform only the link test since it seems there are no variants of the
3480 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
3481 # because that got a false positive on SCO OSR5. Adding the declaration
3482 # of a `struct statvfs' causes this test to fail (as it should) on such
3483 # systems. That system is reported to work fine with STAT_STATFS4 which
3484 # is what it gets when this test fails.
3485 if test $space = no; then
3487 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
3488 [AC_TRY_LINK([#include <sys/types.h>
3489 #include <sys/statvfs.h>],
3490 [struct statvfs fsd; statvfs (0, &fsd);],
3491 fu_cv_sys_stat_statvfs=yes,
3492 fu_cv_sys_stat_statvfs=no)])
3493 if test $fu_cv_sys_stat_statvfs = yes; then
3495 AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
3499 if test $space = no; then
3500 # DEC Alpha running OSF/1
3501 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
3502 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
3504 #include <sys/param.h>
3505 #include <sys/types.h>
3506 #include <sys/mount.h>
3511 exit (statfs (".", &fsd, sizeof (struct statfs)));
3513 fu_cv_sys_stat_statfs3_osf1=yes,
3514 fu_cv_sys_stat_statfs3_osf1=no,
3515 fu_cv_sys_stat_statfs3_osf1=no)])
3516 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
3517 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
3519 AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
3523 if test $space = no; then
3525 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
3526 member (AIX, 4.3BSD)])
3527 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
3529 #ifdef HAVE_SYS_PARAM_H
3530 #include <sys/param.h>
3532 #ifdef HAVE_SYS_MOUNT_H
3533 #include <sys/mount.h>
3535 #ifdef HAVE_SYS_VFS_H
3536 #include <sys/vfs.h>
3542 exit (statfs (".", &fsd));
3544 fu_cv_sys_stat_statfs2_bsize=yes,
3545 fu_cv_sys_stat_statfs2_bsize=no,
3546 fu_cv_sys_stat_statfs2_bsize=no)])
3547 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
3548 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
3550 AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
3554 if test $space = no; then
3556 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
3557 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
3558 [AC_TRY_RUN([#include <sys/types.h>
3559 #include <sys/statfs.h>
3563 exit (statfs (".", &fsd, sizeof fsd, 0));
3565 fu_cv_sys_stat_statfs4=yes,
3566 fu_cv_sys_stat_statfs4=no,
3567 fu_cv_sys_stat_statfs4=no)])
3568 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
3569 if test $fu_cv_sys_stat_statfs4 = yes; then
3571 AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
3575 if test $space = no; then
3577 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
3578 member (4.4BSD and NetBSD)])
3579 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
3580 [AC_TRY_RUN([#include <sys/types.h>
3581 #ifdef HAVE_SYS_PARAM_H
3582 #include <sys/param.h>
3584 #ifdef HAVE_SYS_MOUNT_H
3585 #include <sys/mount.h>
3591 exit (statfs (".", &fsd));
3593 fu_cv_sys_stat_statfs2_fsize=yes,
3594 fu_cv_sys_stat_statfs2_fsize=no,
3595 fu_cv_sys_stat_statfs2_fsize=no)])
3596 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
3597 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
3599 AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
3603 if test $space = no; then
3605 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
3606 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
3607 [AC_TRY_RUN([#include <sys/types.h>
3608 #ifdef HAVE_SYS_PARAM_H
3609 #include <sys/param.h>
3611 #ifdef HAVE_SYS_MOUNT_H
3612 #include <sys/mount.h>
3614 #ifdef HAVE_SYS_FS_TYPES_H
3615 #include <sys/fs_types.h>
3620 /* Ultrix's statfs returns 1 for success,
3621 0 for not mounted, -1 for failure. */
3622 exit (statfs (".", &fsd) != 1);
3624 fu_cv_sys_stat_fs_data=yes,
3625 fu_cv_sys_stat_fs_data=no,
3626 fu_cv_sys_stat_fs_data=no)])
3627 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
3628 if test $fu_cv_sys_stat_fs_data = yes; then
3630 AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
3635 # As a gating factor for large file support, in order to
3636 # use <4GB files we must have the following minimal support
3638 # long long, and a 64 bit off_t or off64_t.
3639 # If we don't have all of these then disable large
3642 AC_MSG_CHECKING([if large file support can be enabled])
3644 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
3645 #include <sys/types.h>
3651 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
3652 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
3653 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
3655 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
3657 AC_ARG_WITH(spinlocks,
3658 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no) ])
3659 if test "x$with_spinlocks" = "xyes"; then
3660 AC_DEFINE(USE_SPINLOCKS,1,[Whether to use spin locks instead of fcntl locks])
3664 AC_DEFINE(SPARC_SPINLOCKS,1,[Whether to use sparc spinlocks])
3667 i386|i486|i586|i686)
3668 AC_DEFINE(INTEL_SPINLOCKS,1,[Whether to use intel spinlocks])
3672 AC_DEFINE(MIPS_SPINLOCKS,1,[Whether to use mips spinlocks])
3676 AC_DEFINE(POWERPC_SPINLOCKS,1,[Whether to use powerpc spinlocks])
3681 #################################################
3682 # check for ACL support
3684 AC_MSG_CHECKING(whether to support ACLs)
3685 AC_ARG_WITH(acl-support,
3686 [ --with-acl-support Include ACL support (default=no)],
3687 [ case "$withval" in
3692 AC_MSG_RESULT(Using UnixWare ACLs)
3693 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
3696 AC_MSG_RESULT(Using solaris ACLs)
3697 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
3700 AC_MSG_RESULT(Using HPUX ACLs)
3701 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
3704 AC_MSG_RESULT(Using IRIX ACLs)
3705 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
3708 AC_MSG_RESULT(Using AIX ACLs)
3709 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
3712 AC_MSG_RESULT(Using Tru64 ACLs)
3713 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
3714 ACL_LIBS="$ACL_LIBS -lpacl"
3717 AC_MSG_RESULT(Using FreeBSD posix ACLs)
3718 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether FreeBSD POSIX ACLs are available])
3719 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
3722 AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
3723 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
3724 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
3727 AC_TRY_LINK([#include <sys/types.h>
3728 #include <sys/acl.h>],
3729 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
3730 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
3732 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
3733 AC_MSG_RESULT(Using posix ACLs)
3734 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
3735 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
3738 AC_TRY_LINK([#include <sys/types.h>
3739 #include <sys/acl.h>],
3740 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
3741 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
3743 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
3744 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
3749 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
3750 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
3753 AC_TRY_LINK([#include <sys/types.h>
3754 #include <sys/acl.h>],
3755 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
3756 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
3758 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
3759 AC_MSG_RESULT(Using posix ACLs)
3760 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
3761 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
3764 AC_TRY_LINK([#include <sys/types.h>
3765 #include <sys/acl.h>],
3766 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
3767 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
3769 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
3770 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
3778 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
3781 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
3785 #################################################
3786 # check for sendfile support
3788 with_sendfile_support=yes
3789 AC_MSG_CHECKING(whether to check to support sendfile)
3790 AC_ARG_WITH(sendfile-support,
3791 [ --with-sendfile-support Check for sendfile support (default=yes)],
3792 [ case "$withval" in
3799 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
3800 AC_TRY_LINK([#include <sys/sendfile.h>],
3805 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
3807 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
3809 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
3810 AC_TRY_LINK([#include <sys/sendfile.h>],
3815 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
3817 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
3819 # Try and cope with broken Linux sendfile....
3820 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
3822 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
3823 #undef _FILE_OFFSET_BITS
3825 #include <sys/sendfile.h>],
3830 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
3832 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
3834 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
3835 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
3836 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
3837 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
3838 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
3839 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
3840 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
3841 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
3842 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
3843 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
3844 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
3851 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
3853 #include <sys/types.h>
3855 #include <sys/socket.h>
3856 #include <sys/uio.h>],
3858 int fromfd, tofd, ret, total=0;
3859 off_t offset, nwritten;
3862 hdr.headers = &hdtrl;
3864 hdr.trailers = NULL;
3866 hdtrl.iov_base = NULL;
3868 ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
3870 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
3872 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
3873 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
3874 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
3875 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
3882 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
3884 #include <sys/socket.h>
3885 #include <sys/uio.h>],
3889 struct iovec hdtrl[2];
3893 hdtrl[0].iov_base = 0;
3894 hdtrl[0].iov_len = 0;
3896 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
3898 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
3899 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
3900 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
3901 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
3902 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
3907 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
3909 #include <sys/socket.h>
3910 #include <sys/uio.h>],
3914 struct iovec hdtrl[2];
3918 hdtrl[0].iov_base = 0;
3919 hdtrl[0].iov_len = 0;
3921 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
3923 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
3924 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
3925 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
3926 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
3927 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
3934 AC_CHECK_LIB(sendfile,sendfilev)
3935 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
3937 #include <sys/sendfile.h>],
3941 struct sendfilevec vec[2];
3947 vec[0].sfv_fd = SFV_FD_SELF;
3948 vec[0].sfv_flag = 0;
3953 vec[1].sfv_flag = 0;
3956 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
3958 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
3960 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
3961 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
3962 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
3963 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
3968 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
3970 #include <sys/sendfile.h>],
3974 struct sendfilevec vec[2];
3980 vec[0].sfv_fd = SFV_FD_SELF;
3981 vec[0].sfv_flag = 0;
3986 vec[1].sfv_flag = 0;
3989 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
3991 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
3993 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
3994 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
3995 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
3996 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
4014 #################################################
4015 # Check whether winbind is supported on this platform. If so we need to
4016 # build and install client programs, sbin programs and shared libraries
4018 AC_MSG_CHECKING(whether to build winbind)
4020 # Initially, the value of $host_os decides whether winbind is supported
4024 # Define the winbind shared library name and any specific linker flags
4025 # it needs to be built with.
4027 WINBIND_NSS="nsswitch/libnss_winbind.$SHLIBEXT"
4028 WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT"
4029 WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
4033 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
4036 # FreeBSD winbind client is implemented as a wrapper around
4037 # the Linux version.
4038 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
4039 nsswitch/winbind_nss_linux.o"
4042 # IRIX has differently named shared libraries
4043 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
4044 WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT"
4045 WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT"
4048 # Solaris winbind client is implemented as a wrapper around
4049 # the Linux version.
4050 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \
4051 nsswitch/winbind_nss_linux.o"
4052 WINBIND_NSS_EXTRA_LIBS="-lsocket"
4055 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
4058 # AIX has even differently named shared libraries. No
4059 # WINS support has been implemented yet.
4060 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o"
4061 WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init"
4062 WINBIND_NSS="nsswitch/WINBIND"
4067 winbind_no_reason=", unsupported on $host_os"
4071 AC_SUBST(WINBIND_NSS)
4072 AC_SUBST(WINBIND_WINS_NSS)
4073 AC_SUBST(WINBIND_NSS_LDSHFLAGS)
4074 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
4075 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
4077 # Check the setting of --with-winbindd
4079 AC_ARG_WITH(winbind,
4080 [ --with-winbind Build winbind (default, if supported by OS)],
4093 # We need unix domain sockets for winbind
4095 if test x"$HAVE_WINBIND" = x"yes"; then
4096 if test x"$samba_cv_unixsocket" = x"no"; then
4097 winbind_no_reason=", no unix domain socket support on $host_os"
4102 # Display test results
4104 if test x"$HAVE_WINBIND" = x"yes"; then
4106 AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
4108 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)"
4109 EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)"
4110 if test x"$BLDSHARED" = x"true"; then
4111 SHLIB_PROGS="$SHLIB_PROGS $WINBIND_NSS $WINBIND_WINS_NSS"
4113 if test x"$with_pam" = x"yes"; then
4114 SHLIB_PROGS="$SHLIB_PROGS nsswitch/pam_winbind.$SHLIBEXT"
4118 AC_MSG_RESULT(no$winbind_no_reason)
4121 # Solaris has some extra fields in struct passwd that need to be
4122 # initialised otherwise nscd crashes.
4124 AC_CHECK_MEMBER(struct passwd.pw_comment,
4125 AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),,
4128 AC_CHECK_MEMBER(struct passwd.pw_age,
4129 AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),,
4132 #################################################
4133 # Check to see if we should use the included popt
4135 AC_ARG_WITH(included-popt,
4136 [ --with-included-popt use bundled popt library, not from system],
4147 if test x"$INCLUDED_POPT" != x"yes"; then
4148 AC_CHECK_LIB(popt, poptGetContext,
4149 INCLUDED_POPT=no, INCLUDED_POPT=yes)
4152 AC_MSG_CHECKING(whether to use included popt)
4153 if test x"$INCLUDED_POPT" = x"yes"; then
4155 BUILD_POPT='$(POPT_OBJS)'
4156 POPTLIBS='$(POPT_OBJS)'
4157 FLAGS1="-I$srcdir/popt"
4163 AC_SUBST(BUILD_POPT)
4167 #################################################
4168 # Check if the user wants Python
4170 # At the moment, you can use this to set which Python binary to link
4171 # against. (Libraries built for Python2.2 can't be used by 2.1,
4172 # though they can coexist in different directories.) In the future
4173 # this might make the Python stuff be built by default.
4175 # Defaulting python breaks the clean target if python isn't installed
4180 [ --with-python=PYTHONNAME build Python libraries],
4181 [ case "${withval-python}" in
4184 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS python_ext"
4190 PYTHON=${withval-python}
4195 for i in `echo $default_static_modules | sed -e's/,/ /g'`
4197 eval MODULE_DEFAULT_$i=STATIC
4200 for i in `echo $default_shared_modules | sed -e's/,/ /g'`
4202 dnl Fall back to static if dlopen() is not available
4203 eval MODULE_DEFAULT_$i=STATIC
4205 if test x"$ac_cv_func_dlopen" = xyes; then
4206 eval MODULE_DEFAULT_$i=SHARED
4210 dnl Always built these modules static
4211 MODULE_pdb_guest=STATIC
4212 MODULE_rpc_spoolss=STATIC
4213 MODULE_rpc_srv=STATIC
4214 MODULE_idmap_tdb=STATIC
4216 AC_ARG_WITH(static-modules,
4217 [ --with-static-modules=MODULES Comma-seperated list of names of modules to statically link in],
4218 [ if test $withval; then
4219 for i in `echo $withval | sed -e's/,/ /g'`
4221 eval MODULE_$i=STATIC
4225 AC_ARG_WITH(shared-modules,
4226 [ --with-shared-modules=MODULES Comma-seperated list of names of modules to build shared],
4227 [ if test $withval; then
4228 for i in `echo $withval | sed -e's/,/ /g'`
4230 eval MODULE_$i=SHARED
4234 ###########################################################################
4235 ## contributed pdb_modules
4237 SMB_MODULE(pdb_xml, passdb/pdb_xml.o, "bin/xml.$SHLIBEXT", PDB,
4238 [ PASSDB_LIBS="$PASSDB_LIBS $XML_LIBS" ] )
4239 SMB_MODULE(pdb_mysql, passdb/pdb_mysql.o, "bin/mysql.$SHLIBEXT", PDB,
4240 [ PASSDB_LIBS="$PASSDB_LIBS $MYSQL_LIBS" ] )
4241 SMB_MODULE(pdb_pgsql, passdb/pdb_pgsql.o, "bin/pgsql.$SHLIBEXT", PDB,
4242 [ PASSDB_LIBS="$PASSDB_LIBS $PGSQL_LIBS" ] )
4244 ## end of contributed pdb_modules
4245 ###########################################################################
4247 SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o, "bin/ldapsam.$SHLIBEXT", PDB,
4248 [ PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" ] )
4249 SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB)
4250 SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB)
4251 SMB_MODULE(pdb_guest, passdb/pdb_guest.o, "bin/guest.$SHLIBEXT", PDB)
4252 SMB_SUBSYSTEM(PDB,passdb/pdb_interface.o)
4254 SMB_MODULE(rpc_lsa, \$(RPC_LSA_OBJ), "bin/librpc_lsarpc.$SHLIBEXT", RPC)
4255 SMB_MODULE(rpc_reg, \$(RPC_REG_OBJ), "bin/librpc_winreg.$SHLIBEXT", RPC)
4256 SMB_MODULE(rpc_lsa_ds, \$(RPC_LSA_DS_OBJ), "bin/librpc_lsa_ds.$SHLIBEXT", RPC)
4257 SMB_MODULE(rpc_wks, \$(RPC_WKS_OBJ), "bin/librpc_wkssvc.$SHLIBEXT", RPC)
4258 SMB_MODULE(rpc_net, \$(RPC_NETLOG_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC)
4259 SMB_MODULE(rpc_dfs, \$(RPC_DFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC)
4260 SMB_MODULE(rpc_srv, \$(RPC_SVC_OBJ), "bin/librpc_srvsvc.$SHLIBEXT", RPC)
4261 SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC)
4262 SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC)
4263 SMB_MODULE(rpc_echo, \$(RPC_ECHO_OBJ), "bin/librpc_echo.$SHLIBEXT", RPC)
4264 SMB_SUBSYSTEM(RPC,smbd/server.o)
4266 SMB_MODULE(idmap_ldap, sam/idmap_ldap.o, "bin/idmap_ldap.$SHLIBEXT", IDMAP)
4267 SMB_MODULE(idmap_tdb, sam/idmap_tdb.o, "bin/idmap_tdb.$SHLIBEXT", IDMAP)
4268 SMB_SUBSYSTEM(IDMAP,sam/idmap.o)
4270 SMB_MODULE(charset_weird, modules/weird.o, "bin/weird.$SHLIBEXT", CHARSET)
4271 SMB_MODULE(charset_CP850, modules/CP850.o, "bin/CP850.$SHLIBEXT", CHARSET)
4272 SMB_MODULE(charset_CP437, modules/CP437.o, "bin/CP437.$SHLIBEXT", CHARSET)
4273 SMB_MODULE(charset_macosxfs, modules/charset_macosxfs.o,"bin/macosxfs.$SHLIBEXT", CHARSET)
4274 SMB_SUBSYSTEM(CHARSET,lib/iconv.o)
4276 SMB_MODULE(auth_rhosts, \$(AUTH_RHOSTS_OBJ), "bin/rhosts.$SHLIBEXT", AUTH)
4277 SMB_MODULE(auth_sam, \$(AUTH_SAM_OBJ), "bin/sam.$SHLIBEXT", AUTH)
4278 SMB_MODULE(auth_unix, \$(AUTH_UNIX_OBJ), "bin/unix.$SHLIBEXT", AUTH)
4279 SMB_MODULE(auth_winbind, \$(AUTH_WINBIND_OBJ), "bin/winbind.$SHLIBEXT", AUTH)
4280 SMB_MODULE(auth_server, \$(AUTH_SERVER_OBJ), "bin/smbserver.$SHLIBEXT", AUTH)
4281 SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), "bin/domain.$SHLIBEXT", AUTH)
4282 SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), "bin/builtin.$SHLIBEXT", AUTH)
4283 SMB_SUBSYSTEM(AUTH,auth/auth.o)
4285 SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), "bin/recycle.$SHLIBEXT", VFS)
4286 SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), "bin/audit.$SHLIBEXT", VFS)
4287 SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), "bin/extd_audit.$SHLIBEXT", VFS)
4288 SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK_OBJ), "bin/netatalk.$SHLIBEXT", VFS)
4289 SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), "bin/fake_perms.$SHLIBEXT", VFS)
4290 SMB_MODULE(vfs_default_quota, \$(VFS_DEFAULT_QUOTA_OBJ), "bin/default_quota.$SHLIBEXT", VFS)
4291 SMB_MODULE(vfs_readonly, \$(VFS_READONLY_OBJ), "bin/readonly.$SHLIBEXT", VFS)
4292 SMB_MODULE(vfs_cap, \$(VFS_CAP_OBJ), "bin/cap.$SHLIBEXT", VFS)
4293 SMB_SUBSYSTEM(VFS,smbd/vfs.o)
4295 AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules])
4297 #################################################
4298 # do extra things if we are running insure
4300 if test "${ac_cv_prog_CC}" = "insure"; then
4301 CPPFLAGS="$CPPFLAGS -D__INSURE__"
4304 #################################################
4305 # Display summary of libraries detected
4307 AC_MSG_RESULT([Using libraries:])
4308 AC_MSG_RESULT([ LIBS = $LIBS])
4309 if test x"$with_ads_support" != x"no"; then
4310 AC_MSG_RESULT([ KRB5_LIBS = $KRB5_LIBS])
4312 if test x"$with_ldap_support" != x"no"; then
4313 AC_MSG_RESULT([ LDAP_LIBS = $LDAP_LIBS])
4315 AC_MSG_RESULT([ AUTH_LIBS = $AUTH_LIBS])
4317 #################################################
4318 # final configure stuff
4320 AC_MSG_CHECKING([configure summary])
4321 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
4323 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
4324 AC_MSG_WARN([cannot run when cross-compiling]))
4329 dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
4330 LIB_REMOVE_USR_LIB(LDFLAGS)
4331 LIB_REMOVE_USR_LIB(LIBS)
4333 dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
4334 CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
4335 CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
4337 AC_OUTPUT(include/stamp-h Makefile script/findsmb smbadduser script/gen-8bit-gap.sh)
4339 #################################################
4340 # Print very concise instructions on building/use
4341 if test "x$enable_dmalloc" = xyes
4343 AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
4344 AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])