renamed macro WITH_TDBSAM to work with new configure script.
[Samba.git] / source / configure.in
blob93ae7895c2f2a7b269618f2966f8eb35adf17bda
1 dnl Process this file with autoconf to produce a configure script.
2 AC_INIT(include/includes.h)
3 AC_CONFIG_HEADER(include/config.h)
5 #################################################
6 # Directory handling stuff to support both the
7 # legacy SAMBA directories and FHS compliant
8 # ones...
9 AC_PREFIX_DEFAULT(/usr/local/samba)
11 AC_ARG_WITH(fhs, 
12 [  --with-fhs              Use FHS-compliant paths (default=no)],
13     codepagedir="\$(DATADIR)/samba/codepages"
14     configdir="${sysconfdir}/samba"
15     lockdir="\${VARDIR}/cache/samba"
16     logfilebase="\${VARDIR}/log/samba"
17     privatedir="\${CONFIGDIR}/private"
18     swatdir="\${DATADIR}/samba/swat",
19     codepagedir="\$(LIBDIR)/codepages"
20     configdir="\$(LIBDIR)"
21     lockdir="\$(VARDIR)/locks"
22     logfilebase="\$(VARDIR)"
23     privatedir="\${prefix}/private"
24     swatdir="\${prefix}/swat")
26 #################################################
27 # set private directory location
28 AC_ARG_WITH(privatedir,
29 [  --with-privatedir=DIR   Where to put smbpasswd ($ac_default_prefix/private)],
30 [ case "$withval" in
31   yes|no)
32   #
33   # Just in case anybody calls it without argument
34   #
35     AC_MSG_WARN([--with-privatedir called without argument - will use default])
36   ;;
37   * )
38     privatedir="$withval"
39     ;;
40   esac])
42 #################################################
43 # set lock directory location
44 AC_ARG_WITH(lockdir,
45 [  --with-lockdir=DIR      Where to put lock files ($ac_default_prefix/var/locks)],
46 [ case "$withval" in
47   yes|no)
48   #
49   # Just in case anybody calls it without argument
50   #
51     AC_MSG_WARN([--with-lockdir called without argument - will use default])
52   ;;
53   * )
54     lockdir="$withval"
55     ;;
56   esac])
58 #################################################
59 # set SWAT directory location
60 AC_ARG_WITH(swatdir,
61 [  --with-swatdir=DIR      Where to put SWAT files ($ac_default_prefix/swat)],
62 [ case "$withval" in
63   yes|no)
64   #
65   # Just in case anybody does it
66   #
67     AC_MSG_WARN([--with-swatdir called without argument - will use default])
68   ;;
69   * )
70     swatdir="$withval"
71     ;;
72   esac])
74 #################################################
75 # set configuration directory location
76 AC_ARG_WITH(configdir,
77 [  --with-configdir=DIR    Where to put configuration files (\$libdir)],
78 [ case "$withval" in
79   yes|no)
80   #
81   # Just in case anybody does it
82   #
83     AC_MSG_WARN([--with-configdir called without argument - will use default])
84   ;;
85   * )
86     configdir="$withval"
87     ;;
88   esac])
90 #################################################
91 # set codepage directory location
92 AC_ARG_WITH(codepagedir,
93 [  --with-codepagedir=DIR  Where to put codepage files (\$libdir/codepages)],
94 [ case "$withval" in
95   yes|no)
96   #
97   # Just in case anybody does it
98   #
99     AC_MSG_WARN([--with-codepagedir called without argument - will use default])
100   ;;
101   * )
102     codepagedir="$withval"
103     ;;
104   esac])
107 AC_SUBST(codepagedir)
108 AC_SUBST(configdir)
109 AC_SUBST(lockdir)
110 AC_SUBST(logfilebase)
111 AC_SUBST(privatedir)
112 AC_SUBST(swatdir)
113 AC_SUBST(bindir)
114 AC_SUBST(sbindir)
116 dnl Unique-to-Samba variables we'll be playing with.
117 AC_SUBST(SHELL)
118 AC_SUBST(RUNPROG)
119 AC_SUBST(MPROGS)
120 AC_SUBST(LDSHFLAGS)
121 AC_SUBST(HOST_OS)
122 AC_SUBST(PAM_MOD)
123 AC_SUBST(WRAP)
124 AC_SUBST(WRAP32)
125 AC_SUBST(PICFLAG)
126 AC_SUBST(PICSUFFIX)
127 AC_SUBST(SHLIBEXT)
128 AC_SUBST(BLDSHARED)
130 # compile with optimization and without debugging by default
131 CFLAGS="-O ${CFLAGS}"
133 AC_ARG_ENABLE(debug, 
134 [  --enable-debug          Turn on compiler debugging information (default=no)],
135     [if eval "test x$enable_debug = xyes"; then
136         CFLAGS="${CFLAGS} -g"
137     fi])
141 dnl Checks for programs.
142 AC_PROG_CC
143 AC_PROG_INSTALL
144 AC_PROG_AWK
146 dnl Check if C compiler understands -c and -o at the same time
147 AC_PROG_CC_C_O
148 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
149       BROKEN_CC=
150 else
151       BROKEN_CC=#
153 AC_SUBST(BROKEN_CC)
155 dnl Check if the C compiler understands volatile (it should, being ANSI).
156 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
157     AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
158         samba_cv_volatile=yes,samba_cv_volatile=no)])
159 if test x"$samba_cv_volatile" = x"yes"; then
160    AC_DEFINE(HAVE_VOLATILE)
165 AC_CANONICAL_SYSTEM
167 dnl Add #include for broken IRIX header files
168   case "$host_os" in
169         *irix6*) AC_ADD_INCLUDE(<standards.h>)
170         ;;
171 esac
173 AC_VALIDATE_CACHE_SYSTEM_TYPE
176 # Config CPPFLAG settings for strange OS's that must be set
177 # before other tests.
179 case "$host_os" in
180 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
181     *hpux*)
182       AC_PROG_CC_FLAG(Ae)
183       # mmap on HPUX is completely broken...
184       AC_DEFINE(MMAP_BLACKLIST)
185       if test $ac_cv_prog_cc_Ae = yes; then
186         CPPFLAGS="$CPPFLAGS -Ae"
187       fi
189 # Defines needed for HPUX support.
190 # HPUX has bigcrypt but (sometimes?) doesn't use it for
191 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
193       case `uname -r` in
194                         *9*|*10*)
195                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
196                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
197                                 ;;
198                         *11*)
199                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
200                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
201                                 ;;
202       esac
203       ;;
205 # AIX4.x doesn't even admit to having large
206 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
208     *aix4*)
209           AC_MSG_RESULT([enabling large file support])
210       CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
211       ;;    
213 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
214 # to the existance of large files..
215 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
216 # recommendations on large file support, however it makes the
217 # compile work using gcc 2.7 and 2.8, whereas using the Sun
218 # recommendation makes the compile fail on gcc2.7. JRA.
220         *solaris*)
221                 case `uname -r` in
222                         5.0*|5.1*|5.2*|5.3*|5.5*)
223                                 AC_MSG_RESULT([no large file support])
224                                 ;;
225                         5.*)
226                         AC_MSG_RESULT([enabling large file support])
227                         if test "$ac_cv_prog_gcc" = yes; then
228                                 ${CC-cc} -v >conftest.c 2>&1
229                                 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
230                                 rm -fr conftest.c
231                                 case "$ac_cv_gcc_compiler_version_number" in
232                                         *"gcc version 2.6"*|*"gcc version 2.7"*)
233                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
234                                                 ;;
235                                         *)
236                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
237                                                 ;;
238                                 esac
239                         else
240                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
241                         fi
242                         ;;
243                 esac
244                 ;;
246 # Tests needed for SINIX large file support.
248     *sysv4*)
249       if test $host = mips-sni-sysv4 ; then
250         AC_MSG_CHECKING([for LFS support])
251         old_CPPFLAGS="$CPPFLAGS"
252         CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
253         AC_TRY_RUN([
254 #include <unistd.h>
255 main () {
256 #if _LFS64_LARGEFILE == 1
257 exit(0);
258 #else
259 exit(1);
260 #endif
261 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
262         CPPFLAGS="$old_CPPFLAGS"
263         if test x$SINIX_LFS_SUPPORT = xyes ; then
264           CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
265           CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
266           LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
267           LIBS="`getconf LFS64_LIBS` $LIBS"
268         fi
269       AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
270       fi
271     ;;
273 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
275     *linux*)
276         AC_MSG_CHECKING([for LFS support])
277         old_CPPFLAGS="$CPPFLAGS"
278         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
279        AC_TRY_RUN([
280 #include <unistd.h>
281 #include <sys/utsname.h>
282 main() {
283 #if _LFS64_LARGEFILE == 1
284        struct utsname uts;
285        char *release;
286        int major, minor;
288        /* Ensure this is glibc 2.2 or higher */
289 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
290        int libc_major = __GLIBC__;
291        int libc_minor = __GLIBC_MINOR__;
293        if (libc_major < 2)
294               exit(1);
295        if (libc_minor < 2)
296               exit(1);
297 #endif
299        /* Ensure this is kernel 2.4 or higher */
301        uname(&uts);
302        release = uts.release;
303        major = atoi(strsep(&release, "."));
304        minor = atoi(strsep(&release, "."));
306        if (major > 2 || (major == 2 && minor > 3))
307                exit(0);
308        exit(1);
309 #else
310        exit(1);
311 #endif
313 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
314         CPPFLAGS="$old_CPPFLAGS"
315         if test x$LINUX_LFS_SUPPORT = xyes ; then
316           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
317         fi
318        AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
319                 ;;
321     *hurd*)
322         AC_MSG_CHECKING([for LFS support])
323         old_CPPFLAGS="$CPPFLAGS"
324         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
325         AC_TRY_RUN([
326 #include <unistd.h>
327 main () {
328 #if _LFS64_LARGEFILE == 1
329 exit(0);
330 #else
331 exit(1);
332 #endif
333 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
334         CPPFLAGS="$old_CPPFLAGS"
335         if test x$GLIBC_LFS_SUPPORT = xyes ; then
336           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
337         fi
338       AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
339     ;;
341 esac
343 AC_INLINE
344 AC_HEADER_STDC
345 AC_HEADER_DIRENT
346 AC_HEADER_TIME
347 AC_HEADER_SYS_WAIT
348 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
349 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
350 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
351 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
352 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
353 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
354 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
355 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h)
358 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
359 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
361 case "$host_os" in
362     *hpux*)
363                 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
364                         ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
365                 if test x"$ac_cv_header_shadow_h" = x"yes"; then
366                    AC_DEFINE(HAVE_SHADOW_H)
367                 fi
368         ;;
369 esac
370 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
371 AC_CHECK_HEADERS(nss.h nss_common.h sys/security.h security/pam_appl.h security/pam_modules.h)
372 AC_CHECK_HEADERS(stropts.h poll.h)
373 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
374 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
376 # For experimental utmp support (lastlog on some BSD-like systems)
377 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
379 # For quotas on Veritas VxFS filesystems
380 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
382 AC_CHECK_SIZEOF(int,cross)
383 AC_CHECK_SIZEOF(long,cross)
384 AC_CHECK_SIZEOF(short,cross)
386 AC_C_CONST
387 AC_C_INLINE
388 AC_C_BIGENDIAN
389 AC_C_CHAR_UNSIGNED
391 AC_TYPE_SIGNAL
392 AC_TYPE_UID_T
393 AC_TYPE_MODE_T
394 AC_TYPE_OFF_T
395 AC_TYPE_SIZE_T
396 AC_TYPE_PID_T
397 AC_STRUCT_ST_RDEV
398 AC_DIRENT_D_OFF
399 AC_CHECK_TYPE(ino_t,unsigned)
400 AC_CHECK_TYPE(loff_t,off_t)
401 AC_CHECK_TYPE(offset_t,loff_t)
402 AC_CHECK_TYPE(ssize_t, int)
403 AC_CHECK_TYPE(wchar_t, unsigned short)
405 ############################################
406 # for cups support we need libcups, and a handful of header files
408 AC_CHECK_LIB(cups,httpConnect)
410 # I wonder if there is a nicer way of doing this?
412 if test x"$ac_cv_lib_cups_httpConnect" = x"yes"; then
413         AC_CHECK_HEADERS(cups/cups.h cups/language.h)
414         if x"$ac_cv_header_cups_cups_h" = x"yes"; then
415                 if x"$ac_cv_header_cups_language_h" = x"yes"; then
416                         AC_DEFINE(HAVE_CUPS)
417                 fi
418         fi
421 ############################################
422 # we need libdl for PAM and the new VFS code
423 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
424         AC_DEFINE(HAVE_LIBDL)])
426 ############################################
427 # check for unix domain sockets
428 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
429     AC_TRY_COMPILE([
430 #include <sys/types.h>
431 #include <stdlib.h>
432 #include <stddef.h>
433 #include <sys/socket.h>
434 #include <sys/un.h>],
436   struct sockaddr_un sunaddr; 
437   sunaddr.sun_family = AF_UNIX;
439         samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
440 if test x"$samba_cv_unixsocket" = x"yes"; then
441    AC_DEFINE(HAVE_UNIXSOCKET)
444 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
445     AC_TRY_COMPILE([
446 #include <sys/types.h>
447 #if STDC_HEADERS
448 #include <stdlib.h>
449 #include <stddef.h>
450 #endif
451 #include <sys/socket.h>],[socklen_t i = 0],
452     samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
453 if test x"$samba_cv_socklen_t" = x"yes"; then
454    AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
457 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
458     AC_TRY_COMPILE([
459 #include <sys/types.h>
460 #if STDC_HEADERS
461 #include <stdlib.h>
462 #include <stddef.h>
463 #endif
464 #include <signal.h>],[sig_atomic_t i = 0],
465         samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
466 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
467    AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
470 # stupid headers have the functions but no declaration. grrrr.
471 AC_HAVE_DECL(errno, [#include <errno.h>])
472 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
473 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
474 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
475 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
476 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
477 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
479 # and glibc has setresuid under linux but the function does
480 # nothing until kernel 2.1.44! very dumb.
481 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
482     AC_TRY_RUN([#include <errno.h>
483 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
484         samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
485 if test x"$samba_cv_have_setresuid" = x"yes"; then
486     AC_DEFINE(HAVE_SETRESUID)
489 # Do the same check for setresguid...
491 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
492     AC_TRY_RUN([#include <unistd.h>
493 #include <errno.h>
494 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
495         samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
496 if test x"$samba_cv_have_setresgid" = x"yes"; then
497     AC_DEFINE(HAVE_SETRESGID)
500 AC_FUNC_MEMCMP
502 ###############################################
503 # Readline included by default unless explicitly asked not to
504 test "${with_readline+set}" != "set" && with_readline=yes
506 # test for where we get readline() from
507 AC_MSG_CHECKING(whether to use readline)
508 AC_ARG_WITH(readline,
509 [  --with-readline[=DIR]   Look for readline include/libs in DIR (default=auto)],
510 [  case "$with_readline" in
511   yes)
512     AC_MSG_RESULT(yes)
514     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
515     AC_CHECK_HEADERS(readline/history.h)
517     AC_CHECK_HEADERS(readline.h readline/readline.h,[
518       for termlib in ncurses curses termcap terminfo termlib; do
519        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
520       done
521       AC_CHECK_LIB(readline, rl_callback_handler_install,
522        [TERMLIBS="-lreadline $TERMLIBS"
523        AC_DEFINE(HAVE_LIBREADLINE)
524        break], [TERMLIBS=], $TERMLIBS)])
525     ;;
526   no)
527     AC_MSG_RESULT(no)
528     ;;
529   *)
530     AC_MSG_RESULT(yes)
532     # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
533     # alternate readline path
534     _ldflags=${LDFLAGS}
535     _cppflags=${CPPFLAGS}
537     # Add additional search path
538     LDFLAGS="-L$with_readline/lib $LDFLAGS"
539     CPPFLAGS="-I$with_readline/include $CPPFLAGS"
541     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
542     AC_CHECK_HEADERS(readline/history.h)
544     AC_CHECK_HEADERS(readline.h readline/readline.h,[
545       for termlib in ncurses curses termcap terminfo termlib; do
546        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
547       done
548       AC_CHECK_LIB(readline, rl_callback_handler_install,
549        [TERMLDFLAGS="-L$with_readline/lib"
550        TERMCPPFLAGS="-I$with_readline/include"
551        CPPFLAGS="-I$with_readline/include $CPPFLAGS"
552        TERMLIBS="-lreadline $TERMLIBS"
553        AC_DEFINE(HAVE_LIBREADLINE)
554        break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
556     LDFLAGS=$_ldflags
557     ;;
558   esac],
559   AC_MSG_RESULT(no)
561 AC_SUBST(TERMLIBS)
562 AC_SUBST(TERMLDFLAGS)
564 # The following test taken from the cvs sources
565 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
566 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
567 # libsocket.so which has a bad implementation of gethostbyname (it
568 # only looks in /etc/hosts), so we only look for -lsocket if we need
569 # it.
570 AC_CHECK_FUNCS(connect)
571 if test x"$ac_cv_func_connect" = x"no"; then
572     case "$LIBS" in
573     *-lnsl*) ;;
574     *) AC_CHECK_LIB(nsl_s, printf) ;;
575     esac
576     case "$LIBS" in
577     *-lnsl*) ;;
578     *) AC_CHECK_LIB(nsl, printf) ;;
579     esac
580     case "$LIBS" in
581     *-lsocket*) ;;
582     *) AC_CHECK_LIB(socket, connect) ;;
583     esac
584     case "$LIBS" in
585     *-linet*) ;;
586     *) AC_CHECK_LIB(inet, connect) ;;
587     esac
588     dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
589     dnl has been cached.
590     if test x"$ac_cv_lib_socket_connect" = x"yes" || 
591        test x"$ac_cv_lib_inet_connect" = x"yes"; then
592         # ac_cv_func_connect=yes
593         # don't!  it would cause AC_CHECK_FUNC to succeed next time configure is run
594         AC_DEFINE(HAVE_CONNECT)
595     fi
598 ###############################################
599 # test for where we get get_yp_default_domain() from
600 AC_CHECK_FUNCS(yp_get_default_domain)
601 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
602         AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
603         AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)]) 
606 # Check if we have execl, if not we need to compile smbrun.
607 AC_CHECK_FUNCS(execl)
608 if test x"$ac_cv_func_execl" = x"no"; then
609     RUNPROG="bin/smbrun"
610 else
611     RUNPROG=""
614 AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown fchown chmod fchmod chroot)
615 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset)
616 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
617 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr setnetgrent getnetgrent endnetgrent)
618 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf)
619 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
620 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
621 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
622 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
624 # syscall() is needed for smbwrapper.
625 AC_CHECK_FUNCS(syscall)
627 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
628 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
629 AC_CHECK_FUNCS(__getcwd _getcwd)
630 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
631 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
632 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
633 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
634 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
635 AC_CHECK_FUNCS(_write __write _fork __fork)
636 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
637 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
638 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
639 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
640 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
643 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
646 if test x$ac_cv_func_stat64 = xno ; then
647   AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
648   AC_TRY_LINK([
649 #if defined(HAVE_UNISTD_H)
650 #include <unistd.h>
651 #endif
652 #include <sys/stat.h>
653 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
654   AC_MSG_RESULT([$ac_cv_func_stat64])
655   if test x$ac_cv_func_stat64 = xyes ; then
656     AC_DEFINE(HAVE_STAT64)
657   fi
660 if test x$ac_cv_func_lstat64 = xno ; then
661   AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
662   AC_TRY_LINK([
663 #if defined(HAVE_UNISTD_H)
664 #include <unistd.h>
665 #endif
666 #include <sys/stat.h>
667 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
668   AC_MSG_RESULT([$ac_cv_func_lstat64])
669   if test x$ac_cv_func_lstat64 = xyes ; then
670     AC_DEFINE(HAVE_LSTAT64)
671   fi
674 if test x$ac_cv_func_fstat64 = xno ; then
675   AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
676   AC_TRY_LINK([
677 #if defined(HAVE_UNISTD_H)
678 #include <unistd.h>
679 #endif
680 #include <sys/stat.h>
681 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
682   AC_MSG_RESULT([$ac_cv_func_fstat64])
683   if test x$ac_cv_func_fstat64 = xyes ; then
684     AC_DEFINE(HAVE_FSTAT64)
685   fi
689 # If no strcasecmp, check for it in some known places
690 # It is in -lresolv on ReliantUNIX and UnixWare
691 #   -lresolve *must* follow -lnsl for name resolution to work properly
694 if test x$ac_cv_func_strcasecmp = xno ; then
695         AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
696                 AC_DEFINE(HAVE_STRCASECMP))
700 # Check for the functions putprpwnam, set_auth_parameters,
701 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
702 # Needed for OSF1 and HPUX.
705 AC_LIBTESTFUNC(security, putprpwnam)
706 AC_LIBTESTFUNC(sec, putprpwnam)
708 AC_LIBTESTFUNC(security, set_auth_parameters)
709 AC_LIBTESTFUNC(sec, set_auth_parameters)
711 # UnixWare 7.x has its getspnam in -lgen
712 AC_LIBTESTFUNC(gen, getspnam)
714 AC_LIBTESTFUNC(security, getspnam)
715 AC_LIBTESTFUNC(sec, getspnam)
717 AC_LIBTESTFUNC(security, bigcrypt)
718 AC_LIBTESTFUNC(sec, bigcrypt)
720 AC_LIBTESTFUNC(security, getprpwnam)
721 AC_LIBTESTFUNC(sec, getprpwnam)
723 # this bit needs to be modified for each OS that is suported by
724 # smbwrapper. You need to specify how to created a shared library and
725 # how to compile C code to produce PIC object files
727 # these are the defaults, good for lots of systems
728 HOST_OS="$host_os"
729 LDSHFLAGS="-shared"
730 PICFLAG=""
731 PICSUFFIX="po.o"
732 SHLIBEXT="so"
733 # Assume non-shared by default and override below
734 BLDSHARED="false" 
736 # and these are for particular systems
737 case "$host_os" in
738                 *linux*)   AC_DEFINE(LINUX)
739                         BLDSHARED="true"
740                         LDSHFLAGS="-shared"
741                         PICFLAG="-fPIC"
742                 ;;
743                 *solaris*) AC_DEFINE(SUNOS5)
744                                 ;;
745                 *sunos*) AC_DEFINE(SUNOS4)
746                 ;;
747                 *bsd*) LDSHFLAGS="-shared -Bshareable"
748                 ;;
749                 *irix*) AC_DEFINE(IRIX)
750                         case "$host_os" in
751                         *irix6*) AC_DEFINE(IRIX6)
752                         ;;
753                         esac
754                         ATTEMPT_WRAP32_BUILD=yes
755                 ;;
756                 *aix*) AC_DEFINE(AIX)
757                         # AIX is too ugly for now
758                 ;;
759                 *hpux*) AC_DEFINE(HPUX)
760                         SHLIBEXT="sl"
761                         # Use special PIC flags for the native HP-UX compiler.
762                         if test $ac_cv_prog_cc_Ae = yes; then
763                                 LDSHFLAGS="-b"
764                                 PICFLAG="+z"
765                         fi
766                 ;;
767                 *qnx*) AC_DEFINE(QNX);;
768                 *osf*) AC_DEFINE(OSF1);;
769                 *sco*) AC_DEFINE(SCO);;
770                 *next2*) AC_DEFINE(NEXT2);;
771                 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
772                 *sysv4*)
773                         case "$host" in
774                                 *-univel-*)     if [ test "$GCC" != yes ]; then
775                                                                         AC_DEFINE(HAVE_MEMSET)
776                                                                 fi
777                                                                 LDSHFLAGS="-G"
778                                 ;;
779                                 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
780                         esac
781                         ;;
782                 *sysv5*)
783                         if [ test "$GCC" != yes ]; then
784                                 AC_DEFINE(HAVE_MEMSET)
785                         fi
786                         LDSHFLAGS="-G"
787                         ;;
788 esac
790 # try to work out how to produce pic code with this compiler
791 AC_PROG_CC_FLAG(fpic)
792 if test $ac_cv_prog_cc_fpic = yes; then
793     PICFLAG="-fpic";
795 if test x$PICFLAG = x; then
796   AC_PROG_CC_FLAG(KPIC)
797   if test $ac_cv_prog_cc_KPIC = yes; then
798     PICFLAG="-KPIC";
799   fi
801 if test x$PICFLAG = x; then
802   AC_PROG_CC_FLAG(Kpic)
803   if test $ac_cv_prog_cc_Kpic = yes; then
804     PICFLAG="-Kpic";
805   fi
808 ################
810 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
811 AC_TRY_RUN([#include <stdio.h>
812 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
813 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
814 if test x"$samba_cv_have_longlong" = x"yes"; then
815     AC_DEFINE(HAVE_LONGLONG)
819 # Check if the compiler supports the LL prefix on long long integers.
820 # AIX needs this.
822 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
823     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
824         samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
825 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
826    AC_DEFINE(COMPILER_SUPPORTS_LL)
829   
830 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
831 AC_TRY_RUN([#include <stdio.h>
832 #include <sys/stat.h>
833 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
834 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
835 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
836     AC_DEFINE(SIZEOF_OFF_T,8)
839 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
840 AC_TRY_RUN([
841 #if defined(HAVE_UNISTD_H)
842 #include <unistd.h>
843 #endif
844 #include <stdio.h>
845 #include <sys/stat.h>
846 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
847 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
848 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
849     AC_DEFINE(HAVE_OFF64_T)
852 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
853 AC_TRY_RUN([#include <stdio.h>
854 #include <sys/stat.h>
855 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
856 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
857 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
858     AC_DEFINE(SIZEOF_INO_T,8)
861 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
862 AC_TRY_RUN([
863 #if defined(HAVE_UNISTD_H)
864 #include <unistd.h>
865 #endif
866 #include <stdio.h>
867 #include <sys/stat.h>
868 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
869 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
870 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
871     AC_DEFINE(HAVE_INO64_T)
874 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
875 AC_TRY_COMPILE([
876 #if defined(HAVE_UNISTD_H)
877 #include <unistd.h>
878 #endif
879 #include <sys/types.h>
880 #include <dirent.h>],
881 [struct dirent64 de;],
882 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
883 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
884     AC_DEFINE(HAVE_STRUCT_DIRENT64)
887 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
888 AC_TRY_RUN([#include <stdio.h>
889 main() { char c; c=250; exit((c > 0)?0:1); }],
890 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
891 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
892     AC_DEFINE(HAVE_UNSIGNED_CHAR)
895 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
896 AC_TRY_COMPILE([#include <sys/types.h>
897 #include <sys/socket.h>
898 #include <netinet/in.h>],
899 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
900 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
901 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
902     AC_DEFINE(HAVE_SOCK_SIN_LEN)
905 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
906 AC_TRY_COMPILE([#include <sys/types.h>
907 #include <dirent.h>
908 void seekdir(DIR *d, long loc) { return; }],[return 0;],
909 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
910 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
911     AC_DEFINE(SEEKDIR_RETURNS_VOID)
914 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
915 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
916 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
917 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
918     AC_DEFINE(HAVE_FILE_MACRO)
921 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
922 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
923 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
924 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
925     AC_DEFINE(HAVE_FUNCTION_MACRO)
928 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
929 AC_TRY_RUN([
930 #include <sys/time.h>
931 #include <unistd.h>
932 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
933            samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
934 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
935     AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
938 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
939 AC_TRY_RUN([
940 #include <sys/types.h>
941 #include <stdarg.h>
942 void foo(const char *format, ...) { 
943        va_list ap;
944        int len;
945        char buf[5];
947        va_start(ap, format);
948        len = vsnprintf(0, 0, format, ap);
949        va_end(ap);
950        if (len != 5) exit(1);
952        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
954        exit(0);
956 main() { foo("hello"); }
958 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
959 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
960     AC_DEFINE(HAVE_C99_VSNPRINTF)
963 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
964 AC_TRY_RUN([#include <sys/types.h>
965 #include <dirent.h>
966 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
967 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
968 di->d_name[0] == 0) exit(0); exit(1);} ],
969 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
970 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
971     AC_DEFINE(HAVE_BROKEN_READDIR)
974 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
975 AC_TRY_COMPILE([#include <sys/types.h>
976 #include <utime.h>],
977 [struct utimbuf tbuf;  tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
978 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
979 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
980     AC_DEFINE(HAVE_UTIMBUF)
983 dnl  utmp and utmpx come in many flavours
984 dnl  We need to check for many of them
985 dnl  But we don't need to do each and every one, because our code uses
986 dnl  mostly just the utmp (not utmpx) fields.
988 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
990 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
991 AC_TRY_COMPILE([#include <sys/types.h>
992 #include <utmp.h>],
993 [struct utmp ut;  ut.ut_name[0] = 'a';],
994 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
995 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
996     AC_DEFINE(HAVE_UT_UT_NAME)
997 fi 
999 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
1000 AC_TRY_COMPILE([#include <sys/types.h>
1001 #include <utmp.h>],
1002 [struct utmp ut;  ut.ut_user[0] = 'a';],
1003 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
1004 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
1005     AC_DEFINE(HAVE_UT_UT_USER)
1006 fi 
1008 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
1009 AC_TRY_COMPILE([#include <sys/types.h>
1010 #include <utmp.h>],
1011 [struct utmp ut;  ut.ut_id[0] = 'a';],
1012 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
1013 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
1014     AC_DEFINE(HAVE_UT_UT_ID)
1015 fi 
1017 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
1018 AC_TRY_COMPILE([#include <sys/types.h>
1019 #include <utmp.h>],
1020 [struct utmp ut;  ut.ut_host[0] = 'a';],
1021 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
1022 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
1023     AC_DEFINE(HAVE_UT_UT_HOST)
1024 fi 
1026 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
1027 AC_TRY_COMPILE([#include <sys/types.h>
1028 #include <utmp.h>],
1029 [struct utmp ut;  time_t t; ut.ut_time = t;],
1030 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
1031 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
1032     AC_DEFINE(HAVE_UT_UT_TIME)
1033 fi 
1035 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
1036 AC_TRY_COMPILE([#include <sys/types.h>
1037 #include <utmp.h>],
1038 [struct utmp ut;  struct timeval tv; ut.ut_tv = tv;],
1039 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1040 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1041     AC_DEFINE(HAVE_UT_UT_TV)
1042 fi 
1044 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1045 AC_TRY_COMPILE([#include <sys/types.h>
1046 #include <utmp.h>],
1047 [struct utmp ut;  ut.ut_type = 0;],
1048 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1049 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1050     AC_DEFINE(HAVE_UT_UT_TYPE)
1051 fi 
1053 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1054 AC_TRY_COMPILE([#include <sys/types.h>
1055 #include <utmp.h>],
1056 [struct utmp ut;  ut.ut_pid = 0;],
1057 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1058 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1059     AC_DEFINE(HAVE_UT_UT_PID)
1060 fi 
1062 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1063 AC_TRY_COMPILE([#include <sys/types.h>
1064 #include <utmp.h>],
1065 [struct utmp ut;  ut.ut_exit.e_exit = 0;],
1066 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1067 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1068     AC_DEFINE(HAVE_UT_UT_EXIT)
1069 fi 
1071 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1072 AC_TRY_COMPILE([#include <sys/types.h>
1073 #include <utmp.h>],
1074 [struct utmp ut;  ut.ut_addr = 0;],
1075 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1076 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1077     AC_DEFINE(HAVE_UT_UT_ADDR)
1078 fi 
1080 if test x$ac_cv_func_pututline = xyes ; then
1081   AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1082   AC_TRY_COMPILE([#include <sys/types.h>
1083 #include <utmp.h>],
1084   [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1085   samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1086   if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1087       AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
1088   fi
1091 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1092 AC_TRY_COMPILE([#include <sys/types.h>
1093 #include <utmpx.h>],
1094 [struct utmpx ux;  ux.ut_syslen = 0;],
1095 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1096 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1097     AC_DEFINE(HAVE_UX_UT_SYSLEN)
1098 fi 
1100 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1101 AC_TRY_RUN([
1102 #include <sys/types.h>
1103 #include <fcntl.h>
1104 #ifndef F_GETLEASE
1105 #define F_GETLEASE      1025
1106 #endif
1107 main() {
1108        int fd = open("/dev/null", O_RDONLY);
1109        return fcntl(fd, F_GETLEASE, 0) == -1;
1112 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1113 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1114     AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1117 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1118 AC_TRY_RUN([
1119 #include <sys/types.h>
1120 #include <fcntl.h>
1121 #include <signal.h>
1122 #ifndef F_NOTIFY
1123 #define F_NOTIFY 1026
1124 #endif
1125 main() {
1126         exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ?  1 : 0);
1129 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1130 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1131     AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1134 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1135 AC_TRY_RUN([
1136 #include <sys/types.h>
1137 #include <fcntl.h>
1138 #include <signal.h>
1139 #include <sys/file.h>
1140 #ifndef LOCK_MAND
1141 #define LOCK_MAND       32
1142 #define LOCK_READ       64
1143 #endif
1144 main() {
1145         exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1148 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1149 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1150     AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1156 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1157 AC_TRY_COMPILE([#include <sys/types.h>
1158 #include <fcntl.h>],
1159 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1160 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1161 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1162     AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1165 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1166 AC_TRY_RUN([#include <sys/types.h>
1167 #include <sys/capability.h>
1168 main() {
1169  cap_t cap;
1170  if ((cap = cap_get_proc()) == NULL)
1171    exit(1);
1172  cap->cap_effective |= CAP_NETWORK_MGT;
1173  cap->cap_inheritable |= CAP_NETWORK_MGT;
1174  cap_set_proc(cap);
1175  exit(0);
1178 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1179 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1180     AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1184 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1185 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1188 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1189 AC_TRY_COMPILE([#include <sys/types.h>
1190 #if defined(HAVE_RPC_RPC_H)
1191 #include <rpc/rpc.h>
1192 #endif],
1193 [int16 testvar;],
1194 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1195 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1196     AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1199 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1200 AC_TRY_COMPILE([#include <sys/types.h>
1201 #if defined(HAVE_RPC_RPC_H)
1202 #include <rpc/rpc.h>
1203 #endif],
1204 [uint16 testvar;],
1205 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1206 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1207     AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1210 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1211 AC_TRY_COMPILE([#include <sys/types.h>
1212 #if defined(HAVE_RPC_RPC_H)
1213 #include <rpc/rpc.h>
1214 #endif],
1215 [int32 testvar;],
1216 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1217 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1218     AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1221 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1222 AC_TRY_COMPILE([#include <sys/types.h>
1223 #if defined(HAVE_RPC_RPC_H)
1224 #include <rpc/rpc.h>
1225 #endif],
1226 [uint32 testvar;],
1227 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1228 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1229     AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1233 dnl Some systems (SCO) have a problem including
1234 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1235 dnl as a #define in <prot.h> and as part of an enum
1236 dnl in <rpc/rpc.h>.
1239 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1240 AC_TRY_COMPILE([#include <sys/types.h>
1241 #ifdef HAVE_SYS_SECURITY_H
1242 #include <sys/security.h>
1243 #include <prot.h>
1244 #endif  /* HAVE_SYS_SECURITY_H */
1245 #if defined(HAVE_RPC_RPC_H)
1246 #include <rpc/rpc.h>
1247 #endif],
1248 [int testvar;],
1249 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1250 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1251     AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1254 AC_MSG_CHECKING([for test routines])
1255 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1256            AC_MSG_RESULT(yes),
1257            AC_MSG_ERROR([cant find test code. Aborting config]),
1258            AC_MSG_WARN([cannot run when cross-compiling]))
1260 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1261 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1262            samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1263 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1264     AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1267 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1268 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1269            samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1270 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1271     AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1274 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1275 SAVE_CPPFLAGS="$CPPFLAGS"
1276 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1277 AC_TRY_COMPILE([
1278 #define REPLACE_GETPASS 1
1279 #define NO_CONFIG_H 1
1280 #define main dont_declare_main
1281 #include "${srcdir-.}/lib/getsmbpass.c"
1282 #undef main
1283 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1284 CPPFLAGS="$SAVE_CPPFLAGS"
1286 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1287         AC_DEFINE(REPLACE_GETPASS)
1290 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1291 AC_TRY_RUN([
1292 #include <stdio.h>
1293 #include <sys/types.h>
1294 #include <netinet/in.h>
1295 #ifdef HAVE_ARPA_INET_H
1296 #include <arpa/inet.h>
1297 #endif
1298 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1299 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1300     strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } 
1301 exit(1);}],
1302            samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1303 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1304     AC_DEFINE(REPLACE_INET_NTOA)
1307 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1308 AC_TRY_RUN([#include <stdlib.h>
1309 #include <sys/types.h>
1310 #include <sys/stat.h>
1311 #include <unistd.h>
1312 main() { 
1313   struct stat st;
1314   char tpl[20]="/tmp/test.XXXXXX"; 
1315   int fd = mkstemp(tpl); 
1316   if (fd == -1) exit(1);
1317   unlink(tpl);
1318   if (fstat(fd, &st) != 0) exit(1);
1319   if ((st.st_mode & 0777) != 0600) exit(1);
1320   exit(0);
1322 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1323 samba_cv_HAVE_SECURE_MKSTEMP=no,
1324 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1325 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1326     AC_DEFINE(HAVE_SECURE_MKSTEMP)
1329 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1330 AC_TRY_RUN([#include <unistd.h>
1331 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1332 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1333 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1334     AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1337 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1338 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1339            samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1340 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1341     AC_DEFINE(HAVE_ROOT)
1342 else
1343     AC_MSG_WARN(running as non-root will disable some tests)
1346 ##################
1347 # look for a method of finding the list of network interfaces
1348 iface=no;
1349 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1350 AC_TRY_RUN([
1351 #define HAVE_IFACE_AIX 1
1352 #define AUTOCONF_TEST 1
1353 #include "confdefs.h"
1354 #include "${srcdir-.}/lib/interfaces.c"],
1355            samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1356 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1357     iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1360 if test $iface = no; then
1361 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1362 AC_TRY_RUN([
1363 #define HAVE_IFACE_IFCONF 1
1364 #define AUTOCONF_TEST 1
1365 #include "confdefs.h"
1366 #include "${srcdir-.}/lib/interfaces.c"],
1367            samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1368 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1369     iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1373 if test $iface = no; then
1374 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1375 AC_TRY_RUN([
1376 #define HAVE_IFACE_IFREQ 1
1377 #define AUTOCONF_TEST 1
1378 #include "confdefs.h"
1379 #include "${srcdir-.}/lib/interfaces.c"],
1380            samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1381 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1382     iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1387 ################################################
1388 # look for a method of setting the effective uid
1389 seteuid=no;
1390 if test $seteuid = no; then
1391 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1392 AC_TRY_RUN([
1393 #define AUTOCONF_TEST 1
1394 #define USE_SETRESUID 1
1395 #include "confdefs.h"
1396 #include "${srcdir-.}/lib/util_sec.c"],
1397            samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1398 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1399     seteuid=yes;AC_DEFINE(USE_SETRESUID)
1404 if test $seteuid = no; then
1405 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1406 AC_TRY_RUN([
1407 #define AUTOCONF_TEST 1
1408 #define USE_SETREUID 1
1409 #include "confdefs.h"
1410 #include "${srcdir-.}/lib/util_sec.c"],
1411            samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1412 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1413     seteuid=yes;AC_DEFINE(USE_SETREUID)
1417 if test $seteuid = no; then
1418 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1419 AC_TRY_RUN([
1420 #define AUTOCONF_TEST 1
1421 #define USE_SETEUID 1
1422 #include "confdefs.h"
1423 #include "${srcdir-.}/lib/util_sec.c"],
1424            samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1425 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1426     seteuid=yes;AC_DEFINE(USE_SETEUID)
1430 if test $seteuid = no; then
1431 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1432 AC_TRY_RUN([
1433 #define AUTOCONF_TEST 1
1434 #define USE_SETUIDX 1
1435 #include "confdefs.h"
1436 #include "${srcdir-.}/lib/util_sec.c"],
1437            samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1438 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1439     seteuid=yes;AC_DEFINE(USE_SETUIDX)
1444 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1445 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1446            samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1447 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1448     AC_DEFINE(HAVE_MMAP)
1451 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1452 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1453            samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1454 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1455     AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1458 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1459 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1460            samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1461 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1462     AC_DEFINE(HAVE_FCNTL_LOCK)
1465 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1466 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1467            samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1468 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1469     AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1471 else
1474 dnl Don't check for 64 bit fcntl locking if we know that the
1475 dnl glibc2.1 broken check has succeeded.
1476 dnl 
1478   AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1479   AC_TRY_RUN([
1480 #if defined(HAVE_UNISTD_H)
1481 #include <unistd.h>
1482 #endif
1483 #include <stdio.h>
1484 #include <stdlib.h>
1486 #ifdef HAVE_FCNTL_H
1487 #include <fcntl.h>
1488 #endif
1490 #ifdef HAVE_SYS_FCNTL_H
1491 #include <sys/fcntl.h>
1492 #endif
1493 main() { struct flock64 fl64;
1494 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1495 exit(0);
1496 #else
1497 exit(1);
1498 #endif
1500        samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1502   if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1503       AC_DEFINE(HAVE_STRUCT_FLOCK64)
1504   fi
1507 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1508 AC_TRY_COMPILE([#include <sys/acl.h>
1509 #if defined(HAVE_RPCSVC_NIS_H)
1510 #include <rpcsvc/nis.h>
1511 #endif],
1512 [return 0;],
1513 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1514 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1515     AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1519 #################################################
1520 # check for smbwrapper support
1521 AC_MSG_CHECKING(whether to use smbwrapper)
1522 AC_ARG_WITH(smbwrapper,
1523 [  --with-smbwrapper       Include SMB wrapper support (default=no)],
1524 [ case "$withval" in
1525   yes)
1526     AC_MSG_RESULT(yes)
1527     AC_DEFINE(WITH_SMBWRAPPER)
1528         WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1530         if test x$ATTEMPT_WRAP32_BUILD = x; then
1531                 WRAP32=""
1532         else
1533                         WRAP32=bin/smbwrapper.32.$SHLIBEXT
1534         fi
1536 # Conditions under which smbwrapper should not be built.
1538         if test x$PICFLAG = x; then
1539            echo No support for PIC code - disabling smbwrapper and smbsh
1540            WRAP=""
1541            WRAP32=""
1542         elif test x$ac_cv_func_syscall = xno; then
1543            AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1544            WRAP=""
1545            WRAP32=""
1546         fi
1547     ;;
1548   *)
1549     AC_MSG_RESULT(no)
1550     ;;
1551   esac ],
1552   AC_MSG_RESULT(no)
1555 #################################################
1556 # check for the AFS filesystem
1557 AC_MSG_CHECKING(whether to use AFS)
1558 AC_ARG_WITH(afs,
1559 [  --with-afs              Include AFS support (default=no)],
1560 [ case "$withval" in
1561   yes)
1562     AC_MSG_RESULT(yes)
1563     AC_DEFINE(WITH_AFS)
1564     ;;
1565   *)
1566     AC_MSG_RESULT(no)
1567     ;;
1568   esac ],
1569   AC_MSG_RESULT(no)
1573 #################################################
1574 # check for the DFS auth system
1575 AC_MSG_CHECKING(whether to use DCE/DFS auth)
1576 AC_ARG_WITH(dfs,
1577 [  --with-dce-dfs          Include DCE/DFS support (default=no)],
1578 [ case "$withval" in
1579   yes)
1580     AC_MSG_RESULT(yes)
1581     AC_DEFINE(WITH_DFS)
1582     ;;
1583   *)
1584     AC_MSG_RESULT(no)
1585     ;;
1586   esac ],
1587   AC_MSG_RESULT(no)
1590 #################################################
1591 # check for Kerberos IV auth system
1592 AC_MSG_CHECKING(whether to use Kerberos IV)
1593 AC_ARG_WITH(krb4,
1594 [  --with-krb4=base-dir    Include Kerberos IV support (default=no)],
1595 [ case "$withval" in
1596   yes)
1597     AC_MSG_RESULT(yes)
1598     AC_DEFINE(KRB4_AUTH)
1599     AC_CHECK_LIB(resolv, dn_expand)
1600     LIBS="$LIBS -lkrb -ldes"
1601     CFLAGS="$CFLAGS -I$withval/include"
1602     LDFLAGS="$LDFLAGS -L$withval/lib"
1603     ;;
1604   *)
1605     AC_MSG_RESULT(no)
1606     ;;
1607   esac ],
1608   AC_MSG_RESULT(no)
1611 #################################################
1612 # check for Kerberos 5 auth system
1613 AC_MSG_CHECKING(whether to use Kerberos 5)
1614 AC_ARG_WITH(krb5,
1615 [  --with-krb5=base-dir    Include Kerberos 5 support (default=no)],
1616 [ case "$withval" in
1617   yes)
1618     AC_MSG_RESULT(yes)
1619     AC_DEFINE(KRB5_AUTH)
1620     LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1621     CFLAGS="$CFLAGS -I$withval/include"
1622     LDFLAGS="$LDFLAGS -L$withval/lib"
1623     ;;
1624   *)
1625     AC_MSG_RESULT(no)
1626     ;;
1627   esac ],
1628   AC_MSG_RESULT(no)
1631 #################################################
1632 # check for automount support
1633 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1634 AC_ARG_WITH(automount,
1635 [  --with-automount        Include AUTOMOUNT support (default=no)],
1636 [ case "$withval" in
1637   yes)
1638     AC_MSG_RESULT(yes)
1639     AC_DEFINE(WITH_AUTOMOUNT)
1640     ;;
1641   *)
1642     AC_MSG_RESULT(no)
1643     ;;
1644   esac ],
1645   AC_MSG_RESULT(no)
1648 #################################################
1649 # check for smbmount support
1650 AC_MSG_CHECKING(whether to use SMBMOUNT)
1651 AC_ARG_WITH(smbmount,
1652 [  --with-smbmount         Include SMBMOUNT (Linux only) support (default=no)],
1653 [ case "$withval" in
1654   yes)
1655         case "$host_os" in
1656         *linux*)
1657                 AC_MSG_RESULT(yes)
1658                 AC_DEFINE(WITH_SMBMOUNT)
1659                 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1660                 ;;
1661         *)
1662                 AC_MSG_ERROR(not on a linux system!)
1663                 ;;
1664         esac
1665     ;;
1666   *)
1667     AC_MSG_RESULT(no)
1668     MPROGS=
1669     ;;
1670   esac ],
1671   AC_MSG_RESULT(no)
1672   MPROGS=
1676 #################################################
1677 # check for a PAM password database
1678 with_pam_for_crypt=no
1679 AC_MSG_CHECKING(whether to use PAM password database)
1680 AC_ARG_WITH(pam,
1681 [  --with-pam              Include PAM password database support (default=no)],
1682 [ case "$withval" in
1683   yes)
1684     AC_MSG_RESULT(yes)
1685     AC_DEFINE(WITH_PAM)
1686     LIBS="$LIBS -lpam"
1687     with_pam_for_crypt=yes
1688     ;;
1689   *)
1690     AC_MSG_RESULT(no)
1691     ;;
1692   esac ],
1693   AC_MSG_RESULT(no)
1696 # we can't build a pam module if we don't have pam.
1697 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
1699 #################################################
1700 # check for pam_smbpass support
1701 AC_MSG_CHECKING(whether to use pam_smbpass)
1702 AC_ARG_WITH(pam_smbpass,
1703 [  --with-pam_smbpass      Include the smbpass PAM module (default=no)],
1704 [ case "$withval" in
1705   yes)
1706     AC_MSG_RESULT(yes)
1708 # Conditions under which pam_smbpass should not be built.
1710        if test x$PICFLAG = x; then
1711           AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
1712           PAM_MOD=""
1713        elif test x$ac_cv_lib_pam_pam_get_data = xno; then
1714           AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
1715           PAM_MOD=""
1716        else
1717           AC_DEFINE(WITH_PAM_SMBPASS)
1718           PAM_MOD="bin/pam_smbpass.so"
1719        fi
1720     ;;
1721   *)
1722     AC_MSG_RESULT(no)
1723     ;;
1724   esac ],
1725   AC_MSG_RESULT(no)
1729 ###############################################
1730 # test for where we get crypt() from, but only
1731 # if not using PAM
1732 if test $with_pam_for_crypt = no; then
1733 AC_CHECK_FUNCS(crypt)
1734 if test x"$ac_cv_func_crypt" = x"no"; then
1735     AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
1736         AC_DEFINE(HAVE_CRYPT)])
1741 ## moved after the check for -lcrypt in order to
1742 ## ensure that the necessary libraries are included
1743 ## check checking for truncated salt.  Wrapped by the
1744 ## $with_pam_for_crypt variable as above   --jerry
1746 if test $with_pam_for_crypt = no; then
1747 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1748 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1749         samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1750 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1751         AC_DEFINE(HAVE_TRUNCATED_SALT)
1756 ########################################################################################
1758 ## TESTS FOR SAM BACKENDS.  KEEP THESE GROUPED TOGETHER
1760 ########################################################################################
1762 ## set the with_smbpasswd_sam as the default
1763 with_smbpasswd_sam=yes
1767 #################################################
1768 # check for a TDB password database
1769 AC_MSG_CHECKING(whether to use TDB SAM database)
1770 AC_ARG_WITH(tdbsam,
1771 [  --with-tdbsam           Include experimental TDB SAM support (default=no)],
1772 [ case "$withval" in
1773   yes)
1774     AC_MSG_RESULT(yes)
1775     AC_DEFINE(WITH_TDB_SAM)
1776     with_smbpasswd_sam=no
1777     ;;
1778   *)
1779     AC_MSG_RESULT(no)
1780     ;;
1781   esac ],
1782   AC_MSG_RESULT(no)
1785 #################################################
1786 # check for a LDAP password database
1787 AC_MSG_CHECKING(whether to use LDAP SAM database)
1788 AC_ARG_WITH(ldapsam,
1789 [  --with-ldapsam          Include experimental LDAP SAM support (default=no)],
1790 [ case "$withval" in
1791   yes)
1792     AC_MSG_RESULT(yes)
1793     AC_DEFINE(WITH_LDAP_SAM)
1794     LIBS="-lldap -llber -lresolv $LIBS"
1795     with_smbpasswd_sam=no
1796     ;;
1797   *)
1798     AC_MSG_RESULT(no)
1799     ;;
1800   esac ],
1801   AC_MSG_RESULT(no)
1804 #################################################
1805 # check for a NISPLUS password database
1806 AC_MSG_CHECKING(whether to use NISPLUS SAM database)
1807 AC_ARG_WITH(nisplussam,
1808 [  --with-nisplussam       Include NISPLUS SAM support (default=no)],
1809 [ case "$withval" in
1810   yes)
1811     AC_MSG_RESULT(yes)
1812     AC_DEFINE(WITH_NISPLUS_SAM)
1813     with_smbpasswd_sam=no
1814     ;;
1815   *)
1816     AC_MSG_RESULT(no)
1817     ;;
1818   esac ],
1819   AC_MSG_RESULT(no)
1822 ################################################
1823 # This test should come last because the
1824 # smbpasswd SAM is only used if another format
1825 # has not been defined
1826 AC_MSG_CHECKING(whether to use traditional smbpasswd file)
1827 if test $with_smbpasswd_sam = yes; then
1828         AC_MSG_RESULT(yes)
1829         AC_DEFINE(WITH_SMBPASSWD_SAM)
1830 else
1831         AC_MSG_RESULT(no)
1834 ########################################################################################
1836 ## END OF TESTS FOR SAM BACKENDS.  
1838 ########################################################################################
1840 #################################################
1841 # check for a NISPLUS_HOME support 
1842 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1843 AC_ARG_WITH(nisplus-home,
1844 [  --with-nisplus-home     Include NISPLUS_HOME support (default=no)],
1845 [ case "$withval" in
1846   yes)
1847     AC_MSG_RESULT(yes)
1848     AC_DEFINE(WITH_NISPLUS_HOME)
1849     ;;
1850   *)
1851     AC_MSG_RESULT(no)
1852     ;;
1853   esac ],
1854   AC_MSG_RESULT(no)
1857 #################################################
1858 # check for the secure socket layer
1859 AC_MSG_CHECKING(whether to use SSL)
1860 AC_ARG_WITH(ssl,
1861 [  --with-ssl              Include SSL support (default=no)
1862   --with-sslinc=DIR       Where the SSL includes are (defaults to /usr/local/ssl)],
1863 [ case "$withval" in
1864   yes)
1865     AC_MSG_RESULT(yes)
1866     AC_DEFINE(WITH_SSL)
1867     withval="/usr/local/ssl"     # default
1869     if test "${with_sslinc+set}" = set; then
1871         withval="$with_sslinc"
1872         case "$withval" in
1873         yes|no)
1874           echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1875           CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1876           LIBS="-lssl -lcrypto $LIBS"
1877           LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
1878         ;;
1879         * )
1880           CFLAGS="-I${withval} $CFLAGS"
1881           LIBS="-lssl -lcrypto $LIBS"
1882           LDFLAGS="-L${withval}/lib $LDFLAGS"
1883         ;;
1884         esac
1886     else
1888         CFLAGS="-I/usr/local/ssl/include $CFLAGS"   
1889         LIBS="-lssl -lcrypto $LIBS"
1890         LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1892     fi
1894     if test ! -d ${withval}; then
1895       echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1896       exit 1
1897     fi 
1899     CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS"  # Damn, SSLeay defines its own
1901     ;;
1902   *)
1903     AC_MSG_RESULT(no)
1904     ;;
1905   esac ],
1906   AC_MSG_RESULT(no)
1909 #################################################
1910 # check for syslog logging
1911 AC_MSG_CHECKING(whether to use syslog logging)
1912 AC_ARG_WITH(syslog,
1913 [  --with-syslog           Include experimental SYSLOG support (default=no)],
1914 [ case "$withval" in
1915   yes)
1916     AC_MSG_RESULT(yes)
1917     AC_DEFINE(WITH_SYSLOG)
1918     ;;
1919   *)
1920     AC_MSG_RESULT(no)
1921     ;;
1922   esac ],
1923   AC_MSG_RESULT(no)
1926 #################################################
1927 # check for a shared memory profiling support
1928 AC_MSG_CHECKING(whether to use profiling)
1929 AC_ARG_WITH(profiling-data,
1930 [  --with-profiling-data   Include gathering source code profile information (default=no)],
1931 [ case "$withval" in
1932   yes)
1933     AC_MSG_RESULT(yes)
1934     AC_DEFINE(WITH_PROFILE)
1935     ;;
1936   *)
1937     AC_MSG_RESULT(no)
1938     ;;
1939   esac ],
1940   AC_MSG_RESULT(no)
1944 #################################################
1945 # check for experimental disk-quotas support
1946 QUOTAOBJS=smbd/noquotas.o
1948 AC_MSG_CHECKING(whether to support disk-quotas)
1949 AC_ARG_WITH(quotas,
1950 [  --with-quotas           Include experimental disk-quota support (default=no)],
1951 [ case "$withval" in
1952   yes)
1953     AC_MSG_RESULT(yes)
1954     QUOTAOBJS=smbd/quotas.o
1955     case "$host_os" in
1956       *linux*)
1957         # Check for kernel 2.4.x quota braindamage...
1958         AC_CACHE_CHECK([for linux 2.4.x quota braindamage..],samba_cv_linux_2_4_quota_braindamage, [
1959         AC_TRY_COMPILE([#include <stdio.h>
1960 #include <sys/types.h>
1961 #include <asm/types.h>
1962 #include <linux/quota.h>
1963 #include <mntent.h>
1964 #include <linux/unistd.h>],[struct mem_dqblk D;],
1965         samba_cv_linux_2_4_quota_braindamage=yes,samba_cv_linux_2_4_quota_braindamage=no)])
1966 if test x"$samba_cv_linux_2_4_quota_braindamage" = x"yes"; then
1967         AC_DEFINE(LINUX_QUOTAS_2)
1968 else
1969         AC_DEFINE(LINUX_QUOTAS_1)
1971         ;;
1972       *)
1973         ;;
1974     esac
1975     ;;
1976   *)
1977     AC_MSG_RESULT(no)
1978     ;;
1979   esac ],
1980   AC_MSG_RESULT(no)
1982 AC_SUBST(QUOTAOBJS)
1984 #################################################
1985 # check for experimental utmp accounting
1987 AC_MSG_CHECKING(whether to support utmp accounting)
1988 AC_ARG_WITH(utmp,
1989 [  --with-utmp             Include experimental utmp accounting (default=no)],
1990 [ case "$withval" in
1991   yes)
1992     AC_MSG_RESULT(yes)
1993     AC_DEFINE(WITH_UTMP)
1994     ;;
1995   *)
1996     AC_MSG_RESULT(no)
1997     ;;
1998   esac ],
1999   AC_MSG_RESULT(no)
2002 #################################################
2003 # check for MS Dfs support
2005 AC_MSG_CHECKING(whether to support Microsoft Dfs)
2006 AC_ARG_WITH(msdfs,
2007 [  --with-msdfs            Include MS Dfs support (default=no)],
2008 [ case "$withval" in
2009   yes)
2010      AC_MSG_RESULT(yes)
2011      AC_DEFINE(WITH_MSDFS)
2012      ;;
2013   *)
2014     AC_MSG_RESULT(no)
2015     ;;
2016   esac ],
2017   AC_MSG_RESULT(no)
2020 #################################################
2021 # check for Samba VFS support
2023 AC_MSG_CHECKING(whether to support the experimantal Samba vfs)
2024 AC_ARG_WITH(vfs,
2025 [  --with-vfs              Include Samba vfs support (default=no)],
2026 [ case "$withval" in
2027   yes)
2028      AC_MSG_RESULT(yes)
2029      AC_DEFINE(WITH_VFS)
2030      ;;
2031   *)
2032     AC_MSG_RESULT(no)
2033     ;;
2034   esac ],
2035   AC_MSG_RESULT(no)
2038 #################################################
2039 # these tests are taken from the GNU fileutils package
2040 AC_CHECKING(how to get filesystem space usage)
2041 space=no
2043 # Test for statvfs64.
2044 if test $space = no; then
2045   # SVR4
2046   AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2047   [AC_TRY_RUN([
2048 #if defined(HAVE_UNISTD_H)
2049 #include <unistd.h>
2050 #endif
2051 #include <sys/types.h>
2052 #include <sys/statvfs.h>
2053   main ()
2054   {
2055     struct statvfs64 fsd;
2056     exit (statvfs64 (".", &fsd));
2057   }],
2058   fu_cv_sys_stat_statvfs64=yes,
2059   fu_cv_sys_stat_statvfs64=no,
2060   fu_cv_sys_stat_statvfs64=cross)])
2061   if test $fu_cv_sys_stat_statvfs64 = yes; then
2062     space=yes
2063     AC_DEFINE(STAT_STATVFS64)
2064   fi
2067 # Perform only the link test since it seems there are no variants of the
2068 # statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs)
2069 # because that got a false positive on SCO OSR5.  Adding the declaration
2070 # of a `struct statvfs' causes this test to fail (as it should) on such
2071 # systems.  That system is reported to work fine with STAT_STATFS4 which
2072 # is what it gets when this test fails.
2073 if test $space = no; then
2074   # SVR4
2075   AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2076                  [AC_TRY_LINK([#include <sys/types.h>
2077 #include <sys/statvfs.h>],
2078                               [struct statvfs fsd; statvfs (0, &fsd);],
2079                               fu_cv_sys_stat_statvfs=yes,
2080                               fu_cv_sys_stat_statvfs=no)])
2081   if test $fu_cv_sys_stat_statvfs = yes; then
2082     space=yes
2083     AC_DEFINE(STAT_STATVFS)
2084   fi
2087 if test $space = no; then
2088   # DEC Alpha running OSF/1
2089   AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2090   AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2091   [AC_TRY_RUN([
2092 #include <sys/param.h>
2093 #include <sys/types.h>
2094 #include <sys/mount.h>
2095   main ()
2096   {
2097     struct statfs fsd;
2098     fsd.f_fsize = 0;
2099     exit (statfs (".", &fsd, sizeof (struct statfs)));
2100   }],
2101   fu_cv_sys_stat_statfs3_osf1=yes,
2102   fu_cv_sys_stat_statfs3_osf1=no,
2103   fu_cv_sys_stat_statfs3_osf1=no)])
2104   AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2105   if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2106     space=yes
2107     AC_DEFINE(STAT_STATFS3_OSF1)
2108   fi
2111 if test $space = no; then
2112 # AIX
2113   AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2114 member (AIX, 4.3BSD)])
2115   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2116   [AC_TRY_RUN([
2117 #ifdef HAVE_SYS_PARAM_H
2118 #include <sys/param.h>
2119 #endif
2120 #ifdef HAVE_SYS_MOUNT_H
2121 #include <sys/mount.h>
2122 #endif
2123 #ifdef HAVE_SYS_VFS_H
2124 #include <sys/vfs.h>
2125 #endif
2126   main ()
2127   {
2128   struct statfs fsd;
2129   fsd.f_bsize = 0;
2130   exit (statfs (".", &fsd));
2131   }],
2132   fu_cv_sys_stat_statfs2_bsize=yes,
2133   fu_cv_sys_stat_statfs2_bsize=no,
2134   fu_cv_sys_stat_statfs2_bsize=no)])
2135   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2136   if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2137     space=yes
2138     AC_DEFINE(STAT_STATFS2_BSIZE)
2139   fi
2142 if test $space = no; then
2143 # SVR3
2144   AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2145   AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2146   [AC_TRY_RUN([#include <sys/types.h>
2147 #include <sys/statfs.h>
2148   main ()
2149   {
2150   struct statfs fsd;
2151   exit (statfs (".", &fsd, sizeof fsd, 0));
2152   }],
2153     fu_cv_sys_stat_statfs4=yes,
2154     fu_cv_sys_stat_statfs4=no,
2155     fu_cv_sys_stat_statfs4=no)])
2156   AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2157   if test $fu_cv_sys_stat_statfs4 = yes; then
2158     space=yes
2159     AC_DEFINE(STAT_STATFS4)
2160   fi
2163 if test $space = no; then
2164 # 4.4BSD and NetBSD
2165   AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2166 member (4.4BSD and NetBSD)])
2167   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2168   [AC_TRY_RUN([#include <sys/types.h>
2169 #ifdef HAVE_SYS_PARAM_H
2170 #include <sys/param.h>
2171 #endif
2172 #ifdef HAVE_SYS_MOUNT_H
2173 #include <sys/mount.h>
2174 #endif
2175   main ()
2176   {
2177   struct statfs fsd;
2178   fsd.f_fsize = 0;
2179   exit (statfs (".", &fsd));
2180   }],
2181   fu_cv_sys_stat_statfs2_fsize=yes,
2182   fu_cv_sys_stat_statfs2_fsize=no,
2183   fu_cv_sys_stat_statfs2_fsize=no)])
2184   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2185   if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2186     space=yes
2187     AC_DEFINE(STAT_STATFS2_FSIZE)
2188   fi
2191 if test $space = no; then
2192   # Ultrix
2193   AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2194   AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2195   [AC_TRY_RUN([#include <sys/types.h>
2196 #ifdef HAVE_SYS_PARAM_H
2197 #include <sys/param.h>
2198 #endif
2199 #ifdef HAVE_SYS_MOUNT_H
2200 #include <sys/mount.h>
2201 #endif
2202 #ifdef HAVE_SYS_FS_TYPES_H
2203 #include <sys/fs_types.h>
2204 #endif
2205   main ()
2206   {
2207   struct fs_data fsd;
2208   /* Ultrix's statfs returns 1 for success,
2209      0 for not mounted, -1 for failure.  */
2210   exit (statfs (".", &fsd) != 1);
2211   }],
2212   fu_cv_sys_stat_fs_data=yes,
2213   fu_cv_sys_stat_fs_data=no,
2214   fu_cv_sys_stat_fs_data=no)])
2215   AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2216   if test $fu_cv_sys_stat_fs_data = yes; then
2217     space=yes
2218     AC_DEFINE(STAT_STATFS2_FS_DATA)
2219   fi
2223 # As a gating factor for large file support, in order to
2224 # use <4GB files we must have the following minimal support
2225 # available.
2226 # long long, and a 64 bit off_t or off64_t.
2227 # If we don't have all of these then disable large
2228 # file support.
2230 AC_MSG_CHECKING(checking if large file support can be enabled)
2231 AC_TRY_COMPILE([
2232 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2233 #include <sys/types.h>
2234 #else
2235 __COMPILE_ERROR_
2236 #endif
2238 [int i],
2239 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2240 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2241     AC_MSG_RESULT(yes)
2242     AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2243 else
2244     AC_MSG_RESULT(no)
2247 AC_ARG_WITH(spinlocks, 
2248 [  --with-spinlocks        Use spin locks instead of fcntl locks (default=no)])
2249 if test "x$with_spinlocks" = "xyes"; then
2250     AC_DEFINE(USE_SPINLOCKS)
2252     case "$host_cpu" in
2253         sparc)
2254             AC_DEFINE(SPARC_SPINLOCKS)
2255             ;;
2257         i386|i486|i586|i686)
2258             AC_DEFINE(INTEL_SPINLOCKS)
2259             ;;
2261         mips)
2262             AC_DEFINE(MIPS_SPINLOCKS)
2263             ;;
2265         powerpc)
2266             AC_DEFINE(POWERPC_SPINLOCKS)
2267             ;;
2268     esac
2271 #################################################
2272 # check for ACL support
2274 AC_MSG_CHECKING(whether to support ACLs)
2275 AC_ARG_WITH(acl-support,
2276 [  --with-acl-support      Include ACL support (default=no)],
2277 [ case "$withval" in
2278   yes)
2280                 case "$host_os" in
2281                 *sysv5*)
2282                         AC_MSG_RESULT(Using UnixWare ACLs)
2283                         AC_DEFINE(HAVE_UNIXWARE_ACLS)
2284                         ;;
2285                 *solaris*)
2286                         AC_MSG_RESULT(Using solaris ACLs)
2287                         AC_DEFINE(HAVE_SOLARIS_ACLS)
2288                         ;;
2289                 *irix*)
2290                         AC_MSG_RESULT(Using IRIX ACLs)
2291                         AC_DEFINE(HAVE_IRIX_ACLS)
2292                         ;;
2293                 *aix*)
2294                         AC_MSG_RESULT(Using AIX ACLs)
2295                         AC_DEFINE(HAVE_AIX_ACLS)
2296                         ;;
2297                 *osf*)
2298                         AC_MSG_RESULT(Using Tru64 ACLs)
2299                         AC_DEFINE(HAVE_TRU64_ACLS)
2300                         LIBS="$LIBS -lpacl"
2301                         ;;
2302                 *)
2303                     AC_CHECK_LIB(acl,acl_get_file)
2304                         AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2305                         AC_TRY_LINK([#include <sys/types.h>
2306 #include <sys/acl.h>],
2307 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2308 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2309                         if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2310                             AC_MSG_RESULT(Using posix ACLs)
2311                             AC_DEFINE(HAVE_POSIX_ACLS)
2312                                 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2313                                 AC_TRY_LINK([#include <sys/types.h>
2314 #include <sys/acl.h>],
2315 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2316 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2317                                 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2318                                         AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2319                                 fi
2320                         fi
2321                         ;;
2322                 esac
2323                 ;;
2324   *)
2325     AC_MSG_RESULT(no)
2326         AC_DEFINE(HAVE_NO_ACLS)
2327     ;;
2328   esac ],
2329   AC_DEFINE(HAVE_NO_ACLS)
2330   AC_MSG_RESULT(no)
2333 #################################################
2334 # check for the historical SAMBA installation
2336 if test "x$prefix" = xNONE -a "$sbindir" = "\${exec_prefix}/sbin"; then
2337         # Put all binaries under the /usr/local/samba/bin directory.
2338         sbindir="$bindir"
2341 #################################################
2342 # Check whether winbind is supported on this platform.  If so we need to
2343 # build and install client programs (WINBIND_TARGETS), sbin programs
2344 # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS).
2346 AC_MSG_CHECKING(whether to build winbind)
2348 # Initially, the value of $host_os decides whether winbind is supported
2350 case "$host_os" in 
2351         *linux*|*solaris*)
2352                 HAVE_WINBIND=yes
2353                 ;;
2354         *)
2355                 HAVE_WINBIND=no
2356                 winbind_no_reason=", unsupported on $host_os"
2357                 ;;
2358 esac
2360 # Check the setting of --with-winbindd
2362 AC_ARG_WITH(winbind,
2363 [  --with-winbind          Build winbind (default, if supported by OS)],
2365   case "$withval" in
2366         yes)
2367                 HAVE_WINBIND=yes
2368                 ;;
2369         no)
2370                 HAVE_WINBIND=no
2371                 winbind_reason=""
2372                 ;;
2373   esac ],
2376 # We need unix domain sockets for winbind
2378 if test x"$HAVE_WINBIND" = x"yes"; then
2379         if test x"$samba_cv_unixsocket" = x"no"; then
2380                 winbind_no_reason=", no unix domain socket support on $host_os"
2381                 HAVE_WINBIND=no
2382         fi
2385 # Display test results
2387 if test x"$HAVE_WINBIND" = x"yes"; then
2389         AC_MSG_RESULT(yes)
2391         WINBIND_TARGETS="\$(WINBIND_PROGS)"
2392         WINBIND_STARGETS="\$(WINBIND_SPROGS)"
2393         WINBIND_LTARGETS="\$(WINBIND_LPROGS)"
2395         case "$with_pam" in
2396                 yes)
2397                         WINBIND_PAM_PROGS="\$(WINBIND_PAM_PROGS)"
2398                 ;;
2399         esac
2400 else
2401         AC_MSG_RESULT(no$winbind_no_reason)
2403         WINBIND_TARGETS=""
2404         WINBIND_STARGETS=""
2405         WINBIND_LTARGETS=""
2406         WINBIND_PAM_PROGS=""
2409 # Substitution time!
2411 AC_SUBST(WINBIND_TARGETS)
2412 AC_SUBST(WINBIND_STARGETS)
2413 AC_SUBST(WINBIND_LTARGETS)
2414 AC_SUBST(WINBIND_PAM_PROGS)
2416 #################################################
2417 # final configure stuff
2418 echo "checking configure summary"
2419 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2420            echo "configure OK";,
2421            AC_MSG_ERROR([summary failure. Aborting config]),:)
2423 builddir=`pwd`
2424 AC_SUBST(builddir)
2426 AC_OUTPUT(include/stamp-h Makefile)