1 dnl -*- mode: m4-mode -*-
2 dnl Process this file with autoconf to produce a configure script.
3 AC_INIT(include/includes.h)
4 AC_CONFIG_HEADER(include/config.h)
6 #################################################
7 # Directory handling stuff to support both the
8 # legacy SAMBA directories and FHS compliant
10 AC_PREFIX_DEFAULT(/usr/local/samba)
13 [ --with-fhs Use FHS-compliant paths (default=no)],
14 configdir="${sysconfdir}/samba"
15 lockdir="\${VARDIR}/cache/samba"
16 piddir="\${VARDIR}/run/samba"
17 logfilebase="\${VARDIR}/log/samba"
18 privatedir="\${CONFIGDIR}/private"
19 libdir="\${prefix}/lib/samba"
20 swatdir="\${DATADIR}/samba/swat",
21 configdir="\${LIBDIR}"
22 logfilebase="\${VARDIR}"
23 lockdir="\${VARDIR}/locks"
24 piddir="\${VARDIR}/locks"
25 privatedir="\${prefix}/private"
26 swatdir="\${prefix}/swat")
28 #################################################
29 # set private directory location
30 AC_ARG_WITH(privatedir,
31 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
35 # Just in case anybody calls it without argument
37 AC_MSG_WARN([--with-privatedir called without argument - will use default])
44 #################################################
45 # set lock directory location
47 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
51 # Just in case anybody calls it without argument
53 AC_MSG_WARN([--with-lockdir called without argument - will use default])
60 #################################################
61 # set pid directory location
63 [ --with-piddir=DIR Where to put pid files ($ac_default_prefix/var/locks)],
67 # Just in case anybody calls it without argument
69 AC_MSG_WARN([--with-piddir called without argument - will use default])
76 #################################################
77 # set SWAT directory location
79 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
83 # Just in case anybody does it
85 AC_MSG_WARN([--with-swatdir called without argument - will use default])
92 #################################################
93 # set configuration directory location
94 AC_ARG_WITH(configdir,
95 [ --with-configdir=DIR Where to put configuration files (\$libdir)],
99 # Just in case anybody does it
101 AC_MSG_WARN([--with-configdir called without argument - will use default])
108 #################################################
109 # set log directory location
110 AC_ARG_WITH(logfilebase,
111 [ --with-logfilebase=DIR Where to put log files (\$(VARDIR))],
115 # Just in case anybody does it
117 AC_MSG_WARN([--with-logfilebase called without argument - will use default])
120 logfilebase="$withval"
127 AC_SUBST(logfilebase)
133 dnl Unique-to-Samba variables we'll be playing with.
143 AC_SUBST(LIBSMBCLIENT_SHARED)
144 AC_SUBST(LIBSMBCLIENT)
147 AC_SUBST(SHLIB_PROGS)
149 AC_SUBST(EXTRA_BIN_PROGS)
150 AC_SUBST(EXTRA_SBIN_PROGS)
151 AC_SUBST(EXTRA_ALL_TARGETS)
153 # compile with optimization and without debugging by default
154 CFLAGS="-O ${CFLAGS}"
157 [ --enable-debug Turn on compiler debugging information (default=no)],
158 [if eval "test x$enable_debug = xyes"; then
159 CFLAGS="${CFLAGS} -g"
162 AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings and debugging (default=no)],
163 [if eval "test x$enable_developer = xyes"; then
164 CFLAGS="${CFLAGS} -g -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -DDEBUG_PASSWORD -DDEVELOPER"
167 AC_ARG_ENABLE(krb5developer, [ --enable-krb5developer Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
168 [if eval "test x$enable_krb5developer = xyes"; then
169 CFLAGS="${CFLAGS} -g -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -DDEBUG_PASSWORD -DDEVELOPER"
172 AC_ARG_ENABLE(dmalloc, [ --enable-dmalloc Enable heap debugging [default=no]])
174 if test "x$enable_dmalloc" = xyes
176 AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
177 AC_DEFINE(DMALLOC_FUNC_CHECK, 1,
178 [Define to check invariants around some common functions])
179 LIBS="$LIBS -ldmalloc"
182 dnl Checks for programs.
187 dnl Check if we use GNU ld
191 dnl needed before AC_TRY_COMPILE
194 dnl look for executable suffix
197 dnl Check if C compiler understands -c and -o at the same time
199 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
206 dnl Check if the C compiler understands volatile (it should, being ANSI).
207 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
208 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
209 samba_cv_volatile=yes,samba_cv_volatile=no)])
210 if test x"$samba_cv_volatile" = x"yes"; then
211 AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
217 dnl Add #include for broken IRIX header files
219 *irix6*) AC_ADD_INCLUDE(<standards.h>)
223 AC_VALIDATE_CACHE_SYSTEM_TYPE
228 # Config CPPFLAG settings for strange OS's that must be set
229 # before other tests.
232 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
236 # mmap on HPUX is completely broken...
237 AC_DEFINE(MMAP_BLACKLIST, 1, [Whether MMAP is broken])
238 if test $ac_cv_prog_cc_Ae = yes; then
239 CPPFLAGS="$CPPFLAGS -Ae"
242 # Defines needed for HPUX support.
243 # HPUX has bigcrypt but (sometimes?) doesn't use it for
244 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
248 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4"
249 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
250 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
251 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
252 AC_DEFINE(_ALIGNMENT_REQUIRED,1,[Required alignment])
253 AC_DEFINE(_MAX_ALIGNMENT,4,[Maximum alignment])
256 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4"
257 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
258 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
259 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
260 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to use large file support])
261 AC_DEFINE(_ALIGNMENT_REQUIRED, 1, [Required alignment])
262 AC_DEFINE(_MAX_ALIGNMENT, 4, [Maximum alignment])
269 # CRAY Unicos has broken const handling
271 AC_MSG_RESULT([disabling const])
272 CPPFLAGS="$CPPFLAGS -Dconst="
276 # AIX4.x doesn't even admit to having large
277 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
280 AC_MSG_RESULT([enabling large file support])
281 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
282 AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
285 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
286 # to the existance of large files..
287 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
288 # recommendations on large file support, however it makes the
289 # compile work using gcc 2.7 and 2.8, whereas using the Sun
290 # recommendation makes the compile fail on gcc2.7. JRA.
294 5.0*|5.1*|5.2*|5.3*|5.5*)
295 AC_MSG_RESULT([no large file support])
298 AC_MSG_RESULT([enabling large file support])
299 if test "$ac_cv_prog_gcc" = yes; then
300 ${CC-cc} -v >conftest.c 2>&1
301 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
303 case "$ac_cv_gcc_compiler_version_number" in
304 *"gcc version 2.6"*|*"gcc version 2.7"*)
305 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
306 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
309 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
310 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
311 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
315 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
316 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
317 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
323 # Tests needed for SINIX large file support.
326 if test $host = mips-sni-sysv4 ; then
327 AC_MSG_CHECKING([for LFS support])
328 old_CPPFLAGS="$CPPFLAGS"
329 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
333 #if _LFS64_LARGEFILE == 1
338 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
339 CPPFLAGS="$old_CPPFLAGS"
340 if test x$SINIX_LFS_SUPPORT = xyes ; then
341 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
342 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
343 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
344 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
345 LIBS="`getconf LFS64_LIBS` $LIBS"
347 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
351 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
354 AC_MSG_CHECKING([for LFS support])
355 old_CPPFLAGS="$CPPFLAGS"
356 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
359 #include <sys/utsname.h>
361 #if _LFS64_LARGEFILE == 1
366 /* Ensure this is glibc 2.2 or higher */
367 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
368 int libc_major = __GLIBC__;
369 int libc_minor = __GLIBC_MINOR__;
377 /* Ensure this is kernel 2.4 or higher */
380 release = uts.release;
381 major = atoi(strsep(&release, "."));
382 minor = atoi(strsep(&release, "."));
384 if (major > 2 || (major == 2 && minor > 3))
391 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
392 CPPFLAGS="$old_CPPFLAGS"
393 if test x$LINUX_LFS_SUPPORT = xyes ; then
394 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
395 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
396 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
397 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
399 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
403 AC_MSG_CHECKING([for LFS support])
404 old_CPPFLAGS="$CPPFLAGS"
405 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
409 #if _LFS64_LARGEFILE == 1
414 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
415 CPPFLAGS="$old_CPPFLAGS"
416 if test x$GLIBC_LFS_SUPPORT = xyes ; then
417 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
418 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
419 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
421 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
431 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
432 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
433 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
434 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
435 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
436 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
437 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
438 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h ldap.h lber.h dlfcn.h)
439 AC_CHECK_HEADERS(sys/syslog.h syslog.h)
442 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
443 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
447 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
448 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
449 if test x"$ac_cv_header_shadow_h" = x"yes"; then
450 AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
454 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
455 AC_CHECK_HEADERS(nss.h nss_common.h ns_api.h sys/security.h security/pam_appl.h security/pam_modules.h)
456 AC_CHECK_HEADERS(stropts.h poll.h)
457 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
458 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
460 # For experimental utmp support (lastlog on some BSD-like systems)
461 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
463 # For quotas on Veritas VxFS filesystems
464 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
466 # For quotas on Linux XFS filesystems
467 AC_CHECK_HEADERS(linux/xqm.h)
468 AC_CHECK_HEADERS(xfs/xqm.h)
470 AC_CHECK_SIZEOF(int,cross)
471 AC_CHECK_SIZEOF(long,cross)
472 AC_CHECK_SIZEOF(short,cross)
487 AC_CHECK_TYPE(ino_t,unsigned)
488 AC_CHECK_TYPE(loff_t,off_t)
489 AC_CHECK_TYPE(offset_t,loff_t)
490 AC_CHECK_TYPE(ssize_t, int)
491 AC_CHECK_TYPE(wchar_t, unsigned short)
493 ############################################
494 # for cups support we need libcups, and a handful of header files
497 [ --enable-cups Turn on CUPS support (default=auto)])
499 if test x$enable_cups != xno; then
500 AC_PATH_PROG(CUPS_CONFIG, cups-config)
502 if test "x$CUPS_CONFIG" != x; then
503 AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
504 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
505 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
506 PRINTLIBS="$PRINTLIBS `$CUPS_CONFIG --libs`"
510 ############################################
511 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code
512 AC_SEARCH_LIBS(dlopen, [dl])
513 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
515 ############################################
516 # check if the compiler can do immediate structures
517 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
521 typedef struct {unsigned x;} FOOBAR;
522 #define X_FOOBAR(x) ((FOOBAR) { x })
523 #define FOO_ONE X_FOOBAR(1)
531 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
532 if test x"$samba_cv_immediate_structures" = x"yes"; then
533 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures])
536 ############################################
537 # check for unix domain sockets
538 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
540 #include <sys/types.h>
543 #include <sys/socket.h>
544 #include <sys/un.h>],
546 struct sockaddr_un sunaddr;
547 sunaddr.sun_family = AF_UNIX;
549 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
550 if test x"$samba_cv_unixsocket" = x"yes"; then
551 AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support])
555 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
557 #include <sys/types.h>
562 #include <sys/socket.h>],[socklen_t i = 0],
563 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
564 if test x"$samba_cv_socklen_t" = x"yes"; then
565 AC_DEFINE(HAVE_SOCKLEN_T_TYPE,1,[Whether we have the variable type socklen_t])
568 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
570 #include <sys/types.h>
575 #include <signal.h>],[sig_atomic_t i = 0],
576 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
577 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
578 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
581 # stupid headers have the functions but no declaration. grrrr.
582 AC_HAVE_DECL(errno, [#include <errno.h>])
583 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
584 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
585 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
586 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
587 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
588 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
590 # and glibc has setresuid under linux but the function does
591 # nothing until kernel 2.1.44! very dumb.
592 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
593 AC_TRY_RUN([#include <errno.h>
594 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
595 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
596 if test x"$samba_cv_have_setresuid" = x"yes"; then
597 AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
600 # Do the same check for setresguid...
602 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
603 AC_TRY_RUN([#include <unistd.h>
605 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
606 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
607 if test x"$samba_cv_have_setresgid" = x"yes"; then
608 AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
613 ###############################################
614 # test for where we get crypt() from
615 AC_SEARCH_LIBS(crypt, [crypt], [AUTHLIBS="$AUTHLIBS -lcrypt";
616 AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
618 ###############################################
619 # Readline included by default unless explicitly asked not to
620 test "${with_readline+set}" != "set" && with_readline=yes
622 # test for where we get readline() from
623 AC_MSG_CHECKING(whether to use readline)
624 AC_ARG_WITH(readline,
625 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto) ],
626 [ case "$with_readline" in
630 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
631 AC_CHECK_HEADERS(readline/history.h)
633 AC_CHECK_HEADERS(readline.h readline/readline.h,[
634 for termlib in ncurses curses termcap terminfo termlib; do
635 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
637 AC_CHECK_LIB(readline, rl_callback_handler_install,
638 [TERMLIBS="-lreadline $TERMLIBS"
639 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
640 break], [TERMLIBS=], $TERMLIBS)])
648 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
649 # alternate readline path
651 _cppflags=${CPPFLAGS}
653 # Add additional search path
654 LDFLAGS="-L$with_readline/lib $LDFLAGS"
655 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
657 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
658 AC_CHECK_HEADERS(readline/history.h)
660 AC_CHECK_HEADERS(readline.h readline/readline.h,[
661 for termlib in ncurses curses termcap terminfo termlib; do
662 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
664 AC_CHECK_LIB(readline, rl_callback_handler_install,
665 [TERMLDFLAGS="-L$with_readline/lib"
666 TERMCPPFLAGS="-I$with_readline/include"
667 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
668 TERMLIBS="-lreadline $TERMLIBS"
669 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
670 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
678 AC_SUBST(TERMLDFLAGS)
680 # The readline API changed slightly from readline3 to readline4, so
681 # code will generate warnings on one of them unless we have a few
683 AC_CHECK_LIB(readline, rl_completion_matches,
684 [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
685 [Do we have rl_completion_matches?])],
689 # The following test taken from the cvs sources
690 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
691 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
692 # libsocket.so which has a bad implementation of gethostbyname (it
693 # only looks in /etc/hosts), so we only look for -lsocket if we need
695 AC_CHECK_FUNCS(connect)
696 if test x"$ac_cv_func_connect" = x"no"; then
699 *) AC_CHECK_LIB(nsl_s, printf) ;;
703 *) AC_CHECK_LIB(nsl, printf) ;;
707 *) AC_CHECK_LIB(socket, connect) ;;
711 *) AC_CHECK_LIB(inet, connect) ;;
713 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
715 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
716 test x"$ac_cv_lib_inet_connect" = x"yes"; then
717 # ac_cv_func_connect=yes
718 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
719 AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
723 ###############################################
724 # test for where we get yp_get_default_domain() from
725 AC_SEARCH_LIBS(yp_get_default_domain, [nsl])
726 AC_CHECK_FUNCS(yp_get_default_domain)
728 # Check if we have execl, if not we need to compile smbrun.
729 AC_CHECK_FUNCS(execl)
730 if test x"$ac_cv_func_execl" = x"no"; then
731 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)"
734 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
735 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid)
736 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
737 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
738 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
739 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
740 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
741 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
742 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
743 AC_CHECK_FUNCS(syslog vsyslog getgrouplist timegm)
744 # setbuffer, shmget, shm_open are needed for smbtorture
745 AC_CHECK_FUNCS(setbuffer shmget shm_open)
747 # syscall() is needed for smbwrapper.
748 AC_CHECK_FUNCS(syscall)
750 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
751 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
752 AC_CHECK_FUNCS(__getcwd _getcwd)
753 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
754 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
755 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
756 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
757 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
758 AC_CHECK_FUNCS(_write __write _fork __fork)
759 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
760 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
761 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
762 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
763 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
766 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
769 if test x$ac_cv_func_stat64 = xno ; then
770 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
772 #if defined(HAVE_UNISTD_H)
775 #include <sys/stat.h>
776 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
777 AC_MSG_RESULT([$ac_cv_func_stat64])
778 if test x$ac_cv_func_stat64 = xyes ; then
779 AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
783 if test x$ac_cv_func_lstat64 = xno ; then
784 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
786 #if defined(HAVE_UNISTD_H)
789 #include <sys/stat.h>
790 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
791 AC_MSG_RESULT([$ac_cv_func_lstat64])
792 if test x$ac_cv_func_lstat64 = xyes ; then
793 AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
797 if test x$ac_cv_func_fstat64 = xno ; then
798 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
800 #if defined(HAVE_UNISTD_H)
803 #include <sys/stat.h>
804 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
805 AC_MSG_RESULT([$ac_cv_func_fstat64])
806 if test x$ac_cv_func_fstat64 = xyes ; then
807 AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
811 #####################################
812 # we might need the resolv library on some systems
813 AC_CHECK_LIB(resolv, dn_expand)
816 # Check for the functions putprpwnam, set_auth_parameters,
817 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
818 # Needed for OSF1 and HPUX.
821 AC_LIBTESTFUNC(security, putprpwnam)
822 AC_LIBTESTFUNC(sec, putprpwnam)
824 AC_LIBTESTFUNC(security, set_auth_parameters)
825 AC_LIBTESTFUNC(sec, set_auth_parameters)
827 # UnixWare 7.x has its getspnam in -lgen
828 AC_LIBTESTFUNC(gen, getspnam)
830 AC_LIBTESTFUNC(security, getspnam)
831 AC_LIBTESTFUNC(sec, getspnam)
833 AC_LIBTESTFUNC(security, bigcrypt)
834 AC_LIBTESTFUNC(sec, bigcrypt)
836 AC_LIBTESTFUNC(security, getprpwnam)
837 AC_LIBTESTFUNC(sec, getprpwnam)
839 # this bit needs to be modified for each OS that is suported by
840 # smbwrapper. You need to specify how to created a shared library and
841 # how to compile C code to produce PIC object files
843 # these are the defaults, good for lots of systems
852 # Assume non-shared by default and override below
854 AC_MSG_CHECKING([ability to build shared libraries])
856 # and these are for particular systems
858 *linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux])
861 DYNEXP="-Wl,--export-dynamic"
863 SONAMEFLAG="-Wl,-soname="
864 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
866 *solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
870 if test "${GCC}" = "yes"; then
872 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
877 ## ${CFLAGS} added for building 64-bit shared
878 ## libs using Sun's Compiler
879 LDSHFLAGS="-G \${CFLAGS}"
883 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
885 *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
889 PICFLAG="-KPIC" # Is this correct for SunOS
890 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
892 *freebsd*) BLDSHARED="true"
894 DYNEXP="-Wl,--export-dynamic"
895 SONAMEFLAG="-Wl,-soname,"
896 PICFLAG="-fPIC -DPIC"
897 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
899 *openbsd*) BLDSHARED="true"
901 DYNEXP="-Wl,-Bdynamic"
902 SONAMEFLAG="-Wl,-soname,"
904 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
906 *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
908 *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
911 ATTEMPT_WRAP32_BUILD=yes
913 LDSHFLAGS="-set_version sgi1.0 -shared"
914 SONAMEFLAG="-soname "
916 if test "${GCC}" = "yes"; then
921 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
923 *aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
925 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
926 DYNEXP="-Wl,-brtl,-bexpall"
928 if test "${GCC}" != "yes"; then
929 ## for funky AIX compiler using strncpy()
930 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
933 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
935 *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
937 # Use special PIC flags for the native HP-UX compiler.
938 if test $ac_cv_prog_cc_Ae = yes; then
941 LDSHFLAGS="-B symbolic -b -z"
946 AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
948 *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx])
949 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
951 *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
954 SONAMEFLAG="-Wl,-soname,"
956 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
958 *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix])
959 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
961 *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
964 SONAMEFLAG="-Wl,-soname,"
966 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
968 *next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
969 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
971 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
972 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
974 *sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
976 *-univel-*) if [ test "$GCC" != yes ]; then
977 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
982 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
984 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
987 *sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
988 if [ test "$GCC" != yes ]; then
989 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
992 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
995 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
999 AC_MSG_RESULT($BLDSHARED)
1000 AC_MSG_CHECKING([linker flags for shared libraries])
1001 AC_MSG_RESULT([$LDSHFLAGS])
1002 AC_MSG_CHECKING([compiler flags for position-independent code])
1003 AC_MSG_RESULT([$PICFLAGS])
1005 #######################################################
1006 # test whether building a shared library actually works
1007 if test $BLDSHARED = true; then
1008 AC_CACHE_CHECK([whether building shared libraries actually works],
1009 [ac_cv_shlib_works],[
1010 ac_cv_shlib_works=no
1011 # try building a trivial shared library
1012 if test "$PICSUFFIX" = "po"; then
1013 $CC $CPPFLAGS $CFLAGS $PICFLAG -c -o shlib.po ${srcdir-.}/tests/shlib.c &&
1014 $CC $CPPFLAGS $CFLAGS `eval echo $LDSHFLAGS` -o shlib.so shlib.po &&
1015 ac_cv_shlib_works=yes
1017 $CC $CPPFLAGS $CFLAGS $PICFLAG -c -o shlib.$PICSUFFIX ${srcdir-.}/tests/shlib.c &&
1018 mv shlib.$PICSUFFIX shlib.po &&
1019 $CC $CPPFLAGS $CFLAGS `eval echo $LDSHFLAGS` -o shlib.so shlib.po &&
1020 ac_cv_shlib_works=yes
1022 rm -f shlib.so shlib.po
1024 if test $ac_cv_shlib_works = no; then
1030 # this updates our target list if we can build shared libs
1031 if test $BLDSHARED = true; then
1032 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
1034 LIBSMBCLIENT_SHARED=
1039 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1040 AC_TRY_RUN([#include <stdio.h>
1041 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1042 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1043 if test x"$samba_cv_have_longlong" = x"yes"; then
1044 AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1048 # Check if the compiler supports the LL prefix on long long integers.
1051 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1052 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1053 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1054 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1055 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
1059 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1060 AC_TRY_RUN([#include <stdio.h>
1061 #include <sys/stat.h>
1062 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1063 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1064 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1065 AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1068 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1070 #if defined(HAVE_UNISTD_H)
1074 #include <sys/stat.h>
1075 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1076 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1077 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1078 AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1081 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1082 AC_TRY_RUN([#include <stdio.h>
1083 #include <sys/stat.h>
1084 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1085 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1086 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1087 AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1090 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1092 #if defined(HAVE_UNISTD_H)
1096 #include <sys/stat.h>
1097 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1098 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1099 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1100 AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1103 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1105 #if defined(HAVE_UNISTD_H)
1109 #include <sys/stat.h>
1110 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1111 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1112 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1113 AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
1116 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1118 #if defined(HAVE_UNISTD_H)
1121 #include <sys/types.h>
1122 #include <dirent.h>],
1123 [struct dirent64 de;],
1124 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1125 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1126 AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1129 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1131 #if defined(HAVE_UNISTD_H)
1134 #include <sys/types.h>
1135 main() { dev_t dev; int i = major(dev); return 0; }],
1136 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1137 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1138 AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
1141 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1143 #if defined(HAVE_UNISTD_H)
1146 #include <sys/types.h>
1147 main() { dev_t dev; int i = minor(dev); return 0; }],
1148 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1149 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1150 AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
1153 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1154 AC_TRY_RUN([#include <stdio.h>
1155 main() { char c; c=250; exit((c > 0)?0:1); }],
1156 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1157 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1158 AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1161 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1162 AC_TRY_COMPILE([#include <sys/types.h>
1163 #include <sys/socket.h>
1164 #include <netinet/in.h>],
1165 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1166 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1167 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1168 AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
1171 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1172 AC_TRY_COMPILE([#include <sys/types.h>
1174 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1175 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1176 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1177 AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
1180 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1181 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1182 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1183 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1184 AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
1187 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1189 #include <sys/time.h>
1191 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1192 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1193 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1194 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available])
1197 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE_VA_COPY,[
1198 AC_TRY_LINK([#include <stdarg.h>
1199 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1200 samba_cv_HAVE_VA_COPY=yes,samba_cv_HAVE_VA_COPY=no)])
1201 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1202 AC_DEFINE(HAVE_VA_COPY,1,[Whether __va_copy() is available])
1205 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1207 #include <sys/types.h>
1209 void foo(const char *format, ...) {
1214 va_start(ap, format);
1215 len = vsnprintf(buf, 0, format, ap);
1217 if (len != 5) exit(1);
1219 va_start(ap, format);
1220 len = vsnprintf(0, 0, format, ap);
1222 if (len != 5) exit(1);
1224 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1228 main() { foo("hello"); }
1230 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1231 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1232 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
1235 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1236 AC_TRY_RUN([#include <sys/types.h>
1238 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1239 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1240 di->d_name[0] == 0) exit(0); exit(1);} ],
1241 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1242 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1243 AC_DEFINE(HAVE_BROKEN_READDIR,1,[Whether readdir() is broken])
1246 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1247 AC_TRY_COMPILE([#include <sys/types.h>
1248 #include <utime.h>],
1249 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1250 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1251 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1252 AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
1255 dnl utmp and utmpx come in many flavours
1256 dnl We need to check for many of them
1257 dnl But we don't need to do each and every one, because our code uses
1258 dnl mostly just the utmp (not utmpx) fields.
1260 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1262 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1263 AC_TRY_COMPILE([#include <sys/types.h>
1265 [struct utmp ut; ut.ut_name[0] = 'a';],
1266 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1267 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1268 AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
1271 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1272 AC_TRY_COMPILE([#include <sys/types.h>
1274 [struct utmp ut; ut.ut_user[0] = 'a';],
1275 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1276 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1277 AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
1280 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1281 AC_TRY_COMPILE([#include <sys/types.h>
1283 [struct utmp ut; ut.ut_id[0] = 'a';],
1284 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1285 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1286 AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
1289 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1290 AC_TRY_COMPILE([#include <sys/types.h>
1292 [struct utmp ut; ut.ut_host[0] = 'a';],
1293 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1294 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1295 AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
1298 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1299 AC_TRY_COMPILE([#include <sys/types.h>
1301 [struct utmp ut; time_t t; ut.ut_time = t;],
1302 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1303 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1304 AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
1307 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1308 AC_TRY_COMPILE([#include <sys/types.h>
1310 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
1311 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1312 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1313 AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
1316 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1317 AC_TRY_COMPILE([#include <sys/types.h>
1319 [struct utmp ut; ut.ut_type = 0;],
1320 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1321 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1322 AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
1325 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1326 AC_TRY_COMPILE([#include <sys/types.h>
1328 [struct utmp ut; ut.ut_pid = 0;],
1329 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1330 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1331 AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
1334 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1335 AC_TRY_COMPILE([#include <sys/types.h>
1337 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1338 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1339 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1340 AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
1343 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1344 AC_TRY_COMPILE([#include <sys/types.h>
1346 [struct utmp ut; ut.ut_addr = 0;],
1347 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1348 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1349 AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
1352 if test x$ac_cv_func_pututline = xyes ; then
1353 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1354 AC_TRY_COMPILE([#include <sys/types.h>
1356 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1357 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1358 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1359 AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
1363 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1364 AC_TRY_COMPILE([#include <sys/types.h>
1365 #include <utmpx.h>],
1366 [struct utmpx ux; ux.ut_syslen = 0;],
1367 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1368 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1369 AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
1373 #################################################
1374 # check for libiconv support
1375 AC_MSG_CHECKING(whether to use libiconv)
1376 AC_ARG_WITH(libiconv,
1377 [ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1378 [ case "$withval" in
1384 CFLAGS="$CFLAGS -I$withval/include"
1385 LDFLAGS="$LDFLAGS -L$withval/lib"
1386 AC_CHECK_LIB(iconv, iconv_open)
1387 AC_DEFINE_UNQUOTED(WITH_LIBICONV, "${withval}",[Path to iconv])
1395 # check for iconv in libc
1396 AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1400 iconv_t cd = iconv_open("ASCII", "UCS-2LE");
1401 if (cd == 0 || cd == (iconv_t)-1) return -1;
1405 samba_cv_HAVE_NATIVE_ICONV=yes,samba_cv_HAVE_NATIVE_ICONV=no,samba_cv_HAVE_NATIVE_ICONV=cross)])
1406 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1407 AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
1411 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1413 #include <sys/types.h>
1416 #define F_GETLEASE 1025
1419 int fd = open("/dev/null", O_RDONLY);
1420 return fcntl(fd, F_GETLEASE, 0) == -1;
1423 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1424 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1425 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
1428 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1430 #include <sys/types.h>
1434 #define F_NOTIFY 1026
1437 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1440 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1441 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1442 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
1445 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1447 #include <sys/types.h>
1450 #include <sys/file.h>
1452 #define LOCK_MAND 32
1453 #define LOCK_READ 64
1456 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1459 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1460 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1461 AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
1467 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1468 AC_TRY_COMPILE([#include <sys/types.h>
1469 #include <fcntl.h>],
1470 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1471 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1472 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1473 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
1476 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1477 AC_TRY_RUN([#include <sys/types.h>
1478 #include <sys/capability.h>
1481 if ((cap = cap_get_proc()) == NULL)
1483 cap->cap_effective |= CAP_NETWORK_MGT;
1484 cap->cap_inheritable |= CAP_NETWORK_MGT;
1489 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1490 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1491 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES,1,[Whether IRIX specific capabilities are available])
1495 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1496 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1499 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1500 AC_TRY_COMPILE([#include <sys/types.h>
1501 #if defined(HAVE_RPC_RPC_H)
1502 #include <rpc/rpc.h>
1505 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1506 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1507 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
1510 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1511 AC_TRY_COMPILE([#include <sys/types.h>
1512 #if defined(HAVE_RPC_RPC_H)
1513 #include <rpc/rpc.h>
1516 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1517 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1518 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
1521 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1522 AC_TRY_COMPILE([#include <sys/types.h>
1523 #if defined(HAVE_RPC_RPC_H)
1524 #include <rpc/rpc.h>
1527 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1528 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1529 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
1532 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1533 AC_TRY_COMPILE([#include <sys/types.h>
1534 #if defined(HAVE_RPC_RPC_H)
1535 #include <rpc/rpc.h>
1538 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1539 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1540 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
1544 dnl Some systems (SCO) have a problem including
1545 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1546 dnl as a #define in <prot.h> and as part of an enum
1550 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1551 AC_TRY_COMPILE([#include <sys/types.h>
1552 #ifdef HAVE_SYS_SECURITY_H
1553 #include <sys/security.h>
1555 #endif /* HAVE_SYS_SECURITY_H */
1556 #if defined(HAVE_RPC_RPC_H)
1557 #include <rpc/rpc.h>
1560 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1561 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1562 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
1565 AC_MSG_CHECKING([for test routines])
1566 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1568 AC_MSG_ERROR([cant find test code. Aborting config]),
1569 AC_MSG_WARN([cannot run when cross-compiling]))
1571 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1572 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1573 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1574 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1575 AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
1578 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1579 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1580 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1581 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1582 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1583 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1585 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1588 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1589 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1590 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1591 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1592 AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
1595 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1596 SAVE_CPPFLAGS="$CPPFLAGS"
1597 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper"
1599 #define REPLACE_GETPASS 1
1600 #define NO_CONFIG_H 1
1601 #define main dont_declare_main
1602 #include "${srcdir-.}/lib/getsmbpass.c"
1604 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1605 CPPFLAGS="$SAVE_CPPFLAGS"
1607 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1608 AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced])
1611 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1614 #include <sys/types.h>
1615 #include <netinet/in.h>
1616 #ifdef HAVE_ARPA_INET_H
1617 #include <arpa/inet.h>
1619 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1620 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1621 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1623 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1624 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1625 AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced])
1628 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1629 AC_TRY_RUN([#include <stdlib.h>
1630 #include <sys/types.h>
1631 #include <sys/stat.h>
1635 char tpl[20]="/tmp/test.XXXXXX";
1636 int fd = mkstemp(tpl);
1637 if (fd == -1) exit(1);
1639 if (fstat(fd, &st) != 0) exit(1);
1640 if ((st.st_mode & 0777) != 0600) exit(1);
1643 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1644 samba_cv_HAVE_SECURE_MKSTEMP=no,
1645 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1646 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1647 AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
1650 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1651 AC_TRY_RUN([#include <unistd.h>
1652 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1653 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1654 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1655 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX,1,[Whether sysconf(_SC_NGROUPS_MAX) is available])
1658 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1659 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1660 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1661 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1662 AC_DEFINE(HAVE_ROOT,1,[Whether current user is root])
1664 AC_MSG_WARN(running as non-root will disable some tests)
1668 # look for a method of finding the list of network interfaces
1670 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1672 #define HAVE_IFACE_AIX 1
1673 #define AUTOCONF_TEST 1
1674 #include "confdefs.h"
1675 #include "${srcdir-.}/lib/interfaces.c"],
1676 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1677 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1678 iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
1681 if test $iface = no; then
1682 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1684 #define HAVE_IFACE_IFCONF 1
1685 #define AUTOCONF_TEST 1
1686 #include "confdefs.h"
1687 #include "${srcdir-.}/lib/interfaces.c"],
1688 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1689 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1690 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
1694 if test $iface = no; then
1695 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1697 #define HAVE_IFACE_IFREQ 1
1698 #define AUTOCONF_TEST 1
1699 #include "confdefs.h"
1700 #include "${srcdir-.}/lib/interfaces.c"],
1701 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1702 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1703 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
1708 ################################################
1709 # look for a method of setting the effective uid
1711 if test $seteuid = no; then
1712 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1714 #define AUTOCONF_TEST 1
1715 #define USE_SETRESUID 1
1716 #include "confdefs.h"
1717 #include "${srcdir-.}/lib/util_sec.c"],
1718 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1719 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1720 seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
1725 if test $seteuid = no; then
1726 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1728 #define AUTOCONF_TEST 1
1729 #define USE_SETREUID 1
1730 #include "confdefs.h"
1731 #include "${srcdir-.}/lib/util_sec.c"],
1732 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1733 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1734 seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
1738 if test $seteuid = no; then
1739 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1741 #define AUTOCONF_TEST 1
1742 #define USE_SETEUID 1
1743 #include "confdefs.h"
1744 #include "${srcdir-.}/lib/util_sec.c"],
1745 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1746 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1747 seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
1751 if test $seteuid = no; then
1752 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1754 #define AUTOCONF_TEST 1
1755 #define USE_SETUIDX 1
1756 #include "confdefs.h"
1757 #include "${srcdir-.}/lib/util_sec.c"],
1758 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1759 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1760 seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
1765 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1766 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1767 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1768 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1769 AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
1772 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1773 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1774 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1775 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1776 AC_DEFINE(FTRUNCATE_NEEDS_ROOT,1,[Whether ftruncate() needs root])
1779 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1780 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1781 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1782 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1783 AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
1786 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1787 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1788 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1789 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1790 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
1795 dnl Don't check for 64 bit fcntl locking if we know that the
1796 dnl glibc2.1 broken check has succeeded.
1799 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1801 #if defined(HAVE_UNISTD_H)
1811 #ifdef HAVE_SYS_FCNTL_H
1812 #include <sys/fcntl.h>
1814 main() { struct flock64 fl64;
1815 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1821 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1823 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1824 AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
1828 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
1829 AC_TRY_COMPILE([#include <sys/types.h>
1830 #include <sys/stat.h>
1831 #include <unistd.h>],
1832 [struct stat st; st.st_blocks = 0;],
1833 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
1834 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
1835 AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
1838 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
1839 AC_TRY_COMPILE([#include <sys/types.h>
1840 #include <sys/stat.h>
1841 #include <unistd.h>],
1842 [struct stat st; st.st_blksize = 0;],
1843 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
1844 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
1845 AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
1850 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
1852 #ifdef HAVE_SYS_VFS_H
1853 #include <sys/vfs.h>
1855 #ifdef HAVE_SYS_CAPABILITY_H
1856 #include <sys/capability.h>
1859 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
1860 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
1861 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
1866 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1867 AC_TRY_COMPILE([#include <sys/acl.h>
1868 #if defined(HAVE_RPCSVC_NIS_H)
1869 #include <rpcsvc/nis.h>
1872 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1873 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1874 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
1878 #################################################
1879 # check for smbwrapper support
1880 AC_MSG_CHECKING(whether to use smbwrapper)
1881 AC_ARG_WITH(smbwrapper,
1882 [ --with-smbwrapper Include SMB wrapper support (default=no) ],
1883 [ case "$withval" in
1886 AC_DEFINE(WITH_SMBWRAPPER,1,[Whether to include smbwrapper support])
1887 WRAPPROG="bin/smbsh\$(EXEEXT)"
1888 WRAP="bin/smbwrapper.$SHLIBEXT"
1890 if test x$ATTEMPT_WRAP32_BUILD = x; then
1893 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1896 # Conditions under which smbwrapper should not be built.
1898 if test x$PICFLAG = x; then
1899 echo No support for PIC code - disabling smbwrapper and smbsh
1903 elif test x$ac_cv_func_syscall = xno; then
1904 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1909 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $WRAPPROG $WRAP $WRAP32"
1910 SMBWRAPPER="$WRAPPROG $WRAP $WRAP32"
1919 #################################################
1920 # check for AFS clear-text auth support
1921 AC_MSG_CHECKING(whether to use AFS clear-text auth)
1923 [ --with-afs Include AFS clear-text auth support (default=no) ],
1924 [ case "$withval" in
1927 AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
1937 #################################################
1938 # check for the DFS clear-text auth system
1939 AC_MSG_CHECKING(whether to use DFS clear-text auth)
1941 [ --with-dce-dfs Include DCE/DFS clear-text auth support (default=no)],
1942 [ case "$withval" in
1945 AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
1954 #################################################
1955 # active directory support
1957 with_ads_support=yes
1958 AC_MSG_CHECKING([whether to use Active Directory])
1961 [ --with-ads Active Directory support (default yes)],
1962 [ case "$withval" in
1968 if test x"$with_ads_support" = x"yes"; then
1969 AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
1972 AC_MSG_RESULT($with_ads_support)
1975 if test x"$with_ads_support" = x"yes"; then
1977 #################################################
1978 # check for location of Kerberos 5 install
1979 AC_MSG_CHECKING(for kerberos 5 install path)
1981 [ --with-krb5=base-dir Locate Kerberos 5 support (default=/usr)],
1982 [ case "$withval" in
1989 CFLAGS="$CFLAGS -I$withval/include"
1990 CPPFLAGS="$CPPFLAGS -I$withval/include"
1991 LDFLAGS="$LDFLAGS -L$withval/lib"
1999 if test x$FOUND_KRB5 = x"no"; then
2000 #################################################
2001 # see if this box has the SuSE location for the heimdal kerberos implementation
2002 AC_MSG_CHECKING(for /usr/include/heimdal)
2003 if test -d /usr/include/heimdal; then
2004 CFLAGS="$CFLAGS -I/usr/include/heimdal"
2005 CPPFLAGS="$CPPFLAGS -I/usr/include/heimdal"
2013 if test x$FOUND_KRB5 = x"no"; then
2014 #################################################
2015 # see if this box has the RedHat location for kerberos
2016 AC_MSG_CHECKING(for /usr/kerberos)
2017 if test -d /usr/kerberos; then
2018 LDFLAGS="$LDFLAGS -L/usr/kerberos/lib"
2019 CFLAGS="$CFLAGS -I/usr/kerberos/include"
2020 CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
2028 # now check for krb5.h. Some systems have the libraries without the headers!
2029 # note that this check is done here to allow for different kerberos
2031 AC_CHECK_HEADERS(krb5.h)
2033 # now check for gssapi headers. This is also done here to allow for
2034 # different kerberos include paths
2035 AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h com_err.h)
2037 ##################################################################
2038 # we might need the k5crypto and com_err libraries on some systems
2039 AC_CHECK_LIB(com_err, _et_list, [LIBS="$LIBS -lcom_err"])
2040 AC_CHECK_LIB(k5crypto, krb5_encrypt_data, [LIBS="$LIBS -lk5crypto"])
2042 AC_CHECK_LIB(crypto, des_set_key, [LIBS="$LIBS -lcrypto"])
2043 AC_CHECK_LIB(asn1, copy_Authenticator, [LIBS="$LIBS -lasn1 -lroken"])
2045 ########################################################
2046 # now see if we can find the krb5 libs in standard paths
2047 # or as specified above
2048 AC_CHECK_LIB(krb5, krb5_mk_req_extended, [LIBS="$LIBS -lkrb5";
2049 AC_DEFINE(HAVE_KRB5,1,[Whether KRB5 is available])])
2051 ########################################################
2052 # now see if we can find the gssapi libs in standard paths
2053 AC_CHECK_LIB(gssapi_krb5, gss_display_status, [LIBS="$LIBS -lgssapi_krb5";
2054 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])])
2056 AC_CHECK_LIB(gssapi, gss_display_status, [LIBS="$LIBS -lgssapi";
2057 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])])
2060 ########################################################
2061 # Compile with LDAP support?
2063 with_ldap_support=yes
2064 AC_MSG_CHECKING([whether to use LDAP])
2067 [ --with-ldap LDAP support (default yes)],
2068 [ case "$withval" in
2070 with_ldap_support=no
2074 AC_MSG_RESULT($with_ldap_support)
2076 if test x"$with_ldap_support" = x"yes"; then
2078 ##################################################################
2079 # we might need the lber lib on some systems. To avoid link errors
2080 # this test must be before the libldap test
2081 AC_CHECK_LIB(lber, ber_scanf, [LIBS="$LIBS -llber"])
2083 ########################################################
2084 # now see if we can find the ldap libs in standard paths
2085 if test x$have_ldap != xyes; then
2086 AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LIBS="$LIBS -lldap";
2087 AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])])
2089 ########################################################
2090 # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
2091 # Check found in pam_ldap 145.
2092 AC_CHECK_FUNCS(ldap_set_rebind_proc)
2093 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, pam_ldap_cv_ldap_set_rebind_proc, [
2096 #include <ldap.h>], [ldap_set_rebind_proc(0, 0, 0);], [pam_ldap_cv_ldap_set_rebind_proc=3], [pam_ldap_cv_ldap_set_rebind_proc=2]) ])
2097 AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $pam_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
2101 ########################################################
2102 # Compile with MySQL support?
2103 AM_PATH_MYSQL([0.11.0],[MODULE_MYSQL=bin/pdb_mysql.so],[MODULE_MYSQL=])
2104 CFLAGS="$CFLAGS $MYSQL_CFLAGS"
2105 AC_SUBST(MODULE_MYSQL)
2107 ########################################################
2108 # Compile with XML support?
2109 AM_PATH_XML2([2.0.0],[MODULE_XML=bin/pdb_xml.so],[MODULE_XML=])
2110 CFLAGS="$CFLAGS $XML_CFLAGS"
2111 AC_SUBST(MODULE_XML)
2113 #################################################
2114 # check for automount support
2115 AC_MSG_CHECKING(whether to use automount)
2116 AC_ARG_WITH(automount,
2117 [ --with-automount Include automount support (default=no)],
2118 [ case "$withval" in
2121 AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
2130 #################################################
2131 # check for smbmount support
2132 AC_MSG_CHECKING(whether to use smbmount)
2133 AC_ARG_WITH(smbmount,
2134 [ --with-smbmount Include smbmount (Linux only) support (default=no)],
2135 [ case "$withval" in
2140 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
2141 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbmount bin/smbmnt bin/smbumount"
2144 AC_MSG_ERROR(not on a linux system!)
2156 #################################################
2157 # check for a PAM clear-text auth, accounts, password and session support
2158 with_pam_for_crypt=no
2159 AC_MSG_CHECKING(whether to use PAM)
2161 [ --with-pam Include PAM support (default=no)],
2162 [ case "$withval" in
2165 AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
2166 AUTHLIBS="$AUTHLIBS -lpam"
2167 with_pam_for_crypt=yes
2176 # we can't build a pam module if we don't have pam.
2177 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
2179 #################################################
2180 # check for pam_smbpass support
2181 AC_MSG_CHECKING(whether to use pam_smbpass)
2182 AC_ARG_WITH(pam_smbpass,
2183 [ --with-pam_smbpass Build a PAM module to allow other applications to use our smbpasswd file (default=no)],
2184 [ case "$withval" in
2188 # Conditions under which pam_smbpass should not be built.
2190 if test x$PICFLAG = x; then
2191 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
2192 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
2193 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
2195 SHLIB_PROGS="$SHLIB_PROGS bin/pam_smbpass.so"
2206 ###############################################
2207 # test for where we get crypt() from, but only
2209 if test x"$with_pam_for_crypt" = x"no"; then
2210 AC_CHECK_FUNCS(crypt)
2211 if test x"$ac_cv_func_crypt" = x"no"; then
2212 AC_CHECK_LIB(crypt, crypt, [AUTHLIBS="$AUTHLIBS -lcrypt";
2213 AC_DEFINE(HAVE_CRYPT,1,[Whether crypt() is available])])
2218 ## moved after the check for -lcrypt in order to
2219 ## ensure that the necessary libraries are included
2220 ## check checking for truncated salt. Wrapped by the
2221 ## $with_pam_for_crypt variable as above --jerry
2223 if test $with_pam_for_crypt = no; then
2224 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2226 LIBS="$AUTHLIBS $LIBS"
2227 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2228 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
2229 LIBS="$crypt_LIBS"])
2230 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2231 AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
2235 ########################################################################################
2237 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
2239 ########################################################################################
2241 #################################################
2242 # check for a LDAP password database configuration backwards compatibility
2243 AC_MSG_CHECKING(whether to use LDAP SAM 2.2 compatible configuration)
2244 AC_ARG_WITH(ldapsam,
2245 [ --with-ldapsam Include LDAP SAM 2.2 compatible configuration (default=no)],
2246 [ case "$withval" in
2249 AC_DEFINE(WITH_LDAP_SAMCONFIG,1,[Whether to include 2.2 compatibel LDAP SAM configuration])
2258 #################################################
2259 # check for a TDB password database
2260 AC_MSG_CHECKING(whether to use TDB SAM database)
2262 [ --with-tdbsam Include experimental TDB SAM support (default=no)],
2263 [ case "$withval" in
2266 AC_DEFINE(WITH_TDB_SAM,1,[Whether to include experimental TDB SAM support])
2275 #################################################
2276 # check for a NISPLUS password database
2277 AC_MSG_CHECKING(whether to use NISPLUS SAM database)
2278 AC_ARG_WITH(nisplussam,
2279 [ --with-nisplussam Include NISPLUS SAM support (default=no)],
2280 [ case "$withval" in
2283 AC_DEFINE(WITH_NISPLUS_SAM,1,[Whether to include nisplus SAM support])
2292 ########################################################################################
2294 ## END OF TESTS FOR SAM BACKENDS.
2296 ########################################################################################
2298 #################################################
2299 # check for a NISPLUS_HOME support
2300 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
2301 AC_ARG_WITH(nisplus-home,
2302 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
2303 [ case "$withval" in
2306 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
2315 #################################################
2316 # check for syslog logging
2317 AC_MSG_CHECKING(whether to use syslog logging)
2319 [ --with-syslog Include experimental SYSLOG support (default=no)],
2320 [ case "$withval" in
2323 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
2332 #################################################
2333 # check for a shared memory profiling support
2334 AC_MSG_CHECKING(whether to use profiling)
2335 AC_ARG_WITH(profiling-data,
2336 [ --with-profiling-data Include gathering source code profile information (default=no)],
2337 [ case "$withval" in
2340 AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
2350 #################################################
2351 # check for experimental disk-quotas support
2352 QUOTAOBJS=smbd/noquotas.o
2354 AC_MSG_CHECKING(whether to support disk-quotas)
2356 [ --with-quotas Include experimental disk-quota support (default=no)],
2357 [ case "$withval" in
2362 # Check for kernel 2.4.x quota braindamage...
2363 AC_CACHE_CHECK([for linux 2.4.x quota braindamage..],samba_cv_linux_2_4_quota_braindamage, [
2364 AC_TRY_COMPILE([#include <stdio.h>
2365 #include <sys/types.h>
2366 #include <asm/types.h>
2367 #include <linux/quota.h>
2369 #include <linux/unistd.h>],[struct mem_dqblk D;],
2370 samba_cv_linux_2_4_quota_braindamage=yes,samba_cv_linux_2_4_quota_braindamage=no)])
2371 if test x"$samba_cv_linux_2_4_quota_braindamage" = x"yes"; then
2372 AC_DEFINE(LINUX_QUOTAS_2,1,[linux 2.4.x quota braindamage])
2374 AC_DEFINE(LINUX_QUOTAS_1,1,[linux quotas])
2380 QUOTAOBJS=smbd/quotas.o
2381 AC_DEFINE(WITH_QUOTAS,1,[Whether to include experimental quota support])
2391 #################################################
2392 # check for experimental utmp accounting
2394 AC_MSG_CHECKING(whether to support utmp accounting)
2396 [ --with-utmp Include experimental utmp accounting (default=no)],
2397 [ case "$withval" in
2400 AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
2409 #################################################
2410 # choose native language(s) of man pages
2411 AC_MSG_CHECKING(chosen man pages' language(s))
2412 AC_ARG_WITH(manpages-langs,
2413 [ --with-manpages-langs={en,ja,pl} Choose man pages' language(s). (en)],
2414 [ case "$withval" in
2416 AC_MSG_WARN(--with-manpages-langs called without argument - will use default)
2424 AC_MSG_RESULT($manlangs)
2425 manlangs=`echo $manlangs | sed "s/,/ /g"` # replacing commas with spaces to produce a list
2426 AC_SUBST(manlangs)],
2429 AC_MSG_RESULT($manlangs)
2433 #################################################
2434 # should we build libsmbclient?
2436 LIBSMBCLIENT_SHARED=
2438 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
2439 AC_ARG_WITH(libsmbclient,
2440 [ --with-libsmbclient Build the libsmbclient shared library (default=yes)],
2441 [ case "$withval" in
2446 if test $BLDSHARED = true; then
2447 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
2448 LIBSMBCLIENT=libsmbclient
2451 AC_MSG_RESULT(no shared library support)
2459 #################################################
2460 # these tests are taken from the GNU fileutils package
2461 AC_CHECKING(how to get filesystem space usage)
2464 # Test for statvfs64.
2465 if test $space = no; then
2467 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2469 #if defined(HAVE_UNISTD_H)
2472 #include <sys/types.h>
2473 #include <sys/statvfs.h>
2476 struct statvfs64 fsd;
2477 exit (statvfs64 (".", &fsd));
2479 fu_cv_sys_stat_statvfs64=yes,
2480 fu_cv_sys_stat_statvfs64=no,
2481 fu_cv_sys_stat_statvfs64=cross)])
2482 if test $fu_cv_sys_stat_statvfs64 = yes; then
2484 AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
2488 # Perform only the link test since it seems there are no variants of the
2489 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2490 # because that got a false positive on SCO OSR5. Adding the declaration
2491 # of a `struct statvfs' causes this test to fail (as it should) on such
2492 # systems. That system is reported to work fine with STAT_STATFS4 which
2493 # is what it gets when this test fails.
2494 if test $space = no; then
2496 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2497 [AC_TRY_LINK([#include <sys/types.h>
2498 #include <sys/statvfs.h>],
2499 [struct statvfs fsd; statvfs (0, &fsd);],
2500 fu_cv_sys_stat_statvfs=yes,
2501 fu_cv_sys_stat_statvfs=no)])
2502 if test $fu_cv_sys_stat_statvfs = yes; then
2504 AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
2508 if test $space = no; then
2509 # DEC Alpha running OSF/1
2510 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2511 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2513 #include <sys/param.h>
2514 #include <sys/types.h>
2515 #include <sys/mount.h>
2520 exit (statfs (".", &fsd, sizeof (struct statfs)));
2522 fu_cv_sys_stat_statfs3_osf1=yes,
2523 fu_cv_sys_stat_statfs3_osf1=no,
2524 fu_cv_sys_stat_statfs3_osf1=no)])
2525 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2526 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2528 AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
2532 if test $space = no; then
2534 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2535 member (AIX, 4.3BSD)])
2536 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2538 #ifdef HAVE_SYS_PARAM_H
2539 #include <sys/param.h>
2541 #ifdef HAVE_SYS_MOUNT_H
2542 #include <sys/mount.h>
2544 #ifdef HAVE_SYS_VFS_H
2545 #include <sys/vfs.h>
2551 exit (statfs (".", &fsd));
2553 fu_cv_sys_stat_statfs2_bsize=yes,
2554 fu_cv_sys_stat_statfs2_bsize=no,
2555 fu_cv_sys_stat_statfs2_bsize=no)])
2556 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2557 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2559 AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
2563 if test $space = no; then
2565 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2566 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2567 [AC_TRY_RUN([#include <sys/types.h>
2568 #include <sys/statfs.h>
2572 exit (statfs (".", &fsd, sizeof fsd, 0));
2574 fu_cv_sys_stat_statfs4=yes,
2575 fu_cv_sys_stat_statfs4=no,
2576 fu_cv_sys_stat_statfs4=no)])
2577 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2578 if test $fu_cv_sys_stat_statfs4 = yes; then
2580 AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
2584 if test $space = no; then
2586 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2587 member (4.4BSD and NetBSD)])
2588 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2589 [AC_TRY_RUN([#include <sys/types.h>
2590 #ifdef HAVE_SYS_PARAM_H
2591 #include <sys/param.h>
2593 #ifdef HAVE_SYS_MOUNT_H
2594 #include <sys/mount.h>
2600 exit (statfs (".", &fsd));
2602 fu_cv_sys_stat_statfs2_fsize=yes,
2603 fu_cv_sys_stat_statfs2_fsize=no,
2604 fu_cv_sys_stat_statfs2_fsize=no)])
2605 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2606 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2608 AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
2612 if test $space = no; then
2614 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2615 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2616 [AC_TRY_RUN([#include <sys/types.h>
2617 #ifdef HAVE_SYS_PARAM_H
2618 #include <sys/param.h>
2620 #ifdef HAVE_SYS_MOUNT_H
2621 #include <sys/mount.h>
2623 #ifdef HAVE_SYS_FS_TYPES_H
2624 #include <sys/fs_types.h>
2629 /* Ultrix's statfs returns 1 for success,
2630 0 for not mounted, -1 for failure. */
2631 exit (statfs (".", &fsd) != 1);
2633 fu_cv_sys_stat_fs_data=yes,
2634 fu_cv_sys_stat_fs_data=no,
2635 fu_cv_sys_stat_fs_data=no)])
2636 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2637 if test $fu_cv_sys_stat_fs_data = yes; then
2639 AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
2644 # As a gating factor for large file support, in order to
2645 # use <4GB files we must have the following minimal support
2647 # long long, and a 64 bit off_t or off64_t.
2648 # If we don't have all of these then disable large
2651 AC_MSG_CHECKING([if large file support can be enabled])
2653 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2654 #include <sys/types.h>
2660 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2661 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2662 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
2664 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2666 AC_ARG_WITH(spinlocks,
2667 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no) ])
2668 if test "x$with_spinlocks" = "xyes"; then
2669 AC_DEFINE(USE_SPINLOCKS,1,[Whether to use spin locks instead of fcntl locks])
2673 AC_DEFINE(SPARC_SPINLOCKS,1,[Whether to use sparc spinlocks])
2676 i386|i486|i586|i686)
2677 AC_DEFINE(INTEL_SPINLOCKS,1,[Whether to use intel spinlocks])
2681 AC_DEFINE(MIPS_SPINLOCKS,1,[Whether to use mips spinlocks])
2685 AC_DEFINE(POWERPC_SPINLOCKS,1,[Whether to use powerpc spinlocks])
2690 #################################################
2691 # check for ACL support
2693 AC_MSG_CHECKING(whether to support ACLs)
2694 AC_ARG_WITH(acl-support,
2695 [ --with-acl-support Include ACL support (default=no)],
2696 [ case "$withval" in
2701 AC_MSG_RESULT(Using UnixWare ACLs)
2702 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
2705 AC_MSG_RESULT(Using solaris ACLs)
2706 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
2709 AC_MSG_RESULT(Using HPUX ACLs)
2710 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
2713 AC_MSG_RESULT(Using IRIX ACLs)
2714 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
2717 AC_MSG_RESULT(Using AIX ACLs)
2718 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
2721 AC_MSG_RESULT(Using Tru64 ACLs)
2722 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
2726 AC_CHECK_LIB(acl,acl_get_file)
2727 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2728 AC_TRY_LINK([#include <sys/types.h>
2729 #include <sys/acl.h>],
2730 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2731 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2732 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2733 AC_MSG_RESULT(Using posix ACLs)
2734 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
2735 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2736 AC_TRY_LINK([#include <sys/types.h>
2737 #include <sys/acl.h>],
2738 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2739 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2740 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2741 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
2749 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
2752 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
2756 #################################################
2757 # check for sendfile support
2759 with_sendfile_support=yes
2760 AC_MSG_CHECKING(whether to check to support sendfile)
2761 AC_ARG_WITH(sendfile-support,
2762 [ --with-sendfile-support Check for sendfile support (default=yes)],
2763 [ case "$withval" in
2770 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2771 AC_TRY_LINK([#include <sys/sendfile.h>],
2776 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
2778 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2780 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
2781 AC_TRY_LINK([#include <sys/sendfile.h>],
2786 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2788 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2790 # Try and cope with broken Linux sendfile....
2791 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
2793 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
2794 #undef _FILE_OFFSET_BITS
2796 #include <sys/sendfile.h>],
2801 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2803 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
2805 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2806 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
2807 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
2808 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
2809 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2810 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
2811 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
2812 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
2813 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
2814 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
2815 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
2822 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
2824 #include <sys/types.h>
2826 #include <sys/socket.h>
2827 #include <sys/uio.h>],
2829 int fromfd, tofd, ret, total=0;
2830 off_t offset, nwritten;
2833 hdr.headers = &hdtrl;
2835 hdr.trailers = NULL;
2837 hdtrl.iov_base = NULL;
2839 ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
2841 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2843 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2844 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
2845 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
2846 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2853 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2855 #include <sys/socket.h>
2856 #include <sys/uio.h>],
2860 struct iovec hdtrl[2];
2864 hdtrl[0].iov_base = 0;
2865 hdtrl[0].iov_len = 0;
2867 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
2869 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2870 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2871 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
2872 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
2873 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2878 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
2880 #include <sys/socket.h>
2881 #include <sys/uio.h>],
2885 struct iovec hdtrl[2];
2889 hdtrl[0].iov_base = 0;
2890 hdtrl[0].iov_len = 0;
2892 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
2894 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2895 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2896 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
2897 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
2898 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2905 AC_CHECK_LIB(sendfile,sendfilev)
2906 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
2908 #include <sys/sendfile.h>],
2912 struct sendfilevec vec[2];
2918 vec[0].sfv_fd = SFV_FD_SELF;
2919 vec[0].sfv_flag = 0;
2924 vec[1].sfv_flag = 0;
2927 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
2929 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
2931 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
2932 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
2933 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
2934 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2939 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
2941 #include <sys/sendfile.h>],
2945 struct sendfilevec vec[2];
2951 vec[0].sfv_fd = SFV_FD_SELF;
2952 vec[0].sfv_flag = 0;
2957 vec[1].sfv_flag = 0;
2960 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
2962 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
2964 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
2965 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
2966 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
2967 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
2985 #################################################
2986 # Check whether winbind is supported on this platform. If so we need to
2987 # build and install client programs, sbin programs and shared libraries
2989 AC_MSG_CHECKING(whether to build winbind)
2991 # Initially, the value of $host_os decides whether winbind is supported
2999 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
3000 WINBIND_NSS_EXTRA_LIBS="-lsocket"
3004 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
3008 winbind_no_reason=", unsupported on $host_os"
3012 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
3013 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
3015 # Check the setting of --with-winbindd
3017 AC_ARG_WITH(winbind,
3018 [ --with-winbind Build winbind (default, if supported by OS)],
3031 # We need unix domain sockets for winbind
3033 if test x"$HAVE_WINBIND" = x"yes"; then
3034 if test x"$samba_cv_unixsocket" = x"no"; then
3035 winbind_no_reason=", no unix domain socket support on $host_os"
3040 # Display test results
3042 if test x"$HAVE_WINBIND" = x"yes"; then
3044 AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
3046 EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)"
3047 EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)"
3048 if test x"$BLDSHARED" = x"true"; then
3051 SHLIB_PROGS="$SHLIB_PROGS nsswitch/libns_winbind.so"
3054 SHLIB_PROGS="$SHLIB_PROGS nsswitch/libnss_winbind.so"
3057 if test x"$with_pam" = x"yes"; then
3058 SHLIB_PROGS="$SHLIB_PROGS nsswitch/pam_winbind.so"
3062 AC_MSG_RESULT(no$winbind_no_reason)
3065 # Solaris has some extra fields in struct passwd that need to be
3066 # initialised otherwise nscd crashes. Unfortunately autoconf < 2.50
3067 # doesn't have the AC_CHECK_MEMBER macro which would be handy for checking
3070 #AC_CHECK_MEMBER(struct passwd.pw_comment,
3071 # AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),
3072 # [#include <pwd.h>])
3074 AC_CACHE_CHECK([whether struct passwd has pw_comment],samba_cv_passwd_pw_comment, [
3075 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_comment;],
3076 samba_cv_passwd_pw_comment=yes,samba_cv_passwd_pw_comment=no)])
3077 if test x"$samba_cv_passwd_pw_comment" = x"yes"; then
3078 AC_DEFINE(HAVE_PASSWD_PW_COMMENT,1,[Whether struct passwd has pw_comment])
3081 #AC_CHECK_MEMBER(struct passwd.pw_age,
3082 # AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),
3083 # [#include <pwd.h>])
3085 AC_CACHE_CHECK([whether struct passwd has pw_age],samba_cv_passwd_pw_age, [
3086 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_age;],
3087 samba_cv_passwd_pw_age=yes,samba_cv_passwd_pw_age=no)])
3088 if test x"$samba_cv_passwd_pw_age" = x"yes"; then
3089 AC_DEFINE(HAVE_PASSWD_PW_AGE,1,[Whether struct passwd has pw_age])
3092 #################################################
3093 # Check to see if we should use the included popt
3095 AC_ARG_WITH(included-popt,
3096 [ --with-included-popt use bundled popt library, not from system],
3107 if test x"$INCLUDED_POPT" != x"yes"; then
3108 AC_CHECK_LIB(popt, poptGetContext,
3109 INCLUDED_POPT=no, INCLUDED_POPT=yes)
3112 AC_MSG_CHECKING(whether to use included popt)
3113 if test x"$INCLUDED_POPT" = x"yes"; then
3115 BUILD_POPT='$(POPT_OBJS)'
3116 FLAGS1="-I$srcdir/popt"
3121 AC_SUBST(BUILD_POPT)
3124 #################################################
3125 # Check if the user wants Python
3127 # At the moment, you can use this to set which Python binary to link
3128 # against. (Libraries built for Python2.2 can't be used by 2.1,
3129 # though they can coexist in different directories.) In the future
3130 # this might make the Python stuff be built by default.
3132 # Defaulting python breaks the clean target if python isn't installed
3137 [ --with-python=PYTHONNAME build Python libraries],
3138 [ case "${withval-python}" in
3141 EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS python_ext"
3147 PYTHON=${withval-python}
3152 #################################################
3153 # do extra things if we are running insure
3155 if test "${ac_cv_prog_CC}" = "insure"; then
3156 CPPFLAGS="$CPPFLAGS -D__INSURE__"
3159 #################################################
3160 # final configure stuff
3162 AC_MSG_CHECKING([configure summary])
3163 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
3165 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
3166 AC_MSG_WARN([cannot run when cross-compiling]))
3171 AC_OUTPUT(include/stamp-h Makefile script/findsmb)
3173 #################################################
3174 # Print very concise instructions on building/use
3175 if test "x$enable_dmalloc" = xyes
3177 AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
3178 AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])