this now works as a add|delete share command :-)
[Samba.git] / source / configure.in
blob763df2a59e6692cf7681ed5d6a5afb1ef58ed53b
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, [  --with-fhs            use FHS-compliant paths [default=no]],
12     codepagedir="\$(DATADIR)/samba/codepages"
13     configdir="${sysconfdir}/samba"
14     lockdir="\${VARDIR}/lock/samba"
15     logfilebase="\${VARDIR}/log/samba"
16     privatedir="\${CONFIGDIR}/private"
17     swatdir="\${DATADIR}/samba/swat",
18     codepagedir="\$(LIBDIR)/codepages"
19     configdir="\$(LIBDIR)"
20     lockdir="\$(VARDIR)/locks"
21     logfilebase="\$(VARDIR)"
22     privatedir="\${prefix}/private"
23     swatdir="\${prefix}/swat")
25 #################################################
26 # set private directory location
27 AC_ARG_WITH(privatedir,
28 [  --with-privatedir=DIR     Where to put smbpasswd ($ac_default_prefix/private)],
29 [ case "$withval" in
30   yes|no)
31   #
32   # Just in case anybody calls it without argument
33   #
34     AC_MSG_WARN([--with-privatedir called without argument - will use default])
35   ;;
36   * )
37     privatedir="$withval"
38     ;;
39   esac])
41 #################################################
42 # set lock directory location
43 AC_ARG_WITH(lockdir,
44 [  --with-lockdir=DIR     Where to put lock files ($ac_default_prefix/var/locks)],
45 [ case "$withval" in
46   yes|no)
47   #
48   # Just in case anybody calls it without argument
49   #
50     AC_MSG_WARN([--with-lockdir called without argument - will use default])
51   ;;
52   * )
53     lockdir="$withval"
54     ;;
55   esac])
57 #################################################
58 # set SWAT directory location
59 AC_ARG_WITH(swatdir,
60 [  --with-swatdir=DIR     Where to put SWAT files ($ac_default_prefix/swat)],
61 [ case "$withval" in
62   yes|no)
63   #
64   # Just in case anybody does it
65   #
66     AC_MSG_WARN([--with-swatdir called without argument - will use default])
67   ;;
68   * )
69     swatdir="$withval"
70     ;;
71   esac])
73 #################################################
74 # set configuration directory location
75 AC_ARG_WITH(configdir,
76 [  --with-configdir=DIR     Where to put configuration files (\$libdir)],
77 [ case "$withval" in
78   yes|no)
79   #
80   # Just in case anybody does it
81   #
82     AC_MSG_WARN([--with-configdir called without argument - will use default])
83   ;;
84   * )
85     configdir="$withval"
86     ;;
87   esac])
89 #################################################
90 # set codepage directory location
91 AC_ARG_WITH(codepagedir,
92 [  --with-codepagedir=DIR     Where to put codepage files (\$libdir/codepages)],
93 [ case "$withval" in
94   yes|no)
95   #
96   # Just in case anybody does it
97   #
98     AC_MSG_WARN([--with-codepagedir called without argument - will use default])
99   ;;
100   * )
101     codepagedir="$withval"
102     ;;
103   esac])
106 AC_SUBST(codepagedir)
107 AC_SUBST(configdir)
108 AC_SUBST(lockdir)
109 AC_SUBST(logfilebase)
110 AC_SUBST(privatedir)
111 AC_SUBST(swatdir)
112 AC_SUBST(bindir)
113 AC_SUBST(sbindir)
115 dnl Unique-to-Samba variables we'll be playing with.
116 AC_SUBST(SHELL)
117 AC_SUBST(RUNPROG)
118 AC_SUBST(MPROGS)
119 AC_SUBST(LDSHFLAGS)
120 AC_SUBST(HOST_OS)
121 AC_SUBST(PAM_MOD)
122 AC_SUBST(WRAP)
123 AC_SUBST(WRAP32)
124 AC_SUBST(PICFLAG)
125 AC_SUBST(SHLIBEXT)
127 # compile with optimization and without debugging by default
128 CFLAGS="-O ${CFLAGS}"
130 AC_ARG_ENABLE(debug, [  --enable-debug        turn on debugging [default=no]],
131     [if eval "test x$enable_debug = xyes"; then
132         CFLAGS="${CFLAGS} -g"
133     fi])
137 dnl Checks for programs.
138 AC_PROG_CC
139 AC_PROG_INSTALL
140 AC_PROG_AWK
141 AC_PROG_LIBTOOL
142 AC_SUBST(LIBTOOL_DEPS)
144 dnl Check if C compiler understands -c and -o at the same time
145 AC_PROG_CC_C_O
146 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
147       BROKEN_CC=
148 else
149       BROKEN_CC=#
151 AC_SUBST(BROKEN_CC)
153 dnl Check if the C compiler understands volatile (it should, being ANSI).
154 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
155     AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
156         samba_cv_volatile=yes,samba_cv_volatile=no)])
157 if test x"$samba_cv_volatile" = x"yes"; then
158    AC_DEFINE(HAVE_VOLATILE)
163 AC_CANONICAL_SYSTEM
165 dnl Add #include for broken IRIX header files
166   case "$host_os" in
167         *irix6*) AC_ADD_INCLUDE(<standards.h>)
168         ;;
169 esac
171 AC_VALIDATE_CACHE_SYSTEM_TYPE
174 # Config CPPFLAG settings for strange OS's that must be set
175 # before other tests.
177 case "$host_os" in
178 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
179     *hpux*)
180       AC_PROG_CC_FLAG(Ae)
181       if test $ac_cv_prog_cc_Ae = yes; then
182         CPPFLAGS="$CPPFLAGS -Ae"
183       fi
185 # Defines needed for HPUX support.
186 # HPUX has bigcrypt but (sometimes?) doesn't use it for
187 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
189       case `uname -r` in
190                         *9*|*10*)
191                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
192                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
193                                 ;;
194                         *11*)
195                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
196                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
197                                 ;;
198       esac
199       ;;
201 # AIX4.x doesn't even admit to having large
202 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
204     *aix4*)
205           AC_MSG_RESULT([enabling large file support])
206       CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
207       ;;    
209 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
210 # to the existance of large files..
211 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
212 # recommendations on large file support, however it makes the
213 # compile work using gcc 2.7 and 2.8, whereas using the Sun
214 # recommendation makes the compile fail on gcc2.7. JRA.
216         *solaris*)
217                 case `uname -r` in
218                         5.6*|5.7*)
219                         AC_MSG_RESULT([enabling large file support])
220                         if test "$ac_cv_prog_gcc" = yes; then
221                                 ${CC-cc} -v >conftest.c 2>&1
222                                 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
223                                 rm -fr conftest.c
224                                 case "$ac_cv_gcc_compiler_version_number" in
225                                         *"gcc version 2.6"*|*"gcc version 2.7"*)
226                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
227                                                 ;;
228                                         *)
229                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
230                                                 ;;
231                                 esac
232                         else
233                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
234                         fi
235                         ;;
236                 esac
237                 ;;
239 # Tests needed for SINIX large file support.
241     *sysv4*)
242       if test $host = mips-sni-sysv4 ; then
243         AC_MSG_CHECKING([for LFS support])
244         old_CPPFLAGS="$CPPFLAGS"
245         CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
246         AC_TRY_RUN([
247 #include <unistd.h>
248 main () {
249 #if _LFS64_LARGEFILE == 1
250 exit(0);
251 #else
252 exit(1);
253 #endif
254 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
255         CPPFLAGS="$old_CPPFLAGS"
256         if test x$SINIX_LFS_SUPPORT = xyes ; then
257           CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
258           CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
259           LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
260           LIBS="`getconf LFS64_LIBS` $LIBS"
261         fi
262       AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
263       fi
264     ;;
266 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
268     *linux*)
269         AC_MSG_CHECKING([for LFS support])
270         old_CPPFLAGS="$CPPFLAGS"
271         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
272        AC_TRY_RUN([
273 #include <unistd.h>
274 #include <sys/utsname.h>
275 main() {
276 #if _LFS64_LARGEFILE == 1
277        struct utsname uts;
278        char *release;
279        int major, minor;
281        /* Ensure this is glibc 2.2 or higher */
282 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
283        int libc_major = __GLIBC__;
284        int libc_minor = __GLIBC_MINOR__;
286        if (libc_major < 2)
287               exit(1);
288        if (libc_minor < 2)
289               exit(1);
290 #endif
292        /* Ensure this is kernel 2.4 or higher */
294        uname(&uts);
295        release = uts.release;
296        major = atoi(strsep(&release, "."));
297        minor = atoi(strsep(&release, "."));
299        if (major > 2 || (major == 2 && minor > 3))
300                exit(0);
301        exit(1);
302 #else
303        exit(1);
304 #endif
306 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
307         CPPFLAGS="$old_CPPFLAGS"
308         if test x$LINUX_LFS_SUPPORT = xyes ; then
309           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
310         fi
311        AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
312                 ;;
314     *hurd*)
315         AC_MSG_CHECKING([for LFS support])
316         old_CPPFLAGS="$CPPFLAGS"
317         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
318         AC_TRY_RUN([
319 #include <unistd.h>
320 main () {
321 #if _LFS64_LARGEFILE == 1
322 exit(0);
323 #else
324 exit(1);
325 #endif
326 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
327         CPPFLAGS="$old_CPPFLAGS"
328         if test x$GLIBC_LFS_SUPPORT = xyes ; then
329           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
330         fi
331       AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
332     ;;
334 esac
336 AC_INLINE
337 AC_HEADER_STDC
338 AC_HEADER_DIRENT
339 AC_HEADER_TIME
340 AC_HEADER_SYS_WAIT
341 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
342 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
343 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
344 AC_CHECK_HEADERS(sys/param.h ctype.h sys/un.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
345 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
346 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
347 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
349 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
350 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
352 case "$host_os" in
353     *hpux*)
354                 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
355                         ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
356                 if test x"$ac_cv_header_shadow_h" = x"yes"; then
357                    AC_DEFINE(HAVE_SHADOW_H)
358                 fi
359         ;;
360 esac
361 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
362 AC_CHECK_HEADERS(nss.h sys/security.h security/pam_appl.h security/pam_modules.h)
363 AC_CHECK_HEADERS(stropts.h poll.h)
364 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
365 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h acl/acl.h)
367 # For experimental utmp support (lastlog on some BSD-like systems)
368 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
370 # For quotas on Veritas VxFS filesystems
371 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
373 AC_CHECK_SIZEOF(int,cross)
374 AC_CHECK_SIZEOF(long,cross)
375 AC_CHECK_SIZEOF(short,cross)
377 AC_C_CONST
378 AC_C_INLINE
379 AC_C_BIGENDIAN
380 AC_C_CHAR_UNSIGNED
382 AC_TYPE_SIGNAL
383 AC_TYPE_UID_T
384 AC_TYPE_MODE_T
385 AC_TYPE_OFF_T
386 AC_TYPE_SIZE_T
387 AC_TYPE_PID_T
388 AC_STRUCT_ST_RDEV
389 AC_DIRENT_D_OFF
390 AC_CHECK_TYPE(ino_t,unsigned)
391 AC_CHECK_TYPE(loff_t,off_t)
392 AC_CHECK_TYPE(offset_t,loff_t)
393 AC_CHECK_TYPE(ssize_t, int)
394 AC_CHECK_TYPE(wchar_t, unsigned short)
396 # we need libcups for CUPS support...
397 AC_CHECK_LIB(cups,httpConnect)
399 # we need libdl for PAM and the new VFS code
400 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
401         AC_DEFINE(HAVE_LIBDL)])
403 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
404     AC_TRY_COMPILE([
405 #include <sys/types.h>
406 #if STDC_HEADERS
407 #include <stdlib.h>
408 #include <stddef.h>
409 #endif
410 #include <signal.h>],[sig_atomic_t i = 0],
411         samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
412 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
413    AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
416 AC_CACHE_CHECK([for errno in errno.h],samba_cv_errno, [
417     AC_TRY_COMPILE([#include <errno.h>],[int i = errno],
418         samba_cv_errno=yes,samba_cv_have_errno=no)])
419 if test x"$samba_cv_errno" = x"yes"; then
420    AC_DEFINE(HAVE_ERRNO_DECL)
423 # stupid glibc has the functions but no declaration. grrrr.
424 AC_CACHE_CHECK([for setresuid declaration],samba_cv_have_setresuid_decl,[
425     AC_TRY_COMPILE([#include <unistd.h>],[int i = (int)setresuid],
426         samba_cv_have_setresuid_decl=yes,samba_cv_have_setresuid_decl=no)])
427 if test x"$samba_cv_have_setresuid_decl" = x"yes"; then
428     AC_DEFINE(HAVE_SETRESUID_DECL)
431 # stupid glibc has the functions but no declaration. grrrr.
432 AC_CACHE_CHECK([for setresgid declaration],samba_cv_have_setresgid_decl,[
433     AC_TRY_COMPILE([#include <unistd.h>],[int i = (int)setresgid],
434         samba_cv_have_setresgid_decl=yes,samba_cv_have_setresgid_decl=no)])
435 if test x"$samba_cv_have_setresgid_decl" = x"yes"; then
436     AC_DEFINE(HAVE_SETRESGID_DECL)
439 # and glibc has setresuid under linux but the function does
440 # nothing until kernel 2.1.44! very dumb.
441 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
442     AC_TRY_RUN([#include <errno.h>
443 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
444         samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
445 if test x"$samba_cv_have_setresuid" = x"yes"; then
446     AC_DEFINE(HAVE_SETRESUID)
449 # Do the same check for setresguid...
451 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
452     AC_TRY_RUN([#include <unistd.h>
453 #include <errno.h>
454 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
455         samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
456 if test x"$samba_cv_have_setresgid" = x"yes"; then
457     AC_DEFINE(HAVE_SETRESGID)
460 AC_FUNC_MEMCMP
462 ###############################################
463 # Readline included by default unless explicitly asked not to
464 test "${with_readline+set}" != "set" && with_readline=yes
466 # test for where we get readline() from
467 AC_MSG_CHECKING(whether to use readline)
468 AC_ARG_WITH(readline,
469 [  --with-readline[=DIR]   Look for readline include/libs in DIR
470   --without-readline      Don't include readline support],
471 [  case "$with_readline" in
472   yes)
473     AC_MSG_RESULT(yes)
475     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
476     AC_CHECK_HEADERS(readline/history.h)
478     AC_CHECK_HEADERS(readline.h readline/readline.h,[
479       for termlib in ncurses curses termcap terminfo termlib; do
480        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
481       done
482       AC_CHECK_LIB(readline, rl_callback_handler_install,
483        [TERMLIBS="-lreadline $TERMLIBS"
484        AC_DEFINE(HAVE_LIBREADLINE)
485        break], [TERMLIBS=], $TERMLIBS)])
486     ;;
487   no)
488     AC_MSG_RESULT(no)
489     ;;
490   *)
491     AC_MSG_RESULT(yes)
493     # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
494     # alternate readline path
495     _ldflags=${LDFLAGS}
496     _cppflags=${CPPFLAGS}
498     # Add additional search path
499     LDFLAGS="-L$with_readline/lib $LDFLAGS"
500     CPPFLAGS="-I$with_readline/include $CPPFLAGS"
502     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
503     AC_CHECK_HEADERS(readline/history.h)
505     AC_CHECK_HEADERS(readline.h readline/readline.h,[
506       for termlib in ncurses curses termcap terminfo termlib; do
507        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
508       done
509       AC_CHECK_LIB(readline, rl_callback_handler_install,
510        [TERMLDFLAGS="-L$with_readline/lib"
511        TERMCPPFLAGS="-I$with_readline/include"
512        CPPFLAGS="-I$with_readline/include $CPPFLAGS"
513        TERMLIBS="-lreadline $TERMLIBS"
514        AC_DEFINE(HAVE_LIBREADLINE)
515        break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
517     LDFLAGS=$_ldflags
518     ;;
519   esac],
520   AC_MSG_RESULT(no)
522 AC_SUBST(TERMLIBS)
523 AC_SUBST(TERMLDFLAGS)
525 # The following test taken from the cvs sources
526 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
527 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
528 # libsocket.so which has a bad implementation of gethostbyname (it
529 # only looks in /etc/hosts), so we only look for -lsocket if we need
530 # it.
531 AC_CHECK_FUNCS(connect)
532 if test x"$ac_cv_func_connect" = x"no"; then
533     case "$LIBS" in
534     *-lnsl*) ;;
535     *) AC_CHECK_LIB(nsl_s, printf) ;;
536     esac
537     case "$LIBS" in
538     *-lnsl*) ;;
539     *) AC_CHECK_LIB(nsl, printf) ;;
540     esac
541     case "$LIBS" in
542     *-lsocket*) ;;
543     *) AC_CHECK_LIB(socket, connect) ;;
544     esac
545     case "$LIBS" in
546     *-linet*) ;;
547     *) AC_CHECK_LIB(inet, connect) ;;
548     esac
549     dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
550     dnl has been cached.
551     if test x"$ac_cv_lib_socket_connect" = x"yes" || 
552        test x"$ac_cv_lib_inet_connect" = x"yes"; then
553         # ac_cv_func_connect=yes
554         # don't!  it would cause AC_CHECK_FUNC to succeed next time configure is run
555         AC_DEFINE(HAVE_CONNECT)
556     fi
559 ###############################################
560 # test for where we get get_yp_default_domain() from
561 AC_CHECK_FUNCS(yp_get_default_domain)
562 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
563         AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
564         AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)]) 
567 # Check if we have execl, if not we need to compile smbrun.
568 AC_CHECK_FUNCS(execl)
569 if test x"$ac_cv_func_execl" = x"no"; then
570     RUNPROG="bin/smbrun"
571 else
572     RUNPROG=""
575 AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown fchown chmod fchmod chroot)
576 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset)
577 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
578 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr setnetgrent getnetgrent endnetgrent)
579 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf)
580 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
581 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
582 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
583 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl)
585 # syscall() is needed for smbwrapper.
586 AC_CHECK_FUNCS(syscall)
588 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
589 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
590 AC_CHECK_FUNCS(__getcwd _getcwd)
591 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
592 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
593 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
594 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
595 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
596 AC_CHECK_FUNCS(_write __write _fork __fork)
597 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
598 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
599 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
600 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
601 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
604 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
607 if test x$ac_cv_func_stat64 = xno ; then
608   AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
609   AC_TRY_LINK([
610 #if defined(HAVE_UNISTD_H)
611 #include <unistd.h>
612 #endif
613 #include <sys/stat.h>
614 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
615   AC_MSG_RESULT([$ac_cv_func_stat64])
616   if test x$ac_cv_func_stat64 = xyes ; then
617     AC_DEFINE(HAVE_STAT64)
618   fi
621 if test x$ac_cv_func_lstat64 = xno ; then
622   AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
623   AC_TRY_LINK([
624 #if defined(HAVE_UNISTD_H)
625 #include <unistd.h>
626 #endif
627 #include <sys/stat.h>
628 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
629   AC_MSG_RESULT([$ac_cv_func_lstat64])
630   if test x$ac_cv_func_lstat64 = xyes ; then
631     AC_DEFINE(HAVE_LSTAT64)
632   fi
635 if test x$ac_cv_func_fstat64 = xno ; then
636   AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
637   AC_TRY_LINK([
638 #if defined(HAVE_UNISTD_H)
639 #include <unistd.h>
640 #endif
641 #include <sys/stat.h>
642 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
643   AC_MSG_RESULT([$ac_cv_func_fstat64])
644   if test x$ac_cv_func_fstat64 = xyes ; then
645     AC_DEFINE(HAVE_FSTAT64)
646   fi
650 # If no strcasecmp, check for it in some known places
651 # It is in -lresolv on ReliantUNIX and UnixWare
652 #   -lresolve *must* follow -lnsl for name resolution to work properly
655 if test x$ac_cv_func_strcasecmp = xno ; then
656         AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
657                 AC_DEFINE(HAVE_STRCASECMP))
661 # Check for the functions putprpwnam, set_auth_parameters,
662 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
663 # Needed for OSF1 and HPUX.
666 AC_LIBTESTFUNC(security, putprpwnam)
667 AC_LIBTESTFUNC(sec, putprpwnam)
669 AC_LIBTESTFUNC(security, set_auth_parameters)
670 AC_LIBTESTFUNC(sec, set_auth_parameters)
672 # UnixWare 7.x has its getspnam in -lgen
673 AC_LIBTESTFUNC(gen, getspnam)
675 AC_LIBTESTFUNC(security, getspnam)
676 AC_LIBTESTFUNC(sec, getspnam)
678 AC_LIBTESTFUNC(security, bigcrypt)
679 AC_LIBTESTFUNC(sec, bigcrypt)
681 AC_LIBTESTFUNC(security, getprpwnam)
682 AC_LIBTESTFUNC(sec, getprpwnam)
684 # this bit needs to be modified for each OS that is suported by
685 # smbwrapper. You need to specify how to created a shared library and
686 # how to compile C code to produce PIC object files
688 # these are the defaults, good for lots of systems
689 HOST_OS="$host_os"
690 LDSHFLAGS="-shared"
691 PICFLAG=""
692 SHLIBEXT="so"
694 # and these are for particular systems
695 case "$host_os" in
696                 *linux*)   AC_DEFINE(LINUX);;
697                 *solaris*) AC_DEFINE(SUNOS5)
698                                         LDSHFLAGS="-G"
699                 ;;
700                 *sunos*) AC_DEFINE(SUNOS4)
701                                         LDSHFLAGS=""
702                 ;;
703                 *bsd*) LDSHFLAGS="-shared -Bshareable"
704                 ;;
705                 *irix*) AC_DEFINE(IRIX)
706                         case "$host_os" in
707                         *irix6*) AC_DEFINE(IRIX6)
708                         ;;
709                         esac
710                         ATTEMPT_WRAP32_BUILD=yes
711                 ;;
712                 *aix*) AC_DEFINE(AIX);;
713                 *hpux*) AC_DEFINE(HPUX)
714                         SHLIBEXT="sl"
715                         # Use special PIC flags for the native HP-UX compiler.
716                         if test $ac_cv_prog_cc_Ae = yes; then
717                                 LDSHFLAGS="-b"
718                                 PICFLAG="+z"
719                         fi
720                 ;;
721                 *qnx*) AC_DEFINE(QNX);;
722                 *osf*) AC_DEFINE(OSF1);;
723                 *sco*) AC_DEFINE(SCO);;
724                 *next2*) AC_DEFINE(NEXT2);;
725                 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
726                 *sysv4*)
727                         case "$host" in
728                                 *-univel-*)     if [ test "$GCC" != yes ]; then
729                                                                         AC_DEFINE(HAVE_MEMSET)
730                                                                 fi
731                                                                 LDSHFLAGS="-G"
732                                 ;;
733                                 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
734                         esac
735                         ;;
736                 *sysv5*)
737                         if [ test "$GCC" != yes ]; then
738                                 AC_DEFINE(HAVE_MEMSET)
739                         fi
740                         LDSHFLAGS="-G"
741                         ;;
742 esac
744 # try to work out how to produce pic code with this compiler
745 AC_PROG_CC_FLAG(fpic)
746 if test $ac_cv_prog_cc_fpic = yes; then
747     PICFLAG="-fpic";
749 if test x$PICFLAG = x; then
750   AC_PROG_CC_FLAG(KPIC)
751   if test $ac_cv_prog_cc_KPIC = yes; then
752     PICFLAG="-KPIC";
753   fi
755 if test x$PICFLAG = x; then
756   AC_PROG_CC_FLAG(Kpic)
757   if test $ac_cv_prog_cc_Kpic = yes; then
758     PICFLAG="-Kpic";
759   fi
762 ################
764 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
765 AC_TRY_RUN([#include <stdio.h>
766 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
767 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
768 if test x"$samba_cv_have_longlong" = x"yes"; then
769     AC_DEFINE(HAVE_LONGLONG)
773 # Check if the compiler supports the LL prefix on long long integers.
774 # AIX needs this.
776 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
777     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
778         samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
779 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
780    AC_DEFINE(COMPILER_SUPPORTS_LL)
783   
784 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
785 AC_TRY_RUN([#include <stdio.h>
786 #include <sys/stat.h>
787 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
788 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
789 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
790     AC_DEFINE(SIZEOF_OFF_T,8)
793 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
794 AC_TRY_RUN([
795 #if defined(HAVE_UNISTD_H)
796 #include <unistd.h>
797 #endif
798 #include <stdio.h>
799 #include <sys/stat.h>
800 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
801 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
802 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
803     AC_DEFINE(HAVE_OFF64_T)
806 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
807 AC_TRY_RUN([#include <stdio.h>
808 #include <sys/stat.h>
809 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
810 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
811 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
812     AC_DEFINE(SIZEOF_INO_T,8)
815 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
816 AC_TRY_RUN([
817 #if defined(HAVE_UNISTD_H)
818 #include <unistd.h>
819 #endif
820 #include <stdio.h>
821 #include <sys/stat.h>
822 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
823 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
824 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
825     AC_DEFINE(HAVE_INO64_T)
828 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
829 AC_TRY_COMPILE([
830 #if defined(HAVE_UNISTD_H)
831 #include <unistd.h>
832 #endif
833 #include <sys/types.h>
834 #include <dirent.h>],
835 [struct dirent64 de;],
836 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
837 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
838     AC_DEFINE(HAVE_STRUCT_DIRENT64)
841 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
842 AC_TRY_RUN([#include <stdio.h>
843 main() { char c; c=250; exit((c > 0)?0:1); }],
844 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
845 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
846     AC_DEFINE(HAVE_UNSIGNED_CHAR)
849 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
850 AC_TRY_COMPILE([#include <sys/types.h>
851 #include <sys/socket.h>
852 #include <netinet/in.h>],
853 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
854 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
855 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
856     AC_DEFINE(HAVE_SOCK_SIN_LEN)
859 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
860 AC_TRY_COMPILE([#include <sys/types.h>
861 #include <dirent.h>
862 void seekdir(DIR *d, long loc) { return; }],[return 0;],
863 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
864 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
865     AC_DEFINE(SEEKDIR_RETURNS_VOID)
868 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
869 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
870 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
871 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
872     AC_DEFINE(HAVE_FILE_MACRO)
875 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
876 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
877 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
878 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
879     AC_DEFINE(HAVE_FUNCTION_MACRO)
882 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
883 AC_TRY_RUN([
884 #include <sys/time.h>
885 #include <unistd.h>
886 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
887            samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
888 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
889     AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
892 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
893 AC_TRY_RUN([
894 #include <sys/types.h>
895 #include <stdarg.h>
896 void foo(const char *format, ...) { 
897        va_list ap;
898        int len;
899        char buf[5];
901        va_start(ap, format);
902        len = vsnprintf(0, 0, format, ap);
903        va_end(ap);
904        if (len != 5) exit(1);
906        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
908        exit(0);
910 main() { foo("hello"); }
912 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
913 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
914     AC_DEFINE(HAVE_C99_VSNPRINTF)
917 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
918 AC_TRY_RUN([#include <sys/types.h>
919 #include <dirent.h>
920 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
921 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
922 di->d_name[0] == 0) exit(0); exit(1);} ],
923 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
924 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
925     AC_DEFINE(HAVE_BROKEN_READDIR)
928 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
929 AC_TRY_COMPILE([#include <sys/types.h>
930 #include <utime.h>],
931 [struct utimbuf tbuf;  tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
932 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
933 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
934     AC_DEFINE(HAVE_UTIMBUF)
937 dnl  utmp and utmpx come in many flavours
938 dnl  We need to check for many of them
939 dnl  But we don't need to do each and every one, because our code uses
940 dnl  mostly just the utmp (not utmpx) fields.
942 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
944 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
945 AC_TRY_COMPILE([#include <sys/types.h>
946 #include <utmp.h>],
947 [struct utmp ut;  ut.ut_name[0] = 'a';],
948 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
949 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
950     AC_DEFINE(HAVE_UT_UT_NAME)
951 fi 
953 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
954 AC_TRY_COMPILE([#include <sys/types.h>
955 #include <utmp.h>],
956 [struct utmp ut;  ut.ut_user[0] = 'a';],
957 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
958 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
959     AC_DEFINE(HAVE_UT_UT_USER)
960 fi 
962 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
963 AC_TRY_COMPILE([#include <sys/types.h>
964 #include <utmp.h>],
965 [struct utmp ut;  ut.ut_id[0] = 'a';],
966 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
967 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
968     AC_DEFINE(HAVE_UT_UT_ID)
969 fi 
971 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
972 AC_TRY_COMPILE([#include <sys/types.h>
973 #include <utmp.h>],
974 [struct utmp ut;  ut.ut_host[0] = 'a';],
975 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
976 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
977     AC_DEFINE(HAVE_UT_UT_HOST)
978 fi 
980 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
981 AC_TRY_COMPILE([#include <sys/types.h>
982 #include <utmp.h>],
983 [struct utmp ut;  time_t t; ut.ut_time = t;],
984 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
985 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
986     AC_DEFINE(HAVE_UT_UT_TIME)
987 fi 
989 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
990 AC_TRY_COMPILE([#include <sys/types.h>
991 #include <utmp.h>],
992 [struct utmp ut;  struct timeval tv; ut.ut_tv = tv;],
993 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
994 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
995     AC_DEFINE(HAVE_UT_UT_TV)
996 fi 
998 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
999 AC_TRY_COMPILE([#include <sys/types.h>
1000 #include <utmp.h>],
1001 [struct utmp ut;  ut.ut_type = 0;],
1002 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1003 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1004     AC_DEFINE(HAVE_UT_UT_TYPE)
1005 fi 
1007 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1008 AC_TRY_COMPILE([#include <sys/types.h>
1009 #include <utmp.h>],
1010 [struct utmp ut;  ut.ut_pid = 0;],
1011 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1012 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1013     AC_DEFINE(HAVE_UT_UT_PID)
1014 fi 
1016 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1017 AC_TRY_COMPILE([#include <sys/types.h>
1018 #include <utmp.h>],
1019 [struct utmp ut;  ut.ut_exit.e_exit = 0;],
1020 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1021 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1022     AC_DEFINE(HAVE_UT_UT_EXIT)
1023 fi 
1025 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1026 AC_TRY_COMPILE([#include <sys/types.h>
1027 #include <utmp.h>],
1028 [struct utmp ut;  ut.ut_addr = 0;],
1029 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1030 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1031     AC_DEFINE(HAVE_UT_UT_ADDR)
1032 fi 
1034 if test x$ac_cv_func_pututline = xyes ; then
1035   AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1036   AC_TRY_COMPILE([#include <sys/types.h>
1037 #include <utmp.h>],
1038   [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1039   samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1040   if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1041       AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
1042   fi
1045 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1046 AC_TRY_COMPILE([#include <sys/types.h>
1047 #include <utmpx.h>],
1048 [struct utmpx ux;  ux.ut_syslen = 0;],
1049 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1050 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1051     AC_DEFINE(HAVE_UX_UT_SYSLEN)
1052 fi 
1054 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1055 AC_TRY_RUN([
1056 #include <sys/types.h>
1057 #include <fcntl.h>
1058 #ifndef F_GETLEASE
1059 #define F_GETLEASE      1025
1060 #endif
1061 main() {
1062        int fd = open("/dev/null", O_RDONLY);
1063        return fcntl(fd, F_GETLEASE, 0) == -1;
1066 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1067 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1068     AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1071 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1072 AC_TRY_RUN([
1073 #include <sys/types.h>
1074 #include <fcntl.h>
1075 #include <signal.h>
1076 #ifndef F_NOTIFY
1077 #define F_NOTIFY 1026
1078 #endif
1079 main() {
1080         exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ?  1 : 0);
1083 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1084 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1085     AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1088 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1089 AC_TRY_RUN([
1090 #include <sys/types.h>
1091 #include <fcntl.h>
1092 #include <signal.h>
1093 #include <sys/file.h>
1094 #ifndef LOCK_MAND
1095 #define LOCK_MAND       32
1096 #define LOCK_READ       64
1097 #endif
1098 main() {
1099         exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1102 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1103 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1104     AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1110 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1111 AC_TRY_COMPILE([#include <sys/types.h>
1112 #include <fcntl.h>],
1113 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1114 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1115 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1116     AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1119 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1120 AC_TRY_RUN([#include <sys/types.h>
1121 #include <sys/capability.h>
1122 main() {
1123  cap_t cap;
1124  if ((cap = cap_get_proc()) == NULL)
1125    exit(1);
1126  cap->cap_effective |= CAP_NETWORK_MGT;
1127  cap->cap_inheritable |= CAP_NETWORK_MGT;
1128  cap_set_proc(cap);
1129  exit(0);
1132 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1133 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1134     AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1138 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1139 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1142 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1143 AC_TRY_COMPILE([#include <sys/types.h>
1144 #if defined(HAVE_RPC_RPC_H)
1145 #include <rpc/rpc.h>
1146 #endif],
1147 [int16 testvar;],
1148 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1149 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1150     AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1153 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1154 AC_TRY_COMPILE([#include <sys/types.h>
1155 #if defined(HAVE_RPC_RPC_H)
1156 #include <rpc/rpc.h>
1157 #endif],
1158 [uint16 testvar;],
1159 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1160 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1161     AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1164 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1165 AC_TRY_COMPILE([#include <sys/types.h>
1166 #if defined(HAVE_RPC_RPC_H)
1167 #include <rpc/rpc.h>
1168 #endif],
1169 [int32 testvar;],
1170 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1171 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1172     AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1175 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1176 AC_TRY_COMPILE([#include <sys/types.h>
1177 #if defined(HAVE_RPC_RPC_H)
1178 #include <rpc/rpc.h>
1179 #endif],
1180 [uint32 testvar;],
1181 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1182 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1183     AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1187 dnl Some systems (SCO) have a problem including
1188 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1189 dnl as a #define in <prot.h> and as part of an enum
1190 dnl in <rpc/rpc.h>.
1193 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1194 AC_TRY_COMPILE([#include <sys/types.h>
1195 #ifdef HAVE_SYS_SECURITY_H
1196 #include <sys/security.h>
1197 #include <prot.h>
1198 #endif  /* HAVE_SYS_SECURITY_H */
1199 #if defined(HAVE_RPC_RPC_H)
1200 #include <rpc/rpc.h>
1201 #endif],
1202 [int testvar;],
1203 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1204 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1205     AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1208 AC_MSG_CHECKING([for test routines])
1209 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1210            AC_MSG_RESULT(yes),
1211            AC_MSG_ERROR([cant find test code. Aborting config]),
1212            AC_MSG_WARN([cannot run when cross-compiling]))
1214 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1215 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1216            samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1217 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1218     AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1221 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1222 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1223            samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1224 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1225     AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1228 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1229 SAVE_CPPFLAGS="$CPPFLAGS"
1230 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1231 AC_TRY_COMPILE([
1232 #define REPLACE_GETPASS 1
1233 #define NO_CONFIG_H 1
1234 #define main dont_declare_main
1235 #include "${srcdir-.}/lib/getsmbpass.c"
1236 #undef main
1237 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1238 CPPFLAGS="$SAVE_CPPFLAGS"
1240 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1241         AC_DEFINE(REPLACE_GETPASS)
1244 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1245 AC_TRY_RUN([
1246 #include <stdio.h>
1247 #include <sys/types.h>
1248 #include <netinet/in.h>
1249 #ifdef HAVE_ARPA_INET_H
1250 #include <arpa/inet.h>
1251 #endif
1252 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1253 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1254     strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } 
1255 exit(1);}],
1256            samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1257 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1258     AC_DEFINE(REPLACE_INET_NTOA)
1261 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1262 AC_TRY_RUN([#include <stdlib.h>
1263 #include <sys/types.h>
1264 #include <sys/stat.h>
1265 #include <unistd.h>
1266 main() { 
1267   struct stat st;
1268   char tpl[20]="/tmp/test.XXXXXX"; 
1269   int fd = mkstemp(tpl); 
1270   if (fd == -1) exit(1);
1271   unlink(tpl);
1272   if (fstat(fd, &st) != 0) exit(1);
1273   if ((st.st_mode & 0777) != 0600) exit(1);
1274   exit(0);
1276 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1277 samba_cv_HAVE_SECURE_MKSTEMP=no,
1278 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1279 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1280     AC_DEFINE(HAVE_SECURE_MKSTEMP)
1283 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1284 AC_TRY_RUN([#include <unistd.h>
1285 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1286 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1287 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1288     AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1291 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1292 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1293            samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1294 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1295     AC_DEFINE(HAVE_ROOT)
1296 else
1297     AC_MSG_WARN(running as non-root will disable some tests)
1300 ##################
1301 # look for a method of finding the list of network interfaces
1302 iface=no;
1303 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1304 AC_TRY_RUN([
1305 #define HAVE_IFACE_AIX 1
1306 #define AUTOCONF_TEST 1
1307 #include "confdefs.h"
1308 #include "${srcdir-.}/lib/interfaces.c"],
1309            samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1310 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1311     iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1314 if test $iface = no; then
1315 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1316 AC_TRY_RUN([
1317 #define HAVE_IFACE_IFCONF 1
1318 #define AUTOCONF_TEST 1
1319 #include "confdefs.h"
1320 #include "${srcdir-.}/lib/interfaces.c"],
1321            samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1322 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1323     iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1327 if test $iface = no; then
1328 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1329 AC_TRY_RUN([
1330 #define HAVE_IFACE_IFREQ 1
1331 #define AUTOCONF_TEST 1
1332 #include "confdefs.h"
1333 #include "${srcdir-.}/lib/interfaces.c"],
1334            samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1335 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1336     iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1341 ################################################
1342 # look for a method of setting the effective uid
1343 seteuid=no;
1344 if test $seteuid = no; then
1345 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1346 AC_TRY_RUN([
1347 #define AUTOCONF_TEST 1
1348 #define USE_SETRESUID 1
1349 #include "confdefs.h"
1350 #include "${srcdir-.}/lib/util_sec.c"],
1351            samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1352 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1353     seteuid=yes;AC_DEFINE(USE_SETRESUID)
1358 if test $seteuid = no; then
1359 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1360 AC_TRY_RUN([
1361 #define AUTOCONF_TEST 1
1362 #define USE_SETREUID 1
1363 #include "confdefs.h"
1364 #include "${srcdir-.}/lib/util_sec.c"],
1365            samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1366 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1367     seteuid=yes;AC_DEFINE(USE_SETREUID)
1371 if test $seteuid = no; then
1372 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1373 AC_TRY_RUN([
1374 #define AUTOCONF_TEST 1
1375 #define USE_SETEUID 1
1376 #include "confdefs.h"
1377 #include "${srcdir-.}/lib/util_sec.c"],
1378            samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1379 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1380     seteuid=yes;AC_DEFINE(USE_SETEUID)
1384 if test $seteuid = no; then
1385 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1386 AC_TRY_RUN([
1387 #define AUTOCONF_TEST 1
1388 #define USE_SETUIDX 1
1389 #include "confdefs.h"
1390 #include "${srcdir-.}/lib/util_sec.c"],
1391            samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1392 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1393     seteuid=yes;AC_DEFINE(USE_SETUIDX)
1398 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1399 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1400            samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1401 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1402     AC_DEFINE(HAVE_MMAP)
1405 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1406 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1407            samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1408 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1409     AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1412 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1413 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1414            samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1415 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1416     AC_DEFINE(HAVE_FCNTL_LOCK)
1419 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1420 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1421            samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1422 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1423     AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1425 else
1428 dnl Don't check for 64 bit fcntl locking if we know that the
1429 dnl glibc2.1 broken check has succeeded.
1430 dnl 
1432   AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1433   AC_TRY_RUN([
1434 #if defined(HAVE_UNISTD_H)
1435 #include <unistd.h>
1436 #endif
1437 #include <stdio.h>
1438 #include <stdlib.h>
1440 #ifdef HAVE_FCNTL_H
1441 #include <fcntl.h>
1442 #endif
1444 #ifdef HAVE_SYS_FCNTL_H
1445 #include <sys/fcntl.h>
1446 #endif
1447 main() { struct flock64 fl64;
1448 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1449 exit(0);
1450 #else
1451 exit(1);
1452 #endif
1454        samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1456   if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1457       AC_DEFINE(HAVE_STRUCT_FLOCK64)
1458   fi
1461 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1462 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1463            samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1464 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1465     AC_DEFINE(HAVE_TRUNCATED_SALT)
1468 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1469 AC_TRY_COMPILE([#include <sys/acl.h>
1470 #if defined(HAVE_RPCSVC_NIS_H)
1471 #include <rpcsvc/nis.h>
1472 #endif],
1473 [return 0;],
1474 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1475 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1476     AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1480 #################################################
1481 # check for smbwrapper support
1482 AC_MSG_CHECKING(whether to use smbwrapper)
1483 AC_ARG_WITH(smbwrapper,
1484 [  --with-smbwrapper     Include SMB wrapper support
1485   --without-smbwrapper  Don't include SMB wrapper support (default)],
1486 [ case "$withval" in
1487   yes)
1488     AC_MSG_RESULT(yes)
1489     AC_DEFINE(WITH_SMBWRAPPER)
1490         WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1492         if test x$ATTEMPT_WRAP32_BUILD = x; then
1493                 WRAP32=""
1494         else
1495                         WRAP32=bin/smbwrapper.32.$SHLIBEXT
1496         fi
1498 # Conditions under which smbwrapper should not be built.
1500         if test x$PICFLAG = x; then
1501            echo No support for PIC code - disabling smbwrapper and smbsh
1502            WRAP=""
1503            WRAP32=""
1504         elif test x$ac_cv_func_syscall = xno; then
1505            AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1506            WRAP=""
1507            WRAP32=""
1508         fi
1509     ;;
1510   *)
1511     AC_MSG_RESULT(no)
1512     ;;
1513   esac ],
1514   AC_MSG_RESULT(no)
1517 #################################################
1518 # check for the AFS filesystem
1519 AC_MSG_CHECKING(whether to use AFS)
1520 AC_ARG_WITH(afs,
1521 [  --with-afs     Include AFS support
1522   --without-afs  Don't include AFS support (default)],
1523 [ case "$withval" in
1524   yes)
1525     AC_MSG_RESULT(yes)
1526     AC_DEFINE(WITH_AFS)
1527     ;;
1528   *)
1529     AC_MSG_RESULT(no)
1530     ;;
1531   esac ],
1532   AC_MSG_RESULT(no)
1536 #################################################
1537 # check for the DFS auth system
1538 AC_MSG_CHECKING(whether to use DFS auth)
1539 AC_ARG_WITH(dfs,
1540 [  --with-dfs     Include DFS support
1541   --without-dfs  Don't include DFS support (default)],
1542 [ case "$withval" in
1543   yes)
1544     AC_MSG_RESULT(yes)
1545     AC_DEFINE(WITH_DFS)
1546     ;;
1547   *)
1548     AC_MSG_RESULT(no)
1549     ;;
1550   esac ],
1551   AC_MSG_RESULT(no)
1554 #################################################
1555 # check for Kerberos IV auth system
1556 AC_MSG_CHECKING(whether to use Kerberos IV)
1557 AC_ARG_WITH(krb4,
1558 [  --with-krb4=base-dir     Include Kerberos IV support
1559   --without-krb4          Don't include Kerberos IV support (default)],
1560 [   AC_MSG_RESULT(yes)
1561     AC_DEFINE(KRB4_AUTH)
1562     AC_CHECK_LIB(resolv, dn_expand)
1563     LIBS="$LIBS -lkrb -ldes"
1564     CFLAGS="$CFLAGS -I$withval/include"
1565     LDFLAGS="$LDFLAGS -L$withval/lib"],
1566   AC_MSG_RESULT(no)
1569 #################################################
1570 # check for Kerberos 5 auth system
1571 AC_MSG_CHECKING(whether to use Kerberos 5)
1572 AC_ARG_WITH(krb5,
1573 [  --with-krb5=base-dir     Include Kerberos 5 support
1574   --without-krb5          Don't include Kerberos 5 support (default)],
1575 [   AC_MSG_RESULT(yes)
1576     AC_DEFINE(KRB5_AUTH)
1577     LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1578     CFLAGS="$CFLAGS -I$withval/include"
1579     LDFLAGS="$LDFLAGS -L$withval/lib"],
1580   AC_MSG_RESULT(no)
1583 #################################################
1584 # check for automount support
1585 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1586 AC_ARG_WITH(automount,
1587 [  --with-automount     Include AUTOMOUNT support
1588   --without-automount  Don't include AUTOMOUNT support (default)],
1589 [ case "$withval" in
1590   yes)
1591     AC_MSG_RESULT(yes)
1592     AC_DEFINE(WITH_AUTOMOUNT)
1593     ;;
1594   *)
1595     AC_MSG_RESULT(no)
1596     ;;
1597   esac ],
1598   AC_MSG_RESULT(no)
1601 #################################################
1602 # check for smbmount support
1603 AC_MSG_CHECKING(whether to use SMBMOUNT)
1604 AC_ARG_WITH(smbmount,
1605 [  --with-smbmount     Include SMBMOUNT (Linux only) support
1606   --without-smbmount  Don't include SMBMOUNT support (default)],
1607 [ case "$withval" in
1608   yes)
1609     AC_MSG_RESULT(yes)
1610     AC_DEFINE(WITH_SMBMOUNT)
1611     MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1612     ;;
1613   *)
1614     AC_MSG_RESULT(no)
1615     MPROGS=
1616     ;;
1617   esac ],
1618   AC_MSG_RESULT(no)
1619   MPROGS=
1623 #################################################
1624 # check for a PAM password database
1625 with_pam_for_crypt=no
1626 AC_MSG_CHECKING(whether to use PAM password database)
1627 AC_ARG_WITH(pam,
1628 [  --with-pam     Include PAM password database support
1629   --without-pam  Don't include PAM password database support (default)],
1630 [ case "$withval" in
1631   yes)
1632     AC_MSG_RESULT(yes)
1633     AC_DEFINE(WITH_PAM)
1634     LIBS="$LIBS -lpam"
1635     with_pam_for_crypt=yes
1636     ;;
1637   *)
1638     AC_MSG_RESULT(no)
1639     ;;
1640   esac ],
1641   AC_MSG_RESULT(no)
1644 # we can't build a pam module if we don't have pam.
1645 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
1647 #################################################
1648 # check for pam_smbpass support
1649 AC_MSG_CHECKING(whether to use pam_smbpass)
1650 AC_ARG_WITH(pam_smbpass,
1651 [  --with-pam_smbpass     Include the smbpass PAM module
1652   --without-pam_smbpass  Don't include the smbpass PAM module (default)],
1653 [ case "$withval" in
1654   yes)
1655     AC_MSG_RESULT(yes)
1657 # Conditions under which pam_smbpass should not be built.
1659        if test x$PICFLAG = x; then
1660           AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
1661           PAM_MOD=""
1662        elif test x$ac_cv_lib_pam_pam_get_data = xno; then
1663           AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
1664           PAM_MOD=""
1665        else
1666           AC_DEFINE(WITH_PAM_SMBPASS)
1667           PAM_MOD="bin/pam_smbpass.so"
1668        fi
1669     ;;
1670   *)
1671     AC_MSG_RESULT(no)
1672     ;;
1673   esac ],
1674   AC_MSG_RESULT(no)
1678 ###############################################
1679 # test for where we get crypt() from, but only
1680 # if not using PAM
1681 if test $with_pam_for_crypt = no; then
1682 AC_CHECK_FUNCS(crypt)
1683 if test x"$ac_cv_func_crypt" = x"no"; then
1684     AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
1685         AC_DEFINE(HAVE_CRYPT)])
1690 #################################################
1691 # removed until we get the code actually working
1692 # --jeremy
1693 # check for a TDB password database
1694 # AC_MSG_CHECKING(whether to use TDB password database)
1695 #AC_ARG_WITH(tdbpwd,
1696 #[  --with-tdbpwd   Include TDB password database
1697 #  --without-tdbpwd  Don't include TDB password database (default)],
1698 #[ case "$withval" in
1699 #  yes)
1700 #    AC_MSG_RESULT(yes)
1701 #    AC_DEFINE(WITH_TDBPWD)
1702 #    AC_MSG_ERROR([TDB password database not supported in this version.])
1703 #    ;;
1704 #  *)
1705 #    AC_MSG_RESULT(no)
1706 #    ;;
1707 #  esac ],
1708 #  AC_MSG_RESULT(no)
1711 #################################################
1712 # removed until we get the code actually working
1713 # --jerry
1715 # check for a LDAP password database
1716 #AC_MSG_CHECKING(whether to use LDAP password database)
1717 #AC_ARG_WITH(ldap,
1718 #[  --with-ldap     Include LDAP support
1719 #  --without-ldap  Don't include LDAP support (default)],
1720 #[ case "$withval" in
1721 #  yes)
1722 #    AC_MSG_RESULT(yes)
1723 #    AC_DEFINE(WITH_LDAP)
1724 #    AC_MSG_ERROR([LDAP password database not supported in this version.])
1725 #    ;;
1726 #  *)
1727 #    AC_MSG_RESULT(no)
1728 #    ;;
1729 #  esac ],
1730 #  AC_MSG_RESULT(no)
1733 #################################################
1734 # check for a NISPLUS password database
1735 AC_MSG_CHECKING(whether to use NISPLUS password database)
1736 AC_ARG_WITH(nisplus,
1737 [  --with-nisplus     Include NISPLUS password database support
1738   --without-nisplus  Don't include NISPLUS password database support (default)],
1739 [ case "$withval" in
1740   yes)
1741     AC_MSG_RESULT(yes)
1742     AC_DEFINE(WITH_NISPLUS)
1743     ;;
1744   *)
1745     AC_MSG_RESULT(no)
1746     ;;
1747   esac ],
1748   AC_MSG_RESULT(no)
1751 #################################################
1752 # check for a NISPLUS_HOME support 
1753 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1754 AC_ARG_WITH(nisplus-home,
1755 [  --with-nisplus-home     Include NISPLUS_HOME support
1756   --without-nisplus-home  Don't include NISPLUS_HOME support (default)],
1757 [ case "$withval" in
1758   yes)
1759     AC_MSG_RESULT(yes)
1760     AC_DEFINE(WITH_NISPLUS_HOME)
1761     ;;
1762   *)
1763     AC_MSG_RESULT(no)
1764     ;;
1765   esac ],
1766   AC_MSG_RESULT(no)
1769 #################################################
1770 # check for the secure socket layer
1771 AC_MSG_CHECKING(whether to use SSL)
1772 AC_ARG_WITH(ssl,
1773 [  --with-ssl     Include SSL support
1774   --without-ssl  Don't include SSL support (default)
1775   --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl)],
1776 [ case "$withval" in
1777   yes)
1778     AC_MSG_RESULT(yes)
1779     AC_DEFINE(WITH_SSL)
1780     withval="/usr/local/ssl"     # default
1782     if test "${with_sslinc+set}" = set; then
1784         withval="$with_sslinc"
1785         case "$withval" in
1786         yes|no)
1787           echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1788           CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1789           LIBS="-lssl -lcrypto $LIBS"
1790           LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
1791         ;;
1792         * )
1793           CFLAGS="-I${withval}/include $CFLAGS"
1794           LIBS="-lssl -lcrypto $LIBS"
1795           LDFLAGS="-L${withval}/lib $LDFLAGS"
1796         ;;
1797         esac
1799     else
1801         CFLAGS="-I/usr/local/ssl/include $CFLAGS"   
1802         LIBS="-lssl -lcrypto $LIBS"
1803         LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1805     fi
1807     if test ! -d ${withval}; then
1808       echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1809       exit 1
1810     fi 
1812     CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS"  # Damn, SSLeay defines its own
1814     ;;
1815   *)
1816     AC_MSG_RESULT(no)
1817     ;;
1818   esac ],
1819   AC_MSG_RESULT(no)
1822 #################################################
1823 # check for syslog logging
1824 AC_MSG_CHECKING(whether to use syslog logging)
1825 AC_ARG_WITH(syslog,
1826 [  --with-syslog     Include experimental SYSLOG support
1827   --without-syslog  Don't include SYSLOG support (default)],
1828 [ case "$withval" in
1829   yes)
1830     AC_MSG_RESULT(yes)
1831     AC_DEFINE(WITH_SYSLOG)
1832     ;;
1833   *)
1834     AC_MSG_RESULT(no)
1835     ;;
1836   esac ],
1837   AC_MSG_RESULT(no)
1840 #################################################
1841 # check for a shared memory profiling support
1842 AC_MSG_CHECKING(whether to use profiling)
1843 AC_ARG_WITH(profile,
1844 [  --with-profile     Include profile support
1845   --without-profile  Don't include profile support (default)],
1846 [ case "$withval" in
1847   yes)
1848     AC_MSG_RESULT(yes)
1849     AC_DEFINE(WITH_PROFILE)
1850     ;;
1851   *)
1852     AC_MSG_RESULT(no)
1853     ;;
1854   esac ],
1855   AC_MSG_RESULT(no)
1859 #################################################
1860 # check for experimental netatalk resource fork support
1861 AC_MSG_CHECKING(whether to support netatalk)
1862 AC_ARG_WITH(netatalk,
1863 [  --with-netatalk     Include experimental Netatalk support
1864   --without-netatalk  Don't include experimental Netatalk support (default)],
1865 [ case "$withval" in
1866   yes)
1867     AC_MSG_RESULT(yes)
1868     AC_DEFINE(WITH_NETATALK)
1869     ;;
1870   *)
1871     AC_MSG_RESULT(no)
1872     ;;
1873   esac ],
1874   AC_MSG_RESULT(no)
1877 #################################################
1878 # check for experimental disk-quotas support
1879 QUOTAOBJS=smbd/noquotas.o
1881 AC_MSG_CHECKING(whether to support disk-quotas)
1882 AC_ARG_WITH(quotas,
1883 [  --with-quotas     Include experimental disk-quota support
1884   --without-quotas  Don't include experimental disk-quota support (default)],
1885 [ case "$withval" in
1886   yes)
1887     AC_MSG_RESULT(yes)
1888     QUOTAOBJS=smbd/quotas.o
1889     ;;
1890   *)
1891     AC_MSG_RESULT(no)
1892     ;;
1893   esac ],
1894   AC_MSG_RESULT(no)
1896 AC_SUBST(QUOTAOBJS)
1898 #################################################
1899 # check for experimental utmp accounting
1901 AC_MSG_CHECKING(whether to support utmp accounting)
1902 AC_ARG_WITH(utmp,
1903 [  --with-utmp     Include experimental utmp accounting
1904   --without-utmp  Don't include experimental utmp accounting (default)],
1905 [ case "$withval" in
1906   yes)
1907     AC_MSG_RESULT(yes)
1908     AC_DEFINE(WITH_UTMP)
1909     ;;
1910   *)
1911     AC_MSG_RESULT(no)
1912     ;;
1913   esac ],
1914   AC_MSG_RESULT(no)
1917 #################################################
1918 # check for MS Dfs support
1920 AC_MSG_CHECKING(whether to support Microsoft Dfs)
1921 AC_ARG_WITH(msdfs,
1922 [  --with-msdfs         Include MS Dfs support
1923   --without-msdfs       Don't include MS Dfs support (default)],
1924 [ case "$withval" in
1925   yes)
1926      AC_MSG_RESULT(yes)
1927      AC_DEFINE(WITH_MSDFS)
1928      ;;
1929   *)
1930     AC_MSG_RESULT(no)
1931     ;;
1932   esac ],
1933   AC_MSG_RESULT(no)
1936 #################################################
1937 # check for Samba VFS support
1939 AC_MSG_CHECKING(whether to support the experimantal Samba vfs)
1940 AC_ARG_WITH(vfs,
1941 [  --with-vfs           Include Samba vfs support
1942   --without-vfs Don't include Samba vfs support (default)],
1943 [ case "$withval" in
1944   yes)
1945      AC_MSG_RESULT(yes)
1946      AC_DEFINE(WITH_VFS)
1947      ;;
1948   *)
1949     AC_MSG_RESULT(no)
1950     ;;
1951   esac ],
1952   AC_MSG_RESULT(no)
1955 #################################################
1956 # these tests are taken from the GNU fileutils package
1957 AC_CHECKING(how to get filesystem space usage)
1958 space=no
1960 # Test for statvfs64.
1961 if test $space = no; then
1962   # SVR4
1963   AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
1964   [AC_TRY_RUN([
1965 #if defined(HAVE_UNISTD_H)
1966 #include <unistd.h>
1967 #endif
1968 #include <sys/types.h>
1969 #include <sys/statvfs.h>
1970   main ()
1971   {
1972     struct statvfs64 fsd;
1973     exit (statvfs64 (".", &fsd));
1974   }],
1975   fu_cv_sys_stat_statvfs64=yes,
1976   fu_cv_sys_stat_statvfs64=no,
1977   fu_cv_sys_stat_statvfs64=cross)])
1978   if test $fu_cv_sys_stat_statvfs64 = yes; then
1979     space=yes
1980     AC_DEFINE(STAT_STATVFS64)
1981   fi
1984 # Perform only the link test since it seems there are no variants of the
1985 # statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs)
1986 # because that got a false positive on SCO OSR5.  Adding the declaration
1987 # of a `struct statvfs' causes this test to fail (as it should) on such
1988 # systems.  That system is reported to work fine with STAT_STATFS4 which
1989 # is what it gets when this test fails.
1990 if test $space = no; then
1991   # SVR4
1992   AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
1993                  [AC_TRY_LINK([#include <sys/types.h>
1994 #include <sys/statvfs.h>],
1995                               [struct statvfs fsd; statvfs (0, &fsd);],
1996                               fu_cv_sys_stat_statvfs=yes,
1997                               fu_cv_sys_stat_statvfs=no)])
1998   if test $fu_cv_sys_stat_statvfs = yes; then
1999     space=yes
2000     AC_DEFINE(STAT_STATVFS)
2001   fi
2004 if test $space = no; then
2005   # DEC Alpha running OSF/1
2006   AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2007   AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2008   [AC_TRY_RUN([
2009 #include <sys/param.h>
2010 #include <sys/types.h>
2011 #include <sys/mount.h>
2012   main ()
2013   {
2014     struct statfs fsd;
2015     fsd.f_fsize = 0;
2016     exit (statfs (".", &fsd, sizeof (struct statfs)));
2017   }],
2018   fu_cv_sys_stat_statfs3_osf1=yes,
2019   fu_cv_sys_stat_statfs3_osf1=no,
2020   fu_cv_sys_stat_statfs3_osf1=no)])
2021   AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2022   if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2023     space=yes
2024     AC_DEFINE(STAT_STATFS3_OSF1)
2025   fi
2028 if test $space = no; then
2029 # AIX
2030   AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2031 member (AIX, 4.3BSD)])
2032   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2033   [AC_TRY_RUN([
2034 #ifdef HAVE_SYS_PARAM_H
2035 #include <sys/param.h>
2036 #endif
2037 #ifdef HAVE_SYS_MOUNT_H
2038 #include <sys/mount.h>
2039 #endif
2040 #ifdef HAVE_SYS_VFS_H
2041 #include <sys/vfs.h>
2042 #endif
2043   main ()
2044   {
2045   struct statfs fsd;
2046   fsd.f_bsize = 0;
2047   exit (statfs (".", &fsd));
2048   }],
2049   fu_cv_sys_stat_statfs2_bsize=yes,
2050   fu_cv_sys_stat_statfs2_bsize=no,
2051   fu_cv_sys_stat_statfs2_bsize=no)])
2052   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2053   if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2054     space=yes
2055     AC_DEFINE(STAT_STATFS2_BSIZE)
2056   fi
2059 if test $space = no; then
2060 # SVR3
2061   AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2062   AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2063   [AC_TRY_RUN([#include <sys/types.h>
2064 #include <sys/statfs.h>
2065   main ()
2066   {
2067   struct statfs fsd;
2068   exit (statfs (".", &fsd, sizeof fsd, 0));
2069   }],
2070     fu_cv_sys_stat_statfs4=yes,
2071     fu_cv_sys_stat_statfs4=no,
2072     fu_cv_sys_stat_statfs4=no)])
2073   AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2074   if test $fu_cv_sys_stat_statfs4 = yes; then
2075     space=yes
2076     AC_DEFINE(STAT_STATFS4)
2077   fi
2080 if test $space = no; then
2081 # 4.4BSD and NetBSD
2082   AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2083 member (4.4BSD and NetBSD)])
2084   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2085   [AC_TRY_RUN([#include <sys/types.h>
2086 #ifdef HAVE_SYS_PARAM_H
2087 #include <sys/param.h>
2088 #endif
2089 #ifdef HAVE_SYS_MOUNT_H
2090 #include <sys/mount.h>
2091 #endif
2092   main ()
2093   {
2094   struct statfs fsd;
2095   fsd.f_fsize = 0;
2096   exit (statfs (".", &fsd));
2097   }],
2098   fu_cv_sys_stat_statfs2_fsize=yes,
2099   fu_cv_sys_stat_statfs2_fsize=no,
2100   fu_cv_sys_stat_statfs2_fsize=no)])
2101   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2102   if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2103     space=yes
2104     AC_DEFINE(STAT_STATFS2_FSIZE)
2105   fi
2108 if test $space = no; then
2109   # Ultrix
2110   AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2111   AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2112   [AC_TRY_RUN([#include <sys/types.h>
2113 #ifdef HAVE_SYS_PARAM_H
2114 #include <sys/param.h>
2115 #endif
2116 #ifdef HAVE_SYS_MOUNT_H
2117 #include <sys/mount.h>
2118 #endif
2119 #ifdef HAVE_SYS_FS_TYPES_H
2120 #include <sys/fs_types.h>
2121 #endif
2122   main ()
2123   {
2124   struct fs_data fsd;
2125   /* Ultrix's statfs returns 1 for success,
2126      0 for not mounted, -1 for failure.  */
2127   exit (statfs (".", &fsd) != 1);
2128   }],
2129   fu_cv_sys_stat_fs_data=yes,
2130   fu_cv_sys_stat_fs_data=no,
2131   fu_cv_sys_stat_fs_data=no)])
2132   AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2133   if test $fu_cv_sys_stat_fs_data = yes; then
2134     space=yes
2135     AC_DEFINE(STAT_STATFS2_FS_DATA)
2136   fi
2140 # As a gating factor for large file support, in order to
2141 # use <4GB files we must have the following minimal support
2142 # available.
2143 # long long, and a 64 bit off_t or off64_t.
2144 # If we don't have all of these then disable large
2145 # file support.
2147 AC_MSG_CHECKING(checking if large file support can be enabled)
2148 AC_TRY_COMPILE([
2149 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2150 #include <sys/types.h>
2151 #else
2152 __COMPILE_ERROR_
2153 #endif
2155 [int i],
2156 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2157 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2158     AC_MSG_RESULT(yes)
2159     AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2160 else
2161     AC_MSG_RESULT(no)
2164 AC_ARG_WITH(spinlocks, [  --with-spinlocks        use spin locks instead of fcntl locks ])
2165 if test "x$with_spinlocks" = "xyes"; then
2166     AC_DEFINE(USE_SPINLOCKS)
2168     case "$host_cpu" in
2169         sparc)
2170             AC_DEFINE(SPARC_SPINLOCKS)
2171             ;;
2173         i386|i486|i586|i686)
2174             AC_DEFINE(INTEL_SPINLOCKS)
2175             ;;
2177         mips)
2178             AC_DEFINE(MIPS_SPINLOCKS)
2179             ;;
2181         powerpc)
2182             AC_DEFINE(POWERPC_SPINLOCKS)
2183             ;;
2184     esac
2187 #################################################
2188 # check for ACL support
2190 AC_MSG_CHECKING(whether to support ACLs)
2191 AC_ARG_WITH(acl-support,
2192 [  --with-acl-support        Include ACL support
2193   --without-acl-support  Don't include ACL support (default)],
2194 [ case "$withval" in
2195   yes)
2197                 case "$host_os" in
2198                 *sysv5*)
2199                         AC_MSG_RESULT(Using UnixWare ACLs)
2200                         AC_DEFINE(HAVE_UNIXWARE_ACLS)
2201                         ;;
2202                 *solaris*)
2203                         AC_MSG_RESULT(Using solaris ACLs)
2204                         AC_DEFINE(HAVE_SOLARIS_ACLS)
2205                         ;;
2206                 *irix*)
2207                         AC_MSG_RESULT(Using IRIX ACLs)
2208                         AC_DEFINE(HAVE_IRIX_ACLS)
2209                         ;;
2210                 *aix*)
2211                         AC_MSG_RESULT(Using AIX ACLs)
2212                         AC_DEFINE(HAVE_AIX_ACLS)
2213                         ;;
2214                 *)
2215                     AC_CHECK_LIB(acl,acl_get_file)
2216                         AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2217                         AC_TRY_LINK([#include <sys/types.h>
2218 #include <sys/acl.h>],
2219 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2220 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2221                         if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2222                             AC_MSG_RESULT(Using posix ACLs)
2223                             AC_DEFINE(HAVE_POSIX_ACLS)
2224                                 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2225                                 AC_TRY_LINK([#include <sys/types.h>
2226 #include <sys/acl.h>],
2227 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2228 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2229                                 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2230                                         AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2231                                 fi
2232                         fi
2233                         AC_CACHE_CHECK([for XFS ACL support],samba_cv_HAVE_XFS_ACLS,[
2234                         AC_TRY_COMPILE([#include <sys/types.h>
2235 #include <acl/acl.h>],
2236 [ char test_str[13] = SGI_ACL_FILE; ],
2237 samba_cv_HAVE_XFS_ACLS=yes,samba_cv_XFS_POSIX_ACLS=no)])
2238                         if test x"$samba_cv_HAVE_XFS_ACLS" = x"yes"; then
2239                                 AC_MSG_RESULT(Using XFS ACLs)
2240                                 AC_DEFINE(HAVE_XFS_ACLS)
2241                         fi
2242                         ;;
2243                 esac
2244                 ;;
2245   *)
2246     AC_MSG_RESULT(no)
2247         AC_DEFINE(HAVE_NO_ACLS)
2248     ;;
2249   esac ],
2250   AC_DEFINE(HAVE_NO_ACLS)
2251   AC_MSG_RESULT(no)
2254 #################################################
2255 # check for the historical SAMBA installation
2257 if test "x$prefix" = xNONE -a "$sbindir" = "\${exec_prefix}/sbin"; then
2258         # Put all binaries under the /usr/local/samba/bin directory.
2259         sbindir="$bindir"
2262 echo "checking configure summary"
2263 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2264            echo "configure OK";,
2265            AC_MSG_ERROR([summary failure. Aborting config]),:)
2267 builddir=`pwd`
2268 AC_SUBST(builddir)
2270 AC_OUTPUT(include/stamp-h Makefile)