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 swatdir="\${DATADIR}/samba/swat",
20 configdir="\$(LIBDIR)"
21 logfilebase="\$(VARDIR)"
22 lockdir="\${VARDIR}/locks"
23 piddir="\$(VARDIR)/locks"
24 privatedir="\${prefix}/private"
25 swatdir="\${prefix}/swat")
27 #################################################
28 # set private directory location
29 AC_ARG_WITH(privatedir,
30 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
34 # Just in case anybody calls it without argument
36 AC_MSG_WARN([--with-privatedir called without argument - will use default])
43 #################################################
44 # set lock directory location
46 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
50 # Just in case anybody calls it without argument
52 AC_MSG_WARN([--with-lockdir called without argument - will use default])
59 #################################################
60 # set pid directory location
62 [ --with-piddir=DIR Where to put pid files ($ac_default_prefix/var/locks)],
66 # Just in case anybody calls it without argument
68 AC_MSG_WARN([--with-piddir called without argument - will use default])
75 #################################################
76 # set SWAT directory location
78 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
82 # Just in case anybody does it
84 AC_MSG_WARN([--with-swatdir called without argument - will use default])
91 #################################################
92 # set configuration directory location
93 AC_ARG_WITH(configdir,
94 [ --with-configdir=DIR Where to put configuration files (\$libdir)],
98 # Just in case anybody does it
100 AC_MSG_WARN([--with-configdir called without argument - will use default])
107 #################################################
108 # set log directory location
109 AC_ARG_WITH(logfilebase,
110 [ --with-logfilebase=DIR Where to put log files (\$(VARDIR))],
114 # Just in case anybody does it
116 AC_MSG_WARN([--with-logfilebase called without argument - will use default])
119 logfilebase="$withval"
126 AC_SUBST(logfilebase)
132 dnl Unique-to-Samba variables we'll be playing with.
148 AC_SUBST(LIBSMBCLIENT_SHARED)
149 AC_SUBST(LIBSMBCLIENT)
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 Check if C compiler understands -c and -o at the same time
196 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
203 dnl Check if the C compiler understands volatile (it should, being ANSI).
204 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
205 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
206 samba_cv_volatile=yes,samba_cv_volatile=no)])
207 if test x"$samba_cv_volatile" = x"yes"; then
208 AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
214 dnl Add #include for broken IRIX header files
216 *irix6*) AC_ADD_INCLUDE(<standards.h>)
220 AC_VALIDATE_CACHE_SYSTEM_TYPE
225 # Config CPPFLAG settings for strange OS's that must be set
226 # before other tests.
229 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
233 # mmap on HPUX is completely broken...
234 AC_DEFINE(MMAP_BLACKLIST, 1, [Whether MMAP is broken])
235 if test $ac_cv_prog_cc_Ae = yes; then
236 CPPFLAGS="$CPPFLAGS -Ae"
239 # Defines needed for HPUX support.
240 # HPUX has bigcrypt but (sometimes?) doesn't use it for
241 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
245 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4"
246 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
247 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
248 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
249 AC_DEFINE(_ALIGNMENT_REQUIRED,1,[Required alignment])
250 AC_DEFINE(_MAX_ALIGNMENT,4,[Maximum alignment])
253 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4"
254 AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
255 AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
256 AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
257 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to use large file support])
258 AC_DEFINE(_ALIGNMENT_REQUIRED, 1, [Required alignment])
259 AC_DEFINE(_MAX_ALIGNMENT, 4, [Maximum alignment])
266 # CRAY Unicos has broken const handling
268 AC_MSG_RESULT([disabling const])
269 CPPFLAGS="$CPPFLAGS -Dconst="
273 # AIX4.x doesn't even admit to having large
274 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
277 AC_MSG_RESULT([enabling large file support])
278 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
279 AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
282 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
283 # to the existance of large files..
284 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
285 # recommendations on large file support, however it makes the
286 # compile work using gcc 2.7 and 2.8, whereas using the Sun
287 # recommendation makes the compile fail on gcc2.7. JRA.
291 5.0*|5.1*|5.2*|5.3*|5.5*)
292 AC_MSG_RESULT([no large file support])
295 AC_MSG_RESULT([enabling large file support])
296 if test "$ac_cv_prog_gcc" = yes; then
297 ${CC-cc} -v >conftest.c 2>&1
298 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
300 case "$ac_cv_gcc_compiler_version_number" in
301 *"gcc version 2.6"*|*"gcc version 2.7"*)
302 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
303 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
306 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
307 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
308 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
312 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
313 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
314 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
320 # Tests needed for SINIX large file support.
323 if test $host = mips-sni-sysv4 ; then
324 AC_MSG_CHECKING([for LFS support])
325 old_CPPFLAGS="$CPPFLAGS"
326 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
330 #if _LFS64_LARGEFILE == 1
335 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
336 CPPFLAGS="$old_CPPFLAGS"
337 if test x$SINIX_LFS_SUPPORT = xyes ; then
338 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
339 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
340 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
341 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
342 LIBS="`getconf LFS64_LIBS` $LIBS"
344 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
348 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
351 AC_MSG_CHECKING([for LFS support])
352 old_CPPFLAGS="$CPPFLAGS"
353 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
356 #include <sys/utsname.h>
358 #if _LFS64_LARGEFILE == 1
363 /* Ensure this is glibc 2.2 or higher */
364 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
365 int libc_major = __GLIBC__;
366 int libc_minor = __GLIBC_MINOR__;
374 /* Ensure this is kernel 2.4 or higher */
377 release = uts.release;
378 major = atoi(strsep(&release, "."));
379 minor = atoi(strsep(&release, "."));
381 if (major > 2 || (major == 2 && minor > 3))
388 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
389 CPPFLAGS="$old_CPPFLAGS"
390 if test x$LINUX_LFS_SUPPORT = xyes ; then
391 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
392 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
393 AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
394 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
396 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
400 AC_MSG_CHECKING([for LFS support])
401 old_CPPFLAGS="$CPPFLAGS"
402 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
406 #if _LFS64_LARGEFILE == 1
411 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
412 CPPFLAGS="$old_CPPFLAGS"
413 if test x$GLIBC_LFS_SUPPORT = xyes ; then
414 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
415 AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
416 AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
418 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
428 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
429 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
430 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
431 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
432 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
433 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
434 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
435 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h ldap.h lber.h dlfcn.h)
436 AC_CHECK_HEADERS(sys/syslog.h syslog.h)
439 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
440 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
444 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
445 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
446 if test x"$ac_cv_header_shadow_h" = x"yes"; then
447 AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
451 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
452 AC_CHECK_HEADERS(nss.h nss_common.h ns_api.h sys/security.h security/pam_appl.h security/pam_modules.h)
453 AC_CHECK_HEADERS(stropts.h poll.h)
454 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
455 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
457 # For experimental utmp support (lastlog on some BSD-like systems)
458 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
460 # For quotas on Veritas VxFS filesystems
461 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
463 # For quotas on Linux XFS filesystems
464 AC_CHECK_HEADERS(linux/xqm.h)
465 AC_CHECK_HEADERS(xfs/xqm.h)
467 AC_CHECK_SIZEOF(int,cross)
468 AC_CHECK_SIZEOF(long,cross)
469 AC_CHECK_SIZEOF(short,cross)
484 AC_CHECK_TYPE(ino_t,unsigned)
485 AC_CHECK_TYPE(loff_t,off_t)
486 AC_CHECK_TYPE(offset_t,loff_t)
487 AC_CHECK_TYPE(ssize_t, int)
488 AC_CHECK_TYPE(wchar_t, unsigned short)
490 ############################################
491 # for cups support we need libcups, and a handful of header files
494 [ --enable-cups Turn on CUPS support (default=auto)])
496 if test x$enable_cups != xno; then
497 AC_PATH_PROG(CUPS_CONFIG, cups-config)
499 if test "x$CUPS_CONFIG" != x; then
500 AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
501 CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
502 LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
503 PRINTLIBS="$PRINTLIBS `$CUPS_CONFIG --libs`"
507 ############################################
508 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code
509 AC_CHECK_FUNCS(dlopen)
510 if test x"$ac_cv_func_dlopen" = x"no"; then
511 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
512 AC_DEFINE(HAVE_DLOPEN,1,[Whether we have dlopen()])])
514 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
516 ############################################
517 # check if the compiler can do immediate structures
518 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
522 typedef struct {unsigned x;} FOOBAR;
523 #define X_FOOBAR(x) ((FOOBAR) { x })
524 #define FOO_ONE X_FOOBAR(1)
532 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
533 if test x"$samba_cv_immediate_structures" = x"yes"; then
534 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures])
537 ############################################
538 # check for unix domain sockets
539 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
541 #include <sys/types.h>
544 #include <sys/socket.h>
545 #include <sys/un.h>],
547 struct sockaddr_un sunaddr;
548 sunaddr.sun_family = AF_UNIX;
550 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
551 if test x"$samba_cv_unixsocket" = x"yes"; then
552 AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support])
556 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
558 #include <sys/types.h>
563 #include <sys/socket.h>],[socklen_t i = 0],
564 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
565 if test x"$samba_cv_socklen_t" = x"yes"; then
566 AC_DEFINE(HAVE_SOCKLEN_T_TYPE,1,[Whether we have the variable type socklen_t])
569 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
571 #include <sys/types.h>
576 #include <signal.h>],[sig_atomic_t i = 0],
577 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
578 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
579 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
582 # stupid headers have the functions but no declaration. grrrr.
583 AC_HAVE_DECL(errno, [#include <errno.h>])
584 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
585 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
586 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
587 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
588 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
589 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
591 # and glibc has setresuid under linux but the function does
592 # nothing until kernel 2.1.44! very dumb.
593 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
594 AC_TRY_RUN([#include <errno.h>
595 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
596 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
597 if test x"$samba_cv_have_setresuid" = x"yes"; then
598 AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
601 # Do the same check for setresguid...
603 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
604 AC_TRY_RUN([#include <unistd.h>
606 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
607 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
608 if test x"$samba_cv_have_setresgid" = x"yes"; then
609 AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
614 ###############################################
615 # test for where we get crypt() from
616 AC_CHECK_FUNCS(crypt)
617 if test x"$ac_cv_func_crypt" = x"no"; then
618 AC_CHECK_LIB(crypt, crypt, [AUTHLIBS="$AUTHLIBS -lcrypt";
619 AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
623 ###############################################
624 # Readline included by default unless explicitly asked not to
625 test "${with_readline+set}" != "set" && with_readline=yes
627 # test for where we get readline() from
628 AC_MSG_CHECKING(whether to use readline)
629 AC_ARG_WITH(readline,
630 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto) ],
631 [ case "$with_readline" in
635 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
636 AC_CHECK_HEADERS(readline/history.h)
638 AC_CHECK_HEADERS(readline.h readline/readline.h,[
639 for termlib in ncurses curses termcap terminfo termlib; do
640 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
642 AC_CHECK_LIB(readline, rl_callback_handler_install,
643 [TERMLIBS="-lreadline $TERMLIBS"
644 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
645 break], [TERMLIBS=], $TERMLIBS)])
653 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
654 # alternate readline path
656 _cppflags=${CPPFLAGS}
658 # Add additional search path
659 LDFLAGS="-L$with_readline/lib $LDFLAGS"
660 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
662 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
663 AC_CHECK_HEADERS(readline/history.h)
665 AC_CHECK_HEADERS(readline.h readline/readline.h,[
666 for termlib in ncurses curses termcap terminfo termlib; do
667 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
669 AC_CHECK_LIB(readline, rl_callback_handler_install,
670 [TERMLDFLAGS="-L$with_readline/lib"
671 TERMCPPFLAGS="-I$with_readline/include"
672 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
673 TERMLIBS="-lreadline $TERMLIBS"
674 AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
675 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
683 AC_SUBST(TERMLDFLAGS)
685 # The readline API changed slightly from readline3 to readline4, so
686 # code will generate warnings on one of them unless we have a few
688 AC_CHECK_LIB(readline, rl_completion_matches,
689 [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
690 [Do we have rl_completion_matches?])],
694 # The following test taken from the cvs sources
695 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
696 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
697 # libsocket.so which has a bad implementation of gethostbyname (it
698 # only looks in /etc/hosts), so we only look for -lsocket if we need
700 AC_CHECK_FUNCS(connect)
701 if test x"$ac_cv_func_connect" = x"no"; then
704 *) AC_CHECK_LIB(nsl_s, printf) ;;
708 *) AC_CHECK_LIB(nsl, printf) ;;
712 *) AC_CHECK_LIB(socket, connect) ;;
716 *) AC_CHECK_LIB(inet, connect) ;;
718 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
720 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
721 test x"$ac_cv_lib_inet_connect" = x"yes"; then
722 # ac_cv_func_connect=yes
723 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
724 AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
728 ###############################################
729 # test for where we get get_yp_default_domain() from
730 AC_CHECK_FUNCS(yp_get_default_domain)
731 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
732 AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
733 AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN,1,[Whether the system has yp_get_default_domain()])])
736 # Check if we have execl, if not we need to compile smbrun.
737 AC_CHECK_FUNCS(execl)
738 if test x"$ac_cv_func_execl" = x"no"; then
744 AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
745 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat setpgid)
746 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
747 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
748 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
749 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
750 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
751 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
752 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
753 AC_CHECK_FUNCS(syslog vsyslog getgrouplist timegm)
754 # setbuffer is needed for smbtorture
755 AC_CHECK_FUNCS(setbuffer)
757 # syscall() is needed for smbwrapper.
758 AC_CHECK_FUNCS(syscall)
760 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
761 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
762 AC_CHECK_FUNCS(__getcwd _getcwd)
763 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
764 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
765 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
766 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
767 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
768 AC_CHECK_FUNCS(_write __write _fork __fork)
769 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
770 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
771 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
772 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
773 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
776 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
779 if test x$ac_cv_func_stat64 = xno ; then
780 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
782 #if defined(HAVE_UNISTD_H)
785 #include <sys/stat.h>
786 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
787 AC_MSG_RESULT([$ac_cv_func_stat64])
788 if test x$ac_cv_func_stat64 = xyes ; then
789 AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
793 if test x$ac_cv_func_lstat64 = xno ; then
794 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
796 #if defined(HAVE_UNISTD_H)
799 #include <sys/stat.h>
800 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
801 AC_MSG_RESULT([$ac_cv_func_lstat64])
802 if test x$ac_cv_func_lstat64 = xyes ; then
803 AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
807 if test x$ac_cv_func_fstat64 = xno ; then
808 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
810 #if defined(HAVE_UNISTD_H)
813 #include <sys/stat.h>
814 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
815 AC_MSG_RESULT([$ac_cv_func_fstat64])
816 if test x$ac_cv_func_fstat64 = xyes ; then
817 AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
821 #####################################
822 # we might need the resolv library on some systems
823 AC_CHECK_LIB(resolv, dn_expand)
826 # Check for the functions putprpwnam, set_auth_parameters,
827 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
828 # Needed for OSF1 and HPUX.
831 AC_LIBTESTFUNC(security, putprpwnam)
832 AC_LIBTESTFUNC(sec, putprpwnam)
834 AC_LIBTESTFUNC(security, set_auth_parameters)
835 AC_LIBTESTFUNC(sec, set_auth_parameters)
837 # UnixWare 7.x has its getspnam in -lgen
838 AC_LIBTESTFUNC(gen, getspnam)
840 AC_LIBTESTFUNC(security, getspnam)
841 AC_LIBTESTFUNC(sec, getspnam)
843 AC_LIBTESTFUNC(security, bigcrypt)
844 AC_LIBTESTFUNC(sec, bigcrypt)
846 AC_LIBTESTFUNC(security, getprpwnam)
847 AC_LIBTESTFUNC(sec, getprpwnam)
849 # this bit needs to be modified for each OS that is suported by
850 # smbwrapper. You need to specify how to created a shared library and
851 # how to compile C code to produce PIC object files
853 # these are the defaults, good for lots of systems
862 # Assume non-shared by default and override below
864 AC_MSG_CHECKING([ability to build shared libraries])
866 # and these are for particular systems
868 *linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux])
871 DYNEXP="-Wl,--export-dynamic"
873 SONAMEFLAG="-Wl,-soname="
874 AC_DEFINE(STAT_ST_BLOCKSIZE,512)
876 *solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
880 if test "${GCC}" = "yes"; then
882 if test "${ac_cv_prog_gnu_ld}" = "yes"; then
887 ## ${CFLAGS} added for building 64-bit shared
888 ## libs using Sun's Compiler
889 LDSHFLAGS="-G \${CFLAGS}"
893 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
895 *sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
899 PICFLAG="-KPIC" # Is this correct for SunOS
901 *freebsd*) BLDSHARED="true"
903 DYNEXP="-Wl,--export-dynamic"
904 SONAMEFLAG="-Wl,-soname,"
905 PICFLAG="-fPIC -DPIC"
906 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
908 *openbsd*) BLDSHARED="true"
910 DYNEXP="-Wl,-Bdynamic"
911 SONAMEFLAG="-Wl,-soname,"
913 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
915 *irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
917 *irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
920 ATTEMPT_WRAP32_BUILD=yes
922 LDSHFLAGS="-set_version sgi1.0 -shared"
923 SONAMEFLAG="-soname "
925 if test "${GCC}" = "yes"; then
930 AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
932 *aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
934 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
935 DYNEXP="-Wl,-brtl,-bexpall"
937 if test "${GCC}" != "yes"; then
938 ## for funky AIX compiler using strncpy()
939 CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
942 AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
944 *hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
946 # Use special PIC flags for the native HP-UX compiler.
947 if test $ac_cv_prog_cc_Ae = yes; then
950 LDSHFLAGS="-B symbolic -b -z"
955 AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
957 *qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx]);;
958 *osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
961 SONAMEFLAG="-Wl,-soname,"
964 *sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix]);;
965 *unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
968 SONAMEFLAG="-Wl,-soname,"
971 *next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2]);;
972 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
973 *sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
975 *-univel-*) if [ test "$GCC" != yes ]; then
976 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
981 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
985 *sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
986 if [ test "$GCC" != yes ]; then
987 AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
993 AC_MSG_RESULT($BLDSHARED)
994 AC_MSG_CHECKING([linker flags for shared libraries])
995 AC_MSG_RESULT([$LDSHFLAGS])
996 AC_MSG_CHECKING([compiler flags for position-independent code])
997 AC_MSG_RESULT([$PICFLAGS])
999 #######################################################
1000 # test whether building a shared library actually works
1001 if test $BLDSHARED = true; then
1002 AC_CACHE_CHECK([whether building shared libraries actually works],
1003 [ac_cv_shlib_works],[
1004 ac_cv_shlib_works=no
1005 # try building a trivial shared library
1006 if test "$PICSUFFIX" = "po"; then
1007 $CC $CPPFLAGS $CFLAGS $PICFLAG -c -o shlib.po ${srcdir-.}/tests/shlib.c &&
1008 $CC $CPPFLAGS $CFLAGS `eval echo $LDSHFLAGS` -o shlib.so shlib.po &&
1009 ac_cv_shlib_works=yes
1011 $CC $CPPFLAGS $CFLAGS $PICFLAG -c -o shlib.$PICSUFFIX ${srcdir-.}/tests/shlib.c &&
1012 mv shlib.$PICSUFFIX shlib.po &&
1013 $CC $CPPFLAGS $CFLAGS `eval echo $LDSHFLAGS` -o shlib.so shlib.po &&
1014 ac_cv_shlib_works=yes
1016 rm -f shlib.so shlib.po
1018 if test $ac_cv_shlib_works = no; then
1024 # this updates our target list if we can build shared libs
1025 if test $BLDSHARED = true; then
1026 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
1028 LIBSMBCLIENT_SHARED=
1033 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1034 AC_TRY_RUN([#include <stdio.h>
1035 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1036 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1037 if test x"$samba_cv_have_longlong" = x"yes"; then
1038 AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1042 # Check if the compiler supports the LL prefix on long long integers.
1045 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1046 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1047 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1048 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1049 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
1053 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1054 AC_TRY_RUN([#include <stdio.h>
1055 #include <sys/stat.h>
1056 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1057 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1058 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1059 AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1062 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1064 #if defined(HAVE_UNISTD_H)
1068 #include <sys/stat.h>
1069 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1070 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1071 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1072 AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1075 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1076 AC_TRY_RUN([#include <stdio.h>
1077 #include <sys/stat.h>
1078 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1079 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1080 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1081 AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1084 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1086 #if defined(HAVE_UNISTD_H)
1090 #include <sys/stat.h>
1091 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1092 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1093 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1094 AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1097 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1099 #if defined(HAVE_UNISTD_H)
1103 #include <sys/stat.h>
1104 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1105 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1106 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1107 AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
1110 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1112 #if defined(HAVE_UNISTD_H)
1115 #include <sys/types.h>
1116 #include <dirent.h>],
1117 [struct dirent64 de;],
1118 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1119 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1120 AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1123 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1125 #if defined(HAVE_UNISTD_H)
1128 #include <sys/types.h>
1129 main() { dev_t dev; int i = major(dev); return 0; }],
1130 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1131 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1132 AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
1135 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1137 #if defined(HAVE_UNISTD_H)
1140 #include <sys/types.h>
1141 main() { dev_t dev; int i = minor(dev); return 0; }],
1142 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1143 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1144 AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
1147 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1148 AC_TRY_RUN([#include <stdio.h>
1149 main() { char c; c=250; exit((c > 0)?0:1); }],
1150 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1151 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1152 AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1155 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1156 AC_TRY_COMPILE([#include <sys/types.h>
1157 #include <sys/socket.h>
1158 #include <netinet/in.h>],
1159 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1160 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1161 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1162 AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
1165 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1166 AC_TRY_COMPILE([#include <sys/types.h>
1168 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1169 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1170 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1171 AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
1174 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
1175 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
1176 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
1177 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
1178 AC_DEFINE(HAVE_FILE_MACRO,1,[Whether there is a __FILE__ macro])
1181 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1182 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1183 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1184 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1185 AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
1188 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1190 #include <sys/time.h>
1192 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1193 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1194 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1195 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available])
1198 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE_VA_COPY,[
1199 AC_TRY_LINK([#include <stdarg.h>
1200 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1201 samba_cv_HAVE_VA_COPY=yes,samba_cv_HAVE_VA_COPY=no)])
1202 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1203 AC_DEFINE(HAVE_VA_COPY,1,[Whether __va_copy() is available])
1206 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1208 #include <sys/types.h>
1210 void foo(const char *format, ...) {
1215 va_start(ap, format);
1216 len = vsnprintf(buf, 0, format, ap);
1218 if (len != 5) exit(1);
1220 va_start(ap, format);
1221 len = vsnprintf(0, 0, format, ap);
1223 if (len != 5) exit(1);
1225 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1229 main() { foo("hello"); }
1231 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1232 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1233 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
1236 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1237 AC_TRY_RUN([#include <sys/types.h>
1239 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1240 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1241 di->d_name[0] == 0) exit(0); exit(1);} ],
1242 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1243 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1244 AC_DEFINE(HAVE_BROKEN_READDIR,1,[Whether readdir() is broken])
1247 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1248 AC_TRY_COMPILE([#include <sys/types.h>
1249 #include <utime.h>],
1250 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1251 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1252 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1253 AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
1256 dnl utmp and utmpx come in many flavours
1257 dnl We need to check for many of them
1258 dnl But we don't need to do each and every one, because our code uses
1259 dnl mostly just the utmp (not utmpx) fields.
1261 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1263 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1264 AC_TRY_COMPILE([#include <sys/types.h>
1266 [struct utmp ut; ut.ut_name[0] = 'a';],
1267 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1268 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1269 AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
1272 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1273 AC_TRY_COMPILE([#include <sys/types.h>
1275 [struct utmp ut; ut.ut_user[0] = 'a';],
1276 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1277 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1278 AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
1281 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1282 AC_TRY_COMPILE([#include <sys/types.h>
1284 [struct utmp ut; ut.ut_id[0] = 'a';],
1285 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1286 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1287 AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
1290 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1291 AC_TRY_COMPILE([#include <sys/types.h>
1293 [struct utmp ut; ut.ut_host[0] = 'a';],
1294 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1295 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1296 AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
1299 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1300 AC_TRY_COMPILE([#include <sys/types.h>
1302 [struct utmp ut; time_t t; ut.ut_time = t;],
1303 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1304 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1305 AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
1308 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1309 AC_TRY_COMPILE([#include <sys/types.h>
1311 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
1312 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1313 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1314 AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
1317 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1318 AC_TRY_COMPILE([#include <sys/types.h>
1320 [struct utmp ut; ut.ut_type = 0;],
1321 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1322 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1323 AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
1326 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1327 AC_TRY_COMPILE([#include <sys/types.h>
1329 [struct utmp ut; ut.ut_pid = 0;],
1330 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1331 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1332 AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
1335 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1336 AC_TRY_COMPILE([#include <sys/types.h>
1338 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1339 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1340 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1341 AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
1344 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1345 AC_TRY_COMPILE([#include <sys/types.h>
1347 [struct utmp ut; ut.ut_addr = 0;],
1348 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1349 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1350 AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
1353 if test x$ac_cv_func_pututline = xyes ; then
1354 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1355 AC_TRY_COMPILE([#include <sys/types.h>
1357 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1358 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1359 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1360 AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
1364 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1365 AC_TRY_COMPILE([#include <sys/types.h>
1366 #include <utmpx.h>],
1367 [struct utmpx ux; ux.ut_syslen = 0;],
1368 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1369 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1370 AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
1374 #################################################
1375 # check for libiconv support
1376 AC_MSG_CHECKING(whether to use libiconv)
1377 AC_ARG_WITH(libiconv,
1378 [ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1379 [ case "$withval" in
1385 CFLAGS="$CFLAGS -I$withval/include"
1386 LDFLAGS="$LDFLAGS -L$withval/lib"
1387 AC_CHECK_LIB(iconv, iconv_open)
1388 AC_DEFINE_UNQUOTED(WITH_LIBICONV, "${withval}",[Path to iconv])
1396 # check for iconv in libc
1397 AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1401 iconv_t cd = iconv_open("ASCII", "UCS-2LE");
1402 if (cd == 0 || cd == (iconv_t)-1) return -1;
1406 samba_cv_HAVE_NATIVE_ICONV=yes,samba_cv_HAVE_NATIVE_ICONV=no,samba_cv_HAVE_NATIVE_ICONV=cross)])
1407 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1408 AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
1412 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1414 #include <sys/types.h>
1417 #define F_GETLEASE 1025
1420 int fd = open("/dev/null", O_RDONLY);
1421 return fcntl(fd, F_GETLEASE, 0) == -1;
1424 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1425 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1426 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
1429 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1431 #include <sys/types.h>
1435 #define F_NOTIFY 1026
1438 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1441 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1442 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1443 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
1446 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1448 #include <sys/types.h>
1451 #include <sys/file.h>
1453 #define LOCK_MAND 32
1454 #define LOCK_READ 64
1457 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1460 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1461 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1462 AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
1468 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1469 AC_TRY_COMPILE([#include <sys/types.h>
1470 #include <fcntl.h>],
1471 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1472 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1473 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1474 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
1477 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1478 AC_TRY_RUN([#include <sys/types.h>
1479 #include <sys/capability.h>
1482 if ((cap = cap_get_proc()) == NULL)
1484 cap->cap_effective |= CAP_NETWORK_MGT;
1485 cap->cap_inheritable |= CAP_NETWORK_MGT;
1490 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1491 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1492 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES,1,[Whether IRIX specific capabilities are available])
1496 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1497 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1500 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1501 AC_TRY_COMPILE([#include <sys/types.h>
1502 #if defined(HAVE_RPC_RPC_H)
1503 #include <rpc/rpc.h>
1506 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1507 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1508 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
1511 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1512 AC_TRY_COMPILE([#include <sys/types.h>
1513 #if defined(HAVE_RPC_RPC_H)
1514 #include <rpc/rpc.h>
1517 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1518 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1519 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
1522 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1523 AC_TRY_COMPILE([#include <sys/types.h>
1524 #if defined(HAVE_RPC_RPC_H)
1525 #include <rpc/rpc.h>
1528 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1529 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1530 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
1533 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1534 AC_TRY_COMPILE([#include <sys/types.h>
1535 #if defined(HAVE_RPC_RPC_H)
1536 #include <rpc/rpc.h>
1539 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1540 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1541 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
1545 dnl Some systems (SCO) have a problem including
1546 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1547 dnl as a #define in <prot.h> and as part of an enum
1551 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1552 AC_TRY_COMPILE([#include <sys/types.h>
1553 #ifdef HAVE_SYS_SECURITY_H
1554 #include <sys/security.h>
1556 #endif /* HAVE_SYS_SECURITY_H */
1557 #if defined(HAVE_RPC_RPC_H)
1558 #include <rpc/rpc.h>
1561 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1562 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1563 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
1566 AC_MSG_CHECKING([for test routines])
1567 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1569 AC_MSG_ERROR([cant find test code. Aborting config]),
1570 AC_MSG_WARN([cannot run when cross-compiling]))
1572 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1573 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1574 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1575 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1576 AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
1579 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1580 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1581 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1582 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1583 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1584 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1586 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1589 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1590 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1591 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1592 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1593 AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
1596 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1597 SAVE_CPPFLAGS="$CPPFLAGS"
1598 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper"
1600 #define REPLACE_GETPASS 1
1601 #define NO_CONFIG_H 1
1602 #define main dont_declare_main
1603 #include "${srcdir-.}/lib/getsmbpass.c"
1605 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1606 CPPFLAGS="$SAVE_CPPFLAGS"
1608 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1609 AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced])
1612 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1615 #include <sys/types.h>
1616 #include <netinet/in.h>
1617 #ifdef HAVE_ARPA_INET_H
1618 #include <arpa/inet.h>
1620 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1621 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1622 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1624 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1625 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1626 AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced])
1629 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1630 AC_TRY_RUN([#include <stdlib.h>
1631 #include <sys/types.h>
1632 #include <sys/stat.h>
1636 char tpl[20]="/tmp/test.XXXXXX";
1637 int fd = mkstemp(tpl);
1638 if (fd == -1) exit(1);
1640 if (fstat(fd, &st) != 0) exit(1);
1641 if ((st.st_mode & 0777) != 0600) exit(1);
1644 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1645 samba_cv_HAVE_SECURE_MKSTEMP=no,
1646 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1647 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1648 AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
1651 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1652 AC_TRY_RUN([#include <unistd.h>
1653 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1654 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1655 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1656 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX,1,[Whether sysconf(_SC_NGROUPS_MAX) is available])
1659 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1660 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1661 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1662 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1663 AC_DEFINE(HAVE_ROOT,1,[Whether current user is root])
1665 AC_MSG_WARN(running as non-root will disable some tests)
1669 # look for a method of finding the list of network interfaces
1671 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1673 #define HAVE_IFACE_AIX 1
1674 #define AUTOCONF_TEST 1
1675 #include "confdefs.h"
1676 #include "${srcdir-.}/lib/interfaces.c"],
1677 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1678 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1679 iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
1682 if test $iface = no; then
1683 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1685 #define HAVE_IFACE_IFCONF 1
1686 #define AUTOCONF_TEST 1
1687 #include "confdefs.h"
1688 #include "${srcdir-.}/lib/interfaces.c"],
1689 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1690 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1691 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
1695 if test $iface = no; then
1696 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1698 #define HAVE_IFACE_IFREQ 1
1699 #define AUTOCONF_TEST 1
1700 #include "confdefs.h"
1701 #include "${srcdir-.}/lib/interfaces.c"],
1702 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1703 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1704 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
1709 ################################################
1710 # look for a method of setting the effective uid
1712 if test $seteuid = no; then
1713 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1715 #define AUTOCONF_TEST 1
1716 #define USE_SETRESUID 1
1717 #include "confdefs.h"
1718 #include "${srcdir-.}/lib/util_sec.c"],
1719 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1720 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1721 seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
1726 if test $seteuid = no; then
1727 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1729 #define AUTOCONF_TEST 1
1730 #define USE_SETREUID 1
1731 #include "confdefs.h"
1732 #include "${srcdir-.}/lib/util_sec.c"],
1733 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1734 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1735 seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
1739 if test $seteuid = no; then
1740 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1742 #define AUTOCONF_TEST 1
1743 #define USE_SETEUID 1
1744 #include "confdefs.h"
1745 #include "${srcdir-.}/lib/util_sec.c"],
1746 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1747 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1748 seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
1752 if test $seteuid = no; then
1753 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1755 #define AUTOCONF_TEST 1
1756 #define USE_SETUIDX 1
1757 #include "confdefs.h"
1758 #include "${srcdir-.}/lib/util_sec.c"],
1759 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1760 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1761 seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
1766 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1767 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1768 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1769 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1770 AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
1773 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1774 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1775 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1776 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1777 AC_DEFINE(FTRUNCATE_NEEDS_ROOT,1,[Whether ftruncate() needs root])
1780 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1781 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1782 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1783 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1784 AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
1787 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1788 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1789 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1790 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1791 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
1796 dnl Don't check for 64 bit fcntl locking if we know that the
1797 dnl glibc2.1 broken check has succeeded.
1800 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1802 #if defined(HAVE_UNISTD_H)
1812 #ifdef HAVE_SYS_FCNTL_H
1813 #include <sys/fcntl.h>
1815 main() { struct flock64 fl64;
1816 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1822 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1824 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1825 AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
1829 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
1830 AC_TRY_COMPILE([#include <sys/types.h>
1831 #include <sys/stat.h>
1832 #include <unistd.h>],
1833 [struct stat st; st.st_blocks = 0;],
1834 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
1835 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
1836 AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
1839 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
1840 AC_TRY_COMPILE([#include <sys/types.h>
1841 #include <sys/stat.h>
1842 #include <unistd.h>],
1843 [struct stat st; st.st_blksize = 0;],
1844 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
1845 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
1846 AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
1851 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
1853 #ifdef HAVE_SYS_VFS_H
1854 #include <sys/vfs.h>
1856 #ifdef HAVE_SYS_CAPABILITY_H
1857 #include <sys/capability.h>
1860 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
1861 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
1862 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
1867 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1868 AC_TRY_COMPILE([#include <sys/acl.h>
1869 #if defined(HAVE_RPCSVC_NIS_H)
1870 #include <rpcsvc/nis.h>
1873 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1874 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1875 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
1879 #################################################
1880 # check for smbwrapper support
1881 AC_MSG_CHECKING(whether to use smbwrapper)
1882 AC_ARG_WITH(smbwrapper,
1883 [ --with-smbwrapper Include SMB wrapper support (default=no) ],
1884 [ case "$withval" in
1887 AC_DEFINE(WITH_SMBWRAPPER,1,[Whether to include smbwrapper support])
1888 WRAPPROG="bin/smbsh"
1889 WRAP="bin/smbwrapper.$SHLIBEXT"
1891 if test x$ATTEMPT_WRAP32_BUILD = x; then
1894 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1897 # Conditions under which smbwrapper should not be built.
1899 if test x$PICFLAG = x; then
1900 echo No support for PIC code - disabling smbwrapper and smbsh
1904 elif test x$ac_cv_func_syscall = xno; then
1905 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1918 #################################################
1919 # check for AFS clear-text auth support
1920 AC_MSG_CHECKING(whether to use AFS clear-text auth)
1922 [ --with-afs Include AFS clear-text auth support (default=no) ],
1923 [ case "$withval" in
1926 AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
1936 #################################################
1937 # check for the DFS clear-text auth system
1938 AC_MSG_CHECKING(whether to use DFS clear-text auth)
1940 [ --with-dce-dfs Include DCE/DFS clear-text auth support (default=no)],
1941 [ case "$withval" in
1944 AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
1953 #################################################
1954 # active directory support
1956 with_ads_support=yes
1957 AC_MSG_CHECKING([whether to use Active Directory])
1960 [ --with-ads Active Directory support (default yes)],
1961 [ case "$withval" in
1967 if test x"$with_ads_support" = x"yes"; then
1968 AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
1971 AC_MSG_RESULT($with_ads_support)
1974 if test x"$with_ads_support" = x"yes"; then
1976 #################################################
1977 # check for location of Kerberos 5 install
1978 AC_MSG_CHECKING(for kerberos 5 install path)
1980 [ --with-krb5=base-dir Locate Kerberos 5 support (default=/usr)],
1981 [ case "$withval" in
1988 CFLAGS="$CFLAGS -I$withval/include"
1989 CPPFLAGS="$CPPFLAGS -I$withval/include"
1990 LDFLAGS="$LDFLAGS -L$withval/lib"
1998 if test x$FOUND_KRB5 = x"no"; then
1999 #################################################
2000 # see if this box has the SuSE location for the heimdal kerberos implementation
2001 AC_MSG_CHECKING(for /usr/include/heimdal)
2002 if test -d /usr/include/heimdal; then
2003 CFLAGS="$CFLAGS -I/usr/include/heimdal"
2004 CPPFLAGS="$CPPFLAGS -I/usr/include/heimdal"
2012 if test x$FOUND_KRB5 = x"no"; then
2013 #################################################
2014 # see if this box has the RedHat location for kerberos
2015 AC_MSG_CHECKING(for /usr/kerberos)
2016 if test -d /usr/kerberos; then
2017 LDFLAGS="$LDFLAGS -L/usr/kerberos/lib"
2018 CFLAGS="$CFLAGS -I/usr/kerberos/include"
2019 CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
2027 # now check for krb5.h. Some systems have the libraries without the headers!
2028 # note that this check is done here to allow for different kerberos
2030 AC_CHECK_HEADERS(krb5.h)
2032 # now check for gssapi headers. This is also done here to allow for
2033 # different kerberos include paths
2034 AC_CHECK_HEADERS(gssapi/gssapi_generic.h gssapi/gssapi.h)
2036 ##################################################################
2037 # we might need the k5crypto and com_err libraries on some systems
2038 AC_CHECK_LIB(com_err, _et_list, [LIBS="$LIBS -lcom_err"])
2039 AC_CHECK_LIB(k5crypto, krb5_encrypt_data, [LIBS="$LIBS -lk5crypto"])
2041 ########################################################
2042 # now see if we can find the krb5 libs in standard paths
2043 # or as specified above
2044 AC_CHECK_LIB(krb5, krb5_mk_req_extended, [LIBS="$LIBS -lkrb5";
2045 AC_DEFINE(HAVE_KRB5,1,[Whether KRB5 is available])])
2047 ########################################################
2048 # now see if we can find the gssapi libs in standard paths
2049 AC_CHECK_LIB(gssapi_krb5, gss_display_status, [LIBS="$LIBS -lgssapi_krb5";
2050 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])])
2053 ########################################################
2054 # Compile with LDAP support?
2056 with_ldap_support=yes
2057 AC_MSG_CHECKING([whether to use LDAP])
2060 [ --with-ldap LDAP support (default yes)],
2061 [ case "$withval" in
2063 with_ldap_support=no
2067 AC_MSG_RESULT($with_ldap_support)
2069 if test x"$with_ldap_support" = x"yes"; then
2071 ##################################################################
2072 # we might need the lber lib on some systems. To avoid link errors
2073 # this test must be before the libldap test
2074 AC_CHECK_LIB(lber, ber_scanf, [LIBS="$LIBS -llber"])
2076 ########################################################
2077 # now see if we can find the ldap libs in standard paths
2078 if test x$have_ldap != xyes; then
2079 AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LIBS="$LIBS -lldap";
2080 AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])])
2082 ########################################################
2083 # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
2084 # Check found in pam_ldap 145.
2085 AC_CHECK_FUNCS(ldap_set_rebind_proc)
2086 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, pam_ldap_cv_ldap_set_rebind_proc, [
2089 #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]) ])
2090 AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $pam_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
2094 ########################################################
2095 # Compile with MySQL support?
2097 CFLAGS="$CFLAGS $MYSQL_CFLAGS"
2100 ########################################################
2101 # Compile with XML support?
2103 CFLAGS="$CFLAGS $XML_CFLAGS"
2105 #################################################
2106 # check for automount support
2107 AC_MSG_CHECKING(whether to use AUTOMOUNT)
2108 AC_ARG_WITH(automount,
2109 [ --with-automount Include AUTOMOUNT support (default=no)],
2110 [ case "$withval" in
2113 AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
2122 #################################################
2123 # check for smbmount support
2124 AC_MSG_CHECKING(whether to use SMBMOUNT)
2125 AC_ARG_WITH(smbmount,
2126 [ --with-smbmount Include SMBMOUNT (Linux only) support (default=no)],
2127 [ case "$withval" in
2132 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
2133 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
2136 AC_MSG_ERROR(not on a linux system!)
2150 #################################################
2151 # check for a PAM clear-text auth, accounts, password and session support
2152 with_pam_for_crypt=no
2153 AC_MSG_CHECKING(whether to use PAM)
2155 [ --with-pam Include PAM support (default=no)],
2156 [ case "$withval" in
2159 AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
2160 AUTHLIBS="$AUTHLIBS -lpam"
2161 with_pam_for_crypt=yes
2170 # we can't build a pam module if we don't have pam.
2171 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
2173 #################################################
2174 # check for pam_smbpass support
2175 AC_MSG_CHECKING(whether to use pam_smbpass)
2176 AC_ARG_WITH(pam_smbpass,
2177 [ --with-pam_smbpass Build a PAM module to allow other applications to use our smbpasswd file (default=no)],
2178 [ case "$withval" in
2182 # Conditions under which pam_smbpass should not be built.
2184 if test x$PICFLAG = x; then
2185 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
2187 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
2188 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
2191 PAM_MOD="bin/pam_smbpass.so"
2202 ###############################################
2203 # test for where we get crypt() from, but only
2205 if test x"$with_pam_for_crypt" = x"no"; then
2206 AC_CHECK_FUNCS(crypt)
2207 if test x"$ac_cv_func_crypt" = x"no"; then
2208 AC_CHECK_LIB(crypt, crypt, [AUTHLIBS="$AUTHLIBS -lcrypt";
2209 AC_DEFINE(HAVE_CRYPT,1,[Whether crypt() is available])])
2214 ## moved after the check for -lcrypt in order to
2215 ## ensure that the necessary libraries are included
2216 ## check checking for truncated salt. Wrapped by the
2217 ## $with_pam_for_crypt variable as above --jerry
2219 if test $with_pam_for_crypt = no; then
2220 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2222 LIBS="$AUTHLIBS $LIBS"
2223 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2224 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
2225 LIBS="$crypt_LIBS"])
2226 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2227 AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
2231 ########################################################################################
2233 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
2235 ########################################################################################
2237 #################################################
2238 # check for a LDAP password database configuration backwards compatibility
2239 AC_MSG_CHECKING(whether to use LDAP SAM 2.2 compatible configuration)
2240 AC_ARG_WITH(ldapsam,
2241 [ --with-ldapsam Include LDAP SAM 2.2 compatible configuration (default=no)],
2242 [ case "$withval" in
2245 AC_DEFINE(WITH_LDAP_SAMCONFIG,1,[Whether to include 2.2 compatibel LDAP SAM configuration])
2254 #################################################
2255 # check for a TDB password database
2256 AC_MSG_CHECKING(whether to use TDB SAM database)
2258 [ --with-tdbsam Include experimental TDB SAM support (default=no)],
2259 [ case "$withval" in
2262 AC_DEFINE(WITH_TDB_SAM,1,[Whether to include experimental TDB SAM support])
2271 #################################################
2272 # check for a NISPLUS password database
2273 AC_MSG_CHECKING(whether to use NISPLUS SAM database)
2274 AC_ARG_WITH(nisplussam,
2275 [ --with-nisplussam Include NISPLUS SAM support (default=no)],
2276 [ case "$withval" in
2279 AC_DEFINE(WITH_NISPLUS_SAM,1,[Whether to include nisplus SAM support])
2288 ########################################################################################
2290 ## END OF TESTS FOR SAM BACKENDS.
2292 ########################################################################################
2294 #################################################
2295 # check for a NISPLUS_HOME support
2296 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
2297 AC_ARG_WITH(nisplus-home,
2298 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
2299 [ case "$withval" in
2302 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
2311 #################################################
2312 # check for syslog logging
2313 AC_MSG_CHECKING(whether to use syslog logging)
2315 [ --with-syslog Include experimental SYSLOG support (default=no)],
2316 [ case "$withval" in
2319 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
2328 #################################################
2329 # check for a shared memory profiling support
2330 AC_MSG_CHECKING(whether to use profiling)
2331 AC_ARG_WITH(profiling-data,
2332 [ --with-profiling-data Include gathering source code profile information (default=no)],
2333 [ case "$withval" in
2336 AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
2346 #################################################
2347 # check for experimental disk-quotas support
2348 QUOTAOBJS=smbd/noquotas.o
2350 AC_MSG_CHECKING(whether to support disk-quotas)
2352 [ --with-quotas Include experimental disk-quota support (default=no)],
2353 [ case "$withval" in
2358 # Check for kernel 2.4.x quota braindamage...
2359 AC_CACHE_CHECK([for linux 2.4.x quota braindamage..],samba_cv_linux_2_4_quota_braindamage, [
2360 AC_TRY_COMPILE([#include <stdio.h>
2361 #include <sys/types.h>
2362 #include <asm/types.h>
2363 #include <linux/quota.h>
2365 #include <linux/unistd.h>],[struct mem_dqblk D;],
2366 samba_cv_linux_2_4_quota_braindamage=yes,samba_cv_linux_2_4_quota_braindamage=no)])
2367 if test x"$samba_cv_linux_2_4_quota_braindamage" = x"yes"; then
2368 AC_DEFINE(LINUX_QUOTAS_2,1,[linux 2.4.x quota braindamage])
2370 AC_DEFINE(LINUX_QUOTAS_1,1,[linux quotas])
2376 QUOTAOBJS=smbd/quotas.o
2377 AC_DEFINE(WITH_QUOTAS,1,[Whether to include experimental quota support])
2387 #################################################
2388 # check for experimental utmp accounting
2390 AC_MSG_CHECKING(whether to support utmp accounting)
2392 [ --with-utmp Include experimental utmp accounting (default=no)],
2393 [ case "$withval" in
2396 AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
2405 #################################################
2406 # choose native language(s) of man pages
2407 AC_MSG_CHECKING(chosen man pages' language(s))
2408 AC_ARG_WITH(manpages-langs,
2409 [ --with-manpages-langs={en,ja,pl} Choose man pages' language(s). (en)],
2410 [ case "$withval" in
2412 AC_MSG_WARN(--with-manpages-langs called without argument - will use default)
2420 AC_MSG_RESULT($manlangs)
2421 manlangs=`echo $manlangs | sed "s/,/ /g"` # replacing commas with spaces to produce a list
2422 AC_SUBST(manlangs)],
2425 AC_MSG_RESULT($manlangs)
2429 #################################################
2430 # should we build libsmbclient?
2432 LIBSMBCLIENT_SHARED=
2434 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
2435 AC_ARG_WITH(libsmbclient,
2436 [ --with-libsmbclient Build the libsmbclient shared library (default=yes)],
2437 [ case "$withval" in
2442 if test $BLDSHARED = true; then
2443 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
2444 LIBSMBCLIENT=libsmbclient
2447 AC_MSG_RESULT(no shared library support)
2455 #################################################
2456 # these tests are taken from the GNU fileutils package
2457 AC_CHECKING(how to get filesystem space usage)
2460 # Test for statvfs64.
2461 if test $space = no; then
2463 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2465 #if defined(HAVE_UNISTD_H)
2468 #include <sys/types.h>
2469 #include <sys/statvfs.h>
2472 struct statvfs64 fsd;
2473 exit (statvfs64 (".", &fsd));
2475 fu_cv_sys_stat_statvfs64=yes,
2476 fu_cv_sys_stat_statvfs64=no,
2477 fu_cv_sys_stat_statvfs64=cross)])
2478 if test $fu_cv_sys_stat_statvfs64 = yes; then
2480 AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
2484 # Perform only the link test since it seems there are no variants of the
2485 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2486 # because that got a false positive on SCO OSR5. Adding the declaration
2487 # of a `struct statvfs' causes this test to fail (as it should) on such
2488 # systems. That system is reported to work fine with STAT_STATFS4 which
2489 # is what it gets when this test fails.
2490 if test $space = no; then
2492 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2493 [AC_TRY_LINK([#include <sys/types.h>
2494 #include <sys/statvfs.h>],
2495 [struct statvfs fsd; statvfs (0, &fsd);],
2496 fu_cv_sys_stat_statvfs=yes,
2497 fu_cv_sys_stat_statvfs=no)])
2498 if test $fu_cv_sys_stat_statvfs = yes; then
2500 AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
2504 if test $space = no; then
2505 # DEC Alpha running OSF/1
2506 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2507 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2509 #include <sys/param.h>
2510 #include <sys/types.h>
2511 #include <sys/mount.h>
2516 exit (statfs (".", &fsd, sizeof (struct statfs)));
2518 fu_cv_sys_stat_statfs3_osf1=yes,
2519 fu_cv_sys_stat_statfs3_osf1=no,
2520 fu_cv_sys_stat_statfs3_osf1=no)])
2521 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2522 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2524 AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
2528 if test $space = no; then
2530 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2531 member (AIX, 4.3BSD)])
2532 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2534 #ifdef HAVE_SYS_PARAM_H
2535 #include <sys/param.h>
2537 #ifdef HAVE_SYS_MOUNT_H
2538 #include <sys/mount.h>
2540 #ifdef HAVE_SYS_VFS_H
2541 #include <sys/vfs.h>
2547 exit (statfs (".", &fsd));
2549 fu_cv_sys_stat_statfs2_bsize=yes,
2550 fu_cv_sys_stat_statfs2_bsize=no,
2551 fu_cv_sys_stat_statfs2_bsize=no)])
2552 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2553 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2555 AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
2559 if test $space = no; then
2561 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2562 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2563 [AC_TRY_RUN([#include <sys/types.h>
2564 #include <sys/statfs.h>
2568 exit (statfs (".", &fsd, sizeof fsd, 0));
2570 fu_cv_sys_stat_statfs4=yes,
2571 fu_cv_sys_stat_statfs4=no,
2572 fu_cv_sys_stat_statfs4=no)])
2573 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2574 if test $fu_cv_sys_stat_statfs4 = yes; then
2576 AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
2580 if test $space = no; then
2582 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2583 member (4.4BSD and NetBSD)])
2584 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2585 [AC_TRY_RUN([#include <sys/types.h>
2586 #ifdef HAVE_SYS_PARAM_H
2587 #include <sys/param.h>
2589 #ifdef HAVE_SYS_MOUNT_H
2590 #include <sys/mount.h>
2596 exit (statfs (".", &fsd));
2598 fu_cv_sys_stat_statfs2_fsize=yes,
2599 fu_cv_sys_stat_statfs2_fsize=no,
2600 fu_cv_sys_stat_statfs2_fsize=no)])
2601 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2602 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2604 AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
2608 if test $space = no; then
2610 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2611 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2612 [AC_TRY_RUN([#include <sys/types.h>
2613 #ifdef HAVE_SYS_PARAM_H
2614 #include <sys/param.h>
2616 #ifdef HAVE_SYS_MOUNT_H
2617 #include <sys/mount.h>
2619 #ifdef HAVE_SYS_FS_TYPES_H
2620 #include <sys/fs_types.h>
2625 /* Ultrix's statfs returns 1 for success,
2626 0 for not mounted, -1 for failure. */
2627 exit (statfs (".", &fsd) != 1);
2629 fu_cv_sys_stat_fs_data=yes,
2630 fu_cv_sys_stat_fs_data=no,
2631 fu_cv_sys_stat_fs_data=no)])
2632 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2633 if test $fu_cv_sys_stat_fs_data = yes; then
2635 AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
2640 # As a gating factor for large file support, in order to
2641 # use <4GB files we must have the following minimal support
2643 # long long, and a 64 bit off_t or off64_t.
2644 # If we don't have all of these then disable large
2647 AC_MSG_CHECKING([if large file support can be enabled])
2649 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2650 #include <sys/types.h>
2656 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2657 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2658 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
2660 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2662 AC_ARG_WITH(spinlocks,
2663 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no) ])
2664 if test "x$with_spinlocks" = "xyes"; then
2665 AC_DEFINE(USE_SPINLOCKS,1,[Whether to use spin locks instead of fcntl locks])
2669 AC_DEFINE(SPARC_SPINLOCKS,1,[Whether to use sparc spinlocks])
2672 i386|i486|i586|i686)
2673 AC_DEFINE(INTEL_SPINLOCKS,1,[Whether to use intel spinlocks])
2677 AC_DEFINE(MIPS_SPINLOCKS,1,[Whether to use mips spinlocks])
2681 AC_DEFINE(POWERPC_SPINLOCKS,1,[Whether to use powerpc spinlocks])
2686 #################################################
2687 # check for ACL support
2689 AC_MSG_CHECKING(whether to support ACLs)
2690 AC_ARG_WITH(acl-support,
2691 [ --with-acl-support Include ACL support (default=no)],
2692 [ case "$withval" in
2697 AC_MSG_RESULT(Using UnixWare ACLs)
2698 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
2701 AC_MSG_RESULT(Using solaris ACLs)
2702 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
2705 AC_MSG_RESULT(Using HPUX ACLs)
2706 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
2709 AC_MSG_RESULT(Using IRIX ACLs)
2710 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
2713 AC_MSG_RESULT(Using AIX ACLs)
2714 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
2717 AC_MSG_RESULT(Using Tru64 ACLs)
2718 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
2722 AC_CHECK_LIB(acl,acl_get_file)
2723 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2724 AC_TRY_LINK([#include <sys/types.h>
2725 #include <sys/acl.h>],
2726 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2727 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2728 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2729 AC_MSG_RESULT(Using posix ACLs)
2730 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
2731 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2732 AC_TRY_LINK([#include <sys/types.h>
2733 #include <sys/acl.h>],
2734 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2735 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2736 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2737 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
2745 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
2748 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
2752 #################################################
2753 # check for sendfile support
2755 with_sendfile_support=yes
2756 AC_MSG_CHECKING(whether to check to support sendfile)
2757 AC_ARG_WITH(sendfile-support,
2758 [ --with-sendfile-support Check for sendfile support (default=yes)],
2759 [ case "$withval" in
2766 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2767 AC_TRY_LINK([#include <sys/sendfile.h>],
2772 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
2774 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2776 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
2777 AC_TRY_LINK([#include <sys/sendfile.h>],
2782 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2784 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2786 # Try and cope with broken Linux sendfile....
2787 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
2789 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
2790 #undef _FILE_OFFSET_BITS
2792 #include <sys/sendfile.h>],
2797 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2799 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
2801 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2802 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
2803 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
2804 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
2805 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2806 AC_DEFINE(HAVE_SENDFILE,1,[Whether 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_BROKEN_LINUX_SENDFILE" = x"yes"; then
2810 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
2811 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
2818 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
2820 #include <sys/types.h>
2821 #include <sys/socket.h>
2822 #include <sys/uio.h>],
2825 off_t offset, nwritten;
2828 hdr->headers = &hdtrl;
2830 hdr->trailers = NULL;
2832 hdtrl.iov_base = NULL;
2834 int ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
2836 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2838 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2839 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
2840 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
2841 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2848 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2850 #include <sys/socket.h>
2851 #include <sys/uio.h>],
2855 struct iovec hdtrl[2];
2859 hdtrl[0].iov_base = 0;
2860 hdtrl[0].iov_len = 0;
2862 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
2864 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2865 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2866 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
2867 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
2868 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2873 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
2875 #include <sys/socket.h>
2876 #include <sys/uio.h>],
2880 struct iovec hdtrl[2];
2884 hdtrl[0].iov_base = 0;
2885 hdtrl[0].iov_len = 0;
2887 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
2889 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2890 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2891 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
2892 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
2893 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2900 LIBS="$LIBS -lsendfile"
2901 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
2903 #include <sys/sendfile.h>],
2907 struct sendfilevec vec[2];
2913 vec[0].sfv_fd = SFV_FD_SELF;
2914 vec[0].sfv_flag = 0;
2919 vec[1].sfv_flag = 0;
2922 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
2924 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
2926 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
2927 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
2928 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
2929 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2934 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
2936 #include <sys/sendfile.h>],
2940 struct sendfilevec vec[2];
2946 vec[0].sfv_fd = SFV_FD_SELF;
2947 vec[0].sfv_flag = 0;
2952 vec[1].sfv_flag = 0;
2955 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
2957 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
2959 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
2960 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
2961 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
2962 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
2980 #################################################
2981 # Check whether winbind is supported on this platform. If so we need to
2982 # build and install client programs (WINBIND_TARGETS), sbin programs
2983 # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS).
2985 AC_MSG_CHECKING(whether to build winbind)
2987 # Initially, the value of $host_os decides whether winbind is supported
2995 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2996 WINBIND_NSS_EXTRA_LIBS="-lsocket"
3000 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
3004 winbind_no_reason=", unsupported on $host_os"
3008 # Check the setting of --with-winbindd
3010 AC_ARG_WITH(winbind,
3011 [ --with-winbind Build winbind (default, if supported by OS)],
3024 # We need unix domain sockets for winbind
3026 if test x"$HAVE_WINBIND" = x"yes"; then
3027 if test x"$samba_cv_unixsocket" = x"no"; then
3028 winbind_no_reason=", no unix domain socket support on $host_os"
3033 # Display test results
3038 WINBIND_PAM_PROGS=""
3040 if test x"$HAVE_WINBIND" = x"yes"; then
3042 AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
3044 WINBIND_TARGETS="bin/wbinfo"
3045 WINBIND_STARGETS="bin/winbindd"
3046 if test x"$BLDSHARED" = x"true"; then
3047 WINBIND_LTARGETS="nsswitch/libnss_winbind.so"
3048 if test x"$with_pam" = x"yes"; then
3049 WINBIND_PAM_TARGETS="nsswitch/pam_winbind.so"
3053 AC_MSG_RESULT(no$winbind_no_reason)
3057 # Substitution time!
3059 AC_SUBST(WINBIND_TARGETS)
3060 AC_SUBST(WINBIND_STARGETS)
3061 AC_SUBST(WINBIND_LTARGETS)
3062 AC_SUBST(WINBIND_PAM_TARGETS)
3063 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
3064 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
3066 # Solaris has some extra fields in struct passwd that need to be
3067 # initialised otherwise nscd crashes. Unfortunately autoconf < 2.50
3068 # doesn't have the AC_CHECK_MEMBER macro which would be handy for checking
3071 #AC_CHECK_MEMBER(struct passwd.pw_comment,
3072 # AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),
3073 # [#include <pwd.h>])
3075 AC_CACHE_CHECK([whether struct passwd has pw_comment],samba_cv_passwd_pw_comment, [
3076 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_comment;],
3077 samba_cv_passwd_pw_comment=yes,samba_cv_passwd_pw_comment=no)])
3078 if test x"$samba_cv_passwd_pw_comment" = x"yes"; then
3079 AC_DEFINE(HAVE_PASSWD_PW_COMMENT,1,[Whether struct passwd has pw_comment])
3082 #AC_CHECK_MEMBER(struct passwd.pw_age,
3083 # AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),
3084 # [#include <pwd.h>])
3086 AC_CACHE_CHECK([whether struct passwd has pw_age],samba_cv_passwd_pw_age, [
3087 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_age;],
3088 samba_cv_passwd_pw_age=yes,samba_cv_passwd_pw_age=no)])
3089 if test x"$samba_cv_passwd_pw_age" = x"yes"; then
3090 AC_DEFINE(HAVE_PASSWD_PW_AGE,1,[Whether struct passwd has pw_age])
3093 #################################################
3094 # Check to see if we should use the included popt
3096 AC_ARG_WITH(included-popt,
3097 [ --with-included-popt use bundled popt library, not from system],
3108 if test x"$INCLUDED_POPT" != x"yes"; then
3109 AC_CHECK_LIB(popt, poptGetContext,
3110 INCLUDED_POPT=no, INCLUDED_POPT=yes)
3113 AC_MSG_CHECKING(whether to use included popt)
3114 if test x"$INCLUDED_POPT" = x"yes"; then
3116 BUILD_POPT='$(POPT_OBJS)'
3117 FLAGS1="-I$srcdir/popt"
3122 AC_SUBST(BUILD_POPT)
3125 #################################################
3126 # Check if the user wants Python
3128 # At the moment, you can use this to set which Python binary to link
3129 # against. (Libraries built for Python2.2 can't be used by 2.1,
3130 # though they can coexist in different directories.) In the future
3131 # this might make the Python stuff be built by default.
3134 [ --with-python=PYTHONNAME build Python libraries],
3135 [ case "${withval-python}" in
3140 PYTHON=${withval-python}
3145 #################################################
3146 # do extra things if we are running insure
3148 if test "${ac_cv_prog_CC}" = "insure"; then
3149 CPPFLAGS="$CPPFLAGS -D__INSURE__"
3152 #################################################
3153 # final configure stuff
3155 AC_MSG_CHECKING([configure summary])
3156 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
3158 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
3159 AC_MSG_WARN([cannot run when cross-compiling]))
3164 # I added make files that are outside /source directory.
3165 # I know this is not a good solution, will work out a better
3166 # solution soon. --simo
3167 AC_OUTPUT(include/stamp-h Makefile script/findsmb ../examples/VFS/Makefile)
3169 #################################################
3170 # Print very concise instructions on building/use
3171 if test "x$enable_dmalloc" = xyes
3173 AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
3174 AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])