This commit was manufactured by cvs2svn to create branch 'SAMBA_2_2'.
[Samba/ekacnet.git] / source / configure.in
blob867b64e57fa699f50f7af4b66e4c33fede344bfc
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}/cache/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
142 dnl Check if C compiler understands -c and -o at the same time
143 AC_PROG_CC_C_O
144 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
145       BROKEN_CC=
146 else
147       BROKEN_CC=#
149 AC_SUBST(BROKEN_CC)
151 dnl Check if the C compiler understands volatile (it should, being ANSI).
152 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
153     AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
154         samba_cv_volatile=yes,samba_cv_volatile=no)])
155 if test x"$samba_cv_volatile" = x"yes"; then
156    AC_DEFINE(HAVE_VOLATILE)
161 AC_CANONICAL_SYSTEM
163 dnl Add #include for broken IRIX header files
164   case "$host_os" in
165         *irix6*) AC_ADD_INCLUDE(<standards.h>)
166         ;;
167 esac
169 AC_VALIDATE_CACHE_SYSTEM_TYPE
172 # Config CPPFLAG settings for strange OS's that must be set
173 # before other tests.
175 case "$host_os" in
176 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
177     *hpux*)
178       AC_PROG_CC_FLAG(Ae)
179       if test $ac_cv_prog_cc_Ae = yes; then
180         CPPFLAGS="$CPPFLAGS -Ae"
181       fi
183 # Defines needed for HPUX support.
184 # HPUX has bigcrypt but (sometimes?) doesn't use it for
185 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
187       case `uname -r` in
188                         *9*|*10*)
189                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
190                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
191                                 ;;
192                         *11*)
193                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
194                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
195                                 ;;
196       esac
197       ;;
199 # AIX4.x doesn't even admit to having large
200 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
202     *aix4*)
203           AC_MSG_RESULT([enabling large file support])
204       CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
205       ;;    
207 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
208 # to the existance of large files..
209 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
210 # recommendations on large file support, however it makes the
211 # compile work using gcc 2.7 and 2.8, whereas using the Sun
212 # recommendation makes the compile fail on gcc2.7. JRA.
214         *solaris*)
215                 case `uname -r` in
216                         5.6*|5.7*)
217                         AC_MSG_RESULT([enabling large file support])
218                         if test "$ac_cv_prog_gcc" = yes; then
219                                 ${CC-cc} -v >conftest.c 2>&1
220                                 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
221                                 rm -fr conftest.c
222                                 case "$ac_cv_gcc_compiler_version_number" in
223                                         *"gcc version 2.6"*|*"gcc version 2.7"*)
224                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
225                                                 ;;
226                                         *)
227                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
228                                                 ;;
229                                 esac
230                         else
231                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
232                         fi
233                         ;;
234                 esac
235                 ;;
237 # Tests needed for SINIX large file support.
239     *sysv4*)
240       if test $host = mips-sni-sysv4 ; then
241         AC_MSG_CHECKING([for LFS support])
242         old_CPPFLAGS="$CPPFLAGS"
243         CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
244         AC_TRY_RUN([
245 #include <unistd.h>
246 main () {
247 #if _LFS64_LARGEFILE == 1
248 exit(0);
249 #else
250 exit(1);
251 #endif
252 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
253         CPPFLAGS="$old_CPPFLAGS"
254         if test x$SINIX_LFS_SUPPORT = xyes ; then
255           CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
256           CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
257           LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
258           LIBS="`getconf LFS64_LIBS` $LIBS"
259         fi
260       AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
261       fi
262     ;;
264 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
266     *linux*)
267         AC_MSG_CHECKING([for LFS support])
268         old_CPPFLAGS="$CPPFLAGS"
269         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
270        AC_TRY_RUN([
271 #include <unistd.h>
272 #include <sys/utsname.h>
273 main() {
274 #if _LFS64_LARGEFILE == 1
275        struct utsname uts;
276        char *release;
277        int major, minor;
279        /* Ensure this is glibc 2.2 or higher */
280 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
281        int libc_major = __GLIBC__;
282        int libc_minor = __GLIBC_MINOR__;
284        if (libc_major < 2)
285               exit(1);
286        if (libc_minor < 2)
287               exit(1);
288 #endif
290        /* Ensure this is kernel 2.4 or higher */
292        uname(&uts);
293        release = uts.release;
294        major = atoi(strsep(&release, "."));
295        minor = atoi(strsep(&release, "."));
297        if (major > 2 || (major == 2 && minor > 3))
298                exit(0);
299        exit(1);
300 #else
301        exit(1);
302 #endif
304 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
305         CPPFLAGS="$old_CPPFLAGS"
306         if test x$LINUX_LFS_SUPPORT = xyes ; then
307           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
308         fi
309        AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
310                 ;;
312     *hurd*)
313         AC_MSG_CHECKING([for LFS support])
314         old_CPPFLAGS="$CPPFLAGS"
315         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
316         AC_TRY_RUN([
317 #include <unistd.h>
318 main () {
319 #if _LFS64_LARGEFILE == 1
320 exit(0);
321 #else
322 exit(1);
323 #endif
324 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
325         CPPFLAGS="$old_CPPFLAGS"
326         if test x$GLIBC_LFS_SUPPORT = xyes ; then
327           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
328         fi
329       AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
330     ;;
332 esac
334 AC_INLINE
335 AC_HEADER_STDC
336 AC_HEADER_DIRENT
337 AC_HEADER_TIME
338 AC_HEADER_SYS_WAIT
339 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
340 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
341 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
342 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)
343 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
344 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
345 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
346 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.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 nss_common.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)
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 socklen_t type],samba_cv_socklen_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 <sys/socket.h>],[socklen_t i = 0],
411     samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
412 if test x"$samba_cv_socklen_t" = x"yes"; then
413    AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
416 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
417     AC_TRY_COMPILE([
418 #include <sys/types.h>
419 #if STDC_HEADERS
420 #include <stdlib.h>
421 #include <stddef.h>
422 #endif
423 #include <signal.h>],[sig_atomic_t i = 0],
424         samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
425 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
426    AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
429 # stupid headers have the functions but no declaration. grrrr.
430 AC_HAVE_DECL(errno, [#include <errno.h>])
431 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
432 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
433 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
434 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
435 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
436 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
438 # and glibc has setresuid under linux but the function does
439 # nothing until kernel 2.1.44! very dumb.
440 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
441     AC_TRY_RUN([#include <errno.h>
442 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
443         samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
444 if test x"$samba_cv_have_setresuid" = x"yes"; then
445     AC_DEFINE(HAVE_SETRESUID)
448 # Do the same check for setresguid...
450 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
451     AC_TRY_RUN([#include <unistd.h>
452 #include <errno.h>
453 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
454         samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
455 if test x"$samba_cv_have_setresgid" = x"yes"; then
456     AC_DEFINE(HAVE_SETRESGID)
459 AC_FUNC_MEMCMP
461 ###############################################
462 # Readline included by default unless explicitly asked not to
463 test "${with_readline+set}" != "set" && with_readline=yes
465 # test for where we get readline() from
466 AC_MSG_CHECKING(whether to use readline)
467 AC_ARG_WITH(readline,
468 [  --with-readline[=DIR]   Look for readline include/libs in DIR
469   --without-readline      Don't include readline support],
470 [  case "$with_readline" in
471   yes)
472     AC_MSG_RESULT(yes)
474     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
475     AC_CHECK_HEADERS(readline/history.h)
477     AC_CHECK_HEADERS(readline.h readline/readline.h,[
478       for termlib in ncurses curses termcap terminfo termlib; do
479        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
480       done
481       AC_CHECK_LIB(readline, rl_callback_handler_install,
482        [TERMLIBS="-lreadline $TERMLIBS"
483        AC_DEFINE(HAVE_LIBREADLINE)
484        break], [TERMLIBS=], $TERMLIBS)])
485     ;;
486   no)
487     AC_MSG_RESULT(no)
488     ;;
489   *)
490     AC_MSG_RESULT(yes)
492     # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
493     # alternate readline path
494     _ldflags=${LDFLAGS}
495     _cppflags=${CPPFLAGS}
497     # Add additional search path
498     LDFLAGS="-L$with_readline/lib $LDFLAGS"
499     CPPFLAGS="-I$with_readline/include $CPPFLAGS"
501     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
502     AC_CHECK_HEADERS(readline/history.h)
504     AC_CHECK_HEADERS(readline.h readline/readline.h,[
505       for termlib in ncurses curses termcap terminfo termlib; do
506        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
507       done
508       AC_CHECK_LIB(readline, rl_callback_handler_install,
509        [TERMLDFLAGS="-L$with_readline/lib"
510        TERMCPPFLAGS="-I$with_readline/include"
511        CPPFLAGS="-I$with_readline/include $CPPFLAGS"
512        TERMLIBS="-lreadline $TERMLIBS"
513        AC_DEFINE(HAVE_LIBREADLINE)
514        break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
516     LDFLAGS=$_ldflags
517     ;;
518   esac],
519   AC_MSG_RESULT(no)
521 AC_SUBST(TERMLIBS)
522 AC_SUBST(TERMLDFLAGS)
524 # The following test taken from the cvs sources
525 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
526 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
527 # libsocket.so which has a bad implementation of gethostbyname (it
528 # only looks in /etc/hosts), so we only look for -lsocket if we need
529 # it.
530 AC_CHECK_FUNCS(connect)
531 if test x"$ac_cv_func_connect" = x"no"; then
532     case "$LIBS" in
533     *-lnsl*) ;;
534     *) AC_CHECK_LIB(nsl_s, printf) ;;
535     esac
536     case "$LIBS" in
537     *-lnsl*) ;;
538     *) AC_CHECK_LIB(nsl, printf) ;;
539     esac
540     case "$LIBS" in
541     *-lsocket*) ;;
542     *) AC_CHECK_LIB(socket, connect) ;;
543     esac
544     case "$LIBS" in
545     *-linet*) ;;
546     *) AC_CHECK_LIB(inet, connect) ;;
547     esac
548     dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
549     dnl has been cached.
550     if test x"$ac_cv_lib_socket_connect" = x"yes" || 
551        test x"$ac_cv_lib_inet_connect" = x"yes"; then
552         # ac_cv_func_connect=yes
553         # don't!  it would cause AC_CHECK_FUNC to succeed next time configure is run
554         AC_DEFINE(HAVE_CONNECT)
555     fi
558 ###############################################
559 # test for where we get get_yp_default_domain() from
560 AC_CHECK_FUNCS(yp_get_default_domain)
561 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
562         AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
563         AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)]) 
566 # Check if we have execl, if not we need to compile smbrun.
567 AC_CHECK_FUNCS(execl)
568 if test x"$ac_cv_func_execl" = x"no"; then
569     RUNPROG="bin/smbrun"
570 else
571     RUNPROG=""
574 AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown fchown chmod fchmod chroot)
575 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset)
576 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
577 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr setnetgrent getnetgrent endnetgrent)
578 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf)
579 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
580 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
581 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
582 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
584 # syscall() is needed for smbwrapper.
585 AC_CHECK_FUNCS(syscall)
587 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
588 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
589 AC_CHECK_FUNCS(__getcwd _getcwd)
590 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
591 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
592 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
593 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
594 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
595 AC_CHECK_FUNCS(_write __write _fork __fork)
596 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
597 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
598 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
599 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
600 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
603 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
606 if test x$ac_cv_func_stat64 = xno ; then
607   AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
608   AC_TRY_LINK([
609 #if defined(HAVE_UNISTD_H)
610 #include <unistd.h>
611 #endif
612 #include <sys/stat.h>
613 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
614   AC_MSG_RESULT([$ac_cv_func_stat64])
615   if test x$ac_cv_func_stat64 = xyes ; then
616     AC_DEFINE(HAVE_STAT64)
617   fi
620 if test x$ac_cv_func_lstat64 = xno ; then
621   AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
622   AC_TRY_LINK([
623 #if defined(HAVE_UNISTD_H)
624 #include <unistd.h>
625 #endif
626 #include <sys/stat.h>
627 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
628   AC_MSG_RESULT([$ac_cv_func_lstat64])
629   if test x$ac_cv_func_lstat64 = xyes ; then
630     AC_DEFINE(HAVE_LSTAT64)
631   fi
634 if test x$ac_cv_func_fstat64 = xno ; then
635   AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
636   AC_TRY_LINK([
637 #if defined(HAVE_UNISTD_H)
638 #include <unistd.h>
639 #endif
640 #include <sys/stat.h>
641 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
642   AC_MSG_RESULT([$ac_cv_func_fstat64])
643   if test x$ac_cv_func_fstat64 = xyes ; then
644     AC_DEFINE(HAVE_FSTAT64)
645   fi
649 # If no strcasecmp, check for it in some known places
650 # It is in -lresolv on ReliantUNIX and UnixWare
651 #   -lresolve *must* follow -lnsl for name resolution to work properly
654 if test x$ac_cv_func_strcasecmp = xno ; then
655         AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
656                 AC_DEFINE(HAVE_STRCASECMP))
660 # Check for the functions putprpwnam, set_auth_parameters,
661 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
662 # Needed for OSF1 and HPUX.
665 AC_LIBTESTFUNC(security, putprpwnam)
666 AC_LIBTESTFUNC(sec, putprpwnam)
668 AC_LIBTESTFUNC(security, set_auth_parameters)
669 AC_LIBTESTFUNC(sec, set_auth_parameters)
671 # UnixWare 7.x has its getspnam in -lgen
672 AC_LIBTESTFUNC(gen, getspnam)
674 AC_LIBTESTFUNC(security, getspnam)
675 AC_LIBTESTFUNC(sec, getspnam)
677 AC_LIBTESTFUNC(security, bigcrypt)
678 AC_LIBTESTFUNC(sec, bigcrypt)
680 AC_LIBTESTFUNC(security, getprpwnam)
681 AC_LIBTESTFUNC(sec, getprpwnam)
683 # this bit needs to be modified for each OS that is suported by
684 # smbwrapper. You need to specify how to created a shared library and
685 # how to compile C code to produce PIC object files
687 # these are the defaults, good for lots of systems
688 HOST_OS="$host_os"
689 LDSHFLAGS="-shared"
690 PICFLAG=""
691 SHLIBEXT="so"
693 # and these are for particular systems
694 case "$host_os" in
695                 *linux*)   AC_DEFINE(LINUX);;
696                 *solaris*) AC_DEFINE(SUNOS5)
697                                         LDSHFLAGS="-G"
698                 ;;
699                 *sunos*) AC_DEFINE(SUNOS4)
700                                         LDSHFLAGS=""
701                 ;;
702                 *bsd*) LDSHFLAGS="-shared -Bshareable"
703                 ;;
704                 *irix*) AC_DEFINE(IRIX)
705                         case "$host_os" in
706                         *irix6*) AC_DEFINE(IRIX6)
707                         ;;
708                         esac
709                         ATTEMPT_WRAP32_BUILD=yes
710                 ;;
711                 *aix*) AC_DEFINE(AIX);;
712                 *hpux*) AC_DEFINE(HPUX)
713                         SHLIBEXT="sl"
714                         # Use special PIC flags for the native HP-UX compiler.
715                         if test $ac_cv_prog_cc_Ae = yes; then
716                                 LDSHFLAGS="-b"
717                                 PICFLAG="+z"
718                         fi
719                 ;;
720                 *qnx*) AC_DEFINE(QNX);;
721                 *osf*) AC_DEFINE(OSF1);;
722                 *sco*) AC_DEFINE(SCO);;
723                 *next2*) AC_DEFINE(NEXT2);;
724                 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
725                 *sysv4*)
726                         case "$host" in
727                                 *-univel-*)     if [ test "$GCC" != yes ]; then
728                                                                         AC_DEFINE(HAVE_MEMSET)
729                                                                 fi
730                                                                 LDSHFLAGS="-G"
731                                 ;;
732                                 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
733                         esac
734                         ;;
735                 *sysv5*)
736                         if [ test "$GCC" != yes ]; then
737                                 AC_DEFINE(HAVE_MEMSET)
738                         fi
739                         LDSHFLAGS="-G"
740                         ;;
741 esac
743 # try to work out how to produce pic code with this compiler
744 AC_PROG_CC_FLAG(fpic)
745 if test $ac_cv_prog_cc_fpic = yes; then
746     PICFLAG="-fpic";
748 if test x$PICFLAG = x; then
749   AC_PROG_CC_FLAG(KPIC)
750   if test $ac_cv_prog_cc_KPIC = yes; then
751     PICFLAG="-KPIC";
752   fi
754 if test x$PICFLAG = x; then
755   AC_PROG_CC_FLAG(Kpic)
756   if test $ac_cv_prog_cc_Kpic = yes; then
757     PICFLAG="-Kpic";
758   fi
761 ################
763 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
764 AC_TRY_RUN([#include <stdio.h>
765 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
766 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
767 if test x"$samba_cv_have_longlong" = x"yes"; then
768     AC_DEFINE(HAVE_LONGLONG)
772 # Check if the compiler supports the LL prefix on long long integers.
773 # AIX needs this.
775 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
776     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
777         samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
778 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
779    AC_DEFINE(COMPILER_SUPPORTS_LL)
782   
783 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
784 AC_TRY_RUN([#include <stdio.h>
785 #include <sys/stat.h>
786 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
787 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
788 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
789     AC_DEFINE(SIZEOF_OFF_T,8)
792 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
793 AC_TRY_RUN([
794 #if defined(HAVE_UNISTD_H)
795 #include <unistd.h>
796 #endif
797 #include <stdio.h>
798 #include <sys/stat.h>
799 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
800 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
801 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
802     AC_DEFINE(HAVE_OFF64_T)
805 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
806 AC_TRY_RUN([#include <stdio.h>
807 #include <sys/stat.h>
808 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
809 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
810 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
811     AC_DEFINE(SIZEOF_INO_T,8)
814 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
815 AC_TRY_RUN([
816 #if defined(HAVE_UNISTD_H)
817 #include <unistd.h>
818 #endif
819 #include <stdio.h>
820 #include <sys/stat.h>
821 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
822 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
823 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
824     AC_DEFINE(HAVE_INO64_T)
827 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
828 AC_TRY_COMPILE([
829 #if defined(HAVE_UNISTD_H)
830 #include <unistd.h>
831 #endif
832 #include <sys/types.h>
833 #include <dirent.h>],
834 [struct dirent64 de;],
835 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
836 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
837     AC_DEFINE(HAVE_STRUCT_DIRENT64)
840 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
841 AC_TRY_RUN([#include <stdio.h>
842 main() { char c; c=250; exit((c > 0)?0:1); }],
843 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
844 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
845     AC_DEFINE(HAVE_UNSIGNED_CHAR)
848 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
849 AC_TRY_COMPILE([#include <sys/types.h>
850 #include <sys/socket.h>
851 #include <netinet/in.h>],
852 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
853 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
854 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
855     AC_DEFINE(HAVE_SOCK_SIN_LEN)
858 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
859 AC_TRY_COMPILE([#include <sys/types.h>
860 #include <dirent.h>
861 void seekdir(DIR *d, long loc) { return; }],[return 0;],
862 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
863 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
864     AC_DEFINE(SEEKDIR_RETURNS_VOID)
867 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
868 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
869 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
870 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
871     AC_DEFINE(HAVE_FILE_MACRO)
874 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
875 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
876 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
877 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
878     AC_DEFINE(HAVE_FUNCTION_MACRO)
881 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
882 AC_TRY_RUN([
883 #include <sys/time.h>
884 #include <unistd.h>
885 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
886            samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
887 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
888     AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
891 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
892 AC_TRY_RUN([
893 #include <sys/types.h>
894 #include <stdarg.h>
895 void foo(const char *format, ...) { 
896        va_list ap;
897        int len;
898        char buf[5];
900        va_start(ap, format);
901        len = vsnprintf(0, 0, format, ap);
902        va_end(ap);
903        if (len != 5) exit(1);
905        if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
907        exit(0);
909 main() { foo("hello"); }
911 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
912 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
913     AC_DEFINE(HAVE_C99_VSNPRINTF)
916 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
917 AC_TRY_RUN([#include <sys/types.h>
918 #include <dirent.h>
919 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
920 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
921 di->d_name[0] == 0) exit(0); exit(1);} ],
922 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
923 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
924     AC_DEFINE(HAVE_BROKEN_READDIR)
927 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
928 AC_TRY_COMPILE([#include <sys/types.h>
929 #include <utime.h>],
930 [struct utimbuf tbuf;  tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
931 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
932 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
933     AC_DEFINE(HAVE_UTIMBUF)
936 dnl  utmp and utmpx come in many flavours
937 dnl  We need to check for many of them
938 dnl  But we don't need to do each and every one, because our code uses
939 dnl  mostly just the utmp (not utmpx) fields.
941 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
943 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
944 AC_TRY_COMPILE([#include <sys/types.h>
945 #include <utmp.h>],
946 [struct utmp ut;  ut.ut_name[0] = 'a';],
947 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
948 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
949     AC_DEFINE(HAVE_UT_UT_NAME)
950 fi 
952 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
953 AC_TRY_COMPILE([#include <sys/types.h>
954 #include <utmp.h>],
955 [struct utmp ut;  ut.ut_user[0] = 'a';],
956 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
957 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
958     AC_DEFINE(HAVE_UT_UT_USER)
959 fi 
961 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
962 AC_TRY_COMPILE([#include <sys/types.h>
963 #include <utmp.h>],
964 [struct utmp ut;  ut.ut_id[0] = 'a';],
965 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
966 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
967     AC_DEFINE(HAVE_UT_UT_ID)
968 fi 
970 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
971 AC_TRY_COMPILE([#include <sys/types.h>
972 #include <utmp.h>],
973 [struct utmp ut;  ut.ut_host[0] = 'a';],
974 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
975 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
976     AC_DEFINE(HAVE_UT_UT_HOST)
977 fi 
979 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
980 AC_TRY_COMPILE([#include <sys/types.h>
981 #include <utmp.h>],
982 [struct utmp ut;  time_t t; ut.ut_time = t;],
983 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
984 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
985     AC_DEFINE(HAVE_UT_UT_TIME)
986 fi 
988 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
989 AC_TRY_COMPILE([#include <sys/types.h>
990 #include <utmp.h>],
991 [struct utmp ut;  struct timeval tv; ut.ut_tv = tv;],
992 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
993 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
994     AC_DEFINE(HAVE_UT_UT_TV)
995 fi 
997 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
998 AC_TRY_COMPILE([#include <sys/types.h>
999 #include <utmp.h>],
1000 [struct utmp ut;  ut.ut_type = 0;],
1001 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1002 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1003     AC_DEFINE(HAVE_UT_UT_TYPE)
1004 fi 
1006 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1007 AC_TRY_COMPILE([#include <sys/types.h>
1008 #include <utmp.h>],
1009 [struct utmp ut;  ut.ut_pid = 0;],
1010 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1011 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1012     AC_DEFINE(HAVE_UT_UT_PID)
1013 fi 
1015 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1016 AC_TRY_COMPILE([#include <sys/types.h>
1017 #include <utmp.h>],
1018 [struct utmp ut;  ut.ut_exit.e_exit = 0;],
1019 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1020 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1021     AC_DEFINE(HAVE_UT_UT_EXIT)
1022 fi 
1024 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1025 AC_TRY_COMPILE([#include <sys/types.h>
1026 #include <utmp.h>],
1027 [struct utmp ut;  ut.ut_addr = 0;],
1028 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1029 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1030     AC_DEFINE(HAVE_UT_UT_ADDR)
1031 fi 
1033 if test x$ac_cv_func_pututline = xyes ; then
1034   AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1035   AC_TRY_COMPILE([#include <sys/types.h>
1036 #include <utmp.h>],
1037   [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1038   samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1039   if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1040       AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
1041   fi
1044 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1045 AC_TRY_COMPILE([#include <sys/types.h>
1046 #include <utmpx.h>],
1047 [struct utmpx ux;  ux.ut_syslen = 0;],
1048 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1049 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1050     AC_DEFINE(HAVE_UX_UT_SYSLEN)
1051 fi 
1053 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1054 AC_TRY_RUN([
1055 #include <sys/types.h>
1056 #include <fcntl.h>
1057 #ifndef F_GETLEASE
1058 #define F_GETLEASE      1025
1059 #endif
1060 main() {
1061        int fd = open("/dev/null", O_RDONLY);
1062        return fcntl(fd, F_GETLEASE, 0) == -1;
1065 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1066 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1067     AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1070 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1071 AC_TRY_RUN([
1072 #include <sys/types.h>
1073 #include <fcntl.h>
1074 #include <signal.h>
1075 #ifndef F_NOTIFY
1076 #define F_NOTIFY 1026
1077 #endif
1078 main() {
1079         exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ?  1 : 0);
1082 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1083 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1084     AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1087 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1088 AC_TRY_RUN([
1089 #include <sys/types.h>
1090 #include <fcntl.h>
1091 #include <signal.h>
1092 #include <sys/file.h>
1093 #ifndef LOCK_MAND
1094 #define LOCK_MAND       32
1095 #define LOCK_READ       64
1096 #endif
1097 main() {
1098         exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1101 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1102 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1103     AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1109 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1110 AC_TRY_COMPILE([#include <sys/types.h>
1111 #include <fcntl.h>],
1112 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1113 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1114 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1115     AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1118 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1119 AC_TRY_RUN([#include <sys/types.h>
1120 #include <sys/capability.h>
1121 main() {
1122  cap_t cap;
1123  if ((cap = cap_get_proc()) == NULL)
1124    exit(1);
1125  cap->cap_effective |= CAP_NETWORK_MGT;
1126  cap->cap_inheritable |= CAP_NETWORK_MGT;
1127  cap_set_proc(cap);
1128  exit(0);
1131 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1132 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1133     AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1137 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1138 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1141 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1142 AC_TRY_COMPILE([#include <sys/types.h>
1143 #if defined(HAVE_RPC_RPC_H)
1144 #include <rpc/rpc.h>
1145 #endif],
1146 [int16 testvar;],
1147 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1148 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1149     AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1152 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1153 AC_TRY_COMPILE([#include <sys/types.h>
1154 #if defined(HAVE_RPC_RPC_H)
1155 #include <rpc/rpc.h>
1156 #endif],
1157 [uint16 testvar;],
1158 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1159 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1160     AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1163 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1164 AC_TRY_COMPILE([#include <sys/types.h>
1165 #if defined(HAVE_RPC_RPC_H)
1166 #include <rpc/rpc.h>
1167 #endif],
1168 [int32 testvar;],
1169 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1170 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1171     AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1174 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1175 AC_TRY_COMPILE([#include <sys/types.h>
1176 #if defined(HAVE_RPC_RPC_H)
1177 #include <rpc/rpc.h>
1178 #endif],
1179 [uint32 testvar;],
1180 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1181 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1182     AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1186 dnl Some systems (SCO) have a problem including
1187 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1188 dnl as a #define in <prot.h> and as part of an enum
1189 dnl in <rpc/rpc.h>.
1192 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1193 AC_TRY_COMPILE([#include <sys/types.h>
1194 #ifdef HAVE_SYS_SECURITY_H
1195 #include <sys/security.h>
1196 #include <prot.h>
1197 #endif  /* HAVE_SYS_SECURITY_H */
1198 #if defined(HAVE_RPC_RPC_H)
1199 #include <rpc/rpc.h>
1200 #endif],
1201 [int testvar;],
1202 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1203 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1204     AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1207 AC_MSG_CHECKING([for test routines])
1208 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1209            AC_MSG_RESULT(yes),
1210            AC_MSG_ERROR([cant find test code. Aborting config]),
1211            AC_MSG_WARN([cannot run when cross-compiling]))
1213 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1214 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1215            samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1216 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1217     AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1220 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1221 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1222            samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1223 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1224     AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1227 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1228 SAVE_CPPFLAGS="$CPPFLAGS"
1229 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1230 AC_TRY_COMPILE([
1231 #define REPLACE_GETPASS 1
1232 #define NO_CONFIG_H 1
1233 #define main dont_declare_main
1234 #include "${srcdir-.}/lib/getsmbpass.c"
1235 #undef main
1236 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1237 CPPFLAGS="$SAVE_CPPFLAGS"
1239 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1240         AC_DEFINE(REPLACE_GETPASS)
1243 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1244 AC_TRY_RUN([
1245 #include <stdio.h>
1246 #include <sys/types.h>
1247 #include <netinet/in.h>
1248 #ifdef HAVE_ARPA_INET_H
1249 #include <arpa/inet.h>
1250 #endif
1251 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1252 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1253     strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } 
1254 exit(1);}],
1255            samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1256 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1257     AC_DEFINE(REPLACE_INET_NTOA)
1260 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1261 AC_TRY_RUN([#include <stdlib.h>
1262 #include <sys/types.h>
1263 #include <sys/stat.h>
1264 #include <unistd.h>
1265 main() { 
1266   struct stat st;
1267   char tpl[20]="/tmp/test.XXXXXX"; 
1268   int fd = mkstemp(tpl); 
1269   if (fd == -1) exit(1);
1270   unlink(tpl);
1271   if (fstat(fd, &st) != 0) exit(1);
1272   if ((st.st_mode & 0777) != 0600) exit(1);
1273   exit(0);
1275 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1276 samba_cv_HAVE_SECURE_MKSTEMP=no,
1277 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1278 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1279     AC_DEFINE(HAVE_SECURE_MKSTEMP)
1282 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1283 AC_TRY_RUN([#include <unistd.h>
1284 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1285 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1286 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1287     AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1290 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1291 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1292            samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1293 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1294     AC_DEFINE(HAVE_ROOT)
1295 else
1296     AC_MSG_WARN(running as non-root will disable some tests)
1299 ##################
1300 # look for a method of finding the list of network interfaces
1301 iface=no;
1302 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1303 AC_TRY_RUN([
1304 #define HAVE_IFACE_AIX 1
1305 #define AUTOCONF_TEST 1
1306 #include "confdefs.h"
1307 #include "${srcdir-.}/lib/interfaces.c"],
1308            samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1309 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1310     iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1313 if test $iface = no; then
1314 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1315 AC_TRY_RUN([
1316 #define HAVE_IFACE_IFCONF 1
1317 #define AUTOCONF_TEST 1
1318 #include "confdefs.h"
1319 #include "${srcdir-.}/lib/interfaces.c"],
1320            samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1321 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1322     iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1326 if test $iface = no; then
1327 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1328 AC_TRY_RUN([
1329 #define HAVE_IFACE_IFREQ 1
1330 #define AUTOCONF_TEST 1
1331 #include "confdefs.h"
1332 #include "${srcdir-.}/lib/interfaces.c"],
1333            samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1334 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1335     iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1340 ################################################
1341 # look for a method of setting the effective uid
1342 seteuid=no;
1343 if test $seteuid = no; then
1344 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1345 AC_TRY_RUN([
1346 #define AUTOCONF_TEST 1
1347 #define USE_SETRESUID 1
1348 #include "confdefs.h"
1349 #include "${srcdir-.}/lib/util_sec.c"],
1350            samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1351 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1352     seteuid=yes;AC_DEFINE(USE_SETRESUID)
1357 if test $seteuid = no; then
1358 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1359 AC_TRY_RUN([
1360 #define AUTOCONF_TEST 1
1361 #define USE_SETREUID 1
1362 #include "confdefs.h"
1363 #include "${srcdir-.}/lib/util_sec.c"],
1364            samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1365 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1366     seteuid=yes;AC_DEFINE(USE_SETREUID)
1370 if test $seteuid = no; then
1371 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1372 AC_TRY_RUN([
1373 #define AUTOCONF_TEST 1
1374 #define USE_SETEUID 1
1375 #include "confdefs.h"
1376 #include "${srcdir-.}/lib/util_sec.c"],
1377            samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1378 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1379     seteuid=yes;AC_DEFINE(USE_SETEUID)
1383 if test $seteuid = no; then
1384 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1385 AC_TRY_RUN([
1386 #define AUTOCONF_TEST 1
1387 #define USE_SETUIDX 1
1388 #include "confdefs.h"
1389 #include "${srcdir-.}/lib/util_sec.c"],
1390            samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1391 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1392     seteuid=yes;AC_DEFINE(USE_SETUIDX)
1397 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1398 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1399            samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1400 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1401     AC_DEFINE(HAVE_MMAP)
1404 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1405 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1406            samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1407 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1408     AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1411 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1412 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1413            samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1414 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1415     AC_DEFINE(HAVE_FCNTL_LOCK)
1418 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1419 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1420            samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1421 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1422     AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1424 else
1427 dnl Don't check for 64 bit fcntl locking if we know that the
1428 dnl glibc2.1 broken check has succeeded.
1429 dnl 
1431   AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1432   AC_TRY_RUN([
1433 #if defined(HAVE_UNISTD_H)
1434 #include <unistd.h>
1435 #endif
1436 #include <stdio.h>
1437 #include <stdlib.h>
1439 #ifdef HAVE_FCNTL_H
1440 #include <fcntl.h>
1441 #endif
1443 #ifdef HAVE_SYS_FCNTL_H
1444 #include <sys/fcntl.h>
1445 #endif
1446 main() { struct flock64 fl64;
1447 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1448 exit(0);
1449 #else
1450 exit(1);
1451 #endif
1453        samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1455   if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1456       AC_DEFINE(HAVE_STRUCT_FLOCK64)
1457   fi
1460 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1461 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1462            samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1463 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1464     AC_DEFINE(HAVE_TRUNCATED_SALT)
1467 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1468 AC_TRY_COMPILE([#include <sys/acl.h>
1469 #if defined(HAVE_RPCSVC_NIS_H)
1470 #include <rpcsvc/nis.h>
1471 #endif],
1472 [return 0;],
1473 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1474 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1475     AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1479 #################################################
1480 # check for smbwrapper support
1481 AC_MSG_CHECKING(whether to use smbwrapper)
1482 AC_ARG_WITH(smbwrapper,
1483 [  --with-smbwrapper     Include SMB wrapper support
1484   --without-smbwrapper  Don't include SMB wrapper support (default)],
1485 [ case "$withval" in
1486   yes)
1487     AC_MSG_RESULT(yes)
1488     AC_DEFINE(WITH_SMBWRAPPER)
1489         WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1491         if test x$ATTEMPT_WRAP32_BUILD = x; then
1492                 WRAP32=""
1493         else
1494                         WRAP32=bin/smbwrapper.32.$SHLIBEXT
1495         fi
1497 # Conditions under which smbwrapper should not be built.
1499         if test x$PICFLAG = x; then
1500            echo No support for PIC code - disabling smbwrapper and smbsh
1501            WRAP=""
1502            WRAP32=""
1503         elif test x$ac_cv_func_syscall = xno; then
1504            AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1505            WRAP=""
1506            WRAP32=""
1507         fi
1508     ;;
1509   *)
1510     AC_MSG_RESULT(no)
1511     ;;
1512   esac ],
1513   AC_MSG_RESULT(no)
1516 #################################################
1517 # check for the AFS filesystem
1518 AC_MSG_CHECKING(whether to use AFS)
1519 AC_ARG_WITH(afs,
1520 [  --with-afs     Include AFS support
1521   --without-afs  Don't include AFS support (default)],
1522 [ case "$withval" in
1523   yes)
1524     AC_MSG_RESULT(yes)
1525     AC_DEFINE(WITH_AFS)
1526     ;;
1527   *)
1528     AC_MSG_RESULT(no)
1529     ;;
1530   esac ],
1531   AC_MSG_RESULT(no)
1535 #################################################
1536 # check for the DFS auth system
1537 AC_MSG_CHECKING(whether to use DFS auth)
1538 AC_ARG_WITH(dfs,
1539 [  --with-dfs     Include DFS support
1540   --without-dfs  Don't include DFS support (default)],
1541 [ case "$withval" in
1542   yes)
1543     AC_MSG_RESULT(yes)
1544     AC_DEFINE(WITH_DFS)
1545     ;;
1546   *)
1547     AC_MSG_RESULT(no)
1548     ;;
1549   esac ],
1550   AC_MSG_RESULT(no)
1553 #################################################
1554 # check for Kerberos IV auth system
1555 AC_MSG_CHECKING(whether to use Kerberos IV)
1556 AC_ARG_WITH(krb4,
1557 [  --with-krb4=base-dir     Include Kerberos IV support
1558   --without-krb4          Don't include Kerberos IV support (default)],
1559 [ case "$withval" in
1560   yes)
1561     AC_MSG_RESULT(yes)
1562     AC_DEFINE(KRB4_AUTH)
1563     AC_CHECK_LIB(resolv, dn_expand)
1564     LIBS="$LIBS -lkrb -ldes"
1565     CFLAGS="$CFLAGS -I$withval/include"
1566     LDFLAGS="$LDFLAGS -L$withval/lib"
1567     ;;
1568   *)
1569     AC_MSG_RESULT(no)
1570     ;;
1571   esac ],
1572   AC_MSG_RESULT(no)
1575 #################################################
1576 # check for Kerberos 5 auth system
1577 AC_MSG_CHECKING(whether to use Kerberos 5)
1578 AC_ARG_WITH(krb5,
1579 [  --with-krb5=base-dir     Include Kerberos 5 support
1580   --without-krb5          Don't include Kerberos 5 support (default)],
1581 [ case "$withval" in
1582   yes)
1583     AC_MSG_RESULT(yes)
1584     AC_DEFINE(KRB5_AUTH)
1585     LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1586     CFLAGS="$CFLAGS -I$withval/include"
1587     LDFLAGS="$LDFLAGS -L$withval/lib"
1588     ;;
1589   *)
1590     AC_MSG_RESULT(no)
1591     ;;
1592   esac ],
1593   AC_MSG_RESULT(no)
1596 #################################################
1597 # check for automount support
1598 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1599 AC_ARG_WITH(automount,
1600 [  --with-automount     Include AUTOMOUNT support
1601   --without-automount  Don't include AUTOMOUNT support (default)],
1602 [ case "$withval" in
1603   yes)
1604     AC_MSG_RESULT(yes)
1605     AC_DEFINE(WITH_AUTOMOUNT)
1606     ;;
1607   *)
1608     AC_MSG_RESULT(no)
1609     ;;
1610   esac ],
1611   AC_MSG_RESULT(no)
1614 #################################################
1615 # check for smbmount support
1616 AC_MSG_CHECKING(whether to use SMBMOUNT)
1617 AC_ARG_WITH(smbmount,
1618 [  --with-smbmount     Include SMBMOUNT (Linux only) support
1619   --without-smbmount  Don't include SMBMOUNT support (default)],
1620 [ case "$withval" in
1621   yes)
1622     AC_MSG_RESULT(yes)
1623     AC_DEFINE(WITH_SMBMOUNT)
1624     MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1625     ;;
1626   *)
1627     AC_MSG_RESULT(no)
1628     MPROGS=
1629     ;;
1630   esac ],
1631   AC_MSG_RESULT(no)
1632   MPROGS=
1636 #################################################
1637 # check for a PAM password database
1638 with_pam_for_crypt=no
1639 AC_MSG_CHECKING(whether to use PAM password database)
1640 AC_ARG_WITH(pam,
1641 [  --with-pam     Include PAM password database support
1642   --without-pam  Don't include PAM password database support (default)],
1643 [ case "$withval" in
1644   yes)
1645     AC_MSG_RESULT(yes)
1646     AC_DEFINE(WITH_PAM)
1647     LIBS="$LIBS -lpam"
1648     with_pam_for_crypt=yes
1649     ;;
1650   *)
1651     AC_MSG_RESULT(no)
1652     ;;
1653   esac ],
1654   AC_MSG_RESULT(no)
1657 # we can't build a pam module if we don't have pam.
1658 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
1660 #################################################
1661 # check for pam_smbpass support
1662 AC_MSG_CHECKING(whether to use pam_smbpass)
1663 AC_ARG_WITH(pam_smbpass,
1664 [  --with-pam_smbpass     Include the smbpass PAM module
1665   --without-pam_smbpass  Don't include the smbpass PAM module (default)],
1666 [ case "$withval" in
1667   yes)
1668     AC_MSG_RESULT(yes)
1670 # Conditions under which pam_smbpass should not be built.
1672        if test x$PICFLAG = x; then
1673           AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
1674           PAM_MOD=""
1675        elif test x$ac_cv_lib_pam_pam_get_data = xno; then
1676           AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
1677           PAM_MOD=""
1678        else
1679           AC_DEFINE(WITH_PAM_SMBPASS)
1680           PAM_MOD="bin/pam_smbpass.so"
1681        fi
1682     ;;
1683   *)
1684     AC_MSG_RESULT(no)
1685     ;;
1686   esac ],
1687   AC_MSG_RESULT(no)
1691 ###############################################
1692 # test for where we get crypt() from, but only
1693 # if not using PAM
1694 if test $with_pam_for_crypt = no; then
1695 AC_CHECK_FUNCS(crypt)
1696 if test x"$ac_cv_func_crypt" = x"no"; then
1697     AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
1698         AC_DEFINE(HAVE_CRYPT)])
1703 #################################################
1704 # removed until we get the code actually working
1705 # --jeremy
1706 # check for a TDB password database
1707 # AC_MSG_CHECKING(whether to use TDB password database)
1708 #AC_ARG_WITH(tdbpwd,
1709 #[  --with-tdbpwd   Include TDB password database
1710 #  --without-tdbpwd  Don't include TDB password database (default)],
1711 #[ case "$withval" in
1712 #  yes)
1713 #    AC_MSG_RESULT(yes)
1714 #    AC_DEFINE(WITH_TDBPWD)
1715 #    AC_MSG_ERROR([TDB password database not supported in this version.])
1716 #    ;;
1717 #  *)
1718 #    AC_MSG_RESULT(no)
1719 #    ;;
1720 #  esac ],
1721 #  AC_MSG_RESULT(no)
1724 #################################################
1725 # removed until we get the code actually working
1726 # --jerry
1728 # check for a LDAP password database
1729 #AC_MSG_CHECKING(whether to use LDAP password database)
1730 #AC_ARG_WITH(ldap,
1731 #[  --with-ldap     Include LDAP support
1732 #  --without-ldap  Don't include LDAP support (default)],
1733 #[ case "$withval" in
1734 #  yes)
1735 #    AC_MSG_RESULT(yes)
1736 #    AC_DEFINE(WITH_LDAP)
1737 #    AC_MSG_ERROR([LDAP password database not supported in this version.])
1738 #    ;;
1739 #  *)
1740 #    AC_MSG_RESULT(no)
1741 #    ;;
1742 #  esac ],
1743 #  AC_MSG_RESULT(no)
1746 #################################################
1747 # check for a NISPLUS password database
1748 AC_MSG_CHECKING(whether to use NISPLUS password database)
1749 AC_ARG_WITH(nisplus,
1750 [  --with-nisplus     Include NISPLUS password database support
1751   --without-nisplus  Don't include NISPLUS password database support (default)],
1752 [ case "$withval" in
1753   yes)
1754     AC_MSG_RESULT(yes)
1755     AC_DEFINE(WITH_NISPLUS)
1756     ;;
1757   *)
1758     AC_MSG_RESULT(no)
1759     ;;
1760   esac ],
1761   AC_MSG_RESULT(no)
1764 #################################################
1765 # check for a NISPLUS_HOME support 
1766 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1767 AC_ARG_WITH(nisplus-home,
1768 [  --with-nisplus-home     Include NISPLUS_HOME support
1769   --without-nisplus-home  Don't include NISPLUS_HOME support (default)],
1770 [ case "$withval" in
1771   yes)
1772     AC_MSG_RESULT(yes)
1773     AC_DEFINE(WITH_NISPLUS_HOME)
1774     ;;
1775   *)
1776     AC_MSG_RESULT(no)
1777     ;;
1778   esac ],
1779   AC_MSG_RESULT(no)
1782 #################################################
1783 # check for the secure socket layer
1784 AC_MSG_CHECKING(whether to use SSL)
1785 AC_ARG_WITH(ssl,
1786 [  --with-ssl     Include SSL support
1787   --without-ssl  Don't include SSL support (default)
1788   --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl)],
1789 [ case "$withval" in
1790   yes)
1791     AC_MSG_RESULT(yes)
1792     AC_DEFINE(WITH_SSL)
1793     withval="/usr/local/ssl"     # default
1795     if test "${with_sslinc+set}" = set; then
1797         withval="$with_sslinc"
1798         case "$withval" in
1799         yes|no)
1800           echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1801           CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1802           LIBS="-lssl -lcrypto $LIBS"
1803           LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
1804         ;;
1805         * )
1806           CFLAGS="-I${withval} $CFLAGS"
1807           LIBS="-lssl -lcrypto $LIBS"
1808           LDFLAGS="-L${withval}/lib $LDFLAGS"
1809         ;;
1810         esac
1812     else
1814         CFLAGS="-I/usr/local/ssl/include $CFLAGS"   
1815         LIBS="-lssl -lcrypto $LIBS"
1816         LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1818     fi
1820     if test ! -d ${withval}; then
1821       echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1822       exit 1
1823     fi 
1825     CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS"  # Damn, SSLeay defines its own
1827     ;;
1828   *)
1829     AC_MSG_RESULT(no)
1830     ;;
1831   esac ],
1832   AC_MSG_RESULT(no)
1835 #################################################
1836 # check for syslog logging
1837 AC_MSG_CHECKING(whether to use syslog logging)
1838 AC_ARG_WITH(syslog,
1839 [  --with-syslog     Include experimental SYSLOG support
1840   --without-syslog  Don't include SYSLOG support (default)],
1841 [ case "$withval" in
1842   yes)
1843     AC_MSG_RESULT(yes)
1844     AC_DEFINE(WITH_SYSLOG)
1845     ;;
1846   *)
1847     AC_MSG_RESULT(no)
1848     ;;
1849   esac ],
1850   AC_MSG_RESULT(no)
1853 #################################################
1854 # check for a shared memory profiling support
1855 AC_MSG_CHECKING(whether to use profiling)
1856 AC_ARG_WITH(profile,
1857 [  --with-profile     Include profile support
1858   --without-profile  Don't include profile support (default)],
1859 [ case "$withval" in
1860   yes)
1861     AC_MSG_RESULT(yes)
1862     AC_DEFINE(WITH_PROFILE)
1863     ;;
1864   *)
1865     AC_MSG_RESULT(no)
1866     ;;
1867   esac ],
1868   AC_MSG_RESULT(no)
1872 #################################################
1873 # check for experimental netatalk resource fork support
1874 AC_MSG_CHECKING(whether to support netatalk)
1875 AC_ARG_WITH(netatalk,
1876 [  --with-netatalk     Include experimental Netatalk support
1877   --without-netatalk  Don't include experimental Netatalk support (default)],
1878 [ case "$withval" in
1879   yes)
1880     AC_MSG_RESULT(yes)
1881     AC_DEFINE(WITH_NETATALK)
1882     ;;
1883   *)
1884     AC_MSG_RESULT(no)
1885     ;;
1886   esac ],
1887   AC_MSG_RESULT(no)
1890 #################################################
1891 # check for experimental disk-quotas support
1892 QUOTAOBJS=smbd/noquotas.o
1894 AC_MSG_CHECKING(whether to support disk-quotas)
1895 AC_ARG_WITH(quotas,
1896 [  --with-quotas     Include experimental disk-quota support
1897   --without-quotas  Don't include experimental disk-quota support (default)],
1898 [ case "$withval" in
1899   yes)
1900     AC_MSG_RESULT(yes)
1901     QUOTAOBJS=smbd/quotas.o
1902     ;;
1903   *)
1904     AC_MSG_RESULT(no)
1905     ;;
1906   esac ],
1907   AC_MSG_RESULT(no)
1909 AC_SUBST(QUOTAOBJS)
1911 #################################################
1912 # check for experimental utmp accounting
1914 AC_MSG_CHECKING(whether to support utmp accounting)
1915 AC_ARG_WITH(utmp,
1916 [  --with-utmp     Include experimental utmp accounting
1917   --without-utmp  Don't include experimental utmp accounting (default)],
1918 [ case "$withval" in
1919   yes)
1920     AC_MSG_RESULT(yes)
1921     AC_DEFINE(WITH_UTMP)
1922     ;;
1923   *)
1924     AC_MSG_RESULT(no)
1925     ;;
1926   esac ],
1927   AC_MSG_RESULT(no)
1930 #################################################
1931 # check for MS Dfs support
1933 AC_MSG_CHECKING(whether to support Microsoft Dfs)
1934 AC_ARG_WITH(msdfs,
1935 [  --with-msdfs         Include MS Dfs support
1936   --without-msdfs       Don't include MS Dfs support (default)],
1937 [ case "$withval" in
1938   yes)
1939      AC_MSG_RESULT(yes)
1940      AC_DEFINE(WITH_MSDFS)
1941      ;;
1942   *)
1943     AC_MSG_RESULT(no)
1944     ;;
1945   esac ],
1946   AC_MSG_RESULT(no)
1949 #################################################
1950 # check for Samba VFS support
1952 AC_MSG_CHECKING(whether to support the experimantal Samba vfs)
1953 AC_ARG_WITH(vfs,
1954 [  --with-vfs           Include Samba vfs support
1955   --without-vfs Don't include Samba vfs support (default)],
1956 [ case "$withval" in
1957   yes)
1958      AC_MSG_RESULT(yes)
1959      AC_DEFINE(WITH_VFS)
1960      ;;
1961   *)
1962     AC_MSG_RESULT(no)
1963     ;;
1964   esac ],
1965   AC_MSG_RESULT(no)
1968 #################################################
1969 # these tests are taken from the GNU fileutils package
1970 AC_CHECKING(how to get filesystem space usage)
1971 space=no
1973 # Test for statvfs64.
1974 if test $space = no; then
1975   # SVR4
1976   AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
1977   [AC_TRY_RUN([
1978 #if defined(HAVE_UNISTD_H)
1979 #include <unistd.h>
1980 #endif
1981 #include <sys/types.h>
1982 #include <sys/statvfs.h>
1983   main ()
1984   {
1985     struct statvfs64 fsd;
1986     exit (statvfs64 (".", &fsd));
1987   }],
1988   fu_cv_sys_stat_statvfs64=yes,
1989   fu_cv_sys_stat_statvfs64=no,
1990   fu_cv_sys_stat_statvfs64=cross)])
1991   if test $fu_cv_sys_stat_statvfs64 = yes; then
1992     space=yes
1993     AC_DEFINE(STAT_STATVFS64)
1994   fi
1997 # Perform only the link test since it seems there are no variants of the
1998 # statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs)
1999 # because that got a false positive on SCO OSR5.  Adding the declaration
2000 # of a `struct statvfs' causes this test to fail (as it should) on such
2001 # systems.  That system is reported to work fine with STAT_STATFS4 which
2002 # is what it gets when this test fails.
2003 if test $space = no; then
2004   # SVR4
2005   AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2006                  [AC_TRY_LINK([#include <sys/types.h>
2007 #include <sys/statvfs.h>],
2008                               [struct statvfs fsd; statvfs (0, &fsd);],
2009                               fu_cv_sys_stat_statvfs=yes,
2010                               fu_cv_sys_stat_statvfs=no)])
2011   if test $fu_cv_sys_stat_statvfs = yes; then
2012     space=yes
2013     AC_DEFINE(STAT_STATVFS)
2014   fi
2017 if test $space = no; then
2018   # DEC Alpha running OSF/1
2019   AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2020   AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2021   [AC_TRY_RUN([
2022 #include <sys/param.h>
2023 #include <sys/types.h>
2024 #include <sys/mount.h>
2025   main ()
2026   {
2027     struct statfs fsd;
2028     fsd.f_fsize = 0;
2029     exit (statfs (".", &fsd, sizeof (struct statfs)));
2030   }],
2031   fu_cv_sys_stat_statfs3_osf1=yes,
2032   fu_cv_sys_stat_statfs3_osf1=no,
2033   fu_cv_sys_stat_statfs3_osf1=no)])
2034   AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2035   if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2036     space=yes
2037     AC_DEFINE(STAT_STATFS3_OSF1)
2038   fi
2041 if test $space = no; then
2042 # AIX
2043   AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2044 member (AIX, 4.3BSD)])
2045   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2046   [AC_TRY_RUN([
2047 #ifdef HAVE_SYS_PARAM_H
2048 #include <sys/param.h>
2049 #endif
2050 #ifdef HAVE_SYS_MOUNT_H
2051 #include <sys/mount.h>
2052 #endif
2053 #ifdef HAVE_SYS_VFS_H
2054 #include <sys/vfs.h>
2055 #endif
2056   main ()
2057   {
2058   struct statfs fsd;
2059   fsd.f_bsize = 0;
2060   exit (statfs (".", &fsd));
2061   }],
2062   fu_cv_sys_stat_statfs2_bsize=yes,
2063   fu_cv_sys_stat_statfs2_bsize=no,
2064   fu_cv_sys_stat_statfs2_bsize=no)])
2065   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2066   if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2067     space=yes
2068     AC_DEFINE(STAT_STATFS2_BSIZE)
2069   fi
2072 if test $space = no; then
2073 # SVR3
2074   AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2075   AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2076   [AC_TRY_RUN([#include <sys/types.h>
2077 #include <sys/statfs.h>
2078   main ()
2079   {
2080   struct statfs fsd;
2081   exit (statfs (".", &fsd, sizeof fsd, 0));
2082   }],
2083     fu_cv_sys_stat_statfs4=yes,
2084     fu_cv_sys_stat_statfs4=no,
2085     fu_cv_sys_stat_statfs4=no)])
2086   AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2087   if test $fu_cv_sys_stat_statfs4 = yes; then
2088     space=yes
2089     AC_DEFINE(STAT_STATFS4)
2090   fi
2093 if test $space = no; then
2094 # 4.4BSD and NetBSD
2095   AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2096 member (4.4BSD and NetBSD)])
2097   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2098   [AC_TRY_RUN([#include <sys/types.h>
2099 #ifdef HAVE_SYS_PARAM_H
2100 #include <sys/param.h>
2101 #endif
2102 #ifdef HAVE_SYS_MOUNT_H
2103 #include <sys/mount.h>
2104 #endif
2105   main ()
2106   {
2107   struct statfs fsd;
2108   fsd.f_fsize = 0;
2109   exit (statfs (".", &fsd));
2110   }],
2111   fu_cv_sys_stat_statfs2_fsize=yes,
2112   fu_cv_sys_stat_statfs2_fsize=no,
2113   fu_cv_sys_stat_statfs2_fsize=no)])
2114   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2115   if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2116     space=yes
2117     AC_DEFINE(STAT_STATFS2_FSIZE)
2118   fi
2121 if test $space = no; then
2122   # Ultrix
2123   AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2124   AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2125   [AC_TRY_RUN([#include <sys/types.h>
2126 #ifdef HAVE_SYS_PARAM_H
2127 #include <sys/param.h>
2128 #endif
2129 #ifdef HAVE_SYS_MOUNT_H
2130 #include <sys/mount.h>
2131 #endif
2132 #ifdef HAVE_SYS_FS_TYPES_H
2133 #include <sys/fs_types.h>
2134 #endif
2135   main ()
2136   {
2137   struct fs_data fsd;
2138   /* Ultrix's statfs returns 1 for success,
2139      0 for not mounted, -1 for failure.  */
2140   exit (statfs (".", &fsd) != 1);
2141   }],
2142   fu_cv_sys_stat_fs_data=yes,
2143   fu_cv_sys_stat_fs_data=no,
2144   fu_cv_sys_stat_fs_data=no)])
2145   AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2146   if test $fu_cv_sys_stat_fs_data = yes; then
2147     space=yes
2148     AC_DEFINE(STAT_STATFS2_FS_DATA)
2149   fi
2153 # As a gating factor for large file support, in order to
2154 # use <4GB files we must have the following minimal support
2155 # available.
2156 # long long, and a 64 bit off_t or off64_t.
2157 # If we don't have all of these then disable large
2158 # file support.
2160 AC_MSG_CHECKING(checking if large file support can be enabled)
2161 AC_TRY_COMPILE([
2162 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2163 #include <sys/types.h>
2164 #else
2165 __COMPILE_ERROR_
2166 #endif
2168 [int i],
2169 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2170 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2171     AC_MSG_RESULT(yes)
2172     AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2173 else
2174     AC_MSG_RESULT(no)
2177 AC_ARG_WITH(spinlocks, [  --with-spinlocks        use spin locks instead of fcntl locks ])
2178 if test "x$with_spinlocks" = "xyes"; then
2179     AC_DEFINE(USE_SPINLOCKS)
2181     case "$host_cpu" in
2182         sparc)
2183             AC_DEFINE(SPARC_SPINLOCKS)
2184             ;;
2186         i386|i486|i586|i686)
2187             AC_DEFINE(INTEL_SPINLOCKS)
2188             ;;
2190         mips)
2191             AC_DEFINE(MIPS_SPINLOCKS)
2192             ;;
2194         powerpc)
2195             AC_DEFINE(POWERPC_SPINLOCKS)
2196             ;;
2197     esac
2200 #################################################
2201 # check for ACL support
2203 AC_MSG_CHECKING(whether to support ACLs)
2204 AC_ARG_WITH(acl-support,
2205 [  --with-acl-support        Include ACL support
2206   --without-acl-support  Don't include ACL support (default)],
2207 [ case "$withval" in
2208   yes)
2210                 case "$host_os" in
2211                 *sysv5*)
2212                         AC_MSG_RESULT(Using UnixWare ACLs)
2213                         AC_DEFINE(HAVE_UNIXWARE_ACLS)
2214                         ;;
2215                 *solaris*)
2216                         AC_MSG_RESULT(Using solaris ACLs)
2217                         AC_DEFINE(HAVE_SOLARIS_ACLS)
2218                         ;;
2219                 *irix*)
2220                         AC_MSG_RESULT(Using IRIX ACLs)
2221                         AC_DEFINE(HAVE_IRIX_ACLS)
2222                         ;;
2223                 *aix*)
2224                         AC_MSG_RESULT(Using AIX ACLs)
2225                         AC_DEFINE(HAVE_AIX_ACLS)
2226                         ;;
2227                 *osf*)
2228                         AC_MSG_RESULT(Using Draft 13 Posix ACLs)
2229                         AC_DEFINE(HAVE_DRAFT13_POSIX_ACLS)
2230                         LIBS="$LIBS -lpacl"
2231                         ;;
2232                 *)
2233                     AC_CHECK_LIB(acl,acl_get_file)
2234                         AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2235                         AC_TRY_LINK([#include <sys/types.h>
2236 #include <sys/acl.h>],
2237 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2238 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2239                         if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2240                             AC_MSG_RESULT(Using posix ACLs)
2241                             AC_DEFINE(HAVE_POSIX_ACLS)
2242                                 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2243                                 AC_TRY_LINK([#include <sys/types.h>
2244 #include <sys/acl.h>],
2245 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2246 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2247                                 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2248                                         AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2249                                 fi
2250                         fi
2251                         ;;
2252                 esac
2253                 ;;
2254   *)
2255     AC_MSG_RESULT(no)
2256         AC_DEFINE(HAVE_NO_ACLS)
2257     ;;
2258   esac ],
2259   AC_DEFINE(HAVE_NO_ACLS)
2260   AC_MSG_RESULT(no)
2263 #################################################
2264 # check for the historical SAMBA installation
2266 if test "x$prefix" = xNONE -a "$sbindir" = "\${exec_prefix}/sbin"; then
2267         # Put all binaries under the /usr/local/samba/bin directory.
2268         sbindir="$bindir"
2271 #################################################
2272 # check whether winbind is supported on this platform
2274 AC_MSG_CHECKING(whether to compile winbind)
2276 case "$host_os" in 
2277         *linux*|*solaris*)
2278                 WINBIND_TARGETS="\$(WINBIND_PROGS)"
2279                 WINBIND_STARGETS="\$(WINBIND_SPROGS)"
2280                 case "$with_pam" in
2281                         yes)
2282                                 WINBIND_STARGETS="$WINBIND_STARGETS \$(WINBIND_PAM_PROGS)"
2283                         ;;
2284                         *)
2285                 esac
2286                 ;;
2287         *)
2288                 winbind_no_reason=", unsupported on $host_os"
2289                 ;;
2290 esac
2292 AC_ARG_WITH(winbind,
2293 [  --with-winbind       Build winbind library (default, if supported by OS)
2294   --without-winbind     Don't build winbind library],
2296   case "$withval" in
2297         no)
2298                 WINBIND_TARGETS=""
2299                 WINBIND_STARGETS="" 
2300                 winbind_reason=""
2301                 ;;
2302   esac ],
2305 if test x"$WINBIND_TARGETS" = x; then
2306         AC_MSG_RESULT(no$winbind_no_reason)
2307 else
2308         AC_MSG_RESULT(yes)
2311 AC_SUBST(WINBIND_TARGETS)
2312 AC_SUBST(WINBIND_STARGETS)
2314 #################################################
2315 # final configure stuff
2316 echo "checking configure summary"
2317 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2318            echo "configure OK";,
2319            AC_MSG_ERROR([summary failure. Aborting config]),:)
2321 builddir=`pwd`
2322 AC_SUBST(builddir)
2324 AC_OUTPUT(include/stamp-h Makefile)