set "vfs object" and "vfs options" to be setable by SWAT on advanced page
[Samba/gebeck_regimport.git] / source3 / configure.in
blobd65e42a3d772df2f2e35e34d1d658b619d3a688a
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)
4 # we want to be compatibe with older versions of Samba
5 AC_PREFIX_DEFAULT(/usr/local/samba)
7 dnl Unique-to-Samba variables we'll be playing with.
8 AC_SUBST(SHELL)
9 AC_SUBST(RUNPROG)
10 AC_SUBST(MPROGS)
11 AC_SUBST(LDSHFLAGS)
12 AC_SUBST(HOST_OS)
13 AC_SUBST(WRAP)
14 AC_SUBST(WRAP32)
15 AC_SUBST(PICFLAG)
16 AC_SUBST(SHLIBEXT)
18 # compile with optimisation and without debugging by default
19 CFLAGS="-O ${CFLAGS}"
21 AC_ARG_ENABLE(debug, [  --enable-debug        turn on debugging [default=no]],
22     [if eval "test x$enable_debug = xyes"; then
23         CFLAGS="${CFLAGS} -g"
24     fi])
27 dnl Checks for programs.
28 AC_PROG_CC
29 AC_PROG_INSTALL
30 AC_PROG_AWK
31 AC_PROG_LIBTOOL
32 AC_SUBST(LIBTOOL_DEPS)
34 dnl Check if C compiler understands -c and -o at the same time
35 AC_PROG_CC_C_O
36 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
37       BROKEN_CC=
38 else
39       BROKEN_CC=#
41 AC_SUBST(BROKEN_CC)
43 dnl Check if the C compiler understands volatile (it should, being ANSI).
44 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
45     AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
46         samba_cv_volatile=yes,samba_cv_volatile=no)])
47 if test x"$samba_cv_volatile" = x"yes"; then
48    AC_DEFINE(HAVE_VOLATILE)
52 #################################################
53 # set codepage directory location
54 AC_ARG_WITH(codepagedir,
55 [  --with-codepagedir=DIR     Where to put codepage files (\$libdir/codepages)],
56 [ case "$withval" in
57   yes|no)
58   #
59   # Just in case anybody does it
60   #
61     AC_MSG_WARN([--with-codepagedir called without argument - will use default])
62   ;;
63   * )
64     codepagedir="$withval"
65     ;;
66   esac])
69 AC_CANONICAL_SYSTEM
71 dnl Add #include for broken IRIX header files
72   case "$host_os" in
73         *irix6*) AC_ADD_INCLUDE(<standards.h>)
74         ;;
75 esac
77 AC_VALIDATE_CACHE_SYSTEM_TYPE
80 # Config CPPFLAG settings for strange OS's that must be set
81 # before other tests.
83 case "$host_os" in
84 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
85     *hpux*)
86       AC_PROG_CC_FLAG(Ae)
87       if test $ac_cv_prog_cc_Ae = yes; then
88         CPPFLAGS="$CPPFLAGS -Ae"
89       fi
91 # Defines needed for HPUX support.
92 # HPUX has bigcrypt but (sometimes?) doesn't use it for
93 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
95       case `uname -r` in
96                         *9*|*10*)
97                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
98                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
99                                 ;;
100                         *11*)
101                                 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
102                                 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
103                                 ;;
104       esac
105       ;;
107 # AIX4.x doesn't even admit to having large
108 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
110     *aix4*)
111           AC_MSG_RESULT([enabling large file support])
112       CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
113       ;;    
115 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
116 # to the existance of large files..
117 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
118 # recommendations on large file support, however it makes the
119 # compile work using gcc 2.7 and 2.8, whereas using the Sun
120 # recommendation makes the compile fail on gcc2.7. JRA.
122         *solaris*)
123                 case `uname -r` in
124                         5.6*|5.7*)
125                         AC_MSG_RESULT([enabling large file support])
126                         if test "$ac_cv_prog_gcc" = yes; then
127                                 ${CC-cc} -v >conftest.c 2>&1
128                                 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
129                                 rm -fr conftest.c
130                                 case "$ac_cv_gcc_compiler_version_number" in
131                                         *"gcc version 2.6"*|*"gcc version 2.7"*)
132                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
133                                                 ;;
134                                         *)
135                                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
136                                                 ;;
137                                 esac
138                         else
139                                 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
140                         fi
141                         ;;
142                 esac
143                 ;;
145 # Tests needed for SINIX large file support.
147     *sysv4*)
148       if test $host = mips-sni-sysv4 ; then
149         AC_MSG_CHECKING([for LFS support])
150         old_CPPFLAGS="$CPPFLAGS"
151         CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
152         AC_TRY_RUN([
153 #include <unistd.h>
154 main () {
155 #if _LFS64_LARGEFILE == 1
156 exit(0);
157 #else
158 exit(1);
159 #endif
160 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
161         CPPFLAGS="$old_CPPFLAGS"
162         if test x$SINIX_LFS_SUPPORT = xyes ; then
163           CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
164           CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
165           LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
166           LIBS="`getconf LFS64_LIBS` $LIBS"
167         fi
168       AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
169       fi
170     ;;
172 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
174     *linux*)
175         AC_MSG_CHECKING([for LFS support])
176         old_CPPFLAGS="$CPPFLAGS"
177         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
178        AC_TRY_RUN([
179 #include <unistd.h>
180 #include <sys/utsname.h>
181 main() {
182 #if _LFS64_LARGEFILE == 1
183        struct utsname uts;
184        char *release;
185        int major, minor;
187        /* Ensure this is glibc 2.2 or higher */
188 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
189        int libc_major = __GLIBC__;
190        int libc_minor = __GLIBC_MINOR__;
192        if (libc_major < 2)
193               exit(1);
194        if (libc_minor < 2)
195               exit(1);
196 #endif
198        /* Ensure this is kernel 2.4 or higher */
200        uname(&uts);
201        release = uts.release;
202        major = atoi(strsep(&release, "."));
203        minor = atoi(strsep(&release, "."));
205        if (major > 2 || (major == 2 && minor > 3))
206                exit(0);
207        exit(1);
208 #else
209        exit(1);
210 #endif
212 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
213         CPPFLAGS="$old_CPPFLAGS"
214         if test x$LINUX_LFS_SUPPORT = xyes ; then
215           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
216         fi
217        AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
218                 ;;
220     *hurd*)
221         AC_MSG_CHECKING([for LFS support])
222         old_CPPFLAGS="$CPPFLAGS"
223         CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
224         AC_TRY_RUN([
225 #include <unistd.h>
226 main () {
227 #if _LFS64_LARGEFILE == 1
228 exit(0);
229 #else
230 exit(1);
231 #endif
232 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
233         CPPFLAGS="$old_CPPFLAGS"
234         if test x$GLIBC_LFS_SUPPORT = xyes ; then
235           CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
236         fi
237       AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
238     ;;
240 esac
242 AC_INLINE
243 AC_HEADER_STDC
244 AC_HEADER_DIRENT
245 AC_HEADER_TIME
246 AC_HEADER_SYS_WAIT
247 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
248 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
249 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
250 AC_CHECK_HEADERS(sys/param.h ctype.h sys/un.h sys/wait.h sys/resource.h sys/ioctl.h sys/mode.h)
251 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h string.h strings.h stdlib.h sys/socket.h)
252 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
253 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
255 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
256 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
258 case "$host_os" in
259     *hpux*)
260                 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
261                         ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
262                 if test x"$ac_cv_header_shadow_h" = x"yes"; then
263                    AC_DEFINE(HAVE_SHADOW_H)
264                 fi
265         ;;
266 esac
267 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
268 AC_CHECK_HEADERS(nss.h sys/security.h security/pam_appl.h)
269 AC_CHECK_HEADERS(stropts.h poll.h)
270 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
271 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h acl/acl.h)
273 # For experimental utmp support (lastlog on some BSD-like systems)
274 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
276 # For quotas on Veritas VxFS filesystems
277 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
279 AC_CHECK_SIZEOF(int,cross)
280 AC_CHECK_SIZEOF(long,cross)
281 AC_CHECK_SIZEOF(short,cross)
283 AC_C_CONST
284 AC_C_INLINE
285 AC_C_BIGENDIAN
286 AC_C_CHAR_UNSIGNED
288 AC_TYPE_SIGNAL
289 AC_TYPE_UID_T
290 AC_TYPE_MODE_T
291 AC_TYPE_OFF_T
292 AC_TYPE_SIZE_T
293 AC_TYPE_PID_T
294 AC_STRUCT_ST_RDEV
295 AC_DIRENT_D_OFF
296 AC_CHECK_TYPE(ino_t,unsigned)
297 AC_CHECK_TYPE(loff_t,off_t)
298 AC_CHECK_TYPE(offset_t,loff_t)
299 AC_CHECK_TYPE(ssize_t, int)
300 AC_CHECK_TYPE(wchar_t, unsigned short)
302 # we need libcups for CUPS support...
303 AC_CHECK_LIB(cups,httpConnect)
305 # we need libdl for PAM and the new VFS code
306 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
307         AC_DEFINE(HAVE_LIBDL)])
309 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
310     AC_TRY_COMPILE([
311 #include <sys/types.h>
312 #if STDC_HEADERS
313 #include <stdlib.h>
314 #include <stddef.h>
315 #endif
316 #include <signal.h>],[sig_atomic_t i = 0],
317         samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
318 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
319    AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
322 AC_CACHE_CHECK([for errno in errno.h],samba_cv_errno, [
323     AC_TRY_COMPILE([#include <errno.h>],[int i = errno],
324         samba_cv_errno=yes,samba_cv_have_errno=no)])
325 if test x"$samba_cv_errno" = x"yes"; then
326    AC_DEFINE(HAVE_ERRNO_DECL)
329 # stupid glibc has the functions but no declaration. grrrr.
330 AC_CACHE_CHECK([for setresuid declaration],samba_cv_have_setresuid_decl,[
331     AC_TRY_COMPILE([#include <unistd.h>],[int i = (int)setresuid],
332         samba_cv_have_setresuid_decl=yes,samba_cv_have_setresuid_decl=no)])
333 if test x"$samba_cv_have_setresuid_decl" = x"yes"; then
334     AC_DEFINE(HAVE_SETRESUID_DECL)
337 # stupid glibc has the functions but no declaration. grrrr.
338 AC_CACHE_CHECK([for setresgid declaration],samba_cv_have_setresgid_decl,[
339     AC_TRY_COMPILE([#include <unistd.h>],[int i = (int)setresgid],
340         samba_cv_have_setresgid_decl=yes,samba_cv_have_setresgid_decl=no)])
341 if test x"$samba_cv_have_setresgid_decl" = x"yes"; then
342     AC_DEFINE(HAVE_SETRESGID_DECL)
345 # and glibc has setresuid under linux but the function does
346 # nothing until kernel 2.1.44! very dumb.
347 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
348     AC_TRY_RUN([#include <errno.h>
349 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
350         samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
351 if test x"$samba_cv_have_setresuid" = x"yes"; then
352     AC_DEFINE(HAVE_SETRESUID)
355 # Do the same check for setresguid...
357 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
358     AC_TRY_RUN([#include <unistd.h>
359 #include <errno.h>
360 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
361         samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
362 if test x"$samba_cv_have_setresgid" = x"yes"; then
363     AC_DEFINE(HAVE_SETRESGID)
366 AC_FUNC_MEMCMP
368 ###############################################
369 # test for where we get crypt() from
370 AC_CHECK_FUNCS(crypt)
371 if test x"$ac_cv_func_crypt" = x"no"; then
372     AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
373         AC_DEFINE(HAVE_CRYPT)])
377 ###############################################
378 # Readline included by default unless explicitly asked not to
379 test "${with_readline+set}" != "set" && with_readline=yes
381 # test for where we get readline() from
382 AC_MSG_CHECKING(whether to use readline)
383 AC_ARG_WITH(readline,
384 [  --with-readline[=DIR]   Look for readline include/libs in DIR
385   --without-readline      Don't include readline support],
386 [  case "$with_readline" in
387   yes)
388     AC_MSG_RESULT(yes)
390     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
391     AC_CHECK_HEADERS(readline/history.h)
393     AC_CHECK_HEADERS(readline.h readline/readline.h,[
394       for termlib in ncurses curses termcap terminfo termlib; do
395        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
396       done
397       AC_CHECK_LIB(readline, rl_callback_handler_install,
398        [TERMLIBS="-lreadline $TERMLIBS"
399        AC_DEFINE(HAVE_LIBREADLINE)
400        break], [TERMLIBS=], $TERMLIBS)])
401     ;;
402   no)
403     AC_MSG_RESULT(no)
404     ;;
405   *)
406     AC_MSG_RESULT(yes)
408     # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
409     # alternate readline path
410     _ldflags=${LDFLAGS}
411     _cppflags=${CPPFLAGS}
413     # Add additional search path
414     LDFLAGS="-L$with_readline/lib $LDFLAGS"
415     CPPFLAGS="-I$with_readline/include $CPPFLAGS"
417     AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
418     AC_CHECK_HEADERS(readline/history.h)
420     AC_CHECK_HEADERS(readline.h readline/readline.h,[
421       for termlib in ncurses curses termcap terminfo termlib; do
422        AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
423       done
424       AC_CHECK_LIB(readline, rl_callback_handler_install,
425        [TERMLDFLAGS="-L$with_readline/lib"
426        TERMCPPFLAGS="-I$with_readline/include"
427        CPPFLAGS="-I$with_readline/include $CPPFLAGS"
428        TERMLIBS="-lreadline $TERMLIBS"
429        AC_DEFINE(HAVE_LIBREADLINE)
430        break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
432     LDFLAGS=$_ldflags
433     ;;
434   esac],
435   AC_MSG_RESULT(no)
437 AC_SUBST(TERMLIBS)
438 AC_SUBST(TERMLDFLAGS)
440 # The following test taken from the cvs sources
441 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
442 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
443 # libsocket.so which has a bad implementation of gethostbyname (it
444 # only looks in /etc/hosts), so we only look for -lsocket if we need
445 # it.
446 AC_CHECK_FUNCS(connect)
447 if test x"$ac_cv_func_connect" = x"no"; then
448     case "$LIBS" in
449     *-lnsl*) ;;
450     *) AC_CHECK_LIB(nsl_s, printf) ;;
451     esac
452     case "$LIBS" in
453     *-lnsl*) ;;
454     *) AC_CHECK_LIB(nsl, printf) ;;
455     esac
456     case "$LIBS" in
457     *-lsocket*) ;;
458     *) AC_CHECK_LIB(socket, connect) ;;
459     esac
460     case "$LIBS" in
461     *-linet*) ;;
462     *) AC_CHECK_LIB(inet, connect) ;;
463     esac
464     dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
465     dnl has been cached.
466     if test x"$ac_cv_lib_socket_connect" = x"yes" || 
467        test x"$ac_cv_lib_inet_connect" = x"yes"; then
468         # ac_cv_func_connect=yes
469         # don't!  it would cause AC_CHECK_FUNC to succeed next time configure is run
470         AC_DEFINE(HAVE_CONNECT)
471     fi
474 ###############################################
475 # test for where we get get_yp_default_domain() from
476 AC_CHECK_FUNCS(yp_get_default_domain)
477 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
478         AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
479         AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)]) 
482 # Check if we have execl, if not we need to compile smbrun.
483 AC_CHECK_FUNCS(execl)
484 if test x"$ac_cv_func_execl" = x"no"; then
485     RUNPROG="bin/smbrun"
486 else
487     RUNPROG=""
490 AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown fchown chmod fchmod chroot)
491 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset)
492 AC_CHECK_FUNCS(memmove vsnprintf snprintf setsid glob strpbrk pipe crypt16 getauthuid)
493 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr setnetgrent getnetgrent endnetgrent)
494 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf)
495 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
496 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
497 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
498 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl)
500 # syscall() is needed for smbwrapper.
501 AC_CHECK_FUNCS(syscall)
503 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
504 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
505 AC_CHECK_FUNCS(__getcwd _getcwd)
506 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
507 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
508 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
509 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
510 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
511 AC_CHECK_FUNCS(_write __write _fork __fork)
512 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
513 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
514 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
515 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
516 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
519 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
522 if test x$ac_cv_func_stat64 = xno ; then
523   AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
524   AC_TRY_LINK([
525 #if defined(HAVE_UNISTD_H)
526 #include <unistd.h>
527 #endif
528 #include <sys/stat.h>
529 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
530   AC_MSG_RESULT([$ac_cv_func_stat64])
531   if test x$ac_cv_func_stat64 = xyes ; then
532     AC_DEFINE(HAVE_STAT64)
533   fi
536 if test x$ac_cv_func_lstat64 = xno ; then
537   AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
538   AC_TRY_LINK([
539 #if defined(HAVE_UNISTD_H)
540 #include <unistd.h>
541 #endif
542 #include <sys/stat.h>
543 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
544   AC_MSG_RESULT([$ac_cv_func_lstat64])
545   if test x$ac_cv_func_lstat64 = xyes ; then
546     AC_DEFINE(HAVE_LSTAT64)
547   fi
550 if test x$ac_cv_func_fstat64 = xno ; then
551   AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
552   AC_TRY_LINK([
553 #if defined(HAVE_UNISTD_H)
554 #include <unistd.h>
555 #endif
556 #include <sys/stat.h>
557 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
558   AC_MSG_RESULT([$ac_cv_func_fstat64])
559   if test x$ac_cv_func_fstat64 = xyes ; then
560     AC_DEFINE(HAVE_FSTAT64)
561   fi
565 # If no strcasecmp, check for it in some known places
566 # It is in -lresolv on ReliantUNIX and UnixWare
567 #   -lresolve *must* follow -lnsl for name resolution to work properly
570 if test x$ac_cv_func_strcasecmp = xno ; then
571         AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
572                 AC_DEFINE(HAVE_STRCASECMP))
576 # Check for the functions putprpwnam, set_auth_parameters,
577 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
578 # Needed for OSF1 and HPUX.
581 AC_LIBTESTFUNC(security, putprpwnam)
582 AC_LIBTESTFUNC(sec, putprpwnam)
584 AC_LIBTESTFUNC(security, set_auth_parameters)
585 AC_LIBTESTFUNC(sec, set_auth_parameters)
587 # UnixWare 7.x has its getspnam in -lgen
588 AC_LIBTESTFUNC(gen, getspnam)
590 AC_LIBTESTFUNC(security, getspnam)
591 AC_LIBTESTFUNC(sec, getspnam)
593 AC_LIBTESTFUNC(security, bigcrypt)
594 AC_LIBTESTFUNC(sec, bigcrypt)
596 AC_LIBTESTFUNC(security, getprpwnam)
597 AC_LIBTESTFUNC(sec, getprpwnam)
599 # this bit needs to be modified for each OS that is suported by
600 # smbwrapper. You need to specify how to created a shared library and
601 # how to compile C code to produce PIC object files
603 # these are the defaults, good for lots of systems
604 HOST_OS="$host_os"
605 LDSHFLAGS="-shared"
606 PICFLAG=""
607 SHLIBEXT="so"
609 # and these are for particular systems
610 case "$host_os" in
611                 *linux*)   AC_DEFINE(LINUX);;
612                 *solaris*) AC_DEFINE(SUNOS5)
613                                         LDSHFLAGS="-G"
614                 ;;
615                 *sunos*) AC_DEFINE(SUNOS4)
616                                         LDSHFLAGS=""
617                 ;;
618                 *bsd*) LDSHFLAGS="-shared -Bshareable"
619                 ;;
620                 *irix*) AC_DEFINE(IRIX)
621                         case "$host_os" in
622                         *irix6*) AC_DEFINE(IRIX6)
623                         ;;
624                         esac
625                         ATTEMPT_WRAP32_BUILD=yes
626                 ;;
627                 *aix*) AC_DEFINE(AIX);;
628                 *hpux*) AC_DEFINE(HPUX)
629                         SHLIBEXT="sl"
630                         # Use special PIC flags for the native HP-UX compiler.
631                         if test $ac_cv_prog_cc_Ae = yes; then
632                                 LDSHFLAGS="-b"
633                                 PICFLAG="+z"
634                         fi
635                 ;;
636                 *qnx*) AC_DEFINE(QNX);;
637                 *osf*) AC_DEFINE(OSF1);;
638                 *sco*) AC_DEFINE(SCO);;
639                 *next2*) AC_DEFINE(NEXT2);;
640                 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
641                 *sysv4*)
642                         case "$host" in
643                                 *-univel-*)     if [ test "$GCC" != yes ]; then
644                                                                         AC_DEFINE(HAVE_MEMSET)
645                                                                 fi
646                                                                 LDSHFLAGS="-G"
647                                 ;;
648                                 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
649                         esac
650                         ;;
651                 *sysv5*)
652                         if [ test "$GCC" != yes ]; then
653                                 AC_DEFINE(HAVE_MEMSET)
654                         fi
655                         LDSHFLAGS="-G"
656                         ;;
657 esac
659 # try to work out how to produce pic code with this compiler
660 AC_PROG_CC_FLAG(fpic)
661 if test $ac_cv_prog_cc_fpic = yes; then
662     PICFLAG="-fpic";
664 if test x$PICFLAG = x; then
665   AC_PROG_CC_FLAG(KPIC)
666   if test $ac_cv_prog_cc_KPIC = yes; then
667     PICFLAG="-KPIC";
668   fi
670 if test x$PICFLAG = x; then
671   AC_PROG_CC_FLAG(Kpic)
672   if test $ac_cv_prog_cc_Kpic = yes; then
673     PICFLAG="-Kpic";
674   fi
677 ################
679 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
680 AC_TRY_RUN([#include <stdio.h>
681 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
682 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
683 if test x"$samba_cv_have_longlong" = x"yes"; then
684     AC_DEFINE(HAVE_LONGLONG)
688 # Check if the compiler supports the LL prefix on long long integers.
689 # AIX needs this.
691 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
692     AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
693         samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
694 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
695    AC_DEFINE(COMPILER_SUPPORTS_LL)
698   
699 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
700 AC_TRY_RUN([#include <stdio.h>
701 #include <sys/stat.h>
702 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
703 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
704 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
705     AC_DEFINE(SIZEOF_OFF_T,8)
708 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
709 AC_TRY_RUN([
710 #if defined(HAVE_UNISTD_H)
711 #include <unistd.h>
712 #endif
713 #include <stdio.h>
714 #include <sys/stat.h>
715 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
716 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
717 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
718     AC_DEFINE(HAVE_OFF64_T)
721 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
722 AC_TRY_RUN([#include <stdio.h>
723 #include <sys/stat.h>
724 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
725 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
726 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
727     AC_DEFINE(SIZEOF_INO_T,8)
730 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
731 AC_TRY_RUN([
732 #if defined(HAVE_UNISTD_H)
733 #include <unistd.h>
734 #endif
735 #include <stdio.h>
736 #include <sys/stat.h>
737 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
738 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
739 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
740     AC_DEFINE(HAVE_INO64_T)
743 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
744 AC_TRY_COMPILE([
745 #if defined(HAVE_UNISTD_H)
746 #include <unistd.h>
747 #endif
748 #include <sys/types.h>
749 #include <dirent.h>],
750 [struct dirent64 de;],
751 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
752 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
753     AC_DEFINE(HAVE_STRUCT_DIRENT64)
756 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
757 AC_TRY_RUN([#include <stdio.h>
758 main() { char c; c=250; exit((c > 0)?0:1); }],
759 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
760 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
761     AC_DEFINE(HAVE_UNSIGNED_CHAR)
764 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
765 AC_TRY_COMPILE([#include <sys/types.h>
766 #include <sys/socket.h>
767 #include <netinet/in.h>],
768 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
769 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
770 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
771     AC_DEFINE(HAVE_SOCK_SIN_LEN)
774 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
775 AC_TRY_COMPILE([#include <sys/types.h>
776 #include <dirent.h>
777 void seekdir(DIR *d, long loc) { return; }],[return 0;],
778 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
779 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
780     AC_DEFINE(SEEKDIR_RETURNS_VOID)
783 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
784 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
785 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
786 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
787     AC_DEFINE(HAVE_FILE_MACRO)
790 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
791 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
792 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
793 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
794     AC_DEFINE(HAVE_FUNCTION_MACRO)
797 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
798 AC_TRY_RUN([
799 #include <sys/time.h>
800 #include <unistd.h>
801 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
802            samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
803 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
804     AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
808 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
809 AC_TRY_RUN([#include <sys/types.h>
810 #include <dirent.h>
811 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
812 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
813 di->d_name[0] == 0) exit(0); exit(1);} ],
814 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
815 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
816     AC_DEFINE(HAVE_BROKEN_READDIR)
819 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
820 AC_TRY_COMPILE([#include <sys/types.h>
821 #include <utime.h>],
822 [struct utimbuf tbuf;  tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
823 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
824 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
825     AC_DEFINE(HAVE_UTIMBUF)
828 dnl  utmp and utmpx come in many flavours
829 dnl  We need to check for many of them
830 dnl  But we don't need to do each and every one, because our code uses
831 dnl  mostly just the utmp (not utmpx) fields.
833 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
835 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
836 AC_TRY_COMPILE([#include <sys/types.h>
837 #include <utmp.h>],
838 [struct utmp ut;  ut.ut_name[0] = 'a';],
839 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
840 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
841     AC_DEFINE(HAVE_UT_UT_NAME)
842 fi 
844 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
845 AC_TRY_COMPILE([#include <sys/types.h>
846 #include <utmp.h>],
847 [struct utmp ut;  ut.ut_user[0] = 'a';],
848 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
849 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
850     AC_DEFINE(HAVE_UT_UT_USER)
851 fi 
853 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
854 AC_TRY_COMPILE([#include <sys/types.h>
855 #include <utmp.h>],
856 [struct utmp ut;  ut.ut_id[0] = 'a';],
857 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
858 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
859     AC_DEFINE(HAVE_UT_UT_ID)
860 fi 
862 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
863 AC_TRY_COMPILE([#include <sys/types.h>
864 #include <utmp.h>],
865 [struct utmp ut;  ut.ut_host[0] = 'a';],
866 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
867 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
868     AC_DEFINE(HAVE_UT_UT_HOST)
869 fi 
871 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
872 AC_TRY_COMPILE([#include <sys/types.h>
873 #include <utmp.h>],
874 [struct utmp ut;  time_t t; ut.ut_time = t;],
875 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
876 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
877     AC_DEFINE(HAVE_UT_UT_TIME)
878 fi 
880 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
881 AC_TRY_COMPILE([#include <sys/types.h>
882 #include <utmp.h>],
883 [struct utmp ut;  struct timeval tv; ut.ut_tv = tv;],
884 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
885 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
886     AC_DEFINE(HAVE_UT_UT_TV)
887 fi 
889 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
890 AC_TRY_COMPILE([#include <sys/types.h>
891 #include <utmp.h>],
892 [struct utmp ut;  ut.ut_type = 0;],
893 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
894 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
895     AC_DEFINE(HAVE_UT_UT_TYPE)
896 fi 
898 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
899 AC_TRY_COMPILE([#include <sys/types.h>
900 #include <utmp.h>],
901 [struct utmp ut;  ut.ut_pid = 0;],
902 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
903 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
904     AC_DEFINE(HAVE_UT_UT_PID)
905 fi 
907 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
908 AC_TRY_COMPILE([#include <sys/types.h>
909 #include <utmp.h>],
910 [struct utmp ut;  ut.ut_exit.e_exit = 0;],
911 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
912 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
913     AC_DEFINE(HAVE_UT_UT_EXIT)
914 fi 
916 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
917 AC_TRY_COMPILE([#include <sys/types.h>
918 #include <utmp.h>],
919 [struct utmp ut;  ut.ut_addr = 0;],
920 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
921 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
922     AC_DEFINE(HAVE_UT_UT_ADDR)
923 fi 
925 if test x$ac_cv_func_pututline = xyes ; then
926   AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
927   AC_TRY_COMPILE([#include <sys/types.h>
928 #include <utmp.h>],
929   [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
930   samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
931   if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
932       AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
933   fi
936 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
937 AC_TRY_COMPILE([#include <sys/types.h>
938 #include <utmpx.h>],
939 [struct utmpx ux;  ux.ut_syslen = 0;],
940 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
941 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
942     AC_DEFINE(HAVE_UX_UT_SYSLEN)
943 fi 
945 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
946 AC_TRY_RUN([
947 #include <sys/types.h>
948 #include <fcntl.h>
949 #ifndef F_GETLEASE
950 #define F_GETLEASE      1025
951 #endif
952 main() {
953        int fd = open("/dev/null", O_RDONLY);
954        return fcntl(fd, F_GETLEASE, 0) == -1;
957 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
958 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
959     AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
962 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
963 AC_TRY_RUN([
964 #include <sys/types.h>
965 #include <fcntl.h>
966 #include <signal.h>
967 #ifndef F_NOTIFY
968 #define F_NOTIFY 1026
969 #endif
970 main() {
971         exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ?  1 : 0);
974 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
975 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
976     AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
979 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
980 AC_TRY_RUN([
981 #include <sys/types.h>
982 #include <fcntl.h>
983 #include <signal.h>
984 #include <sys/file.h>
985 #ifndef LOCK_MAND
986 #define LOCK_MAND       32
987 #define LOCK_READ       64
988 #endif
989 main() {
990         exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
993 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
994 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
995     AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1001 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1002 AC_TRY_COMPILE([#include <sys/types.h>
1003 #include <fcntl.h>],
1004 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1005 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1006 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1007     AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1010 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1011 AC_TRY_RUN([#include <sys/types.h>
1012 #include <sys/capability.h>
1013 main() {
1014  cap_t cap;
1015  if ((cap = cap_get_proc()) == NULL)
1016    exit(1);
1017  cap->cap_effective |= CAP_NETWORK_MGT;
1018  cap->cap_inheritable |= CAP_NETWORK_MGT;
1019  cap_set_proc(cap);
1020  exit(0);
1023 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1024 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1025     AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1029 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1030 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1033 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1034 AC_TRY_COMPILE([#include <sys/types.h>
1035 #if defined(HAVE_RPC_RPC_H)
1036 #include <rpc/rpc.h>
1037 #endif],
1038 [int16 testvar;],
1039 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1040 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1041     AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1044 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1045 AC_TRY_COMPILE([#include <sys/types.h>
1046 #if defined(HAVE_RPC_RPC_H)
1047 #include <rpc/rpc.h>
1048 #endif],
1049 [uint16 testvar;],
1050 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1051 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1052     AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1055 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1056 AC_TRY_COMPILE([#include <sys/types.h>
1057 #if defined(HAVE_RPC_RPC_H)
1058 #include <rpc/rpc.h>
1059 #endif],
1060 [int32 testvar;],
1061 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1062 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1063     AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1066 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1067 AC_TRY_COMPILE([#include <sys/types.h>
1068 #if defined(HAVE_RPC_RPC_H)
1069 #include <rpc/rpc.h>
1070 #endif],
1071 [uint32 testvar;],
1072 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1073 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1074     AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1078 dnl Some systems (SCO) have a problem including
1079 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1080 dnl as a #define in <prot.h> and as part of an enum
1081 dnl in <rpc/rpc.h>.
1084 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1085 AC_TRY_COMPILE([#include <sys/types.h>
1086 #ifdef HAVE_SYS_SECURITY_H
1087 #include <sys/security.h>
1088 #include <prot.h>
1089 #endif  /* HAVE_SYS_SECURITY_H */
1090 #if defined(HAVE_RPC_RPC_H)
1091 #include <rpc/rpc.h>
1092 #endif],
1093 [int testvar;],
1094 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1095 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1096     AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1099 AC_MSG_CHECKING([for test routines])
1100 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1101            AC_MSG_RESULT(yes),
1102            AC_MSG_ERROR([cant find test code. Aborting config]),
1103            AC_MSG_WARN([cannot run when cross-compiling]))
1105 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1106 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1107            samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1108 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1109     AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1112 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1113 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1114            samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1115 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1116     AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1119 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1120 SAVE_CPPFLAGS="$CPPFLAGS"
1121 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1122 AC_TRY_COMPILE([
1123 #define REPLACE_GETPASS 1
1124 #define NO_CONFIG_H 1
1125 #define main dont_declare_main
1126 #include "${srcdir-.}/lib/getsmbpass.c"
1127 #undef main
1128 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1129 CPPFLAGS="$SAVE_CPPFLAGS"
1131 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1132         AC_DEFINE(REPLACE_GETPASS)
1135 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1136 AC_TRY_RUN([
1137 #include <stdio.h>
1138 #include <sys/types.h>
1139 #include <netinet/in.h>
1140 #ifdef HAVE_ARPA_INET_H
1141 #include <arpa/inet.h>
1142 #endif
1143 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1144 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1145     strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } 
1146 exit(1);}],
1147            samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1148 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1149     AC_DEFINE(REPLACE_INET_NTOA)
1152 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1153 AC_TRY_RUN([#include <stdlib.h>
1154 #include <sys/types.h>
1155 #include <sys/stat.h>
1156 #include <unistd.h>
1157 main() { 
1158   struct stat st;
1159   char tpl[20]="/tmp/test.XXXXXX"; 
1160   int fd = mkstemp(tpl); 
1161   if (fd == -1) exit(1);
1162   unlink(tpl);
1163   if (fstat(fd, &st) != 0) exit(1);
1164   if ((st.st_mode & 0777) != 0600) exit(1);
1165   exit(0);
1167 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1168 samba_cv_HAVE_SECURE_MKSTEMP=no,
1169 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1170 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1171     AC_DEFINE(HAVE_SECURE_MKSTEMP)
1174 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1175 AC_TRY_RUN([#include <unistd.h>
1176 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1177 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1178 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1179     AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1182 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1183 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1184            samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1185 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1186     AC_DEFINE(HAVE_ROOT)
1187 else
1188     AC_MSG_WARN(running as non-root will disable some tests)
1191 ##################
1192 # look for a method of finding the list of network interfaces
1193 iface=no;
1194 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1195 AC_TRY_RUN([
1196 #define HAVE_IFACE_AIX 1
1197 #define AUTOCONF_TEST 1
1198 #include "confdefs.h"
1199 #include "${srcdir-.}/lib/interfaces.c"],
1200            samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1201 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1202     iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1205 if test $iface = no; then
1206 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1207 AC_TRY_RUN([
1208 #define HAVE_IFACE_IFCONF 1
1209 #define AUTOCONF_TEST 1
1210 #include "confdefs.h"
1211 #include "${srcdir-.}/lib/interfaces.c"],
1212            samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1213 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1214     iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1218 if test $iface = no; then
1219 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1220 AC_TRY_RUN([
1221 #define HAVE_IFACE_IFREQ 1
1222 #define AUTOCONF_TEST 1
1223 #include "confdefs.h"
1224 #include "${srcdir-.}/lib/interfaces.c"],
1225            samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1226 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1227     iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1232 ################################################
1233 # look for a method of setting the effective uid
1234 seteuid=no;
1235 if test $seteuid = no; then
1236 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1237 AC_TRY_RUN([
1238 #define AUTOCONF_TEST 1
1239 #define USE_SETRESUID 1
1240 #include "confdefs.h"
1241 #include "${srcdir-.}/lib/util_sec.c"],
1242            samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1243 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1244     seteuid=yes;AC_DEFINE(USE_SETRESUID)
1249 if test $seteuid = no; then
1250 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1251 AC_TRY_RUN([
1252 #define AUTOCONF_TEST 1
1253 #define USE_SETREUID 1
1254 #include "confdefs.h"
1255 #include "${srcdir-.}/lib/util_sec.c"],
1256            samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1257 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1258     seteuid=yes;AC_DEFINE(USE_SETREUID)
1262 if test $seteuid = no; then
1263 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1264 AC_TRY_RUN([
1265 #define AUTOCONF_TEST 1
1266 #define USE_SETEUID 1
1267 #include "confdefs.h"
1268 #include "${srcdir-.}/lib/util_sec.c"],
1269            samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1270 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1271     seteuid=yes;AC_DEFINE(USE_SETEUID)
1275 if test $seteuid = no; then
1276 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1277 AC_TRY_RUN([
1278 #define AUTOCONF_TEST 1
1279 #define USE_SETUIDX 1
1280 #include "confdefs.h"
1281 #include "${srcdir-.}/lib/util_sec.c"],
1282            samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1283 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1284     seteuid=yes;AC_DEFINE(USE_SETUIDX)
1289 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1290 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1291            samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1292 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1293     AC_DEFINE(HAVE_MMAP)
1296 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1297 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1298            samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1299 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1300     AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1303 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1304 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1305            samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1306 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1307     AC_DEFINE(HAVE_FCNTL_LOCK)
1310 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1311 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1312            samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1313 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1314     AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1316 else
1319 dnl Don't check for 64 bit fcntl locking if we know that the
1320 dnl glibc2.1 broken check has succeeded.
1321 dnl 
1323   AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1324   AC_TRY_RUN([
1325 #if defined(HAVE_UNISTD_H)
1326 #include <unistd.h>
1327 #endif
1328 #include <stdio.h>
1329 #include <stdlib.h>
1331 #ifdef HAVE_FCNTL_H
1332 #include <fcntl.h>
1333 #endif
1335 #ifdef HAVE_SYS_FCNTL_H
1336 #include <sys/fcntl.h>
1337 #endif
1338 main() { struct flock64 fl64;
1339 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1340 exit(0);
1341 #else
1342 exit(1);
1343 #endif
1345        samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1347   if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1348       AC_DEFINE(HAVE_STRUCT_FLOCK64)
1349   fi
1352 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1353 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1354            samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1355 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1356     AC_DEFINE(HAVE_TRUNCATED_SALT)
1359 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1360 AC_TRY_COMPILE([#include <sys/acl.h>
1361 #if defined(HAVE_RPCSVC_NIS_H)
1362 #include <rpcsvc/nis.h>
1363 #endif],
1364 [return 0;],
1365 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1366 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1367     AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1371 #################################################
1372 # check for smbwrapper support
1373 AC_MSG_CHECKING(whether to use smbwrapper)
1374 AC_ARG_WITH(smbwrapper,
1375 [  --with-smbwrapper     Include SMB wrapper support
1376   --without-smbwrapper  Don't include SMB wrapper support (default)],
1377 [ case "$withval" in
1378   yes)
1379     AC_MSG_RESULT(yes)
1380     AC_DEFINE(WITH_SMBWRAPPER)
1381         WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1383         if test x$ATTEMPT_WRAP32_BUILD = x; then
1384                 WRAP32=""
1385         else
1386                         WRAP32=bin/smbwrapper.32.$SHLIBEXT
1387         fi
1389 # Conditions under which smbwrapper should not be built.
1391         if test x$PICFLAG = x; then
1392            echo No support for PIC code - disabling smbwrapper and smbsh
1393            WRAP=""
1394            WRAP32=""
1395         elif test x$ac_cv_func_syscall = xno; then
1396            AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1397            WRAP=""
1398            WRAP32=""
1399         fi
1400     ;;
1401   *)
1402     AC_MSG_RESULT(no)
1403     ;;
1404   esac ],
1405   AC_MSG_RESULT(no)
1408 #################################################
1409 # check for the AFS filesystem
1410 AC_MSG_CHECKING(whether to use AFS)
1411 AC_ARG_WITH(afs,
1412 [  --with-afs     Include AFS support
1413   --without-afs  Don't include AFS support (default)],
1414 [ case "$withval" in
1415   yes)
1416     AC_MSG_RESULT(yes)
1417     AC_DEFINE(WITH_AFS)
1418     ;;
1419   *)
1420     AC_MSG_RESULT(no)
1421     ;;
1422   esac ],
1423   AC_MSG_RESULT(no)
1427 #################################################
1428 # check for the DFS auth system
1429 AC_MSG_CHECKING(whether to use DFS auth)
1430 AC_ARG_WITH(dfs,
1431 [  --with-dfs     Include DFS support
1432   --without-dfs  Don't include DFS support (default)],
1433 [ case "$withval" in
1434   yes)
1435     AC_MSG_RESULT(yes)
1436     AC_DEFINE(WITH_DFS)
1437     ;;
1438   *)
1439     AC_MSG_RESULT(no)
1440     ;;
1441   esac ],
1442   AC_MSG_RESULT(no)
1445 #################################################
1446 # check for Kerberos IV auth system
1447 AC_MSG_CHECKING(whether to use Kerberos IV)
1448 AC_ARG_WITH(krb4,
1449 [  --with-krb4=base-dir     Include Kerberos IV support
1450   --without-krb4          Don't include Kerberos IV support (default)],
1451 [   AC_MSG_RESULT(yes)
1452     AC_DEFINE(KRB4_AUTH)
1453     AC_CHECK_LIB(resolv, dn_expand)
1454     LIBS="$LIBS -lkrb -ldes"
1455     CFLAGS="$CFLAGS -I$withval/include"
1456     LDFLAGS="$LDFLAGS -L$withval/lib"],
1457   AC_MSG_RESULT(no)
1460 #################################################
1461 # check for Kerberos 5 auth system
1462 AC_MSG_CHECKING(whether to use Kerberos 5)
1463 AC_ARG_WITH(krb5,
1464 [  --with-krb5=base-dir     Include Kerberos 5 support
1465   --without-krb5          Don't include Kerberos 5 support (default)],
1466 [   AC_MSG_RESULT(yes)
1467     AC_DEFINE(KRB5_AUTH)
1468     LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1469     CFLAGS="$CFLAGS -I$withval/include"
1470     LDFLAGS="$LDFLAGS -L$withval/lib"],
1471   AC_MSG_RESULT(no)
1474 #################################################
1475 # check for automount support
1476 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1477 AC_ARG_WITH(automount,
1478 [  --with-automount     Include AUTOMOUNT support
1479   --without-automount  Don't include AUTOMOUNT support (default)],
1480 [ case "$withval" in
1481   yes)
1482     AC_MSG_RESULT(yes)
1483     AC_DEFINE(WITH_AUTOMOUNT)
1484     ;;
1485   *)
1486     AC_MSG_RESULT(no)
1487     ;;
1488   esac ],
1489   AC_MSG_RESULT(no)
1492 #################################################
1493 # check for smbmount support
1494 AC_MSG_CHECKING(whether to use SMBMOUNT)
1495 AC_ARG_WITH(smbmount,
1496 [  --with-smbmount     Include SMBMOUNT (Linux only) support
1497   --without-smbmount  Don't include SMBMOUNT support (default)],
1498 [ case "$withval" in
1499   yes)
1500     AC_MSG_RESULT(yes)
1501     AC_DEFINE(WITH_SMBMOUNT)
1502     MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1503     ;;
1504   *)
1505     AC_MSG_RESULT(no)
1506     MPROGS=
1507     ;;
1508   esac ],
1509   AC_MSG_RESULT(no)
1510   MPROGS=
1514 #################################################
1515 # check for a PAM password database
1516 with_pam_for_crypt=no
1517 AC_MSG_CHECKING(whether to use PAM password database)
1518 AC_ARG_WITH(pam,
1519 [  --with-pam     Include PAM password database support
1520   --without-pam  Don't include PAM password database support (default)],
1521 [ case "$withval" in
1522   yes)
1523     AC_MSG_RESULT(yes)
1524     AC_DEFINE(WITH_PAM)
1525     LIBS="$LIBS -lpam"
1526     with_pam_for_crypt=yes
1527     ;;
1528   *)
1529     AC_MSG_RESULT(no)
1530     ;;
1531   esac ],
1532   AC_MSG_RESULT(no)
1536 ###############################################
1537 # test for where we get crypt() from, but only
1538 # if not using PAM
1539 if test $with_pam_for_crypt = no; then
1540 AC_CHECK_FUNCS(crypt)
1541 if test x"$ac_cv_func_crypt" = x"no"; then
1542     AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
1543         AC_DEFINE(HAVE_CRYPT)])
1548 #################################################
1549 # check for a TDB password database
1550 AC_MSG_CHECKING(whether to use TDB password database)
1551 AC_ARG_WITH(tdbsam,
1552 [  --with-tdbsam   Include experimental TDB password database
1553   --without-tdbsam  Don't include experimental TDB password database (default)],
1554 [ case "$withval" in
1555   yes)
1556     AC_MSG_RESULT(yes)
1557     AC_DEFINE(WITH_TDBPWD)
1558 #    AC_MSG_ERROR([TDB password database not supported in this version.])
1559     ;;
1560   *)
1561     AC_MSG_RESULT(no)
1562     ;;
1563   esac ],
1564   AC_MSG_RESULT(no)
1567 #################################################
1568 # check for a LDAP password database
1569 AC_MSG_CHECKING(whether to use LDAP password database)
1570 AC_ARG_WITH(ldap,
1571 [  --with-ldap     Include LDAP support
1572   --without-ldap  Don't include LDAP support (default)],
1573 [ case "$withval" in
1574   yes)
1575     AC_MSG_RESULT(yes)
1576     AC_DEFINE(WITH_LDAP)
1577     AC_MSG_ERROR([LDAP password database not supported in this version.])
1578     ;;
1579   *)
1580     AC_MSG_RESULT(no)
1581     ;;
1582   esac ],
1583   AC_MSG_RESULT(no)
1586 #################################################
1587 # check for a NISPLUS password database
1588 AC_MSG_CHECKING(whether to use NISPLUS password database)
1589 AC_ARG_WITH(nisplus,
1590 [  --with-nisplus     Include NISPLUS password database support
1591   --without-nisplus  Don't include NISPLUS password database support (default)],
1592 [ case "$withval" in
1593   yes)
1594     AC_MSG_RESULT(yes)
1595     AC_DEFINE(WITH_NISPLUS)
1596     ;;
1597   *)
1598     AC_MSG_RESULT(no)
1599     ;;
1600   esac ],
1601   AC_MSG_RESULT(no)
1604 #################################################
1605 # check for a NISPLUS_HOME support 
1606 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1607 AC_ARG_WITH(nisplus-home,
1608 [  --with-nisplus-home     Include NISPLUS_HOME support
1609   --without-nisplus-home  Don't include NISPLUS_HOME support (default)],
1610 [ case "$withval" in
1611   yes)
1612     AC_MSG_RESULT(yes)
1613     AC_DEFINE(WITH_NISPLUS_HOME)
1614     ;;
1615   *)
1616     AC_MSG_RESULT(no)
1617     ;;
1618   esac ],
1619   AC_MSG_RESULT(no)
1622 #################################################
1623 # check for the secure socket layer
1624 AC_MSG_CHECKING(whether to use SSL)
1625 AC_ARG_WITH(ssl,
1626 [  --with-ssl     Include SSL support
1627   --without-ssl  Don't include SSL support (default)
1628   --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl)],
1629 [ case "$withval" in
1630   yes)
1631     AC_MSG_RESULT(yes)
1632     AC_DEFINE(WITH_SSL)
1633     withval="/usr/local/ssl"     # default
1635     if test "${with_sslinc+set}" = set; then
1637         withval="$with_sslinc"
1638         case "$withval" in
1639         yes|no)
1640           echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1641           CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1642           LIBS="-lssl -lcrypto $LIBS"
1643           LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
1644         ;;
1645         * )
1646           CFLAGS="-I${withval}/include $CFLAGS"
1647           LIBS="-lssl -lcrypto $LIBS"
1648           LDFLAGS="-L${withval}/lib $LDFLAGS"
1649         ;;
1650         esac
1652     else
1654         CFLAGS="-I/usr/local/ssl/include $CFLAGS"   
1655         LIBS="-lssl -lcrypto $LIBS"
1656         LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1658     fi
1660     if test ! -d ${withval}; then
1661       echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1662       exit 1
1663     fi 
1665     CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS"  # Damn, SSLeay defines its own
1667     ;;
1668   *)
1669     AC_MSG_RESULT(no)
1670     ;;
1671   esac ],
1672   AC_MSG_RESULT(no)
1675 #################################################
1676 # check for syslog logging
1677 AC_MSG_CHECKING(whether to use syslog logging)
1678 AC_ARG_WITH(syslog,
1679 [  --with-syslog     Include experimental SYSLOG support
1680   --without-syslog  Don't include SYSLOG support (default)],
1681 [ case "$withval" in
1682   yes)
1683     AC_MSG_RESULT(yes)
1684     AC_DEFINE(WITH_SYSLOG)
1685     ;;
1686   *)
1687     AC_MSG_RESULT(no)
1688     ;;
1689   esac ],
1690   AC_MSG_RESULT(no)
1693 #################################################
1694 # check for a shared memory profiling support
1695 AC_MSG_CHECKING(whether to use profiling)
1696 AC_ARG_WITH(profile,
1697 [  --with-profile     Include profile support
1698   --without-profile  Don't include profile support (default)],
1699 [ case "$withval" in
1700   yes)
1701     AC_MSG_RESULT(yes)
1702     AC_DEFINE(WITH_PROFILE)
1703     ;;
1704   *)
1705     AC_MSG_RESULT(no)
1706     ;;
1707   esac ],
1708   AC_MSG_RESULT(no)
1712 #################################################
1713 # check for experimental netatalk resource fork support
1714 AC_MSG_CHECKING(whether to support netatalk)
1715 AC_ARG_WITH(netatalk,
1716 [  --with-netatalk     Include experimental Netatalk support
1717   --without-netatalk  Don't include experimental Netatalk support (default)],
1718 [ case "$withval" in
1719   yes)
1720     AC_MSG_RESULT(yes)
1721     AC_DEFINE(WITH_NETATALK)
1722     ;;
1723   *)
1724     AC_MSG_RESULT(no)
1725     ;;
1726   esac ],
1727   AC_MSG_RESULT(no)
1730 #################################################
1731 # check for experimental disk-quotas support
1732 QUOTAOBJS=smbd/noquotas.o
1734 AC_MSG_CHECKING(whether to support disk-quotas)
1735 AC_ARG_WITH(quotas,
1736 [  --with-quotas     Include experimental disk-quota support
1737   --without-quotas  Don't include experimental disk-quota support (default)],
1738 [ case "$withval" in
1739   yes)
1740     AC_MSG_RESULT(yes)
1741     QUOTAOBJS=smbd/quotas.o
1742     ;;
1743   *)
1744     AC_MSG_RESULT(no)
1745     ;;
1746   esac ],
1747   AC_MSG_RESULT(no)
1749 AC_SUBST(QUOTAOBJS)
1751 #################################################
1752 # check for experimental utmp accounting
1754 AC_MSG_CHECKING(whether to support utmp accounting)
1755 AC_ARG_WITH(utmp,
1756 [  --with-utmp     Include experimental utmp accounting
1757   --without-utmp  Don't include experimental utmp accounting (default)],
1758 [ case "$withval" in
1759   yes)
1760     AC_MSG_RESULT(yes)
1761     AC_DEFINE(WITH_UTMP)
1762     ;;
1763   *)
1764     AC_MSG_RESULT(no)
1765     ;;
1766   esac ],
1767   AC_MSG_RESULT(no)
1770 #################################################
1771 # check for MS Dfs support
1773 AC_MSG_CHECKING(whether to support Microsoft Dfs)
1774 AC_ARG_WITH(msdfs,
1775 [  --with-msdfs         Include MS Dfs support
1776   --without-msdfs       Don't include MS Dfs support (default)],
1777 [ case "$withval" in
1778   yes)
1779      AC_MSG_RESULT(yes)
1780      AC_DEFINE(WITH_MSDFS)
1781      ;;
1782   *)
1783     AC_MSG_RESULT(no)
1784     ;;
1785   esac ],
1786   AC_MSG_RESULT(no)
1789 #################################################
1790 # set private directory location
1791 AC_ARG_WITH(privatedir,
1792 [  --with-privatedir=DIR     Where to put smbpasswd ($ac_default_prefix/private)],
1793 [ case "$withval" in
1794   yes|no)
1795   #
1796   # Just in case anybody calls it without argument
1797   #
1798     AC_MSG_WARN([--with-privatedir called without argument - will use default])
1799     privatedir='${prefix}/private'
1800   ;;
1801   * )
1802     privatedir="$withval"
1803     ;;
1804   esac
1805   AC_SUBST(privatedir)],
1806   [privatedir='${prefix}/private'
1807    AC_SUBST(privatedir)]
1810 #################################################
1811 # set lock directory location
1812 AC_ARG_WITH(lockdir,
1813 [  --with-lockdir=DIR     Where to put lock files ($ac_default_prefix/var/locks)],
1814 [ case "$withval" in
1815   yes|no)
1816   #
1817   # Just in case anybody calls it without argument
1818   #
1819     AC_MSG_WARN([--with-lockdir called without argument - will use default])
1820     lockdir='$(VARDIR)/locks'
1821   ;;
1822   * )
1823     lockdir="$withval"
1824     ;;
1825   esac
1826   AC_SUBST(lockdir)],
1827   [lockdir='$(VARDIR)/locks'
1828    AC_SUBST(lockdir)]
1831 #################################################
1832 # set SWAT directory location
1833 AC_ARG_WITH(swatdir,
1834 [  --with-swatdir=DIR     Where to put SWAT files ($ac_default_prefix/swat)],
1835 [ case "$withval" in
1836   yes|no)
1837   #
1838   # Just in case anybody does it
1839   #
1840     AC_MSG_WARN([--with-swatdir called without argument - will use default])
1841     swatdir='${prefix}/swat'
1842   ;;
1843   * )
1844     swatdir="$withval"
1845     ;;
1846   esac
1847   AC_SUBST(swatdir)],
1848   [swatdir='${prefix}/swat'
1849    AC_SUBST(swatdir)]
1852 #################################################
1853 # these tests are taken from the GNU fileutils package
1854 AC_CHECKING(how to get filesystem space usage)
1855 space=no
1857 # Test for statvfs64.
1858 if test $space = no; then
1859   # SVR4
1860   AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
1861   [AC_TRY_RUN([
1862 #if defined(HAVE_UNISTD_H)
1863 #include <unistd.h>
1864 #endif
1865 #include <sys/types.h>
1866 #include <sys/statvfs.h>
1867   main ()
1868   {
1869     struct statvfs64 fsd;
1870     exit (statvfs64 (".", &fsd));
1871   }],
1872   fu_cv_sys_stat_statvfs64=yes,
1873   fu_cv_sys_stat_statvfs64=no,
1874   fu_cv_sys_stat_statvfs64=cross)])
1875   if test $fu_cv_sys_stat_statvfs64 = yes; then
1876     space=yes
1877     AC_DEFINE(STAT_STATVFS64)
1878   fi
1881 # Perform only the link test since it seems there are no variants of the
1882 # statvfs function.  This check is more than just AC_CHECK_FUNCS(statvfs)
1883 # because that got a false positive on SCO OSR5.  Adding the declaration
1884 # of a `struct statvfs' causes this test to fail (as it should) on such
1885 # systems.  That system is reported to work fine with STAT_STATFS4 which
1886 # is what it gets when this test fails.
1887 if test $space = no; then
1888   # SVR4
1889   AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
1890                  [AC_TRY_LINK([#include <sys/types.h>
1891 #include <sys/statvfs.h>],
1892                               [struct statvfs fsd; statvfs (0, &fsd);],
1893                               fu_cv_sys_stat_statvfs=yes,
1894                               fu_cv_sys_stat_statvfs=no)])
1895   if test $fu_cv_sys_stat_statvfs = yes; then
1896     space=yes
1897     AC_DEFINE(STAT_STATVFS)
1898   fi
1901 if test $space = no; then
1902   # DEC Alpha running OSF/1
1903   AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
1904   AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
1905   [AC_TRY_RUN([
1906 #include <sys/param.h>
1907 #include <sys/types.h>
1908 #include <sys/mount.h>
1909   main ()
1910   {
1911     struct statfs fsd;
1912     fsd.f_fsize = 0;
1913     exit (statfs (".", &fsd, sizeof (struct statfs)));
1914   }],
1915   fu_cv_sys_stat_statfs3_osf1=yes,
1916   fu_cv_sys_stat_statfs3_osf1=no,
1917   fu_cv_sys_stat_statfs3_osf1=no)])
1918   AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
1919   if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
1920     space=yes
1921     AC_DEFINE(STAT_STATFS3_OSF1)
1922   fi
1925 if test $space = no; then
1926 # AIX
1927   AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
1928 member (AIX, 4.3BSD)])
1929   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
1930   [AC_TRY_RUN([
1931 #ifdef HAVE_SYS_PARAM_H
1932 #include <sys/param.h>
1933 #endif
1934 #ifdef HAVE_SYS_MOUNT_H
1935 #include <sys/mount.h>
1936 #endif
1937 #ifdef HAVE_SYS_VFS_H
1938 #include <sys/vfs.h>
1939 #endif
1940   main ()
1941   {
1942   struct statfs fsd;
1943   fsd.f_bsize = 0;
1944   exit (statfs (".", &fsd));
1945   }],
1946   fu_cv_sys_stat_statfs2_bsize=yes,
1947   fu_cv_sys_stat_statfs2_bsize=no,
1948   fu_cv_sys_stat_statfs2_bsize=no)])
1949   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
1950   if test $fu_cv_sys_stat_statfs2_bsize = yes; then
1951     space=yes
1952     AC_DEFINE(STAT_STATFS2_BSIZE)
1953   fi
1956 if test $space = no; then
1957 # SVR3
1958   AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
1959   AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
1960   [AC_TRY_RUN([#include <sys/types.h>
1961 #include <sys/statfs.h>
1962   main ()
1963   {
1964   struct statfs fsd;
1965   exit (statfs (".", &fsd, sizeof fsd, 0));
1966   }],
1967     fu_cv_sys_stat_statfs4=yes,
1968     fu_cv_sys_stat_statfs4=no,
1969     fu_cv_sys_stat_statfs4=no)])
1970   AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
1971   if test $fu_cv_sys_stat_statfs4 = yes; then
1972     space=yes
1973     AC_DEFINE(STAT_STATFS4)
1974   fi
1977 if test $space = no; then
1978 # 4.4BSD and NetBSD
1979   AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
1980 member (4.4BSD and NetBSD)])
1981   AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
1982   [AC_TRY_RUN([#include <sys/types.h>
1983 #ifdef HAVE_SYS_PARAM_H
1984 #include <sys/param.h>
1985 #endif
1986 #ifdef HAVE_SYS_MOUNT_H
1987 #include <sys/mount.h>
1988 #endif
1989   main ()
1990   {
1991   struct statfs fsd;
1992   fsd.f_fsize = 0;
1993   exit (statfs (".", &fsd));
1994   }],
1995   fu_cv_sys_stat_statfs2_fsize=yes,
1996   fu_cv_sys_stat_statfs2_fsize=no,
1997   fu_cv_sys_stat_statfs2_fsize=no)])
1998   AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
1999   if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2000     space=yes
2001     AC_DEFINE(STAT_STATFS2_FSIZE)
2002   fi
2005 if test $space = no; then
2006   # Ultrix
2007   AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2008   AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2009   [AC_TRY_RUN([#include <sys/types.h>
2010 #ifdef HAVE_SYS_PARAM_H
2011 #include <sys/param.h>
2012 #endif
2013 #ifdef HAVE_SYS_MOUNT_H
2014 #include <sys/mount.h>
2015 #endif
2016 #ifdef HAVE_SYS_FS_TYPES_H
2017 #include <sys/fs_types.h>
2018 #endif
2019   main ()
2020   {
2021   struct fs_data fsd;
2022   /* Ultrix's statfs returns 1 for success,
2023      0 for not mounted, -1 for failure.  */
2024   exit (statfs (".", &fsd) != 1);
2025   }],
2026   fu_cv_sys_stat_fs_data=yes,
2027   fu_cv_sys_stat_fs_data=no,
2028   fu_cv_sys_stat_fs_data=no)])
2029   AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2030   if test $fu_cv_sys_stat_fs_data = yes; then
2031     space=yes
2032     AC_DEFINE(STAT_STATFS2_FS_DATA)
2033   fi
2037 # As a gating factor for large file support, in order to
2038 # use <4GB files we must have the following minimal support
2039 # available.
2040 # long long, and a 64 bit off_t or off64_t.
2041 # If we don't have all of these then disable large
2042 # file support.
2044 AC_MSG_CHECKING([if large file support can be enabled])
2045 AC_TRY_COMPILE([
2046 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2047 #include <sys/types.h>
2048 #else
2049 __COMPILE_ERROR_
2050 #endif
2052 [int i],
2053 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2054 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2055         AC_MSG_RESULT(yes)
2056     AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2057 else
2058         AC_MSG_RESULT(no)
2060 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2062 AC_ARG_WITH(spinlocks, [  --with-spinlocks        use spin locks instead of fcntl locks ])
2063 if test "x$with_spinlocks" = "xyes"; then
2064     AC_DEFINE(USE_SPINLOCKS)
2066     case "$host_cpu" in
2067         sparc)
2068             AC_DEFINE(SPARC_SPINLOCKS)
2069             ;;
2071         i386|i486|i586|i686)
2072             AC_DEFINE(INTEL_SPINLOCKS)
2073             ;;
2075         mips)
2076             AC_DEFINE(MIPS_SPINLOCKS)
2077             ;;
2079         powerpc)
2080             AC_DEFINE(POWERPC_SPINLOCKS)
2081             ;;
2082     esac
2085 #################################################
2086 # check for ACL support
2088 AC_MSG_CHECKING(whether to support ACLs)
2089 AC_ARG_WITH(acl-support,
2090 [  --with-acl-support        Include ACL support
2091   --without-acl-support  Don't include ACL support (default)],
2092 [ case "$withval" in
2093   yes)
2095         case "$host_os" in
2096         *sysv5*)
2097             AC_MSG_RESULT(Using UnixWare ACLs)
2098             AC_DEFINE(HAVE_UNIXWARE_ACLS)
2099             ;;
2100         *solaris*)
2101             AC_MSG_RESULT(Using solaris ACLs)
2102             AC_DEFINE(HAVE_SOLARIS_ACLS)
2103             ;;
2104                 *irix*)
2105                         AC_MSG_RESULT(Using IRIX ACLs)
2106                         AC_DEFINE(HAVE_IRIX_ACLS)
2107                         ;;
2108                 *aix*)
2109                         AC_MSG_RESULT(Using AIX ACLs)
2110                         AC_DEFINE(HAVE_AIX_ACLS)
2111                         ;;
2112         *)
2113                         AC_CHECK_LIB(acl,acl_get_file)
2114                         AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2115                         AC_TRY_LINK([#include <sys/types.h>
2116 #include <sys/acl.h>],
2117 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2118 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2119                         if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2120                                 AC_MSG_RESULT(Using posix ACLs)
2121                                 AC_DEFINE(HAVE_POSIX_ACLS)
2122                                 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2123                                 AC_TRY_LINK([#include <sys/types.h>
2124 #include <sys/acl.h>],
2125 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2126 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2127                                 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2128                                         AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2129                                 fi
2130                         fi
2131                         AC_CACHE_CHECK([for XFS ACL support],samba_cv_HAVE_XFS_ACLS,[
2132                         AC_TRY_COMPILE([#include <sys/types.h>
2133 #include <acl/acl.h>],
2134 [ char test_str[13] = SGI_ACL_FILE; ],
2135 samba_cv_HAVE_XFS_ACLS=yes,samba_cv_XFS_POSIX_ACLS=no)])
2136                         if test x"$samba_cv_HAVE_XFS_ACLS" = x"yes"; then
2137                                 AC_MSG_RESULT(Using XFS ACLs)
2138                                 AC_DEFINE(HAVE_XFS_ACLS)
2139                         fi
2140             ;;
2141         esac
2142         ;;
2143   *)
2144     AC_MSG_RESULT(no)
2145     AC_DEFINE(HAVE_NO_ACLS)
2146     ;;
2147   esac ],
2148   AC_DEFINE(HAVE_NO_ACLS)
2149   AC_MSG_RESULT(no)
2151 echo "checking configure summary"
2152 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2153            echo "configure OK";,
2154            AC_MSG_ERROR([summary failure. Aborting config]),:)
2156 builddir=`pwd`
2157 AC_SUBST(builddir)
2159 AC_OUTPUT(include/stamp-h Makefile)