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.
20 # compile with optimisation and without debugging by default
23 AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],
24 [if eval "test x$enable_debug = xyes"; then
29 dnl Checks for programs.
34 AC_SUBST(LIBTOOL_DEPS)
36 dnl Check if C compiler understands -c and -o at the same time
38 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
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)],
61 # Just in case anybody does it
63 AC_MSG_WARN([--with-codepagedir called without argument - will use default])
66 codepagedir="$withval"
73 dnl Add #include for broken IRIX header files
75 *irix6*) AC_ADD_INCLUDE(<standards.h>)
79 AC_VALIDATE_CACHE_SYSTEM_TYPE
82 # Config CPPFLAG settings for strange OS's that must be set
86 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
89 if test $ac_cv_prog_cc_Ae = yes; then
90 CPPFLAGS="$CPPFLAGS -Ae"
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.
99 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
100 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
103 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
104 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
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.
113 AC_MSG_RESULT([enabling large file support])
114 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
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.
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`
132 case "$ac_cv_gcc_compiler_version_number" in
133 *"gcc version 2.6"*|*"gcc version 2.7"*)
134 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
137 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
141 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
147 # Tests needed for SINIX large file support.
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"
157 #if _LFS64_LARGEFILE == 1
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"
170 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
174 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
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"
182 #include <sys/utsname.h>
184 #if _LFS64_LARGEFILE == 1
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__;
200 /* Ensure this is kernel 2.4 or higher */
203 release = uts.release;
204 major = atoi(strsep(&release, "."));
205 minor = atoi(strsep(&release, "."));
207 if (major > 2 || (major == 2 && minor > 3))
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"
219 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
223 AC_MSG_CHECKING([for LFS support])
224 old_CPPFLAGS="$CPPFLAGS"
225 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
229 #if _LFS64_LARGEFILE == 1
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"
239 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
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.
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)
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)
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, [
315 #include <sys/types.h>
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, [
328 #include <sys/types.h>
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>
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)
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
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])
400 AC_CHECK_LIB(readline, rl_callback_handler_install,
401 [TERMLIBS="-lreadline $TERMLIBS"
402 AC_DEFINE(HAVE_LIBREADLINE)
403 break], [TERMLIBS=], $TERMLIBS)])
411 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
412 # alternate readline path
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])
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)])
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
449 AC_CHECK_FUNCS(connect)
450 if test x"$ac_cv_func_connect" = x"no"; then
453 *) AC_CHECK_LIB(nsl_s, printf) ;;
457 *) AC_CHECK_LIB(nsl, printf) ;;
461 *) AC_CHECK_LIB(socket, connect) ;;
465 *) AC_CHECK_LIB(inet, connect) ;;
467 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
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)
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
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)
502 # setbuffer is needed for smbtorture
503 AC_CHECK_FUNCS(setbuffer)
505 # syscall() is needed for smbwrapper.
506 AC_CHECK_FUNCS(syscall)
508 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
509 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
510 AC_CHECK_FUNCS(__getcwd _getcwd)
511 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
512 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
513 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
514 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
515 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
516 AC_CHECK_FUNCS(_write __write _fork __fork)
517 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
518 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
519 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
520 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
521 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
524 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
527 if test x$ac_cv_func_stat64 = xno ; then
528 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
530 #if defined(HAVE_UNISTD_H)
533 #include <sys/stat.h>
534 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
535 AC_MSG_RESULT([$ac_cv_func_stat64])
536 if test x$ac_cv_func_stat64 = xyes ; then
537 AC_DEFINE(HAVE_STAT64)
541 if test x$ac_cv_func_lstat64 = xno ; then
542 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
544 #if defined(HAVE_UNISTD_H)
547 #include <sys/stat.h>
548 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
549 AC_MSG_RESULT([$ac_cv_func_lstat64])
550 if test x$ac_cv_func_lstat64 = xyes ; then
551 AC_DEFINE(HAVE_LSTAT64)
555 if test x$ac_cv_func_fstat64 = xno ; then
556 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
558 #if defined(HAVE_UNISTD_H)
561 #include <sys/stat.h>
562 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
563 AC_MSG_RESULT([$ac_cv_func_fstat64])
564 if test x$ac_cv_func_fstat64 = xyes ; then
565 AC_DEFINE(HAVE_FSTAT64)
570 # If no strcasecmp, check for it in some known places
571 # It is in -lresolv on ReliantUNIX and UnixWare
572 # -lresolve *must* follow -lnsl for name resolution to work properly
575 if test x$ac_cv_func_strcasecmp = xno ; then
576 AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
577 AC_DEFINE(HAVE_STRCASECMP))
581 # Check for the functions putprpwnam, set_auth_parameters,
582 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
583 # Needed for OSF1 and HPUX.
586 AC_LIBTESTFUNC(security, putprpwnam)
587 AC_LIBTESTFUNC(sec, putprpwnam)
589 AC_LIBTESTFUNC(security, set_auth_parameters)
590 AC_LIBTESTFUNC(sec, set_auth_parameters)
592 # UnixWare 7.x has its getspnam in -lgen
593 AC_LIBTESTFUNC(gen, getspnam)
595 AC_LIBTESTFUNC(security, getspnam)
596 AC_LIBTESTFUNC(sec, getspnam)
598 AC_LIBTESTFUNC(security, bigcrypt)
599 AC_LIBTESTFUNC(sec, bigcrypt)
601 AC_LIBTESTFUNC(security, getprpwnam)
602 AC_LIBTESTFUNC(sec, getprpwnam)
604 # this bit needs to be modified for each OS that is suported by
605 # smbwrapper. You need to specify how to created a shared library and
606 # how to compile C code to produce PIC object files
608 # these are the defaults, good for lots of systems
615 # and these are for particular systems
617 *linux*) AC_DEFINE(LINUX)
620 *solaris*) AC_DEFINE(SUNOS5)
624 *sunos*) AC_DEFINE(SUNOS4)
627 *bsd*) LDSHFLAGS="-shared -Bshareable"
630 *irix*) AC_DEFINE(IRIX)
632 *irix6*) AC_DEFINE(IRIX6)
635 ATTEMPT_WRAP32_BUILD=yes
637 *aix*) AC_DEFINE(AIX);;
638 *hpux*) AC_DEFINE(HPUX)
640 # Use special PIC flags for the native HP-UX compiler.
641 if test $ac_cv_prog_cc_Ae = yes; then
646 *qnx*) AC_DEFINE(QNX);;
647 *osf*) AC_DEFINE(OSF1);;
648 *sco*) AC_DEFINE(SCO);;
649 *next2*) AC_DEFINE(NEXT2);;
650 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
653 *-univel-*) if [ test "$GCC" != yes ]; then
654 AC_DEFINE(HAVE_MEMSET)
658 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
662 if [ test "$GCC" != yes ]; then
663 AC_DEFINE(HAVE_MEMSET)
669 # try to work out how to produce PIC code with this compiler
670 AC_PROG_CC_FLAG(fPIC)
671 if test $ac_cv_prog_cc_fPIC = yes; then
674 if test x$PICFLAG = x; then
675 AC_PROG_CC_FLAG(KPIC)
676 if test $ac_cv_prog_cc_KPIC = yes; then
680 if test x$PICFLAG = x; then
681 AC_PROG_CC_FLAG(Kpic)
682 if test $ac_cv_prog_cc_Kpic = yes; then
689 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
690 AC_TRY_RUN([#include <stdio.h>
691 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
692 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
693 if test x"$samba_cv_have_longlong" = x"yes"; then
694 AC_DEFINE(HAVE_LONGLONG)
698 # Check if the compiler supports the LL prefix on long long integers.
701 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
702 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
703 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
704 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
705 AC_DEFINE(COMPILER_SUPPORTS_LL)
709 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
710 AC_TRY_RUN([#include <stdio.h>
711 #include <sys/stat.h>
712 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
713 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
714 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
715 AC_DEFINE(SIZEOF_OFF_T,8)
718 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
720 #if defined(HAVE_UNISTD_H)
724 #include <sys/stat.h>
725 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
726 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
727 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
728 AC_DEFINE(HAVE_OFF64_T)
731 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
732 AC_TRY_RUN([#include <stdio.h>
733 #include <sys/stat.h>
734 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
735 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
736 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
737 AC_DEFINE(SIZEOF_INO_T,8)
740 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
742 #if defined(HAVE_UNISTD_H)
746 #include <sys/stat.h>
747 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
748 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
749 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
750 AC_DEFINE(HAVE_INO64_T)
753 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
755 #if defined(HAVE_UNISTD_H)
758 #include <sys/types.h>
759 #include <dirent.h>],
760 [struct dirent64 de;],
761 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
762 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
763 AC_DEFINE(HAVE_STRUCT_DIRENT64)
766 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
767 AC_TRY_RUN([#include <stdio.h>
768 main() { char c; c=250; exit((c > 0)?0:1); }],
769 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
770 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
771 AC_DEFINE(HAVE_UNSIGNED_CHAR)
774 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
775 AC_TRY_COMPILE([#include <sys/types.h>
776 #include <sys/socket.h>
777 #include <netinet/in.h>],
778 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
779 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
780 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
781 AC_DEFINE(HAVE_SOCK_SIN_LEN)
784 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
785 AC_TRY_COMPILE([#include <sys/types.h>
787 void seekdir(DIR *d, long loc) { return; }],[return 0;],
788 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
789 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
790 AC_DEFINE(SEEKDIR_RETURNS_VOID)
793 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
794 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
795 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
796 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
797 AC_DEFINE(HAVE_FILE_MACRO)
800 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
801 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
802 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
803 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
804 AC_DEFINE(HAVE_FUNCTION_MACRO)
807 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
809 #include <sys/time.h>
811 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
812 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
813 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
814 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
817 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
819 #include <sys/types.h>
821 void foo(const char *format, ...) {
826 va_start(ap, format);
827 len = vsnprintf(0, 0, format, ap);
829 if (len != 5) exit(1);
831 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
835 main() { foo("hello"); }
837 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
838 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
839 AC_DEFINE(HAVE_C99_VSNPRINTF)
842 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
843 AC_TRY_RUN([#include <sys/types.h>
845 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
846 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
847 di->d_name[0] == 0) exit(0); exit(1);} ],
848 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
849 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
850 AC_DEFINE(HAVE_BROKEN_READDIR)
853 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
854 AC_TRY_COMPILE([#include <sys/types.h>
856 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
857 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
858 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
859 AC_DEFINE(HAVE_UTIMBUF)
862 dnl utmp and utmpx come in many flavours
863 dnl We need to check for many of them
864 dnl But we don't need to do each and every one, because our code uses
865 dnl mostly just the utmp (not utmpx) fields.
867 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
869 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
870 AC_TRY_COMPILE([#include <sys/types.h>
872 [struct utmp ut; ut.ut_name[0] = 'a';],
873 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
874 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
875 AC_DEFINE(HAVE_UT_UT_NAME)
878 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
879 AC_TRY_COMPILE([#include <sys/types.h>
881 [struct utmp ut; ut.ut_user[0] = 'a';],
882 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
883 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
884 AC_DEFINE(HAVE_UT_UT_USER)
887 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
888 AC_TRY_COMPILE([#include <sys/types.h>
890 [struct utmp ut; ut.ut_id[0] = 'a';],
891 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
892 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
893 AC_DEFINE(HAVE_UT_UT_ID)
896 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
897 AC_TRY_COMPILE([#include <sys/types.h>
899 [struct utmp ut; ut.ut_host[0] = 'a';],
900 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
901 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
902 AC_DEFINE(HAVE_UT_UT_HOST)
905 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
906 AC_TRY_COMPILE([#include <sys/types.h>
908 [struct utmp ut; time_t t; ut.ut_time = t;],
909 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
910 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
911 AC_DEFINE(HAVE_UT_UT_TIME)
914 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
915 AC_TRY_COMPILE([#include <sys/types.h>
917 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
918 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
919 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
920 AC_DEFINE(HAVE_UT_UT_TV)
923 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
924 AC_TRY_COMPILE([#include <sys/types.h>
926 [struct utmp ut; ut.ut_type = 0;],
927 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
928 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
929 AC_DEFINE(HAVE_UT_UT_TYPE)
932 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
933 AC_TRY_COMPILE([#include <sys/types.h>
935 [struct utmp ut; ut.ut_pid = 0;],
936 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
937 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
938 AC_DEFINE(HAVE_UT_UT_PID)
941 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
942 AC_TRY_COMPILE([#include <sys/types.h>
944 [struct utmp ut; ut.ut_exit.e_exit = 0;],
945 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
946 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
947 AC_DEFINE(HAVE_UT_UT_EXIT)
950 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
951 AC_TRY_COMPILE([#include <sys/types.h>
953 [struct utmp ut; ut.ut_addr = 0;],
954 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
955 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
956 AC_DEFINE(HAVE_UT_UT_ADDR)
959 if test x$ac_cv_func_pututline = xyes ; then
960 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
961 AC_TRY_COMPILE([#include <sys/types.h>
963 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
964 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
965 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
966 AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
970 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
971 AC_TRY_COMPILE([#include <sys/types.h>
973 [struct utmpx ux; ux.ut_syslen = 0;],
974 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
975 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
976 AC_DEFINE(HAVE_UX_UT_SYSLEN)
979 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
981 #include <sys/types.h>
984 #define F_GETLEASE 1025
987 int fd = open("/dev/null", O_RDONLY);
988 return fcntl(fd, F_GETLEASE, 0) == -1;
991 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
992 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
993 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
996 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
998 #include <sys/types.h>
1002 #define F_NOTIFY 1026
1005 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1008 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1009 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1010 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1013 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1015 #include <sys/types.h>
1018 #include <sys/file.h>
1020 #define LOCK_MAND 32
1021 #define LOCK_READ 64
1024 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1027 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1028 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1029 AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1035 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1036 AC_TRY_COMPILE([#include <sys/types.h>
1037 #include <fcntl.h>],
1038 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1039 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1040 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1041 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1044 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1045 AC_TRY_RUN([#include <sys/types.h>
1046 #include <sys/capability.h>
1049 if ((cap = cap_get_proc()) == NULL)
1051 cap->cap_effective |= CAP_NETWORK_MGT;
1052 cap->cap_inheritable |= CAP_NETWORK_MGT;
1057 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1058 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1059 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1063 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1064 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1067 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1068 AC_TRY_COMPILE([#include <sys/types.h>
1069 #if defined(HAVE_RPC_RPC_H)
1070 #include <rpc/rpc.h>
1073 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1074 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1075 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1078 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1079 AC_TRY_COMPILE([#include <sys/types.h>
1080 #if defined(HAVE_RPC_RPC_H)
1081 #include <rpc/rpc.h>
1084 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1085 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1086 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1089 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1090 AC_TRY_COMPILE([#include <sys/types.h>
1091 #if defined(HAVE_RPC_RPC_H)
1092 #include <rpc/rpc.h>
1095 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1096 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1097 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1100 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1101 AC_TRY_COMPILE([#include <sys/types.h>
1102 #if defined(HAVE_RPC_RPC_H)
1103 #include <rpc/rpc.h>
1106 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1107 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1108 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1112 dnl Some systems (SCO) have a problem including
1113 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1114 dnl as a #define in <prot.h> and as part of an enum
1118 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1119 AC_TRY_COMPILE([#include <sys/types.h>
1120 #ifdef HAVE_SYS_SECURITY_H
1121 #include <sys/security.h>
1123 #endif /* HAVE_SYS_SECURITY_H */
1124 #if defined(HAVE_RPC_RPC_H)
1125 #include <rpc/rpc.h>
1128 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1129 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1130 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1133 AC_MSG_CHECKING([for test routines])
1134 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1136 AC_MSG_ERROR([cant find test code. Aborting config]),
1137 AC_MSG_WARN([cannot run when cross-compiling]))
1139 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1140 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1141 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1142 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1143 AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1146 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1147 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1148 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1149 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1150 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1151 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1153 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1156 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1157 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1158 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1159 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1160 AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1163 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1164 SAVE_CPPFLAGS="$CPPFLAGS"
1165 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1167 #define REPLACE_GETPASS 1
1168 #define NO_CONFIG_H 1
1169 #define main dont_declare_main
1170 #include "${srcdir-.}/lib/getsmbpass.c"
1172 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1173 CPPFLAGS="$SAVE_CPPFLAGS"
1175 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1176 AC_DEFINE(REPLACE_GETPASS)
1179 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1182 #include <sys/types.h>
1183 #include <netinet/in.h>
1184 #ifdef HAVE_ARPA_INET_H
1185 #include <arpa/inet.h>
1187 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1188 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1189 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1191 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1192 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1193 AC_DEFINE(REPLACE_INET_NTOA)
1196 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1197 AC_TRY_RUN([#include <stdlib.h>
1198 #include <sys/types.h>
1199 #include <sys/stat.h>
1203 char tpl[20]="/tmp/test.XXXXXX";
1204 int fd = mkstemp(tpl);
1205 if (fd == -1) exit(1);
1207 if (fstat(fd, &st) != 0) exit(1);
1208 if ((st.st_mode & 0777) != 0600) exit(1);
1211 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1212 samba_cv_HAVE_SECURE_MKSTEMP=no,
1213 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1214 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1215 AC_DEFINE(HAVE_SECURE_MKSTEMP)
1218 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1219 AC_TRY_RUN([#include <unistd.h>
1220 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1221 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1222 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1223 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1226 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1227 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1228 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1229 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1230 AC_DEFINE(HAVE_ROOT)
1232 AC_MSG_WARN(running as non-root will disable some tests)
1236 # look for a method of finding the list of network interfaces
1238 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1240 #define HAVE_IFACE_AIX 1
1241 #define AUTOCONF_TEST 1
1242 #include "confdefs.h"
1243 #include "${srcdir-.}/lib/interfaces.c"],
1244 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1245 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1246 iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1249 if test $iface = no; then
1250 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1252 #define HAVE_IFACE_IFCONF 1
1253 #define AUTOCONF_TEST 1
1254 #include "confdefs.h"
1255 #include "${srcdir-.}/lib/interfaces.c"],
1256 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1257 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1258 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1262 if test $iface = no; then
1263 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1265 #define HAVE_IFACE_IFREQ 1
1266 #define AUTOCONF_TEST 1
1267 #include "confdefs.h"
1268 #include "${srcdir-.}/lib/interfaces.c"],
1269 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1270 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1271 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1276 ################################################
1277 # look for a method of setting the effective uid
1279 if test $seteuid = no; then
1280 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1282 #define AUTOCONF_TEST 1
1283 #define USE_SETRESUID 1
1284 #include "confdefs.h"
1285 #include "${srcdir-.}/lib/util_sec.c"],
1286 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1287 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1288 seteuid=yes;AC_DEFINE(USE_SETRESUID)
1293 if test $seteuid = no; then
1294 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1296 #define AUTOCONF_TEST 1
1297 #define USE_SETREUID 1
1298 #include "confdefs.h"
1299 #include "${srcdir-.}/lib/util_sec.c"],
1300 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1301 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1302 seteuid=yes;AC_DEFINE(USE_SETREUID)
1306 if test $seteuid = no; then
1307 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1309 #define AUTOCONF_TEST 1
1310 #define USE_SETEUID 1
1311 #include "confdefs.h"
1312 #include "${srcdir-.}/lib/util_sec.c"],
1313 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1314 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1315 seteuid=yes;AC_DEFINE(USE_SETEUID)
1319 if test $seteuid = no; then
1320 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1322 #define AUTOCONF_TEST 1
1323 #define USE_SETUIDX 1
1324 #include "confdefs.h"
1325 #include "${srcdir-.}/lib/util_sec.c"],
1326 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1327 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1328 seteuid=yes;AC_DEFINE(USE_SETUIDX)
1333 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1334 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1335 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1336 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1337 AC_DEFINE(HAVE_MMAP)
1340 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1341 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1342 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1343 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1344 AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1347 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1348 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1349 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1350 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1351 AC_DEFINE(HAVE_FCNTL_LOCK)
1354 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1355 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1356 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1357 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1358 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1363 dnl Don't check for 64 bit fcntl locking if we know that the
1364 dnl glibc2.1 broken check has succeeded.
1367 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1369 #if defined(HAVE_UNISTD_H)
1379 #ifdef HAVE_SYS_FCNTL_H
1380 #include <sys/fcntl.h>
1382 main() { struct flock64 fl64;
1383 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1389 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1391 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1392 AC_DEFINE(HAVE_STRUCT_FLOCK64)
1396 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1397 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1398 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1399 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1400 AC_DEFINE(HAVE_TRUNCATED_SALT)
1403 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1404 AC_TRY_COMPILE([#include <sys/acl.h>
1405 #if defined(HAVE_RPCSVC_NIS_H)
1406 #include <rpcsvc/nis.h>
1409 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1410 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1411 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1415 #################################################
1416 # check for smbwrapper support
1417 AC_MSG_CHECKING(whether to use smbwrapper)
1418 AC_ARG_WITH(smbwrapper,
1419 [ --with-smbwrapper Include SMB wrapper support
1420 --without-smbwrapper Don't include SMB wrapper support (default)],
1421 [ case "$withval" in
1424 AC_DEFINE(WITH_SMBWRAPPER)
1425 WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1427 if test x$ATTEMPT_WRAP32_BUILD = x; then
1430 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1433 # Conditions under which smbwrapper should not be built.
1435 if test x$PICFLAG = x; then
1436 echo No support for PIC code - disabling smbwrapper and smbsh
1439 elif test x$ac_cv_func_syscall = xno; then
1440 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1452 #################################################
1453 # check for the AFS filesystem
1454 AC_MSG_CHECKING(whether to use AFS)
1456 [ --with-afs Include AFS support
1457 --without-afs Don't include AFS support (default)],
1458 [ case "$withval" in
1471 #################################################
1472 # check for the DFS auth system
1473 AC_MSG_CHECKING(whether to use DFS auth)
1475 [ --with-dfs Include DFS support
1476 --without-dfs Don't include DFS support (default)],
1477 [ case "$withval" in
1489 #################################################
1490 # check for Kerberos IV auth system
1491 AC_MSG_CHECKING(whether to use Kerberos IV)
1493 [ --with-krb4=base-dir Include Kerberos IV support
1494 --without-krb4 Don't include Kerberos IV support (default)],
1495 [ AC_MSG_RESULT(yes)
1496 AC_DEFINE(KRB4_AUTH)
1497 AC_CHECK_LIB(resolv, dn_expand)
1498 LIBS="$LIBS -lkrb -ldes"
1499 CFLAGS="$CFLAGS -I$withval/include"
1500 LDFLAGS="$LDFLAGS -L$withval/lib"],
1504 #################################################
1505 # check for Kerberos 5 auth system
1506 AC_MSG_CHECKING(whether to use Kerberos 5)
1508 [ --with-krb5=base-dir Include Kerberos 5 support
1509 --without-krb5 Don't include Kerberos 5 support (default)],
1510 [ AC_MSG_RESULT(yes)
1511 AC_DEFINE(KRB5_AUTH)
1512 LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1513 CFLAGS="$CFLAGS -I$withval/include"
1514 LDFLAGS="$LDFLAGS -L$withval/lib"],
1518 #################################################
1519 # check for automount support
1520 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1521 AC_ARG_WITH(automount,
1522 [ --with-automount Include AUTOMOUNT support
1523 --without-automount Don't include AUTOMOUNT support (default)],
1524 [ case "$withval" in
1527 AC_DEFINE(WITH_AUTOMOUNT)
1536 #################################################
1537 # check for smbmount support
1538 AC_MSG_CHECKING(whether to use SMBMOUNT)
1539 AC_ARG_WITH(smbmount,
1540 [ --with-smbmount Include SMBMOUNT (Linux only) support
1541 --without-smbmount Don't include SMBMOUNT support (default)],
1542 [ case "$withval" in
1545 AC_DEFINE(WITH_SMBMOUNT)
1546 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1558 #################################################
1559 # check for a PAM password database
1561 AC_MSG_CHECKING(whether to use PAM password database)
1563 [ --with-pam Include PAM password database support
1564 --without-pam Don't include PAM password database support (default)],
1565 [ case "$withval" in
1578 # we can't build a pam module if we don't have pam.
1579 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
1581 #################################################
1582 # check for pam_smbpass support
1583 AC_MSG_CHECKING(whether to use pam_smbpass)
1584 AC_ARG_WITH(pam_smbpass,
1585 [ --with-pam_smbpass Include the smbpass PAM module
1586 --without-pam_smbpass Don't include the smbpass PAM module (default)],
1587 [ case "$withval" in
1591 # Conditions under which pam_smbpass should not be built.
1593 if test x$PICFLAG = x; then
1594 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
1596 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
1597 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
1600 AC_DEFINE(WITH_PAM_SMBPASS)
1601 PAM_MOD="bin/pam_smbpass.so"
1612 ###############################################
1613 # test for where we get crypt() from, but only
1615 if test "$with_pam" != yes; then
1616 AC_CHECK_FUNCS(crypt)
1617 if test x"$ac_cv_func_crypt" = x"no"; then
1618 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
1619 AC_DEFINE(HAVE_CRYPT)])
1624 #################################################
1625 # check for a TDB password database
1626 AC_MSG_CHECKING(whether to use TDB password database)
1628 [ --with-tdbsam Include experimental TDB password database
1629 --without-tdbsam Don't include experimental TDB password database (default)],
1630 [ case "$withval" in
1633 AC_DEFINE(WITH_TDBPWD)
1634 # AC_MSG_ERROR([TDB password database not supported in this version.])
1643 #################################################
1644 # check for a LDAP password database
1645 AC_MSG_CHECKING(whether to use LDAP password database)
1647 [ --with-ldap Include LDAP support
1648 --without-ldap Don't include LDAP support (default)],
1649 [ case "$withval" in
1652 AC_DEFINE(WITH_LDAP)
1653 AC_MSG_ERROR([LDAP password database not supported in this version.])
1662 #################################################
1663 # check for a NISPLUS password database
1664 AC_MSG_CHECKING(whether to use NISPLUS password database)
1665 AC_ARG_WITH(nisplus,
1666 [ --with-nisplus Include NISPLUS password database support
1667 --without-nisplus Don't include NISPLUS password database support (default)],
1668 [ case "$withval" in
1671 AC_DEFINE(WITH_NISPLUS)
1680 #################################################
1681 # check for a NISPLUS_HOME support
1682 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1683 AC_ARG_WITH(nisplus-home,
1684 [ --with-nisplus-home Include NISPLUS_HOME support
1685 --without-nisplus-home Don't include NISPLUS_HOME support (default)],
1686 [ case "$withval" in
1689 AC_DEFINE(WITH_NISPLUS_HOME)
1698 #################################################
1699 # check for the secure socket layer
1700 AC_MSG_CHECKING(whether to use SSL)
1702 [ --with-ssl Include SSL support
1703 --without-ssl Don't include SSL support (default)
1704 --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl)],
1705 [ case "$withval" in
1709 withval="/usr/local/ssl" # default
1711 if test "${with_sslinc+set}" = set; then
1713 withval="$with_sslinc"
1716 echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1717 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1718 LIBS="-lssl -lcrypto $LIBS"
1719 LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
1722 CFLAGS="-I${withval} $CFLAGS"
1723 LIBS="-lssl -lcrypto $LIBS"
1724 LDFLAGS="-L${withval}/lib $LDFLAGS"
1730 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1731 LIBS="-lssl -lcrypto $LIBS"
1732 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1736 if test ! -d ${withval}; then
1737 echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1741 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own
1751 #################################################
1752 # check for syslog logging
1753 AC_MSG_CHECKING(whether to use syslog logging)
1755 [ --with-syslog Include experimental SYSLOG support
1756 --without-syslog Don't include SYSLOG support (default)],
1757 [ case "$withval" in
1760 AC_DEFINE(WITH_SYSLOG)
1769 #################################################
1770 # check for a shared memory profiling support
1771 AC_MSG_CHECKING(whether to use profiling)
1772 AC_ARG_WITH(profile,
1773 [ --with-profile Include profile support
1774 --without-profile Don't include profile support (default)],
1775 [ case "$withval" in
1778 AC_DEFINE(WITH_PROFILE)
1788 #################################################
1789 # check for experimental netatalk resource fork support
1790 AC_MSG_CHECKING(whether to support netatalk)
1791 AC_ARG_WITH(netatalk,
1792 [ --with-netatalk Include experimental Netatalk support
1793 --without-netatalk Don't include experimental Netatalk support (default)],
1794 [ case "$withval" in
1797 AC_DEFINE(WITH_NETATALK)
1806 #################################################
1807 # check for experimental disk-quotas support
1808 QUOTAOBJS=smbd/noquotas.o
1810 AC_MSG_CHECKING(whether to support disk-quotas)
1812 [ --with-quotas Include experimental disk-quota support
1813 --without-quotas Don't include experimental disk-quota support (default)],
1814 [ case "$withval" in
1817 QUOTAOBJS=smbd/quotas.o
1827 #################################################
1828 # check for experimental utmp accounting
1830 AC_MSG_CHECKING(whether to support utmp accounting)
1832 [ --with-utmp Include experimental utmp accounting
1833 --without-utmp Don't include experimental utmp accounting (default)],
1834 [ case "$withval" in
1837 AC_DEFINE(WITH_UTMP)
1846 #################################################
1847 # check for MS Dfs support
1849 AC_MSG_CHECKING(whether to support Microsoft Dfs)
1851 [ --with-msdfs Include MS Dfs support
1852 --without-msdfs Don't include MS Dfs support (default)],
1853 [ case "$withval" in
1856 AC_DEFINE(WITH_MSDFS)
1865 #################################################
1866 # set private directory location
1867 AC_ARG_WITH(privatedir,
1868 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
1869 [ case "$withval" in
1872 # Just in case anybody calls it without argument
1874 AC_MSG_WARN([--with-privatedir called without argument - will use default])
1875 privatedir='${prefix}/private'
1878 privatedir="$withval"
1881 AC_SUBST(privatedir)],
1882 [privatedir='${prefix}/private'
1883 AC_SUBST(privatedir)]
1886 #################################################
1887 # set lock directory location
1888 AC_ARG_WITH(lockdir,
1889 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
1890 [ case "$withval" in
1893 # Just in case anybody calls it without argument
1895 AC_MSG_WARN([--with-lockdir called without argument - will use default])
1896 lockdir='$(VARDIR)/locks'
1903 [lockdir='$(VARDIR)/locks'
1907 #################################################
1908 # set SWAT directory location
1909 AC_ARG_WITH(swatdir,
1910 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
1911 [ case "$withval" in
1914 # Just in case anybody does it
1916 AC_MSG_WARN([--with-swatdir called without argument - will use default])
1917 swatdir='${prefix}/swat'
1924 [swatdir='${prefix}/swat'
1928 #################################################
1929 # these tests are taken from the GNU fileutils package
1930 AC_CHECKING(how to get filesystem space usage)
1933 # Test for statvfs64.
1934 if test $space = no; then
1936 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
1938 #if defined(HAVE_UNISTD_H)
1941 #include <sys/types.h>
1942 #include <sys/statvfs.h>
1945 struct statvfs64 fsd;
1946 exit (statvfs64 (".", &fsd));
1948 fu_cv_sys_stat_statvfs64=yes,
1949 fu_cv_sys_stat_statvfs64=no,
1950 fu_cv_sys_stat_statvfs64=cross)])
1951 if test $fu_cv_sys_stat_statvfs64 = yes; then
1953 AC_DEFINE(STAT_STATVFS64)
1957 # Perform only the link test since it seems there are no variants of the
1958 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
1959 # because that got a false positive on SCO OSR5. Adding the declaration
1960 # of a `struct statvfs' causes this test to fail (as it should) on such
1961 # systems. That system is reported to work fine with STAT_STATFS4 which
1962 # is what it gets when this test fails.
1963 if test $space = no; then
1965 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
1966 [AC_TRY_LINK([#include <sys/types.h>
1967 #include <sys/statvfs.h>],
1968 [struct statvfs fsd; statvfs (0, &fsd);],
1969 fu_cv_sys_stat_statvfs=yes,
1970 fu_cv_sys_stat_statvfs=no)])
1971 if test $fu_cv_sys_stat_statvfs = yes; then
1973 AC_DEFINE(STAT_STATVFS)
1977 if test $space = no; then
1978 # DEC Alpha running OSF/1
1979 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
1980 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
1982 #include <sys/param.h>
1983 #include <sys/types.h>
1984 #include <sys/mount.h>
1989 exit (statfs (".", &fsd, sizeof (struct statfs)));
1991 fu_cv_sys_stat_statfs3_osf1=yes,
1992 fu_cv_sys_stat_statfs3_osf1=no,
1993 fu_cv_sys_stat_statfs3_osf1=no)])
1994 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
1995 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
1997 AC_DEFINE(STAT_STATFS3_OSF1)
2001 if test $space = no; then
2003 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2004 member (AIX, 4.3BSD)])
2005 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2007 #ifdef HAVE_SYS_PARAM_H
2008 #include <sys/param.h>
2010 #ifdef HAVE_SYS_MOUNT_H
2011 #include <sys/mount.h>
2013 #ifdef HAVE_SYS_VFS_H
2014 #include <sys/vfs.h>
2020 exit (statfs (".", &fsd));
2022 fu_cv_sys_stat_statfs2_bsize=yes,
2023 fu_cv_sys_stat_statfs2_bsize=no,
2024 fu_cv_sys_stat_statfs2_bsize=no)])
2025 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2026 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2028 AC_DEFINE(STAT_STATFS2_BSIZE)
2032 if test $space = no; then
2034 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2035 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2036 [AC_TRY_RUN([#include <sys/types.h>
2037 #include <sys/statfs.h>
2041 exit (statfs (".", &fsd, sizeof fsd, 0));
2043 fu_cv_sys_stat_statfs4=yes,
2044 fu_cv_sys_stat_statfs4=no,
2045 fu_cv_sys_stat_statfs4=no)])
2046 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2047 if test $fu_cv_sys_stat_statfs4 = yes; then
2049 AC_DEFINE(STAT_STATFS4)
2053 if test $space = no; then
2055 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2056 member (4.4BSD and NetBSD)])
2057 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2058 [AC_TRY_RUN([#include <sys/types.h>
2059 #ifdef HAVE_SYS_PARAM_H
2060 #include <sys/param.h>
2062 #ifdef HAVE_SYS_MOUNT_H
2063 #include <sys/mount.h>
2069 exit (statfs (".", &fsd));
2071 fu_cv_sys_stat_statfs2_fsize=yes,
2072 fu_cv_sys_stat_statfs2_fsize=no,
2073 fu_cv_sys_stat_statfs2_fsize=no)])
2074 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2075 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2077 AC_DEFINE(STAT_STATFS2_FSIZE)
2081 if test $space = no; then
2083 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2084 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2085 [AC_TRY_RUN([#include <sys/types.h>
2086 #ifdef HAVE_SYS_PARAM_H
2087 #include <sys/param.h>
2089 #ifdef HAVE_SYS_MOUNT_H
2090 #include <sys/mount.h>
2092 #ifdef HAVE_SYS_FS_TYPES_H
2093 #include <sys/fs_types.h>
2098 /* Ultrix's statfs returns 1 for success,
2099 0 for not mounted, -1 for failure. */
2100 exit (statfs (".", &fsd) != 1);
2102 fu_cv_sys_stat_fs_data=yes,
2103 fu_cv_sys_stat_fs_data=no,
2104 fu_cv_sys_stat_fs_data=no)])
2105 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2106 if test $fu_cv_sys_stat_fs_data = yes; then
2108 AC_DEFINE(STAT_STATFS2_FS_DATA)
2113 # As a gating factor for large file support, in order to
2114 # use <4GB files we must have the following minimal support
2116 # long long, and a 64 bit off_t or off64_t.
2117 # If we don't have all of these then disable large
2120 AC_MSG_CHECKING([if large file support can be enabled])
2122 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2123 #include <sys/types.h>
2129 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2130 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2131 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2133 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2135 AC_ARG_WITH(spinlocks, [ --with-spinlocks use spin locks instead of fcntl locks ])
2136 if test "x$with_spinlocks" = "xyes"; then
2137 AC_DEFINE(USE_SPINLOCKS)
2141 AC_DEFINE(SPARC_SPINLOCKS)
2144 i386|i486|i586|i686)
2145 AC_DEFINE(INTEL_SPINLOCKS)
2149 AC_DEFINE(MIPS_SPINLOCKS)
2153 AC_DEFINE(POWERPC_SPINLOCKS)
2158 #################################################
2159 # check for ACL support
2161 AC_MSG_CHECKING(whether to support ACLs)
2162 AC_ARG_WITH(acl-support,
2163 [ --with-acl-support Include ACL support
2164 --without-acl-support Don't include ACL support (default)],
2165 [ case "$withval" in
2170 AC_MSG_RESULT(Using UnixWare ACLs)
2171 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2174 AC_MSG_RESULT(Using solaris ACLs)
2175 AC_DEFINE(HAVE_SOLARIS_ACLS)
2178 AC_MSG_RESULT(Using IRIX ACLs)
2179 AC_DEFINE(HAVE_IRIX_ACLS)
2182 AC_MSG_RESULT(Using AIX ACLs)
2183 AC_DEFINE(HAVE_AIX_ACLS)
2186 AC_CHECK_LIB(acl,acl_get_file)
2187 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2188 AC_TRY_LINK([#include <sys/types.h>
2189 #include <sys/acl.h>],
2190 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2191 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2192 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2193 AC_MSG_RESULT(Using posix ACLs)
2194 AC_DEFINE(HAVE_POSIX_ACLS)
2195 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2196 AC_TRY_LINK([#include <sys/types.h>
2197 #include <sys/acl.h>],
2198 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2199 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2200 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2201 AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2209 AC_DEFINE(HAVE_NO_ACLS)
2212 AC_DEFINE(HAVE_NO_ACLS)
2216 #################################################
2217 # check whether winbind is supported on this platform
2219 AC_MSG_CHECKING(whether to compile winbind)
2223 WINBIND_TARGETS="$WINBIND_TARGETS \$(WINBIND_PROGS)"
2226 WINBIND_TARGETS="$WINBIND_TARGETS \$(WINBIND_PAM_PROGS)"
2232 winbind_no_reason=", unsupported on $host_os"
2236 AC_ARG_WITH(winbind,
2237 [ --with-winbind Build winbind library (default, if supported by OS)
2238 --without-winbind Don't build winbind library],
2248 if test x"$WINBIND_TARGETS" = x; then
2249 AC_MSG_RESULT(no$winbind_no_reason)
2254 AC_SUBST(WINBIND_TARGETS)
2256 #################################################
2257 # final configure stuff
2259 echo "checking configure summary"
2260 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2261 echo "configure OK";,
2262 AC_MSG_ERROR([summary failure. Aborting config]),:)
2267 AC_OUTPUT(include/stamp-h Makefile)