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