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 $CC $CPPFLAGS $CFLAGS $PICFLAG -c -o shlib.po ${srcdir-.}/tests/shlib.c &&
1007 $CC $CPPFLAGS $CFLAGS $LDSHFLAGS -o shlib.so shlib.po &&
1008 ac_cv_shlib_works=yes
1009 rm -f shlib.so shlib.po
1011 if test $ac_cv_shlib_works = no; then
1017 # this updates our target list if we can build shared libs
1018 if test $BLDSHARED = true; then
1019 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
1021 LIBSMBCLIENT_SHARED=
1026 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1027 AC_TRY_RUN([#include <stdio.h>
1028 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1029 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
1030 if test x"$samba_cv_have_longlong" = x"yes"; then
1031 AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1035 # Check if the compiler supports the LL prefix on long long integers.
1038 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
1039 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
1040 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
1041 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
1042 AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
1046 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1047 AC_TRY_RUN([#include <stdio.h>
1048 #include <sys/stat.h>
1049 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1050 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
1051 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
1052 AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1055 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1057 #if defined(HAVE_UNISTD_H)
1061 #include <sys/stat.h>
1062 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1063 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
1064 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
1065 AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1068 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
1069 AC_TRY_RUN([#include <stdio.h>
1070 #include <sys/stat.h>
1071 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1072 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
1073 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
1074 AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1077 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1079 #if defined(HAVE_UNISTD_H)
1083 #include <sys/stat.h>
1084 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1085 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
1086 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
1087 AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1090 AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
1092 #if defined(HAVE_UNISTD_H)
1096 #include <sys/stat.h>
1097 main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
1098 samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
1099 if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
1100 AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
1103 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
1105 #if defined(HAVE_UNISTD_H)
1108 #include <sys/types.h>
1109 #include <dirent.h>],
1110 [struct dirent64 de;],
1111 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
1112 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
1113 AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1116 AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
1118 #if defined(HAVE_UNISTD_H)
1121 #include <sys/types.h>
1122 main() { dev_t dev; int i = major(dev); return 0; }],
1123 samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
1124 if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
1125 AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
1128 AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
1130 #if defined(HAVE_UNISTD_H)
1133 #include <sys/types.h>
1134 main() { dev_t dev; int i = minor(dev); return 0; }],
1135 samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
1136 if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
1137 AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
1140 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1141 AC_TRY_RUN([#include <stdio.h>
1142 main() { char c; c=250; exit((c > 0)?0:1); }],
1143 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
1144 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
1145 AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1148 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1149 AC_TRY_COMPILE([#include <sys/types.h>
1150 #include <sys/socket.h>
1151 #include <netinet/in.h>],
1152 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1153 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
1154 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
1155 AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
1158 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
1159 AC_TRY_COMPILE([#include <sys/types.h>
1161 void seekdir(DIR *d, long loc) { return; }],[return 0;],
1162 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
1163 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
1164 AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
1167 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
1168 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
1169 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
1170 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
1171 AC_DEFINE(HAVE_FILE_MACRO,1,[Whether there is a __FILE__ macro])
1174 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1175 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1176 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
1177 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
1178 AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
1181 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1183 #include <sys/time.h>
1185 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1186 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
1187 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
1188 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available])
1191 AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE_VA_COPY,[
1192 AC_TRY_LINK([#include <stdarg.h>
1193 va_list ap1,ap2;], [__va_copy(ap1,ap2);],
1194 samba_cv_HAVE_VA_COPY=yes,samba_cv_HAVE_VA_COPY=no)])
1195 if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
1196 AC_DEFINE(HAVE_VA_COPY,1,[Whether __va_copy() is available])
1199 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
1201 #include <sys/types.h>
1203 void foo(const char *format, ...) {
1208 va_start(ap, format);
1209 len = vsnprintf(buf, 0, format, ap);
1211 if (len != 5) exit(1);
1213 va_start(ap, format);
1214 len = vsnprintf(0, 0, format, ap);
1216 if (len != 5) exit(1);
1218 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
1222 main() { foo("hello"); }
1224 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
1225 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
1226 AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
1229 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1230 AC_TRY_RUN([#include <sys/types.h>
1232 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
1233 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
1234 di->d_name[0] == 0) exit(0); exit(1);} ],
1235 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
1236 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
1237 AC_DEFINE(HAVE_BROKEN_READDIR,1,[Whether readdir() is broken])
1240 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1241 AC_TRY_COMPILE([#include <sys/types.h>
1242 #include <utime.h>],
1243 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1244 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
1245 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
1246 AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
1249 dnl utmp and utmpx come in many flavours
1250 dnl We need to check for many of them
1251 dnl But we don't need to do each and every one, because our code uses
1252 dnl mostly just the utmp (not utmpx) fields.
1254 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
1256 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
1257 AC_TRY_COMPILE([#include <sys/types.h>
1259 [struct utmp ut; ut.ut_name[0] = 'a';],
1260 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
1261 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
1262 AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
1265 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1266 AC_TRY_COMPILE([#include <sys/types.h>
1268 [struct utmp ut; ut.ut_user[0] = 'a';],
1269 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1270 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1271 AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
1274 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1275 AC_TRY_COMPILE([#include <sys/types.h>
1277 [struct utmp ut; ut.ut_id[0] = 'a';],
1278 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1279 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1280 AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
1283 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1284 AC_TRY_COMPILE([#include <sys/types.h>
1286 [struct utmp ut; ut.ut_host[0] = 'a';],
1287 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1288 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1289 AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
1292 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1293 AC_TRY_COMPILE([#include <sys/types.h>
1295 [struct utmp ut; time_t t; ut.ut_time = t;],
1296 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1297 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1298 AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
1301 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1302 AC_TRY_COMPILE([#include <sys/types.h>
1304 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
1305 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1306 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1307 AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
1310 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1311 AC_TRY_COMPILE([#include <sys/types.h>
1313 [struct utmp ut; ut.ut_type = 0;],
1314 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1315 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1316 AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
1319 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1320 AC_TRY_COMPILE([#include <sys/types.h>
1322 [struct utmp ut; ut.ut_pid = 0;],
1323 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1324 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1325 AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
1328 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1329 AC_TRY_COMPILE([#include <sys/types.h>
1331 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1332 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1333 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1334 AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
1337 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1338 AC_TRY_COMPILE([#include <sys/types.h>
1340 [struct utmp ut; ut.ut_addr = 0;],
1341 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1342 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1343 AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
1346 if test x$ac_cv_func_pututline = xyes ; then
1347 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1348 AC_TRY_COMPILE([#include <sys/types.h>
1350 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1351 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1352 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1353 AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
1357 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1358 AC_TRY_COMPILE([#include <sys/types.h>
1359 #include <utmpx.h>],
1360 [struct utmpx ux; ux.ut_syslen = 0;],
1361 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1362 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1363 AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
1367 #################################################
1368 # check for libiconv support
1369 AC_MSG_CHECKING(whether to use libiconv)
1370 AC_ARG_WITH(libiconv,
1371 [ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1372 [ case "$withval" in
1378 CFLAGS="$CFLAGS -I$withval/include"
1379 LDFLAGS="$LDFLAGS -L$withval/lib"
1380 AC_CHECK_LIB(iconv, iconv_open)
1381 AC_DEFINE_UNQUOTED(WITH_LIBICONV, "${withval}",[Path to iconv])
1389 # check for iconv in libc
1390 AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1394 iconv_t cd = iconv_open("ASCII", "UCS-2LE");
1395 if (cd == 0 || cd == (iconv_t)-1) return -1;
1399 samba_cv_HAVE_NATIVE_ICONV=yes,samba_cv_HAVE_NATIVE_ICONV=no,samba_cv_HAVE_NATIVE_ICONV=cross)])
1400 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1401 AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
1405 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1407 #include <sys/types.h>
1410 #define F_GETLEASE 1025
1413 int fd = open("/dev/null", O_RDONLY);
1414 return fcntl(fd, F_GETLEASE, 0) == -1;
1417 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1418 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1419 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
1422 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1424 #include <sys/types.h>
1428 #define F_NOTIFY 1026
1431 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1434 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1435 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1436 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
1439 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1441 #include <sys/types.h>
1444 #include <sys/file.h>
1446 #define LOCK_MAND 32
1447 #define LOCK_READ 64
1450 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1453 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1454 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1455 AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
1461 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1462 AC_TRY_COMPILE([#include <sys/types.h>
1463 #include <fcntl.h>],
1464 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1465 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1466 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1467 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
1470 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1471 AC_TRY_RUN([#include <sys/types.h>
1472 #include <sys/capability.h>
1475 if ((cap = cap_get_proc()) == NULL)
1477 cap->cap_effective |= CAP_NETWORK_MGT;
1478 cap->cap_inheritable |= CAP_NETWORK_MGT;
1483 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1484 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1485 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES,1,[Whether IRIX specific capabilities are available])
1489 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1490 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1493 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1494 AC_TRY_COMPILE([#include <sys/types.h>
1495 #if defined(HAVE_RPC_RPC_H)
1496 #include <rpc/rpc.h>
1499 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1500 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1501 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
1504 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1505 AC_TRY_COMPILE([#include <sys/types.h>
1506 #if defined(HAVE_RPC_RPC_H)
1507 #include <rpc/rpc.h>
1510 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1511 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1512 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
1515 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1516 AC_TRY_COMPILE([#include <sys/types.h>
1517 #if defined(HAVE_RPC_RPC_H)
1518 #include <rpc/rpc.h>
1521 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1522 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1523 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
1526 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1527 AC_TRY_COMPILE([#include <sys/types.h>
1528 #if defined(HAVE_RPC_RPC_H)
1529 #include <rpc/rpc.h>
1532 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1533 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1534 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
1538 dnl Some systems (SCO) have a problem including
1539 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1540 dnl as a #define in <prot.h> and as part of an enum
1544 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1545 AC_TRY_COMPILE([#include <sys/types.h>
1546 #ifdef HAVE_SYS_SECURITY_H
1547 #include <sys/security.h>
1549 #endif /* HAVE_SYS_SECURITY_H */
1550 #if defined(HAVE_RPC_RPC_H)
1551 #include <rpc/rpc.h>
1554 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1555 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1556 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
1559 AC_MSG_CHECKING([for test routines])
1560 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1562 AC_MSG_ERROR([cant find test code. Aborting config]),
1563 AC_MSG_WARN([cannot run when cross-compiling]))
1565 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1566 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1567 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1568 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1569 AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
1572 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1573 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1574 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1575 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1576 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1577 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1579 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1582 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1583 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1584 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1585 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1586 AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
1589 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1590 SAVE_CPPFLAGS="$CPPFLAGS"
1591 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper"
1593 #define REPLACE_GETPASS 1
1594 #define NO_CONFIG_H 1
1595 #define main dont_declare_main
1596 #include "${srcdir-.}/lib/getsmbpass.c"
1598 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1599 CPPFLAGS="$SAVE_CPPFLAGS"
1601 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1602 AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced])
1605 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1608 #include <sys/types.h>
1609 #include <netinet/in.h>
1610 #ifdef HAVE_ARPA_INET_H
1611 #include <arpa/inet.h>
1613 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1614 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1615 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1617 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1618 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1619 AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced])
1622 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1623 AC_TRY_RUN([#include <stdlib.h>
1624 #include <sys/types.h>
1625 #include <sys/stat.h>
1629 char tpl[20]="/tmp/test.XXXXXX";
1630 int fd = mkstemp(tpl);
1631 if (fd == -1) exit(1);
1633 if (fstat(fd, &st) != 0) exit(1);
1634 if ((st.st_mode & 0777) != 0600) exit(1);
1637 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1638 samba_cv_HAVE_SECURE_MKSTEMP=no,
1639 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1640 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1641 AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
1644 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1645 AC_TRY_RUN([#include <unistd.h>
1646 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1647 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1648 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1649 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX,1,[Whether sysconf(_SC_NGROUPS_MAX) is available])
1652 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1653 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1654 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1655 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1656 AC_DEFINE(HAVE_ROOT,1,[Whether current user is root])
1658 AC_MSG_WARN(running as non-root will disable some tests)
1662 # look for a method of finding the list of network interfaces
1664 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1666 #define HAVE_IFACE_AIX 1
1667 #define AUTOCONF_TEST 1
1668 #include "confdefs.h"
1669 #include "${srcdir-.}/lib/interfaces.c"],
1670 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1671 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1672 iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
1675 if test $iface = no; then
1676 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1678 #define HAVE_IFACE_IFCONF 1
1679 #define AUTOCONF_TEST 1
1680 #include "confdefs.h"
1681 #include "${srcdir-.}/lib/interfaces.c"],
1682 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1683 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1684 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
1688 if test $iface = no; then
1689 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1691 #define HAVE_IFACE_IFREQ 1
1692 #define AUTOCONF_TEST 1
1693 #include "confdefs.h"
1694 #include "${srcdir-.}/lib/interfaces.c"],
1695 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1696 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1697 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
1702 ################################################
1703 # look for a method of setting the effective uid
1705 if test $seteuid = no; then
1706 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1708 #define AUTOCONF_TEST 1
1709 #define USE_SETRESUID 1
1710 #include "confdefs.h"
1711 #include "${srcdir-.}/lib/util_sec.c"],
1712 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1713 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1714 seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
1719 if test $seteuid = no; then
1720 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1722 #define AUTOCONF_TEST 1
1723 #define USE_SETREUID 1
1724 #include "confdefs.h"
1725 #include "${srcdir-.}/lib/util_sec.c"],
1726 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1727 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1728 seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
1732 if test $seteuid = no; then
1733 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1735 #define AUTOCONF_TEST 1
1736 #define USE_SETEUID 1
1737 #include "confdefs.h"
1738 #include "${srcdir-.}/lib/util_sec.c"],
1739 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1740 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1741 seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
1745 if test $seteuid = no; then
1746 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1748 #define AUTOCONF_TEST 1
1749 #define USE_SETUIDX 1
1750 #include "confdefs.h"
1751 #include "${srcdir-.}/lib/util_sec.c"],
1752 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1753 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1754 seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
1759 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1760 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1761 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1762 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1763 AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
1766 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1767 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1768 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1769 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1770 AC_DEFINE(FTRUNCATE_NEEDS_ROOT,1,[Whether ftruncate() needs root])
1773 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1774 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1775 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1776 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1777 AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
1780 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1781 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1782 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1783 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1784 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
1789 dnl Don't check for 64 bit fcntl locking if we know that the
1790 dnl glibc2.1 broken check has succeeded.
1793 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1795 #if defined(HAVE_UNISTD_H)
1805 #ifdef HAVE_SYS_FCNTL_H
1806 #include <sys/fcntl.h>
1808 main() { struct flock64 fl64;
1809 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1815 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1817 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1818 AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
1822 AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
1823 AC_TRY_COMPILE([#include <sys/types.h>
1824 #include <sys/stat.h>
1825 #include <unistd.h>],
1826 [struct stat st; st.st_blocks = 0;],
1827 samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
1828 if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
1829 AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
1832 AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
1833 AC_TRY_COMPILE([#include <sys/types.h>
1834 #include <sys/stat.h>
1835 #include <unistd.h>],
1836 [struct stat st; st.st_blksize = 0;],
1837 samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
1838 if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
1839 AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
1844 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
1846 #ifdef HAVE_SYS_VFS_H
1847 #include <sys/vfs.h>
1849 #ifdef HAVE_SYS_CAPABILITY_H
1850 #include <sys/capability.h>
1853 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
1854 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
1855 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
1860 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1861 AC_TRY_COMPILE([#include <sys/acl.h>
1862 #if defined(HAVE_RPCSVC_NIS_H)
1863 #include <rpcsvc/nis.h>
1866 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1867 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1868 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
1872 #################################################
1873 # check for smbwrapper support
1874 AC_MSG_CHECKING(whether to use smbwrapper)
1875 AC_ARG_WITH(smbwrapper,
1876 [ --with-smbwrapper Include SMB wrapper support (default=no) ],
1877 [ case "$withval" in
1880 AC_DEFINE(WITH_SMBWRAPPER,1,[Whether to include smbwrapper support])
1881 WRAPPROG="bin/smbsh"
1882 WRAP="bin/smbwrapper.$SHLIBEXT"
1884 if test x$ATTEMPT_WRAP32_BUILD = x; then
1887 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1890 # Conditions under which smbwrapper should not be built.
1892 if test x$PICFLAG = x; then
1893 echo No support for PIC code - disabling smbwrapper and smbsh
1897 elif test x$ac_cv_func_syscall = xno; then
1898 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1911 #################################################
1912 # check for AFS clear-text auth support
1913 AC_MSG_CHECKING(whether to use AFS clear-text auth)
1915 [ --with-afs Include AFS clear-text auth support (default=no) ],
1916 [ case "$withval" in
1919 AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
1929 #################################################
1930 # check for the DFS clear-text auth system
1931 AC_MSG_CHECKING(whether to use DFS clear-text auth)
1933 [ --with-dce-dfs Include DCE/DFS clear-text auth support (default=no)],
1934 [ case "$withval" in
1937 AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
1946 #################################################
1947 # active directory support
1949 with_ads_support=yes
1950 AC_MSG_CHECKING([whether to use Active Directory])
1953 [ --with-ads Active Directory support (default yes)],
1954 [ case "$withval" in
1960 if test x"$with_ads_support" = x"yes"; then
1961 AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
1964 AC_MSG_RESULT($with_ads_support)
1967 if test x"$with_ads_support" = x"yes"; then
1969 #################################################
1970 # check for location of Kerberos 5 install
1971 AC_MSG_CHECKING(for kerberos 5 install path)
1973 [ --with-krb5=base-dir Locate Kerberos 5 support (default=/usr)],
1974 [ case "$withval" in
1981 CFLAGS="$CFLAGS -I$withval/include"
1982 CPPFLAGS="$CPPFLAGS -I$withval/include"
1983 LDFLAGS="$LDFLAGS -L$withval/lib"
1991 if test x$FOUND_KRB5 = x"no"; then
1992 #################################################
1993 # see if this box has the SuSE location for the heimdal kerberos implementation
1994 AC_MSG_CHECKING(for /usr/include/heimdal)
1995 if test -d /usr/include/heimdal; then
1996 CFLAGS="$CFLAGS -I/usr/include/heimdal"
1997 CPPFLAGS="$CPPFLAGS -I/usr/include/heimdal"
2005 if test x$FOUND_KRB5 = x"no"; then
2006 #################################################
2007 # see if this box has the RedHat location for kerberos
2008 AC_MSG_CHECKING(for /usr/kerberos)
2009 if test -d /usr/kerberos; then
2010 LDFLAGS="$LDFLAGS -L/usr/kerberos/lib"
2011 CFLAGS="$CFLAGS -I/usr/kerberos/include"
2012 CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
2020 # now check for krb5.h. Some systems have the libraries without the headers!
2021 # note that this check is done here to allow for different kerberos
2023 AC_CHECK_HEADERS(krb5.h)
2025 # now check for gssapi headers. This is also done here to allow for
2026 # different kerberos include paths
2027 AC_CHECK_HEADERS(gssapi/gssapi_generic.h gssapi/gssapi.h)
2029 ##################################################################
2030 # we might need the k5crypto and com_err libraries on some systems
2031 AC_CHECK_LIB(com_err, _et_list, [LIBS="$LIBS -lcom_err"])
2032 AC_CHECK_LIB(k5crypto, krb5_encrypt_data, [LIBS="$LIBS -lk5crypto"])
2034 ########################################################
2035 # now see if we can find the krb5 libs in standard paths
2036 # or as specified above
2037 AC_CHECK_LIB(krb5, krb5_mk_req_extended, [LIBS="$LIBS -lkrb5";
2038 AC_DEFINE(HAVE_KRB5,1,[Whether KRB5 is available])])
2040 ########################################################
2041 # now see if we can find the gssapi libs in standard paths
2042 AC_CHECK_LIB(gssapi_krb5, gss_display_status, [LIBS="$LIBS -lgssapi_krb5";
2043 AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available])])
2046 ########################################################
2047 # Compile with LDAP support?
2049 with_ldap_support=yes
2050 AC_MSG_CHECKING([whether to use LDAP])
2053 [ --with-ldap LDAP support (default yes)],
2054 [ case "$withval" in
2056 with_ldap_support=no
2060 AC_MSG_RESULT($with_ldap_support)
2062 if test x"$with_ldap_support" = x"yes"; then
2064 ##################################################################
2065 # we might need the lber lib on some systems. To avoid link errors
2066 # this test must be before the libldap test
2067 AC_CHECK_LIB(lber, ber_scanf, [LIBS="$LIBS -llber"])
2069 ########################################################
2070 # now see if we can find the ldap libs in standard paths
2071 if test x$have_ldap != xyes; then
2072 AC_CHECK_LIB(ldap, ldap_domain2hostlist, [LIBS="$LIBS -lldap";
2073 AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])])
2075 ########################################################
2076 # If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
2077 # Check found in pam_ldap 145.
2078 AC_CHECK_FUNCS(ldap_set_rebind_proc)
2079 AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, pam_ldap_cv_ldap_set_rebind_proc, [
2082 #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]) ])
2083 AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $pam_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
2087 ########################################################
2088 # Compile with MySQL support?
2089 AM_PATH_MYSQL([0.11.0],[MODULE_PDB_MYSQL=bin/pdb_mysql.so],[MODULE_PDB_MYSQL=])
2090 CFLAGS="$CFLAGS $MYSQL_CFLAGS"
2091 AC_SUBST(MODULE_PDB_MYSQL)
2093 ########################################################
2094 # Compile with XML support?
2095 AM_PATH_XML2([2.0.0],[MODULE_PDB_XML=bin/pdb_xml.so],[MODULE_PDB_XML=])
2096 CFLAGS="$CFLAGS $XML_CFLAGS"
2097 AC_SUBST(MODULE_PDB_XML)
2099 #################################################
2100 # check for automount support
2101 AC_MSG_CHECKING(whether to use AUTOMOUNT)
2102 AC_ARG_WITH(automount,
2103 [ --with-automount Include AUTOMOUNT support (default=no)],
2104 [ case "$withval" in
2107 AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
2116 #################################################
2117 # check for smbmount support
2118 AC_MSG_CHECKING(whether to use SMBMOUNT)
2119 AC_ARG_WITH(smbmount,
2120 [ --with-smbmount Include SMBMOUNT (Linux only) support (default=no)],
2121 [ case "$withval" in
2126 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
2127 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
2130 AC_MSG_ERROR(not on a linux system!)
2144 #################################################
2145 # check for a PAM clear-text auth, accounts, password and session support
2146 with_pam_for_crypt=no
2147 AC_MSG_CHECKING(whether to use PAM)
2149 [ --with-pam Include PAM support (default=no)],
2150 [ case "$withval" in
2153 AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
2154 AUTHLIBS="$AUTHLIBS -lpam"
2155 with_pam_for_crypt=yes
2164 # we can't build a pam module if we don't have pam.
2165 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
2167 #################################################
2168 # check for pam_smbpass support
2169 AC_MSG_CHECKING(whether to use pam_smbpass)
2170 AC_ARG_WITH(pam_smbpass,
2171 [ --with-pam_smbpass Build a PAM module to allow other applications to use our smbpasswd file (default=no)],
2172 [ case "$withval" in
2176 # Conditions under which pam_smbpass should not be built.
2178 if test x$PICFLAG = x; then
2179 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
2181 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
2182 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
2185 PAM_MOD="bin/pam_smbpass.so"
2196 ###############################################
2197 # test for where we get crypt() from, but only
2199 if test x"$with_pam_for_crypt" = x"no"; then
2200 AC_CHECK_FUNCS(crypt)
2201 if test x"$ac_cv_func_crypt" = x"no"; then
2202 AC_CHECK_LIB(crypt, crypt, [AUTHLIBS="$AUTHLIBS -lcrypt";
2203 AC_DEFINE(HAVE_CRYPT,1,[Whether crypt() is available])])
2208 ## moved after the check for -lcrypt in order to
2209 ## ensure that the necessary libraries are included
2210 ## check checking for truncated salt. Wrapped by the
2211 ## $with_pam_for_crypt variable as above --jerry
2213 if test $with_pam_for_crypt = no; then
2214 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2216 LIBS="$AUTHLIBS $LIBS"
2217 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2218 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
2219 LIBS="$crypt_LIBS"])
2220 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2221 AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
2225 # New experimental SAM system
2227 AC_MSG_CHECKING([whether to build the new (experimental) SAM database])
2229 [ --with-sam Build new (experimental) SAM database (default=no)],
2230 [ case "$withval" in
2233 AC_DEFINE(WITH_SAM,1,[Whether to build the new (experimental) SAM database])
2243 ########################################################################################
2245 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
2247 ########################################################################################
2249 #################################################
2250 # check for a LDAP password database configuration backwards compatibility
2251 AC_MSG_CHECKING(whether to use LDAP SAM 2.2 compatible configuration)
2252 AC_ARG_WITH(ldapsam,
2253 [ --with-ldapsam Include LDAP SAM 2.2 compatible configuration (default=no)],
2254 [ case "$withval" in
2257 AC_DEFINE(WITH_LDAP_SAMCONFIG,1,[Whether to include 2.2 compatibel LDAP SAM configuration])
2266 #################################################
2267 # check for a TDB password database
2268 AC_MSG_CHECKING(whether to use TDB SAM database)
2270 [ --with-tdbsam Include experimental TDB SAM support (default=no)],
2271 [ case "$withval" in
2274 AC_DEFINE(WITH_TDB_SAM,1,[Whether to include experimental TDB SAM support])
2283 #################################################
2284 # check for a NISPLUS password database
2285 AC_MSG_CHECKING(whether to use NISPLUS SAM database)
2286 AC_ARG_WITH(nisplussam,
2287 [ --with-nisplussam Include NISPLUS SAM support (default=no)],
2288 [ case "$withval" in
2291 AC_DEFINE(WITH_NISPLUS_SAM,1,[Whether to include nisplus SAM support])
2300 ########################################################################################
2302 ## END OF TESTS FOR SAM BACKENDS.
2304 ########################################################################################
2306 #################################################
2307 # check for a NISPLUS_HOME support
2308 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
2309 AC_ARG_WITH(nisplus-home,
2310 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
2311 [ case "$withval" in
2314 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
2323 #################################################
2324 # check for syslog logging
2325 AC_MSG_CHECKING(whether to use syslog logging)
2327 [ --with-syslog Include experimental SYSLOG support (default=no)],
2328 [ case "$withval" in
2331 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
2340 #################################################
2341 # check for a shared memory profiling support
2342 AC_MSG_CHECKING(whether to use profiling)
2343 AC_ARG_WITH(profiling-data,
2344 [ --with-profiling-data Include gathering source code profile information (default=no)],
2345 [ case "$withval" in
2348 AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
2358 #################################################
2359 # check for experimental disk-quotas support
2360 QUOTAOBJS=smbd/noquotas.o
2362 AC_MSG_CHECKING(whether to support disk-quotas)
2364 [ --with-quotas Include experimental disk-quota support (default=no)],
2365 [ case "$withval" in
2370 # Check for kernel 2.4.x quota braindamage...
2371 AC_CACHE_CHECK([for linux 2.4.x quota braindamage..],samba_cv_linux_2_4_quota_braindamage, [
2372 AC_TRY_COMPILE([#include <stdio.h>
2373 #include <sys/types.h>
2374 #include <asm/types.h>
2375 #include <linux/quota.h>
2377 #include <linux/unistd.h>],[struct mem_dqblk D;],
2378 samba_cv_linux_2_4_quota_braindamage=yes,samba_cv_linux_2_4_quota_braindamage=no)])
2379 if test x"$samba_cv_linux_2_4_quota_braindamage" = x"yes"; then
2380 AC_DEFINE(LINUX_QUOTAS_2,1,[linux 2.4.x quota braindamage])
2382 AC_DEFINE(LINUX_QUOTAS_1,1,[linux quotas])
2388 QUOTAOBJS=smbd/quotas.o
2389 AC_DEFINE(WITH_QUOTAS,1,[Whether to include experimental quota support])
2399 #################################################
2400 # check for experimental utmp accounting
2402 AC_MSG_CHECKING(whether to support utmp accounting)
2404 [ --with-utmp Include experimental utmp accounting (default=no)],
2405 [ case "$withval" in
2408 AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
2417 #################################################
2418 # choose native language(s) of man pages
2419 AC_MSG_CHECKING(chosen man pages' language(s))
2420 AC_ARG_WITH(manpages-langs,
2421 [ --with-manpages-langs={en,ja,pl} Choose man pages' language(s). (en)],
2422 [ case "$withval" in
2424 AC_MSG_WARN(--with-manpages-langs called without argument - will use default)
2432 AC_MSG_RESULT($manlangs)
2433 manlangs=`echo $manlangs | sed "s/,/ /g"` # replacing commas with spaces to produce a list
2434 AC_SUBST(manlangs)],
2437 AC_MSG_RESULT($manlangs)
2441 #################################################
2442 # should we build libsmbclient?
2444 LIBSMBCLIENT_SHARED=
2446 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
2447 AC_ARG_WITH(libsmbclient,
2448 [ --with-libsmbclient Build the libsmbclient shared library (default=yes)],
2449 [ case "$withval" in
2454 if test $BLDSHARED = true; then
2455 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
2456 LIBSMBCLIENT=libsmbclient
2459 AC_MSG_RESULT(no shared library support)
2467 #################################################
2468 # these tests are taken from the GNU fileutils package
2469 AC_CHECKING(how to get filesystem space usage)
2472 # Test for statvfs64.
2473 if test $space = no; then
2475 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2477 #if defined(HAVE_UNISTD_H)
2480 #include <sys/types.h>
2481 #include <sys/statvfs.h>
2484 struct statvfs64 fsd;
2485 exit (statvfs64 (".", &fsd));
2487 fu_cv_sys_stat_statvfs64=yes,
2488 fu_cv_sys_stat_statvfs64=no,
2489 fu_cv_sys_stat_statvfs64=cross)])
2490 if test $fu_cv_sys_stat_statvfs64 = yes; then
2492 AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
2496 # Perform only the link test since it seems there are no variants of the
2497 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2498 # because that got a false positive on SCO OSR5. Adding the declaration
2499 # of a `struct statvfs' causes this test to fail (as it should) on such
2500 # systems. That system is reported to work fine with STAT_STATFS4 which
2501 # is what it gets when this test fails.
2502 if test $space = no; then
2504 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2505 [AC_TRY_LINK([#include <sys/types.h>
2506 #include <sys/statvfs.h>],
2507 [struct statvfs fsd; statvfs (0, &fsd);],
2508 fu_cv_sys_stat_statvfs=yes,
2509 fu_cv_sys_stat_statvfs=no)])
2510 if test $fu_cv_sys_stat_statvfs = yes; then
2512 AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
2516 if test $space = no; then
2517 # DEC Alpha running OSF/1
2518 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2519 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2521 #include <sys/param.h>
2522 #include <sys/types.h>
2523 #include <sys/mount.h>
2528 exit (statfs (".", &fsd, sizeof (struct statfs)));
2530 fu_cv_sys_stat_statfs3_osf1=yes,
2531 fu_cv_sys_stat_statfs3_osf1=no,
2532 fu_cv_sys_stat_statfs3_osf1=no)])
2533 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2534 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2536 AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
2540 if test $space = no; then
2542 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2543 member (AIX, 4.3BSD)])
2544 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2546 #ifdef HAVE_SYS_PARAM_H
2547 #include <sys/param.h>
2549 #ifdef HAVE_SYS_MOUNT_H
2550 #include <sys/mount.h>
2552 #ifdef HAVE_SYS_VFS_H
2553 #include <sys/vfs.h>
2559 exit (statfs (".", &fsd));
2561 fu_cv_sys_stat_statfs2_bsize=yes,
2562 fu_cv_sys_stat_statfs2_bsize=no,
2563 fu_cv_sys_stat_statfs2_bsize=no)])
2564 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2565 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2567 AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
2571 if test $space = no; then
2573 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2574 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2575 [AC_TRY_RUN([#include <sys/types.h>
2576 #include <sys/statfs.h>
2580 exit (statfs (".", &fsd, sizeof fsd, 0));
2582 fu_cv_sys_stat_statfs4=yes,
2583 fu_cv_sys_stat_statfs4=no,
2584 fu_cv_sys_stat_statfs4=no)])
2585 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2586 if test $fu_cv_sys_stat_statfs4 = yes; then
2588 AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
2592 if test $space = no; then
2594 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2595 member (4.4BSD and NetBSD)])
2596 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2597 [AC_TRY_RUN([#include <sys/types.h>
2598 #ifdef HAVE_SYS_PARAM_H
2599 #include <sys/param.h>
2601 #ifdef HAVE_SYS_MOUNT_H
2602 #include <sys/mount.h>
2608 exit (statfs (".", &fsd));
2610 fu_cv_sys_stat_statfs2_fsize=yes,
2611 fu_cv_sys_stat_statfs2_fsize=no,
2612 fu_cv_sys_stat_statfs2_fsize=no)])
2613 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2614 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2616 AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
2620 if test $space = no; then
2622 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2623 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2624 [AC_TRY_RUN([#include <sys/types.h>
2625 #ifdef HAVE_SYS_PARAM_H
2626 #include <sys/param.h>
2628 #ifdef HAVE_SYS_MOUNT_H
2629 #include <sys/mount.h>
2631 #ifdef HAVE_SYS_FS_TYPES_H
2632 #include <sys/fs_types.h>
2637 /* Ultrix's statfs returns 1 for success,
2638 0 for not mounted, -1 for failure. */
2639 exit (statfs (".", &fsd) != 1);
2641 fu_cv_sys_stat_fs_data=yes,
2642 fu_cv_sys_stat_fs_data=no,
2643 fu_cv_sys_stat_fs_data=no)])
2644 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2645 if test $fu_cv_sys_stat_fs_data = yes; then
2647 AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
2652 # As a gating factor for large file support, in order to
2653 # use <4GB files we must have the following minimal support
2655 # long long, and a 64 bit off_t or off64_t.
2656 # If we don't have all of these then disable large
2659 AC_MSG_CHECKING([if large file support can be enabled])
2661 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2662 #include <sys/types.h>
2668 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2669 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2670 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
2672 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2674 AC_ARG_WITH(spinlocks,
2675 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no) ])
2676 if test "x$with_spinlocks" = "xyes"; then
2677 AC_DEFINE(USE_SPINLOCKS,1,[Whether to use spin locks instead of fcntl locks])
2681 AC_DEFINE(SPARC_SPINLOCKS,1,[Whether to use sparc spinlocks])
2684 i386|i486|i586|i686)
2685 AC_DEFINE(INTEL_SPINLOCKS,1,[Whether to use intel spinlocks])
2689 AC_DEFINE(MIPS_SPINLOCKS,1,[Whether to use mips spinlocks])
2693 AC_DEFINE(POWERPC_SPINLOCKS,1,[Whether to use powerpc spinlocks])
2698 #################################################
2699 # check for ACL support
2701 AC_MSG_CHECKING(whether to support ACLs)
2702 AC_ARG_WITH(acl-support,
2703 [ --with-acl-support Include ACL support (default=no)],
2704 [ case "$withval" in
2709 AC_MSG_RESULT(Using UnixWare ACLs)
2710 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
2713 AC_MSG_RESULT(Using solaris ACLs)
2714 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
2717 AC_MSG_RESULT(Using HPUX ACLs)
2718 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
2721 AC_MSG_RESULT(Using IRIX ACLs)
2722 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
2725 AC_MSG_RESULT(Using AIX ACLs)
2726 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
2729 AC_MSG_RESULT(Using Tru64 ACLs)
2730 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
2734 AC_CHECK_LIB(acl,acl_get_file)
2735 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2736 AC_TRY_LINK([#include <sys/types.h>
2737 #include <sys/acl.h>],
2738 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2739 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2740 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2741 AC_MSG_RESULT(Using posix ACLs)
2742 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
2743 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2744 AC_TRY_LINK([#include <sys/types.h>
2745 #include <sys/acl.h>],
2746 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2747 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2748 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2749 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
2757 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
2760 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
2764 #################################################
2765 # check for sendfile support
2767 with_sendfile_support=yes
2768 AC_MSG_CHECKING(whether to check to support sendfile)
2769 AC_ARG_WITH(sendfile-support,
2770 [ --with-sendfile-support Check for sendfile support (default=yes)],
2771 [ case "$withval" in
2778 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2779 AC_TRY_LINK([#include <sys/sendfile.h>],
2784 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
2786 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2788 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
2789 AC_TRY_LINK([#include <sys/sendfile.h>],
2794 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2796 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2798 # Try and cope with broken Linux sendfile....
2799 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
2801 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
2802 #undef _FILE_OFFSET_BITS
2804 #include <sys/sendfile.h>],
2809 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2811 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
2813 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2814 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
2815 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
2816 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
2817 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2818 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
2819 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
2820 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
2821 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
2822 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
2823 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
2830 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
2832 #include <sys/types.h>
2833 #include <sys/socket.h>
2834 #include <sys/uio.h>],
2837 off_t offset, nwritten;
2840 hdr->headers = &hdtrl;
2842 hdr->trailers = NULL;
2844 hdtrl.iov_base = NULL;
2846 int ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
2848 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2850 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2851 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
2852 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
2853 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2860 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2862 #include <sys/socket.h>
2863 #include <sys/uio.h>],
2867 struct iovec hdtrl[2];
2871 hdtrl[0].iov_base = 0;
2872 hdtrl[0].iov_len = 0;
2874 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
2876 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2877 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2878 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
2879 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
2880 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2885 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
2887 #include <sys/socket.h>
2888 #include <sys/uio.h>],
2892 struct iovec hdtrl[2];
2896 hdtrl[0].iov_base = 0;
2897 hdtrl[0].iov_len = 0;
2899 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
2901 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2902 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2903 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
2904 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
2905 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2912 LIBS="$LIBS -lsendfile"
2913 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
2915 #include <sys/sendfile.h>],
2919 struct sendfilevec vec[2];
2925 vec[0].sfv_fd = SFV_FD_SELF;
2926 vec[0].sfv_flag = 0;
2931 vec[1].sfv_flag = 0;
2934 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
2936 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
2938 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
2939 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
2940 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
2941 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2946 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
2948 #include <sys/sendfile.h>],
2952 struct sendfilevec vec[2];
2958 vec[0].sfv_fd = SFV_FD_SELF;
2959 vec[0].sfv_flag = 0;
2964 vec[1].sfv_flag = 0;
2967 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
2969 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
2971 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
2972 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
2973 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
2974 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
2992 #################################################
2993 # Check whether winbind is supported on this platform. If so we need to
2994 # build and install client programs (WINBIND_TARGETS), sbin programs
2995 # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS).
2997 AC_MSG_CHECKING(whether to build winbind)
2999 # Initially, the value of $host_os decides whether winbind is supported
3007 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
3008 WINBIND_NSS_EXTRA_LIBS="-lsocket"
3012 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
3016 winbind_no_reason=", unsupported on $host_os"
3020 # Check the setting of --with-winbindd
3022 AC_ARG_WITH(winbind,
3023 [ --with-winbind Build winbind (default, if supported by OS)],
3036 # We need unix domain sockets for winbind
3038 if test x"$HAVE_WINBIND" = x"yes"; then
3039 if test x"$samba_cv_unixsocket" = x"no"; then
3040 winbind_no_reason=", no unix domain socket support on $host_os"
3045 # Display test results
3050 WINBIND_PAM_PROGS=""
3052 if test x"$HAVE_WINBIND" = x"yes"; then
3054 AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
3056 WINBIND_TARGETS="bin/wbinfo"
3057 WINBIND_STARGETS="bin/winbindd"
3058 if test x"$BLDSHARED" = x"true"; then
3059 WINBIND_LTARGETS="nsswitch/libnss_winbind.so"
3060 if test x"$with_pam" = x"yes"; then
3061 WINBIND_PAM_TARGETS="nsswitch/pam_winbind.so"
3065 AC_MSG_RESULT(no$winbind_no_reason)
3069 # Substitution time!
3071 AC_SUBST(WINBIND_TARGETS)
3072 AC_SUBST(WINBIND_STARGETS)
3073 AC_SUBST(WINBIND_LTARGETS)
3074 AC_SUBST(WINBIND_PAM_TARGETS)
3075 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
3076 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
3078 # Solaris has some extra fields in struct passwd that need to be
3079 # initialised otherwise nscd crashes. Unfortunately autoconf < 2.50
3080 # doesn't have the AC_CHECK_MEMBER macro which would be handy for checking
3083 #AC_CHECK_MEMBER(struct passwd.pw_comment,
3084 # AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),
3085 # [#include <pwd.h>])
3087 AC_CACHE_CHECK([whether struct passwd has pw_comment],samba_cv_passwd_pw_comment, [
3088 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_comment;],
3089 samba_cv_passwd_pw_comment=yes,samba_cv_passwd_pw_comment=no)])
3090 if test x"$samba_cv_passwd_pw_comment" = x"yes"; then
3091 AC_DEFINE(HAVE_PASSWD_PW_COMMENT,1,[Whether struct passwd has pw_comment])
3094 #AC_CHECK_MEMBER(struct passwd.pw_age,
3095 # AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),
3096 # [#include <pwd.h>])
3098 AC_CACHE_CHECK([whether struct passwd has pw_age],samba_cv_passwd_pw_age, [
3099 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_age;],
3100 samba_cv_passwd_pw_age=yes,samba_cv_passwd_pw_age=no)])
3101 if test x"$samba_cv_passwd_pw_age" = x"yes"; then
3102 AC_DEFINE(HAVE_PASSWD_PW_AGE,1,[Whether struct passwd has pw_age])
3105 #################################################
3106 # Check to see if we should use the included popt
3108 AC_ARG_WITH(included-popt,
3109 [ --with-included-popt use bundled popt library, not from system],
3120 if test x"$INCLUDED_POPT" != x"yes"; then
3121 AC_CHECK_LIB(popt, poptGetContext,
3122 INCLUDED_POPT=no, INCLUDED_POPT=yes)
3125 AC_MSG_CHECKING(whether to use included popt)
3126 if test x"$INCLUDED_POPT" = x"yes"; then
3128 BUILD_POPT='$(POPT_OBJS)'
3129 FLAGS1="-I$srcdir/popt"
3134 AC_SUBST(BUILD_POPT)
3137 #################################################
3138 # Check if the user wants Python
3140 # At the moment, you can use this to set which Python binary to link
3141 # against. (Libraries built for Python2.2 can't be used by 2.1,
3142 # though they can coexist in different directories.) In the future
3143 # this might make the Python stuff be built by default.
3146 [ --with-python=PYTHONNAME build Python libraries],
3147 [ case "${withval-python}" in
3152 PYTHON=${withval-python}
3157 #################################################
3158 # do extra things if we are running insure
3160 if test "${ac_cv_prog_CC}" = "insure"; then
3161 CPPFLAGS="$CPPFLAGS -D__INSURE__"
3164 #################################################
3165 # final configure stuff
3167 AC_MSG_CHECKING([configure summary])
3168 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
3170 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
3171 AC_MSG_WARN([cannot run when cross-compiling]))
3176 # I added make files that are outside /source directory.
3177 # I know this is not a good solution, will work out a better
3178 # solution soon. --simo
3179 AC_OUTPUT(include/stamp-h Makefile script/findsmb ../examples/sam/Makefile)
3181 #################################################
3182 # Print very concise instructions on building/use
3183 if test "x$enable_dmalloc" = xyes
3185 AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
3186 AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])