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.
18 # compile with optimisation and without debugging by default
21 AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],
22 [if eval "test x$enable_debug = xyes"; then
27 dnl Checks for programs.
32 AC_SUBST(LIBTOOL_DEPS)
34 dnl Check if C compiler understands -c and -o at the same time
36 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
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)],
59 # Just in case anybody does it
61 AC_MSG_WARN([--with-codepagedir called without argument - will use default])
64 codepagedir="$withval"
71 dnl Add #include for broken IRIX header files
73 *irix6*) AC_ADD_INCLUDE(<standards.h>)
77 AC_VALIDATE_CACHE_SYSTEM_TYPE
80 # Config CPPFLAG settings for strange OS's that must be set
84 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
87 if test $ac_cv_prog_cc_Ae = yes; then
88 CPPFLAGS="$CPPFLAGS -Ae"
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.
97 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
98 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
101 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
102 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
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.
111 AC_MSG_RESULT([enabling large file support])
112 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
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.
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`
130 case "$ac_cv_gcc_compiler_version_number" in
131 *"gcc version 2.6"*|*"gcc version 2.7"*)
132 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
135 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
139 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
145 # Tests needed for SINIX large file support.
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"
155 #if _LFS64_LARGEFILE == 1
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"
168 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
172 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
175 AC_MSG_CHECKING([for LFS support])
176 old_CPPFLAGS="$CPPFLAGS"
177 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
180 #include <sys/utsname.h>
182 #if _LFS64_LARGEFILE == 1
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__;
198 /* Ensure this is kernel 2.4 or higher */
201 release = uts.release;
202 major = atoi(strsep(&release, "."));
203 minor = atoi(strsep(&release, "."));
205 if (major > 2 || (major == 2 && minor > 3))
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"
217 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
221 AC_MSG_CHECKING([for LFS support])
222 old_CPPFLAGS="$CPPFLAGS"
223 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
227 #if _LFS64_LARGEFILE == 1
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"
237 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
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.
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)
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)
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, [
311 #include <sys/types.h>
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>
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)
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
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])
397 AC_CHECK_LIB(readline, rl_callback_handler_install,
398 [TERMLIBS="-lreadline $TERMLIBS"
399 AC_DEFINE(HAVE_LIBREADLINE)
400 break], [TERMLIBS=], $TERMLIBS)])
408 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
409 # alternate readline path
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])
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)])
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
446 AC_CHECK_FUNCS(connect)
447 if test x"$ac_cv_func_connect" = x"no"; then
450 *) AC_CHECK_LIB(nsl_s, printf) ;;
454 *) AC_CHECK_LIB(nsl, printf) ;;
458 *) AC_CHECK_LIB(socket, connect) ;;
462 *) AC_CHECK_LIB(inet, connect) ;;
464 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
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)
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
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>])
525 #if defined(HAVE_UNISTD_H)
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)
536 if test x$ac_cv_func_lstat64 = xno ; then
537 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
539 #if defined(HAVE_UNISTD_H)
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)
550 if test x$ac_cv_func_fstat64 = xno ; then
551 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
553 #if defined(HAVE_UNISTD_H)
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)
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
609 # and these are for particular systems
611 *linux*) AC_DEFINE(LINUX);;
612 *solaris*) AC_DEFINE(SUNOS5)
615 *sunos*) AC_DEFINE(SUNOS4)
618 *bsd*) LDSHFLAGS="-shared -Bshareable"
620 *irix*) AC_DEFINE(IRIX)
622 *irix6*) AC_DEFINE(IRIX6)
625 ATTEMPT_WRAP32_BUILD=yes
627 *aix*) AC_DEFINE(AIX);;
628 *hpux*) AC_DEFINE(HPUX)
630 # Use special PIC flags for the native HP-UX compiler.
631 if test $ac_cv_prog_cc_Ae = yes; then
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]);;
643 *-univel-*) if [ test "$GCC" != yes ]; then
644 AC_DEFINE(HAVE_MEMSET)
648 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
652 if [ test "$GCC" != yes ]; then
653 AC_DEFINE(HAVE_MEMSET)
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
664 if test x$PICFLAG = x; then
665 AC_PROG_CC_FLAG(KPIC)
666 if test $ac_cv_prog_cc_KPIC = yes; then
670 if test x$PICFLAG = x; then
671 AC_PROG_CC_FLAG(Kpic)
672 if test $ac_cv_prog_cc_Kpic = yes; then
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.
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)
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,[
710 #if defined(HAVE_UNISTD_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,[
732 #if defined(HAVE_UNISTD_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,[
745 #if defined(HAVE_UNISTD_H)
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>
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,[
799 #include <sys/time.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>
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>
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>
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)
844 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
845 AC_TRY_COMPILE([#include <sys/types.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)
853 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
854 AC_TRY_COMPILE([#include <sys/types.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)
862 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
863 AC_TRY_COMPILE([#include <sys/types.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)
871 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
872 AC_TRY_COMPILE([#include <sys/types.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)
880 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
881 AC_TRY_COMPILE([#include <sys/types.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)
889 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
890 AC_TRY_COMPILE([#include <sys/types.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)
898 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
899 AC_TRY_COMPILE([#include <sys/types.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)
907 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
908 AC_TRY_COMPILE([#include <sys/types.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)
916 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
917 AC_TRY_COMPILE([#include <sys/types.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)
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>
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)
936 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
937 AC_TRY_COMPILE([#include <sys/types.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)
945 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
947 #include <sys/types.h>
950 #define F_GETLEASE 1025
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,[
964 #include <sys/types.h>
968 #define F_NOTIFY 1026
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,[
981 #include <sys/types.h>
984 #include <sys/file.h>
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>
1015 if ((cap = cap_get_proc()) == NULL)
1017 cap->cap_effective |= CAP_NETWORK_MGT;
1018 cap->cap_inheritable |= CAP_NETWORK_MGT;
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>
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>
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>
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>
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
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>
1089 #endif /* HAVE_SYS_SECURITY_H */
1090 #if defined(HAVE_RPC_RPC_H)
1091 #include <rpc/rpc.h>
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"],
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"
1123 #define REPLACE_GETPASS 1
1124 #define NO_CONFIG_H 1
1125 #define main dont_declare_main
1126 #include "${srcdir-.}/lib/getsmbpass.c"
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,[
1138 #include <sys/types.h>
1139 #include <netinet/in.h>
1140 #ifdef HAVE_ARPA_INET_H
1141 #include <arpa/inet.h>
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); }
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>
1159 char tpl[20]="/tmp/test.XXXXXX";
1160 int fd = mkstemp(tpl);
1161 if (fd == -1) exit(1);
1163 if (fstat(fd, &st) != 0) exit(1);
1164 if ((st.st_mode & 0777) != 0600) exit(1);
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)
1188 AC_MSG_WARN(running as non-root will disable some tests)
1192 # look for a method of finding the list of network interfaces
1194 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
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,[
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,[
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
1235 if test $seteuid = no; then
1236 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
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,[
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,[
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,[
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)
1319 dnl Don't check for 64 bit fcntl locking if we know that the
1320 dnl glibc2.1 broken check has succeeded.
1323 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1325 #if defined(HAVE_UNISTD_H)
1335 #ifdef HAVE_SYS_FCNTL_H
1336 #include <sys/fcntl.h>
1338 main() { struct flock64 fl64;
1339 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
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)
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>
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
1380 AC_DEFINE(WITH_SMBWRAPPER)
1381 WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1383 if test x$ATTEMPT_WRAP32_BUILD = x; then
1386 WRAP32=bin/smbwrapper.32.$SHLIBEXT
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
1395 elif test x$ac_cv_func_syscall = xno; then
1396 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1408 #################################################
1409 # check for the AFS filesystem
1410 AC_MSG_CHECKING(whether to use AFS)
1412 [ --with-afs Include AFS support
1413 --without-afs Don't include AFS support (default)],
1414 [ case "$withval" in
1427 #################################################
1428 # check for the DFS auth system
1429 AC_MSG_CHECKING(whether to use DFS auth)
1431 [ --with-dfs Include DFS support
1432 --without-dfs Don't include DFS support (default)],
1433 [ case "$withval" in
1445 #################################################
1446 # check for Kerberos IV auth system
1447 AC_MSG_CHECKING(whether to use Kerberos IV)
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"],
1460 #################################################
1461 # check for Kerberos 5 auth system
1462 AC_MSG_CHECKING(whether to use Kerberos 5)
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"],
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
1483 AC_DEFINE(WITH_AUTOMOUNT)
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
1501 AC_DEFINE(WITH_SMBMOUNT)
1502 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1514 #################################################
1515 # check for a PAM password database
1516 with_pam_for_crypt=no
1517 AC_MSG_CHECKING(whether to use PAM password database)
1519 [ --with-pam Include PAM password database support
1520 --without-pam Don't include PAM password database support (default)],
1521 [ case "$withval" in
1526 with_pam_for_crypt=yes
1536 ###############################################
1537 # test for where we get crypt() from, but only
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)
1552 [ --with-tdbsam Include experimental TDB password database
1553 --without-tdbsam Don't include experimental TDB password database (default)],
1554 [ case "$withval" in
1557 AC_DEFINE(WITH_TDBPWD)
1558 # AC_MSG_ERROR([TDB password database not supported in this version.])
1567 #################################################
1568 # check for a LDAP password database
1569 AC_MSG_CHECKING(whether to use LDAP password database)
1571 [ --with-ldap Include LDAP support
1572 --without-ldap Don't include LDAP support (default)],
1573 [ case "$withval" in
1576 AC_DEFINE(WITH_LDAP)
1577 AC_MSG_ERROR([LDAP password database not supported in this version.])
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
1595 AC_DEFINE(WITH_NISPLUS)
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
1613 AC_DEFINE(WITH_NISPLUS_HOME)
1622 #################################################
1623 # check for the secure socket layer
1624 AC_MSG_CHECKING(whether to use 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
1633 withval="/usr/local/ssl" # default
1635 if test "${with_sslinc+set}" = set; then
1637 withval="$with_sslinc"
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"
1646 CFLAGS="-I${withval}/include $CFLAGS"
1647 LIBS="-lssl -lcrypto $LIBS"
1648 LDFLAGS="-L${withval}/lib $LDFLAGS"
1654 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1655 LIBS="-lssl -lcrypto $LIBS"
1656 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
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
1665 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own
1675 #################################################
1676 # check for syslog logging
1677 AC_MSG_CHECKING(whether to use syslog logging)
1679 [ --with-syslog Include experimental SYSLOG support
1680 --without-syslog Don't include SYSLOG support (default)],
1681 [ case "$withval" in
1684 AC_DEFINE(WITH_SYSLOG)
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
1702 AC_DEFINE(WITH_PROFILE)
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
1721 AC_DEFINE(WITH_NETATALK)
1730 #################################################
1731 # check for experimental disk-quotas support
1732 QUOTAOBJS=smbd/noquotas.o
1734 AC_MSG_CHECKING(whether to support disk-quotas)
1736 [ --with-quotas Include experimental disk-quota support
1737 --without-quotas Don't include experimental disk-quota support (default)],
1738 [ case "$withval" in
1741 QUOTAOBJS=smbd/quotas.o
1751 #################################################
1752 # check for experimental utmp accounting
1754 AC_MSG_CHECKING(whether to support utmp accounting)
1756 [ --with-utmp Include experimental utmp accounting
1757 --without-utmp Don't include experimental utmp accounting (default)],
1758 [ case "$withval" in
1761 AC_DEFINE(WITH_UTMP)
1770 #################################################
1771 # check for MS Dfs support
1773 AC_MSG_CHECKING(whether to support Microsoft Dfs)
1775 [ --with-msdfs Include MS Dfs support
1776 --without-msdfs Don't include MS Dfs support (default)],
1777 [ case "$withval" in
1780 AC_DEFINE(WITH_MSDFS)
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
1796 # Just in case anybody calls it without argument
1798 AC_MSG_WARN([--with-privatedir called without argument - will use default])
1799 privatedir='${prefix}/private'
1802 privatedir="$withval"
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
1817 # Just in case anybody calls it without argument
1819 AC_MSG_WARN([--with-lockdir called without argument - will use default])
1820 lockdir='$(VARDIR)/locks'
1827 [lockdir='$(VARDIR)/locks'
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
1838 # Just in case anybody does it
1840 AC_MSG_WARN([--with-swatdir called without argument - will use default])
1841 swatdir='${prefix}/swat'
1848 [swatdir='${prefix}/swat'
1852 #################################################
1853 # these tests are taken from the GNU fileutils package
1854 AC_CHECKING(how to get filesystem space usage)
1857 # Test for statvfs64.
1858 if test $space = no; then
1860 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
1862 #if defined(HAVE_UNISTD_H)
1865 #include <sys/types.h>
1866 #include <sys/statvfs.h>
1869 struct statvfs64 fsd;
1870 exit (statvfs64 (".", &fsd));
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
1877 AC_DEFINE(STAT_STATVFS64)
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
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
1897 AC_DEFINE(STAT_STATVFS)
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,
1906 #include <sys/param.h>
1907 #include <sys/types.h>
1908 #include <sys/mount.h>
1913 exit (statfs (".", &fsd, sizeof (struct statfs)));
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
1921 AC_DEFINE(STAT_STATFS3_OSF1)
1925 if test $space = no; then
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,
1931 #ifdef HAVE_SYS_PARAM_H
1932 #include <sys/param.h>
1934 #ifdef HAVE_SYS_MOUNT_H
1935 #include <sys/mount.h>
1937 #ifdef HAVE_SYS_VFS_H
1938 #include <sys/vfs.h>
1944 exit (statfs (".", &fsd));
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
1952 AC_DEFINE(STAT_STATFS2_BSIZE)
1956 if test $space = no; then
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>
1965 exit (statfs (".", &fsd, sizeof fsd, 0));
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
1973 AC_DEFINE(STAT_STATFS4)
1977 if test $space = no; then
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>
1986 #ifdef HAVE_SYS_MOUNT_H
1987 #include <sys/mount.h>
1993 exit (statfs (".", &fsd));
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
2001 AC_DEFINE(STAT_STATFS2_FSIZE)
2005 if test $space = no; then
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>
2013 #ifdef HAVE_SYS_MOUNT_H
2014 #include <sys/mount.h>
2016 #ifdef HAVE_SYS_FS_TYPES_H
2017 #include <sys/fs_types.h>
2022 /* Ultrix's statfs returns 1 for success,
2023 0 for not mounted, -1 for failure. */
2024 exit (statfs (".", &fsd) != 1);
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
2032 AC_DEFINE(STAT_STATFS2_FS_DATA)
2037 # As a gating factor for large file support, in order to
2038 # use <4GB files we must have the following minimal support
2040 # long long, and a 64 bit off_t or off64_t.
2041 # If we don't have all of these then disable large
2044 AC_MSG_CHECKING([if large file support can be enabled])
2046 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2047 #include <sys/types.h>
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
2056 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
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)
2068 AC_DEFINE(SPARC_SPINLOCKS)
2071 i386|i486|i586|i686)
2072 AC_DEFINE(INTEL_SPINLOCKS)
2076 AC_DEFINE(MIPS_SPINLOCKS)
2080 AC_DEFINE(POWERPC_SPINLOCKS)
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
2097 AC_MSG_RESULT(Using UnixWare ACLs)
2098 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2101 AC_MSG_RESULT(Using solaris ACLs)
2102 AC_DEFINE(HAVE_SOLARIS_ACLS)
2105 AC_MSG_RESULT(Using IRIX ACLs)
2106 AC_DEFINE(HAVE_IRIX_ACLS)
2109 AC_MSG_RESULT(Using AIX ACLs)
2110 AC_DEFINE(HAVE_AIX_ACLS)
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)
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)
2145 AC_DEFINE(HAVE_NO_ACLS)
2148 AC_DEFINE(HAVE_NO_ACLS)
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]),:)
2159 AC_OUTPUT(include/stamp-h Makefile)