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/heimdal/include"
1997 CPPFLAGS="$CPPFLAGS -I/usr/heimdal/include"
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?
2090 CFLAGS="$CFLAGS $MYSQL_CFLAGS"
2093 ########################################################
2094 # Compile with XML support?
2096 CFLAGS="$CFLAGS $XML_CFLAGS"
2098 #################################################
2099 # check for automount support
2100 AC_MSG_CHECKING(whether to use AUTOMOUNT)
2101 AC_ARG_WITH(automount,
2102 [ --with-automount Include AUTOMOUNT support (default=no)],
2103 [ case "$withval" in
2106 AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
2115 #################################################
2116 # check for smbmount support
2117 AC_MSG_CHECKING(whether to use SMBMOUNT)
2118 AC_ARG_WITH(smbmount,
2119 [ --with-smbmount Include SMBMOUNT (Linux only) support (default=no)],
2120 [ case "$withval" in
2125 AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
2126 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
2129 AC_MSG_ERROR(not on a linux system!)
2143 #################################################
2144 # check for a PAM clear-text auth, accounts, password and session support
2145 with_pam_for_crypt=no
2146 AC_MSG_CHECKING(whether to use PAM)
2148 [ --with-pam Include PAM support (default=no)],
2149 [ case "$withval" in
2152 AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
2153 AUTHLIBS="$AUTHLIBS -lpam"
2154 with_pam_for_crypt=yes
2163 # we can't build a pam module if we don't have pam.
2164 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
2166 #################################################
2167 # check for pam_smbpass support
2168 AC_MSG_CHECKING(whether to use pam_smbpass)
2169 AC_ARG_WITH(pam_smbpass,
2170 [ --with-pam_smbpass Build a PAM module to allow other applications to use our smbpasswd file (default=no)],
2171 [ case "$withval" in
2175 # Conditions under which pam_smbpass should not be built.
2177 if test x$PICFLAG = x; then
2178 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
2180 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
2181 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
2184 PAM_MOD="bin/pam_smbpass.so"
2195 ###############################################
2196 # test for where we get crypt() from, but only
2198 if test x"$with_pam_for_crypt" = x"no"; then
2199 AC_CHECK_FUNCS(crypt)
2200 if test x"$ac_cv_func_crypt" = x"no"; then
2201 AC_CHECK_LIB(crypt, crypt, [AUTHLIBS="$AUTHLIBS -lcrypt";
2202 AC_DEFINE(HAVE_CRYPT,1,[Whether crypt() is available])])
2207 ## moved after the check for -lcrypt in order to
2208 ## ensure that the necessary libraries are included
2209 ## check checking for truncated salt. Wrapped by the
2210 ## $with_pam_for_crypt variable as above --jerry
2212 if test $with_pam_for_crypt = no; then
2213 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2215 LIBS="$AUTHLIBS $LIBS"
2216 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2217 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
2218 LIBS="$crypt_LIBS"])
2219 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2220 AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
2224 ########################################################################################
2226 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
2228 ########################################################################################
2230 #################################################
2231 # check for a LDAP password database configuration backwards compatibility
2232 AC_MSG_CHECKING(whether to use LDAP SAM 2.2 compatible configuration)
2233 AC_ARG_WITH(ldapsam,
2234 [ --with-ldapsam Include LDAP SAM 2.2 compatible configuration (default=no)],
2235 [ case "$withval" in
2238 AC_DEFINE(WITH_LDAP_SAMCONFIG,1,[Whether to include 2.2 compatibel LDAP SAM configuration])
2247 #################################################
2248 # check for a TDB password database
2249 AC_MSG_CHECKING(whether to use TDB SAM database)
2251 [ --with-tdbsam Include experimental TDB SAM support (default=no)],
2252 [ case "$withval" in
2255 AC_DEFINE(WITH_TDB_SAM,1,[Whether to include experimental TDB SAM support])
2264 #################################################
2265 # check for a NISPLUS password database
2266 AC_MSG_CHECKING(whether to use NISPLUS SAM database)
2267 AC_ARG_WITH(nisplussam,
2268 [ --with-nisplussam Include NISPLUS SAM support (default=no)],
2269 [ case "$withval" in
2272 AC_DEFINE(WITH_NISPLUS_SAM,1,[Whether to include nisplus SAM support])
2281 ########################################################################################
2283 ## END OF TESTS FOR SAM BACKENDS.
2285 ########################################################################################
2287 #################################################
2288 # check for a NISPLUS_HOME support
2289 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
2290 AC_ARG_WITH(nisplus-home,
2291 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
2292 [ case "$withval" in
2295 AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
2304 #################################################
2305 # check for syslog logging
2306 AC_MSG_CHECKING(whether to use syslog logging)
2308 [ --with-syslog Include experimental SYSLOG support (default=no)],
2309 [ case "$withval" in
2312 AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
2321 #################################################
2322 # check for a shared memory profiling support
2323 AC_MSG_CHECKING(whether to use profiling)
2324 AC_ARG_WITH(profiling-data,
2325 [ --with-profiling-data Include gathering source code profile information (default=no)],
2326 [ case "$withval" in
2329 AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
2339 #################################################
2340 # check for experimental disk-quotas support
2341 QUOTAOBJS=smbd/noquotas.o
2343 AC_MSG_CHECKING(whether to support disk-quotas)
2345 [ --with-quotas Include experimental disk-quota support (default=no)],
2346 [ case "$withval" in
2351 # Check for kernel 2.4.x quota braindamage...
2352 AC_CACHE_CHECK([for linux 2.4.x quota braindamage..],samba_cv_linux_2_4_quota_braindamage, [
2353 AC_TRY_COMPILE([#include <stdio.h>
2354 #include <sys/types.h>
2355 #include <asm/types.h>
2356 #include <linux/quota.h>
2358 #include <linux/unistd.h>],[struct mem_dqblk D;],
2359 samba_cv_linux_2_4_quota_braindamage=yes,samba_cv_linux_2_4_quota_braindamage=no)])
2360 if test x"$samba_cv_linux_2_4_quota_braindamage" = x"yes"; then
2361 AC_DEFINE(LINUX_QUOTAS_2,1,[linux 2.4.x quota braindamage])
2363 AC_DEFINE(LINUX_QUOTAS_1,1,[linux quotas])
2369 QUOTAOBJS=smbd/quotas.o
2370 AC_DEFINE(WITH_QUOTAS,1,[Whether to include experimental quota support])
2380 #################################################
2381 # check for experimental utmp accounting
2383 AC_MSG_CHECKING(whether to support utmp accounting)
2385 [ --with-utmp Include experimental utmp accounting (default=no)],
2386 [ case "$withval" in
2389 AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
2398 #################################################
2399 # choose native language(s) of man pages
2400 AC_MSG_CHECKING(chosen man pages' language(s))
2401 AC_ARG_WITH(manpages-langs,
2402 [ --with-manpages-langs={en,ja,pl} Choose man pages' language(s). (en)],
2403 [ case "$withval" in
2405 AC_MSG_WARN(--with-manpages-langs called without argument - will use default)
2413 AC_MSG_RESULT($manlangs)
2414 manlangs=`echo $manlangs | sed "s/,/ /g"` # replacing commas with spaces to produce a list
2415 AC_SUBST(manlangs)],
2418 AC_MSG_RESULT($manlangs)
2422 #################################################
2423 # should we build libsmbclient?
2425 LIBSMBCLIENT_SHARED=
2427 AC_MSG_CHECKING(whether to build the libsmbclient shared library)
2428 AC_ARG_WITH(libsmbclient,
2429 [ --with-libsmbclient Build the libsmbclient shared library (default=yes)],
2430 [ case "$withval" in
2435 if test $BLDSHARED = true; then
2436 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
2437 LIBSMBCLIENT=libsmbclient
2440 AC_MSG_RESULT(no shared library support)
2448 #################################################
2449 # these tests are taken from the GNU fileutils package
2450 AC_CHECKING(how to get filesystem space usage)
2453 # Test for statvfs64.
2454 if test $space = no; then
2456 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2458 #if defined(HAVE_UNISTD_H)
2461 #include <sys/types.h>
2462 #include <sys/statvfs.h>
2465 struct statvfs64 fsd;
2466 exit (statvfs64 (".", &fsd));
2468 fu_cv_sys_stat_statvfs64=yes,
2469 fu_cv_sys_stat_statvfs64=no,
2470 fu_cv_sys_stat_statvfs64=cross)])
2471 if test $fu_cv_sys_stat_statvfs64 = yes; then
2473 AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
2477 # Perform only the link test since it seems there are no variants of the
2478 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2479 # because that got a false positive on SCO OSR5. Adding the declaration
2480 # of a `struct statvfs' causes this test to fail (as it should) on such
2481 # systems. That system is reported to work fine with STAT_STATFS4 which
2482 # is what it gets when this test fails.
2483 if test $space = no; then
2485 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2486 [AC_TRY_LINK([#include <sys/types.h>
2487 #include <sys/statvfs.h>],
2488 [struct statvfs fsd; statvfs (0, &fsd);],
2489 fu_cv_sys_stat_statvfs=yes,
2490 fu_cv_sys_stat_statvfs=no)])
2491 if test $fu_cv_sys_stat_statvfs = yes; then
2493 AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
2497 if test $space = no; then
2498 # DEC Alpha running OSF/1
2499 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2500 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2502 #include <sys/param.h>
2503 #include <sys/types.h>
2504 #include <sys/mount.h>
2509 exit (statfs (".", &fsd, sizeof (struct statfs)));
2511 fu_cv_sys_stat_statfs3_osf1=yes,
2512 fu_cv_sys_stat_statfs3_osf1=no,
2513 fu_cv_sys_stat_statfs3_osf1=no)])
2514 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2515 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2517 AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
2521 if test $space = no; then
2523 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2524 member (AIX, 4.3BSD)])
2525 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2527 #ifdef HAVE_SYS_PARAM_H
2528 #include <sys/param.h>
2530 #ifdef HAVE_SYS_MOUNT_H
2531 #include <sys/mount.h>
2533 #ifdef HAVE_SYS_VFS_H
2534 #include <sys/vfs.h>
2540 exit (statfs (".", &fsd));
2542 fu_cv_sys_stat_statfs2_bsize=yes,
2543 fu_cv_sys_stat_statfs2_bsize=no,
2544 fu_cv_sys_stat_statfs2_bsize=no)])
2545 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2546 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2548 AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
2552 if test $space = no; then
2554 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2555 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2556 [AC_TRY_RUN([#include <sys/types.h>
2557 #include <sys/statfs.h>
2561 exit (statfs (".", &fsd, sizeof fsd, 0));
2563 fu_cv_sys_stat_statfs4=yes,
2564 fu_cv_sys_stat_statfs4=no,
2565 fu_cv_sys_stat_statfs4=no)])
2566 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2567 if test $fu_cv_sys_stat_statfs4 = yes; then
2569 AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
2573 if test $space = no; then
2575 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2576 member (4.4BSD and NetBSD)])
2577 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2578 [AC_TRY_RUN([#include <sys/types.h>
2579 #ifdef HAVE_SYS_PARAM_H
2580 #include <sys/param.h>
2582 #ifdef HAVE_SYS_MOUNT_H
2583 #include <sys/mount.h>
2589 exit (statfs (".", &fsd));
2591 fu_cv_sys_stat_statfs2_fsize=yes,
2592 fu_cv_sys_stat_statfs2_fsize=no,
2593 fu_cv_sys_stat_statfs2_fsize=no)])
2594 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2595 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2597 AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
2601 if test $space = no; then
2603 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2604 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2605 [AC_TRY_RUN([#include <sys/types.h>
2606 #ifdef HAVE_SYS_PARAM_H
2607 #include <sys/param.h>
2609 #ifdef HAVE_SYS_MOUNT_H
2610 #include <sys/mount.h>
2612 #ifdef HAVE_SYS_FS_TYPES_H
2613 #include <sys/fs_types.h>
2618 /* Ultrix's statfs returns 1 for success,
2619 0 for not mounted, -1 for failure. */
2620 exit (statfs (".", &fsd) != 1);
2622 fu_cv_sys_stat_fs_data=yes,
2623 fu_cv_sys_stat_fs_data=no,
2624 fu_cv_sys_stat_fs_data=no)])
2625 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2626 if test $fu_cv_sys_stat_fs_data = yes; then
2628 AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
2633 # As a gating factor for large file support, in order to
2634 # use <4GB files we must have the following minimal support
2636 # long long, and a 64 bit off_t or off64_t.
2637 # If we don't have all of these then disable large
2640 AC_MSG_CHECKING([if large file support can be enabled])
2642 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2643 #include <sys/types.h>
2649 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2650 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2651 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
2653 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2655 AC_ARG_WITH(spinlocks,
2656 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no) ])
2657 if test "x$with_spinlocks" = "xyes"; then
2658 AC_DEFINE(USE_SPINLOCKS,1,[Whether to use spin locks instead of fcntl locks])
2662 AC_DEFINE(SPARC_SPINLOCKS,1,[Whether to use sparc spinlocks])
2665 i386|i486|i586|i686)
2666 AC_DEFINE(INTEL_SPINLOCKS,1,[Whether to use intel spinlocks])
2670 AC_DEFINE(MIPS_SPINLOCKS,1,[Whether to use mips spinlocks])
2674 AC_DEFINE(POWERPC_SPINLOCKS,1,[Whether to use powerpc spinlocks])
2679 #################################################
2680 # check for ACL support
2682 AC_MSG_CHECKING(whether to support ACLs)
2683 AC_ARG_WITH(acl-support,
2684 [ --with-acl-support Include ACL support (default=no)],
2685 [ case "$withval" in
2690 AC_MSG_RESULT(Using UnixWare ACLs)
2691 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
2694 AC_MSG_RESULT(Using solaris ACLs)
2695 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
2698 AC_MSG_RESULT(Using HPUX ACLs)
2699 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
2702 AC_MSG_RESULT(Using IRIX ACLs)
2703 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
2706 AC_MSG_RESULT(Using AIX ACLs)
2707 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
2710 AC_MSG_RESULT(Using Tru64 ACLs)
2711 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
2715 AC_CHECK_LIB(acl,acl_get_file)
2716 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2717 AC_TRY_LINK([#include <sys/types.h>
2718 #include <sys/acl.h>],
2719 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2720 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2721 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2722 AC_MSG_RESULT(Using posix ACLs)
2723 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
2724 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2725 AC_TRY_LINK([#include <sys/types.h>
2726 #include <sys/acl.h>],
2727 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2728 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2729 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2730 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
2738 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
2741 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
2745 #################################################
2746 # check for sendfile support
2748 with_sendfile_support=yes
2749 AC_MSG_CHECKING(whether to check to support sendfile)
2750 AC_ARG_WITH(sendfile-support,
2751 [ --with-sendfile-support Check for sendfile support (default=yes)],
2752 [ case "$withval" in
2759 AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2760 AC_TRY_LINK([#include <sys/sendfile.h>],
2765 ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
2767 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2769 AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
2770 AC_TRY_LINK([#include <sys/sendfile.h>],
2775 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2777 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2779 # Try and cope with broken Linux sendfile....
2780 AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
2782 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
2783 #undef _FILE_OFFSET_BITS
2785 #include <sys/sendfile.h>],
2790 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
2792 samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
2794 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2795 AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
2796 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
2797 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
2798 elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2799 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
2800 AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
2801 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
2802 elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
2803 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
2804 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
2811 AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
2813 #include <sys/types.h>
2814 #include <sys/socket.h>
2815 #include <sys/uio.h>],
2818 off_t offset, nwritten;
2821 hdr->headers = &hdtrl;
2823 hdr->trailers = NULL;
2825 hdtrl.iov_base = NULL;
2827 int ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
2829 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2831 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2832 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
2833 AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
2834 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2841 AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
2843 #include <sys/socket.h>
2844 #include <sys/uio.h>],
2848 struct iovec hdtrl[2];
2852 hdtrl[0].iov_base = 0;
2853 hdtrl[0].iov_len = 0;
2855 nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
2857 samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
2858 if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2859 AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
2860 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
2861 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2866 AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
2868 #include <sys/socket.h>
2869 #include <sys/uio.h>],
2873 struct iovec hdtrl[2];
2877 hdtrl[0].iov_base = 0;
2878 hdtrl[0].iov_len = 0;
2880 nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
2882 samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
2883 if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2884 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
2885 AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
2886 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2893 LIBS="$LIBS -lsendfile"
2894 AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
2896 #include <sys/sendfile.h>],
2900 struct sendfilevec vec[2];
2906 vec[0].sfv_fd = SFV_FD_SELF;
2907 vec[0].sfv_flag = 0;
2912 vec[1].sfv_flag = 0;
2915 nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
2917 samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
2919 if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
2920 AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
2921 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
2922 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2927 AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
2929 #include <sys/sendfile.h>],
2933 struct sendfilevec vec[2];
2939 vec[0].sfv_fd = SFV_FD_SELF;
2940 vec[0].sfv_flag = 0;
2945 vec[1].sfv_flag = 0;
2948 nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
2950 samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
2952 if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
2953 AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
2954 AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
2955 AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
2973 #################################################
2974 # Check whether winbind is supported on this platform. If so we need to
2975 # build and install client programs (WINBIND_TARGETS), sbin programs
2976 # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS).
2978 AC_MSG_CHECKING(whether to build winbind)
2980 # Initially, the value of $host_os decides whether winbind is supported
2988 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2989 WINBIND_NSS_EXTRA_LIBS="-lsocket"
2993 WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2997 winbind_no_reason=", unsupported on $host_os"
3001 # Check the setting of --with-winbindd
3003 AC_ARG_WITH(winbind,
3004 [ --with-winbind Build winbind (default, if supported by OS)],
3017 # We need unix domain sockets for winbind
3019 if test x"$HAVE_WINBIND" = x"yes"; then
3020 if test x"$samba_cv_unixsocket" = x"no"; then
3021 winbind_no_reason=", no unix domain socket support on $host_os"
3026 # Display test results
3031 WINBIND_PAM_PROGS=""
3033 if test x"$HAVE_WINBIND" = x"yes"; then
3035 AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
3037 WINBIND_TARGETS="bin/wbinfo"
3038 WINBIND_STARGETS="bin/winbindd"
3039 if test x"$BLDSHARED" = x"true"; then
3040 WINBIND_LTARGETS="nsswitch/libnss_winbind.so"
3041 if test x"$with_pam" = x"yes"; then
3042 WINBIND_PAM_TARGETS="nsswitch/pam_winbind.so"
3046 AC_MSG_RESULT(no$winbind_no_reason)
3050 # Substitution time!
3052 AC_SUBST(WINBIND_TARGETS)
3053 AC_SUBST(WINBIND_STARGETS)
3054 AC_SUBST(WINBIND_LTARGETS)
3055 AC_SUBST(WINBIND_PAM_TARGETS)
3056 AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
3057 AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
3059 # Solaris has some extra fields in struct passwd that need to be
3060 # initialised otherwise nscd crashes. Unfortunately autoconf < 2.50
3061 # doesn't have the AC_CHECK_MEMBER macro which would be handy for checking
3064 #AC_CHECK_MEMBER(struct passwd.pw_comment,
3065 # AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),
3066 # [#include <pwd.h>])
3068 AC_CACHE_CHECK([whether struct passwd has pw_comment],samba_cv_passwd_pw_comment, [
3069 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_comment;],
3070 samba_cv_passwd_pw_comment=yes,samba_cv_passwd_pw_comment=no)])
3071 if test x"$samba_cv_passwd_pw_comment" = x"yes"; then
3072 AC_DEFINE(HAVE_PASSWD_PW_COMMENT,1,[Whether struct passwd has pw_comment])
3075 #AC_CHECK_MEMBER(struct passwd.pw_age,
3076 # AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),
3077 # [#include <pwd.h>])
3079 AC_CACHE_CHECK([whether struct passwd has pw_age],samba_cv_passwd_pw_age, [
3080 AC_TRY_COMPILE([#include <pwd.h>],[struct passwd p; p.pw_age;],
3081 samba_cv_passwd_pw_age=yes,samba_cv_passwd_pw_age=no)])
3082 if test x"$samba_cv_passwd_pw_age" = x"yes"; then
3083 AC_DEFINE(HAVE_PASSWD_PW_AGE,1,[Whether struct passwd has pw_age])
3086 #################################################
3087 # Check to see if we should use the included popt
3089 AC_ARG_WITH(included-popt,
3090 [ --with-included-popt use bundled popt library, not from system],
3101 if test x"$INCLUDED_POPT" != x"yes"; then
3102 AC_CHECK_LIB(popt, poptGetContext,
3103 INCLUDED_POPT=no, INCLUDED_POPT=yes)
3106 AC_MSG_CHECKING(whether to use included popt)
3107 if test x"$INCLUDED_POPT" = x"yes"; then
3109 BUILD_POPT='$(POPT_OBJS)'
3110 FLAGS1="-I$srcdir/popt"
3115 AC_SUBST(BUILD_POPT)
3118 #################################################
3119 # Check if the user wants Python
3121 # At the moment, you can use this to set which Python binary to link
3122 # against. (Libraries built for Python2.2 can't be used by 2.1,
3123 # though they can coexist in different directories.) In the future
3124 # this might make the Python stuff be built by default.
3127 [ --with-python=PYTHONNAME build Python libraries],
3128 [ case "${withval-python}" in
3133 PYTHON=${withval-python}
3138 #################################################
3139 # do extra things if we are running insure
3141 if test "${ac_cv_prog_CC}" = "insure"; then
3142 CPPFLAGS="$CPPFLAGS -D__INSURE__"
3145 #################################################
3146 # final configure stuff
3148 AC_MSG_CHECKING([configure summary])
3149 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
3151 AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
3152 AC_MSG_WARN([cannot run when cross-compiling]))
3157 # I added make files that are outside /source directory.
3158 # I know this is not a good solution, will work out a better
3159 # solution soon. --simo
3160 AC_OUTPUT(include/stamp-h Makefile script/findsmb ../examples/VFS/Makefile)
3162 #################################################
3163 # Print very concise instructions on building/use
3164 if test "x$enable_dmalloc" = xyes
3166 AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
3167 AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])