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.
21 AC_SUBST(LIBSMBCLIENT_SHARED)
23 # compile with optimisation and without debugging by default
26 AC_ARG_ENABLE(debug, [ --enable-debug turn on debugging [default=no]],
27 [if eval "test x$enable_debug = xyes"; then
31 AC_ARG_ENABLE(developer, [ --enable-developer turn on developer warnings and debugging [default=no]],
32 [if eval "test x$enable_developer = xyes"; then
33 CFLAGS="${CFLAGS} -g -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -Wcast-align -DDEBUG_PASSWORD -DDEVELOPER"
36 dnl Checks for programs.
41 dnl needed before AC_TRY_COMPILE
44 dnl Check if C compiler understands -c and -o at the same time
46 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
53 dnl Check if the C compiler understands volatile (it should, being ANSI).
54 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
55 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
56 samba_cv_volatile=yes,samba_cv_volatile=no)])
57 if test x"$samba_cv_volatile" = x"yes"; then
58 AC_DEFINE(HAVE_VOLATILE)
64 dnl Add #include for broken IRIX header files
66 *irix6*) AC_ADD_INCLUDE(<standards.h>)
70 AC_VALIDATE_CACHE_SYSTEM_TYPE
73 # Config CPPFLAG settings for strange OS's that must be set
77 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
80 # mmap on HPUX is completely broken...
81 AC_DEFINE(MMAP_BLACKLIST)
82 if test $ac_cv_prog_cc_Ae = yes; then
83 CPPFLAGS="$CPPFLAGS -Ae"
86 # Defines needed for HPUX support.
87 # HPUX has bigcrypt but (sometimes?) doesn't use it for
88 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
92 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
93 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
96 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
97 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
102 # AIX4.x doesn't even admit to having large
103 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
106 AC_MSG_RESULT([enabling large file support])
107 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
110 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
111 # to the existance of large files..
112 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
113 # recommendations on large file support, however it makes the
114 # compile work using gcc 2.7 and 2.8, whereas using the Sun
115 # recommendation makes the compile fail on gcc2.7. JRA.
119 5.0*|5.1*|5.2*|5.3*|5.5*)
120 AC_MSG_RESULT([no large file support])
123 AC_MSG_RESULT([enabling large file support])
124 if test "$ac_cv_prog_gcc" = yes; then
125 ${CC-cc} -v >conftest.c 2>&1
126 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
128 case "$ac_cv_gcc_compiler_version_number" in
129 *"gcc version 2.6"*|*"gcc version 2.7"*)
130 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
133 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
137 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
143 # Tests needed for SINIX large file support.
146 if test $host = mips-sni-sysv4 ; then
147 AC_MSG_CHECKING([for LFS support])
148 old_CPPFLAGS="$CPPFLAGS"
149 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
153 #if _LFS64_LARGEFILE == 1
158 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
159 CPPFLAGS="$old_CPPFLAGS"
160 if test x$SINIX_LFS_SUPPORT = xyes ; then
161 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
162 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
163 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
164 LIBS="`getconf LFS64_LIBS` $LIBS"
166 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
170 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
173 AC_MSG_CHECKING([for LFS support])
174 old_CPPFLAGS="$CPPFLAGS"
175 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
178 #include <sys/utsname.h>
180 #if _LFS64_LARGEFILE == 1
185 /* Ensure this is glibc 2.2 or higher */
186 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
187 int libc_major = __GLIBC__;
188 int libc_minor = __GLIBC_MINOR__;
196 /* Ensure this is kernel 2.4 or higher */
199 release = uts.release;
200 major = atoi(strsep(&release, "."));
201 minor = atoi(strsep(&release, "."));
203 if (major > 2 || (major == 2 && minor > 3))
210 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
211 CPPFLAGS="$old_CPPFLAGS"
212 if test x$LINUX_LFS_SUPPORT = xyes ; then
213 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
215 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
219 AC_MSG_CHECKING([for LFS support])
220 old_CPPFLAGS="$CPPFLAGS"
221 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
225 #if _LFS64_LARGEFILE == 1
230 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
231 CPPFLAGS="$old_CPPFLAGS"
232 if test x$GLIBC_LFS_SUPPORT = xyes ; then
233 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
235 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
245 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
246 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
247 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
248 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
249 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
250 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
251 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
252 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h ldap.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 nss_common.h ns_api.h sys/security.h security/pam_appl.h security/pam_modules.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)
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 # For quotas on Linux XFS filesystems
280 AC_CHECK_HEADERS(linux/xqm.h)
282 AC_CHECK_SIZEOF(int,cross)
283 AC_CHECK_SIZEOF(long,cross)
284 AC_CHECK_SIZEOF(short,cross)
299 AC_CHECK_TYPE(ino_t,unsigned)
300 AC_CHECK_TYPE(loff_t,off_t)
301 AC_CHECK_TYPE(offset_t,loff_t)
302 AC_CHECK_TYPE(ssize_t, int)
303 AC_CHECK_TYPE(wchar_t, unsigned short)
305 ############################################
306 # for cups support we need libcups, and a handful of header files
308 AC_CHECK_LIB(cups,httpConnect)
310 # I wonder if there is a nicer way of doing this?
312 if test x"$ac_cv_lib_cups_httpConnect" = x"yes"; then
313 AC_CHECK_HEADERS(cups/cups.h cups/language.h)
314 if test x"$ac_cv_header_cups_cups_h" = x"yes"; then
315 if test x"$ac_cv_header_cups_language_h" = x"yes"; then
321 ############################################
322 # we need libdl for PAM and the new VFS code
323 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
324 AC_DEFINE(HAVE_LIBDL)])
326 ############################################
327 # check if the compiler can do immediate structures
328 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
332 #define X_FOOBAR(x) ((FOOBAR) { x })
333 typedef struct {unsigned x;} FOOBAR;
334 FOOBAR f = X_FOOBAR(1);
336 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
337 if test x"$samba_cv_immediate_structures" = x"yes"; then
338 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES)
341 ############################################
342 # check for unix domain sockets
343 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
345 #include <sys/types.h>
348 #include <sys/socket.h>
349 #include <sys/un.h>],
351 struct sockaddr_un sunaddr;
352 sunaddr.sun_family = AF_UNIX;
354 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
355 if test x"$samba_cv_unixsocket" = x"yes"; then
356 AC_DEFINE(HAVE_UNIXSOCKET)
360 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
362 #include <sys/types.h>
367 #include <sys/socket.h>],[socklen_t i = 0],
368 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
369 if test x"$samba_cv_socklen_t" = x"yes"; then
370 AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
373 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
375 #include <sys/types.h>
380 #include <signal.h>],[sig_atomic_t i = 0],
381 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
382 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
383 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
386 # stupid headers have the functions but no declaration. grrrr.
387 AC_HAVE_DECL(errno, [#include <errno.h>])
388 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
389 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
390 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
391 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
392 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
393 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
395 # and glibc has setresuid under linux but the function does
396 # nothing until kernel 2.1.44! very dumb.
397 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
398 AC_TRY_RUN([#include <errno.h>
399 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
400 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
401 if test x"$samba_cv_have_setresuid" = x"yes"; then
402 AC_DEFINE(HAVE_SETRESUID)
405 # Do the same check for setresguid...
407 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
408 AC_TRY_RUN([#include <unistd.h>
410 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
411 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
412 if test x"$samba_cv_have_setresgid" = x"yes"; then
413 AC_DEFINE(HAVE_SETRESGID)
418 ###############################################
419 # test for where we get crypt() from
420 AC_CHECK_FUNCS(crypt)
421 if test x"$ac_cv_func_crypt" = x"no"; then
422 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
423 AC_DEFINE(HAVE_CRYPT)])
427 ###############################################
428 # Readline included by default unless explicitly asked not to
429 test "${with_readline+set}" != "set" && with_readline=yes
431 # test for where we get readline() from
432 AC_MSG_CHECKING(whether to use readline)
433 AC_ARG_WITH(readline,
434 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto) ],
435 [ case "$with_readline" in
439 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
440 AC_CHECK_HEADERS(readline/history.h)
442 AC_CHECK_HEADERS(readline.h readline/readline.h,[
443 for termlib in ncurses curses termcap terminfo termlib; do
444 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
446 AC_CHECK_LIB(readline, rl_callback_handler_install,
447 [TERMLIBS="-lreadline $TERMLIBS"
448 AC_DEFINE(HAVE_LIBREADLINE)
449 break], [TERMLIBS=], $TERMLIBS)])
457 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
458 # alternate readline path
460 _cppflags=${CPPFLAGS}
462 # Add additional search path
463 LDFLAGS="-L$with_readline/lib $LDFLAGS"
464 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
466 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
467 AC_CHECK_HEADERS(readline/history.h)
469 AC_CHECK_HEADERS(readline.h readline/readline.h,[
470 for termlib in ncurses curses termcap terminfo termlib; do
471 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
473 AC_CHECK_LIB(readline, rl_callback_handler_install,
474 [TERMLDFLAGS="-L$with_readline/lib"
475 TERMCPPFLAGS="-I$with_readline/include"
476 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
477 TERMLIBS="-lreadline $TERMLIBS"
478 AC_DEFINE(HAVE_LIBREADLINE)
479 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
487 AC_SUBST(TERMLDFLAGS)
489 # The readline API changed slightly from readline3 to readline4, so
490 # code will generate warnings on one of them unless we have a few
492 AC_CHECK_LIB(readline, rl_completion_matches,
493 [AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
494 [Do we have rl_completion_matches?])],
498 # The following test taken from the cvs sources
499 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
500 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
501 # libsocket.so which has a bad implementation of gethostbyname (it
502 # only looks in /etc/hosts), so we only look for -lsocket if we need
504 AC_CHECK_FUNCS(connect)
505 if test x"$ac_cv_func_connect" = x"no"; then
508 *) AC_CHECK_LIB(nsl_s, printf) ;;
512 *) AC_CHECK_LIB(nsl, printf) ;;
516 *) AC_CHECK_LIB(socket, connect) ;;
520 *) AC_CHECK_LIB(inet, connect) ;;
522 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
524 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
525 test x"$ac_cv_lib_inet_connect" = x"yes"; then
526 # ac_cv_func_connect=yes
527 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
528 AC_DEFINE(HAVE_CONNECT)
532 ###############################################
533 # test for where we get get_yp_default_domain() from
534 AC_CHECK_FUNCS(yp_get_default_domain)
535 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
536 AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
537 AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)])
540 # Check if we have execl, if not we need to compile smbrun.
541 AC_CHECK_FUNCS(execl)
542 if test x"$ac_cv_func_execl" = x"no"; then
548 AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown fchown chmod fchmod chroot)
549 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset strlcpy strlcat)
550 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
551 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
552 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf)
553 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
554 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
555 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
556 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
557 AC_CHECK_FUNCS(syslog vsyslog)
558 # setbuffer is needed for smbtorture
559 AC_CHECK_FUNCS(setbuffer)
561 # syscall() is needed for smbwrapper.
562 AC_CHECK_FUNCS(syscall)
564 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
565 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
566 AC_CHECK_FUNCS(__getcwd _getcwd)
567 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
568 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
569 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
570 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
571 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
572 AC_CHECK_FUNCS(_write __write _fork __fork)
573 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
574 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
575 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
576 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
577 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
580 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
583 if test x$ac_cv_func_stat64 = xno ; then
584 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
586 #if defined(HAVE_UNISTD_H)
589 #include <sys/stat.h>
590 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
591 AC_MSG_RESULT([$ac_cv_func_stat64])
592 if test x$ac_cv_func_stat64 = xyes ; then
593 AC_DEFINE(HAVE_STAT64)
597 if test x$ac_cv_func_lstat64 = xno ; then
598 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
600 #if defined(HAVE_UNISTD_H)
603 #include <sys/stat.h>
604 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
605 AC_MSG_RESULT([$ac_cv_func_lstat64])
606 if test x$ac_cv_func_lstat64 = xyes ; then
607 AC_DEFINE(HAVE_LSTAT64)
611 if test x$ac_cv_func_fstat64 = xno ; then
612 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
614 #if defined(HAVE_UNISTD_H)
617 #include <sys/stat.h>
618 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
619 AC_MSG_RESULT([$ac_cv_func_fstat64])
620 if test x$ac_cv_func_fstat64 = xyes ; then
621 AC_DEFINE(HAVE_FSTAT64)
625 #####################################
626 # we might need the resolv library on some systems
627 AC_CHECK_LIB(resolv, dn_expand)
630 # Check for the functions putprpwnam, set_auth_parameters,
631 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
632 # Needed for OSF1 and HPUX.
635 AC_LIBTESTFUNC(security, putprpwnam)
636 AC_LIBTESTFUNC(sec, putprpwnam)
638 AC_LIBTESTFUNC(security, set_auth_parameters)
639 AC_LIBTESTFUNC(sec, set_auth_parameters)
641 # UnixWare 7.x has its getspnam in -lgen
642 AC_LIBTESTFUNC(gen, getspnam)
644 AC_LIBTESTFUNC(security, getspnam)
645 AC_LIBTESTFUNC(sec, getspnam)
647 AC_LIBTESTFUNC(security, bigcrypt)
648 AC_LIBTESTFUNC(sec, bigcrypt)
650 AC_LIBTESTFUNC(security, getprpwnam)
651 AC_LIBTESTFUNC(sec, getprpwnam)
653 # this bit needs to be modified for each OS that is suported by
654 # smbwrapper. You need to specify how to created a shared library and
655 # how to compile C code to produce PIC object files
657 # these are the defaults, good for lots of systems
665 # Assume non-shared by default and override below
667 AC_MSG_CHECKING([ability to build shared libraries])
669 # and these are for particular systems
671 *linux*) AC_DEFINE(LINUX)
676 *solaris*) AC_DEFINE(SUNOS5)
678 LDSHFLAGS="-h \$@ -G"
679 if test "${ac_cv_prog_CC}" = "gcc"; then
687 *sunos*) AC_DEFINE(SUNOS4)
689 LDSHFLAGS="-Wl,-h,\$@ -G"
690 PICFLAG="-KPIC" # Is this correct for SunOS
692 *bsd*) BLDSHARED="true"
693 LDSHFLAGS="-Wl,-soname,\$@ -shared"
696 *irix*) AC_DEFINE(IRIX)
698 *irix6*) AC_DEFINE(IRIX6)
701 ATTEMPT_WRAP32_BUILD=yes
703 LDSHFLAGS="-Wl,-soname,\$@ -shared"
704 if test "${ac_cv_prog_CC}" = "gcc"; then
710 *aix*) AC_DEFINE(AIX)
712 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
713 PICFLAG="-O2 -qmaxmem=6000"
715 *hpux*) AC_DEFINE(HPUX)
717 # Use special PIC flags for the native HP-UX compiler.
718 if test $ac_cv_prog_cc_Ae = yes; then
720 LDSHFLAGS="-b -z +h \$@"
724 *qnx*) AC_DEFINE(QNX);;
725 *osf*) AC_DEFINE(OSF1)
727 LDSHFLAGS="-Wl,-soname,\$@ -shared"
730 *sco*) AC_DEFINE(SCO);;
731 *unixware*) AC_DEFINE(UNIXWARE)
733 LDSHFLAGS="-Wl,-soname,\$@ -shared"
736 *next2*) AC_DEFINE(NEXT2);;
737 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
740 *-univel-*) if [ test "$GCC" != yes ]; then
741 AC_DEFINE(HAVE_MEMSET)
745 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
749 if [ test "$GCC" != yes ]; then
750 AC_DEFINE(HAVE_MEMSET)
755 AC_MSG_RESULT($BLDSHARED)
756 AC_MSG_CHECKING([linker flags for shared libraries])
757 AC_MSG_RESULT([$LDSHFLAGS])
758 AC_MSG_CHECKING([compiler flags for position-independent code])
759 AC_MSG_RESULT([$PICFLAGS])
761 # this updates our target list if we can build shared libs
762 if test $BLDSHARED = true; then
763 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
770 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
771 AC_TRY_RUN([#include <stdio.h>
772 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
773 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
774 if test x"$samba_cv_have_longlong" = x"yes"; then
775 AC_DEFINE(HAVE_LONGLONG)
779 # Check if the compiler supports the LL prefix on long long integers.
782 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
783 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
784 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
785 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
786 AC_DEFINE(COMPILER_SUPPORTS_LL)
790 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
791 AC_TRY_RUN([#include <stdio.h>
792 #include <sys/stat.h>
793 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
794 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
795 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
796 AC_DEFINE(SIZEOF_OFF_T,8)
799 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
801 #if defined(HAVE_UNISTD_H)
805 #include <sys/stat.h>
806 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
807 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
808 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
809 AC_DEFINE(HAVE_OFF64_T)
812 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
813 AC_TRY_RUN([#include <stdio.h>
814 #include <sys/stat.h>
815 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
816 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
817 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
818 AC_DEFINE(SIZEOF_INO_T,8)
821 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
823 #if defined(HAVE_UNISTD_H)
827 #include <sys/stat.h>
828 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
829 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
830 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
831 AC_DEFINE(HAVE_INO64_T)
834 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
836 #if defined(HAVE_UNISTD_H)
839 #include <sys/types.h>
840 #include <dirent.h>],
841 [struct dirent64 de;],
842 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
843 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
844 AC_DEFINE(HAVE_STRUCT_DIRENT64)
847 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
848 AC_TRY_RUN([#include <stdio.h>
849 main() { char c; c=250; exit((c > 0)?0:1); }],
850 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
851 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
852 AC_DEFINE(HAVE_UNSIGNED_CHAR)
855 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
856 AC_TRY_COMPILE([#include <sys/types.h>
857 #include <sys/socket.h>
858 #include <netinet/in.h>],
859 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
860 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
861 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
862 AC_DEFINE(HAVE_SOCK_SIN_LEN)
865 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
866 AC_TRY_COMPILE([#include <sys/types.h>
868 void seekdir(DIR *d, long loc) { return; }],[return 0;],
869 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
870 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
871 AC_DEFINE(SEEKDIR_RETURNS_VOID)
874 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
875 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
876 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
877 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
878 AC_DEFINE(HAVE_FILE_MACRO)
881 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
882 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
883 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
884 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
885 AC_DEFINE(HAVE_FUNCTION_MACRO)
888 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
890 #include <sys/time.h>
892 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
893 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
894 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
895 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
898 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
900 #include <sys/types.h>
902 void foo(const char *format, ...) {
907 va_start(ap, format);
908 len = vsnprintf(0, 0, format, ap);
910 if (len != 5) exit(1);
912 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
916 main() { foo("hello"); }
918 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
919 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
920 AC_DEFINE(HAVE_C99_VSNPRINTF)
923 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
924 AC_TRY_RUN([#include <sys/types.h>
926 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
927 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
928 di->d_name[0] == 0) exit(0); exit(1);} ],
929 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
930 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
931 AC_DEFINE(HAVE_BROKEN_READDIR)
934 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
935 AC_TRY_COMPILE([#include <sys/types.h>
937 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
938 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
939 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
940 AC_DEFINE(HAVE_UTIMBUF)
943 dnl utmp and utmpx come in many flavours
944 dnl We need to check for many of them
945 dnl But we don't need to do each and every one, because our code uses
946 dnl mostly just the utmp (not utmpx) fields.
948 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
950 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
951 AC_TRY_COMPILE([#include <sys/types.h>
953 [struct utmp ut; ut.ut_name[0] = 'a';],
954 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
955 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
956 AC_DEFINE(HAVE_UT_UT_NAME)
959 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
960 AC_TRY_COMPILE([#include <sys/types.h>
962 [struct utmp ut; ut.ut_user[0] = 'a';],
963 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
964 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
965 AC_DEFINE(HAVE_UT_UT_USER)
968 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
969 AC_TRY_COMPILE([#include <sys/types.h>
971 [struct utmp ut; ut.ut_id[0] = 'a';],
972 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
973 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
974 AC_DEFINE(HAVE_UT_UT_ID)
977 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
978 AC_TRY_COMPILE([#include <sys/types.h>
980 [struct utmp ut; ut.ut_host[0] = 'a';],
981 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
982 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
983 AC_DEFINE(HAVE_UT_UT_HOST)
986 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
987 AC_TRY_COMPILE([#include <sys/types.h>
989 [struct utmp ut; time_t t; ut.ut_time = t;],
990 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
991 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
992 AC_DEFINE(HAVE_UT_UT_TIME)
995 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
996 AC_TRY_COMPILE([#include <sys/types.h>
998 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
999 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
1000 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
1001 AC_DEFINE(HAVE_UT_UT_TV)
1004 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
1005 AC_TRY_COMPILE([#include <sys/types.h>
1007 [struct utmp ut; ut.ut_type = 0;],
1008 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
1009 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
1010 AC_DEFINE(HAVE_UT_UT_TYPE)
1013 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
1014 AC_TRY_COMPILE([#include <sys/types.h>
1016 [struct utmp ut; ut.ut_pid = 0;],
1017 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
1018 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1019 AC_DEFINE(HAVE_UT_UT_PID)
1022 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1023 AC_TRY_COMPILE([#include <sys/types.h>
1025 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1026 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1027 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1028 AC_DEFINE(HAVE_UT_UT_EXIT)
1031 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1032 AC_TRY_COMPILE([#include <sys/types.h>
1034 [struct utmp ut; ut.ut_addr = 0;],
1035 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1036 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1037 AC_DEFINE(HAVE_UT_UT_ADDR)
1040 if test x$ac_cv_func_pututline = xyes ; then
1041 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1042 AC_TRY_COMPILE([#include <sys/types.h>
1044 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1045 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1046 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1047 AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
1051 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1052 AC_TRY_COMPILE([#include <sys/types.h>
1053 #include <utmpx.h>],
1054 [struct utmpx ux; ux.ut_syslen = 0;],
1055 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1056 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1057 AC_DEFINE(HAVE_UX_UT_SYSLEN)
1061 #################################################
1062 # check for libiconv support
1063 AC_MSG_CHECKING(whether to use libiconv)
1064 AC_ARG_WITH(libiconv,
1065 [ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1066 [ case "$withval" in
1072 CFLAGS="$CFLAGS -I$withval/include"
1073 LDFLAGS="$LDFLAGS -L$withval/lib"
1074 AC_CHECK_LIB(iconv, iconv_open)
1075 AC_DEFINE_UNQUOTED(WITH_LIBICONV, "${withval}")
1083 # check for iconv in libc
1084 AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1088 iconv_t cd = iconv_open("ASCII", "UCS-2LE");
1089 if (cd == 0 || cd == (iconv_t)-1) return -1;
1093 samba_cv_HAVE_NATIVE_ICONV=yes,samba_cv_HAVE_NATIVE_ICONV=no,samba_cv_HAVE_NATIVE_ICONV=cross)])
1094 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1095 AC_DEFINE(HAVE_NATIVE_ICONV)
1099 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1101 #include <sys/types.h>
1104 #define F_GETLEASE 1025
1107 int fd = open("/dev/null", O_RDONLY);
1108 return fcntl(fd, F_GETLEASE, 0) == -1;
1111 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1112 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1113 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1116 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1118 #include <sys/types.h>
1122 #define F_NOTIFY 1026
1125 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1128 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1129 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1130 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1133 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1135 #include <sys/types.h>
1138 #include <sys/file.h>
1140 #define LOCK_MAND 32
1141 #define LOCK_READ 64
1144 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1147 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1148 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1149 AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1155 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1156 AC_TRY_COMPILE([#include <sys/types.h>
1157 #include <fcntl.h>],
1158 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1159 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1160 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1161 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1164 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1165 AC_TRY_RUN([#include <sys/types.h>
1166 #include <sys/capability.h>
1169 if ((cap = cap_get_proc()) == NULL)
1171 cap->cap_effective |= CAP_NETWORK_MGT;
1172 cap->cap_inheritable |= CAP_NETWORK_MGT;
1177 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1178 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1179 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1183 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1184 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1187 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1188 AC_TRY_COMPILE([#include <sys/types.h>
1189 #if defined(HAVE_RPC_RPC_H)
1190 #include <rpc/rpc.h>
1193 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1194 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1195 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1198 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1199 AC_TRY_COMPILE([#include <sys/types.h>
1200 #if defined(HAVE_RPC_RPC_H)
1201 #include <rpc/rpc.h>
1204 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1205 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1206 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1209 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1210 AC_TRY_COMPILE([#include <sys/types.h>
1211 #if defined(HAVE_RPC_RPC_H)
1212 #include <rpc/rpc.h>
1215 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1216 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1217 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1220 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1221 AC_TRY_COMPILE([#include <sys/types.h>
1222 #if defined(HAVE_RPC_RPC_H)
1223 #include <rpc/rpc.h>
1226 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1227 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1228 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1232 dnl Some systems (SCO) have a problem including
1233 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1234 dnl as a #define in <prot.h> and as part of an enum
1238 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1239 AC_TRY_COMPILE([#include <sys/types.h>
1240 #ifdef HAVE_SYS_SECURITY_H
1241 #include <sys/security.h>
1243 #endif /* HAVE_SYS_SECURITY_H */
1244 #if defined(HAVE_RPC_RPC_H)
1245 #include <rpc/rpc.h>
1248 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1249 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1250 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1253 AC_MSG_CHECKING([for test routines])
1254 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1256 AC_MSG_ERROR([cant find test code. Aborting config]),
1257 AC_MSG_WARN([cannot run when cross-compiling]))
1259 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1260 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1261 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1262 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1263 AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1266 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1267 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1268 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1269 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1270 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1271 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1273 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1276 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1277 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1278 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1279 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1280 AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1283 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1284 SAVE_CPPFLAGS="$CPPFLAGS"
1285 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1287 #define REPLACE_GETPASS 1
1288 #define NO_CONFIG_H 1
1289 #define main dont_declare_main
1290 #include "${srcdir-.}/lib/getsmbpass.c"
1292 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1293 CPPFLAGS="$SAVE_CPPFLAGS"
1295 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1296 AC_DEFINE(REPLACE_GETPASS)
1299 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1302 #include <sys/types.h>
1303 #include <netinet/in.h>
1304 #ifdef HAVE_ARPA_INET_H
1305 #include <arpa/inet.h>
1307 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1308 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1309 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1311 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1312 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1313 AC_DEFINE(REPLACE_INET_NTOA)
1316 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1317 AC_TRY_RUN([#include <stdlib.h>
1318 #include <sys/types.h>
1319 #include <sys/stat.h>
1323 char tpl[20]="/tmp/test.XXXXXX";
1324 int fd = mkstemp(tpl);
1325 if (fd == -1) exit(1);
1327 if (fstat(fd, &st) != 0) exit(1);
1328 if ((st.st_mode & 0777) != 0600) exit(1);
1331 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1332 samba_cv_HAVE_SECURE_MKSTEMP=no,
1333 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1334 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1335 AC_DEFINE(HAVE_SECURE_MKSTEMP)
1338 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1339 AC_TRY_RUN([#include <unistd.h>
1340 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1341 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1342 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1343 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1346 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1347 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1348 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1349 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1350 AC_DEFINE(HAVE_ROOT)
1352 AC_MSG_WARN(running as non-root will disable some tests)
1356 # look for a method of finding the list of network interfaces
1358 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1360 #define HAVE_IFACE_AIX 1
1361 #define AUTOCONF_TEST 1
1362 #include "confdefs.h"
1363 #include "${srcdir-.}/lib/interfaces.c"],
1364 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1365 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1366 iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1369 if test $iface = no; then
1370 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1372 #define HAVE_IFACE_IFCONF 1
1373 #define AUTOCONF_TEST 1
1374 #include "confdefs.h"
1375 #include "${srcdir-.}/lib/interfaces.c"],
1376 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1377 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1378 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1382 if test $iface = no; then
1383 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1385 #define HAVE_IFACE_IFREQ 1
1386 #define AUTOCONF_TEST 1
1387 #include "confdefs.h"
1388 #include "${srcdir-.}/lib/interfaces.c"],
1389 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1390 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1391 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1396 ################################################
1397 # look for a method of setting the effective uid
1399 if test $seteuid = no; then
1400 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1402 #define AUTOCONF_TEST 1
1403 #define USE_SETRESUID 1
1404 #include "confdefs.h"
1405 #include "${srcdir-.}/lib/util_sec.c"],
1406 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1407 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1408 seteuid=yes;AC_DEFINE(USE_SETRESUID)
1413 if test $seteuid = no; then
1414 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1416 #define AUTOCONF_TEST 1
1417 #define USE_SETREUID 1
1418 #include "confdefs.h"
1419 #include "${srcdir-.}/lib/util_sec.c"],
1420 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1421 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1422 seteuid=yes;AC_DEFINE(USE_SETREUID)
1426 if test $seteuid = no; then
1427 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1429 #define AUTOCONF_TEST 1
1430 #define USE_SETEUID 1
1431 #include "confdefs.h"
1432 #include "${srcdir-.}/lib/util_sec.c"],
1433 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1434 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1435 seteuid=yes;AC_DEFINE(USE_SETEUID)
1439 if test $seteuid = no; then
1440 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1442 #define AUTOCONF_TEST 1
1443 #define USE_SETUIDX 1
1444 #include "confdefs.h"
1445 #include "${srcdir-.}/lib/util_sec.c"],
1446 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1447 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1448 seteuid=yes;AC_DEFINE(USE_SETUIDX)
1453 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1454 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1455 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1456 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1457 AC_DEFINE(HAVE_MMAP)
1460 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1461 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1462 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1463 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1464 AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1467 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1468 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1469 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1470 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1471 AC_DEFINE(HAVE_FCNTL_LOCK)
1474 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1475 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1476 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1477 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1478 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1483 dnl Don't check for 64 bit fcntl locking if we know that the
1484 dnl glibc2.1 broken check has succeeded.
1487 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1489 #if defined(HAVE_UNISTD_H)
1499 #ifdef HAVE_SYS_FCNTL_H
1500 #include <sys/fcntl.h>
1502 main() { struct flock64 fl64;
1503 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1509 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1511 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1512 AC_DEFINE(HAVE_STRUCT_FLOCK64)
1519 AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
1521 #ifdef HAVE_SYS_VFS_H
1522 #include <sys/vfs.h>
1524 #ifdef HAVE_SYS_CAPABILITY_H
1525 #include <sys/capability.h>
1528 samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
1529 if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
1530 AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS)
1535 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1536 AC_TRY_COMPILE([#include <sys/acl.h>
1537 #if defined(HAVE_RPCSVC_NIS_H)
1538 #include <rpcsvc/nis.h>
1541 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1542 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1543 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1547 #################################################
1548 # check for smbwrapper support
1549 AC_MSG_CHECKING(whether to use smbwrapper)
1550 AC_ARG_WITH(smbwrapper,
1551 [ --with-smbwrapper Include SMB wrapper support (default=no) ],
1552 [ case "$withval" in
1555 AC_DEFINE(WITH_SMBWRAPPER)
1556 WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1558 if test x$ATTEMPT_WRAP32_BUILD = x; then
1561 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1564 # Conditions under which smbwrapper should not be built.
1566 if test x$PICFLAG = x; then
1567 echo No support for PIC code - disabling smbwrapper and smbsh
1570 elif test x$ac_cv_func_syscall = xno; then
1571 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1583 #################################################
1584 # check for AFS clear-text auth support
1585 AC_MSG_CHECKING(whether to use AFS clear-text auth)
1587 [ --with-afs Include AFS clear-text auth support (default=no) ],
1588 [ case "$withval" in
1601 #################################################
1602 # check for the DFS clear-text auth system
1603 AC_MSG_CHECKING(whether to use DFS clear-text auth)
1605 [ --with-dce-dfs Include DCE/DFS clear-text auth support (default=no)],
1606 [ case "$withval" in
1619 #################################################
1620 # see if this box has the RedHat location for kerberos
1621 AC_MSG_CHECKING(for /usr/kerberos)
1622 if test -d /usr/kerberos; then
1623 LDFLAGS="$LDFLAGS -L/usr/kerberos/lib"
1624 CFLAGS="$CFLAGS -I/usr/kerberos/include"
1625 CPPFLAGS="$CPPFLAGS -I/usr/kerberos/include"
1631 #################################################
1632 # check for location of Kerberos 5 install
1633 AC_MSG_CHECKING(for kerberos 5 install path)
1635 [ --with-krb5=base-dir Locate Kerberos 5 support (default=/usr)],
1636 [ case "$withval" in
1643 CFLAGS="$CFLAGS -I$withval/include"
1644 CPPFLAGS="$CPPFLAGS -I$withval/include"
1645 LDFLAGS="$LDFLAGS -L$withval/lib"
1651 # now check for krb5.h. Some systems have the libraries without the headers!
1652 # note that this check is done here to allow for different kerberos
1654 AC_CHECK_HEADERS(krb5.h)
1656 # now check for gssapi headers. This is also done here to allow for
1657 # different kerberos include paths
1658 AC_CHECK_HEADERS(gssapi/gssapi_generic.h gssapi/gssapi.h)
1660 ##################################################################
1661 # we might need the k5crypto and com_err libraries on some systems
1662 AC_CHECK_LIB(com_err, _et_list, [LIBS="$LIBS -lcom_err"])
1663 AC_CHECK_LIB(k5crypto, krb5_encrypt_data, [LIBS="$LIBS -lk5crypto"])
1664 AC_CHECK_LIB(gssapi_krb5, gss_import_name, [LIBS="$LIBS -lgssapi_krb5"])
1667 ########################################################
1668 # now see if we can find the krb5 libs in standard paths
1669 # or as specified above
1670 AC_CHECK_LIB(krb5, krb5_mk_req_extended, [LIBS="$LIBS -lkrb5";
1671 AC_DEFINE(HAVE_KRB5)])
1674 ##################################################################
1675 # we might need the lber lib on some systems. To avoid link errors
1676 # this test must be before the libldap test
1677 AC_CHECK_LIB(lber, ber_scanf, [LIBS="$LIBS -llber"])
1679 ########################################################
1680 # now see if we can find the ldap libs in standard paths
1681 if test x$have_ldap != xyes; then
1682 AC_CHECK_LIB(ldap, ldap_open, [LIBS="$LIBS -lldap";
1683 AC_DEFINE(HAVE_LDAP)])
1687 #################################################
1688 # check for automount support
1689 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1690 AC_ARG_WITH(automount,
1691 [ --with-automount Include AUTOMOUNT support (default=no)],
1692 [ case "$withval" in
1695 AC_DEFINE(WITH_AUTOMOUNT)
1704 #################################################
1705 # check for smbmount support
1706 AC_MSG_CHECKING(whether to use SMBMOUNT)
1707 AC_ARG_WITH(smbmount,
1708 [ --with-smbmount Include SMBMOUNT (Linux only) support (default=no)],
1709 [ case "$withval" in
1714 AC_DEFINE(WITH_SMBMOUNT)
1715 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1718 AC_MSG_ERROR(not on a linux system!)
1732 #################################################
1733 # check for a PAM clear-text auth, accounts, password and session support
1734 with_pam_for_crypt=no
1735 AC_MSG_CHECKING(whether to use PAM)
1737 [ --with-pam Include PAM support (default=no)],
1738 [ case "$withval" in
1743 with_pam_for_crypt=yes
1752 # we can't build a pam module if we don't have pam.
1753 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
1755 #################################################
1756 # check for pam_smbpass support
1757 AC_MSG_CHECKING(whether to use pam_smbpass)
1758 AC_ARG_WITH(pam_smbpass,
1759 [ --with-pam_smbpass Build a PAM module to allow other applications to use our smbpasswd file (default=no)],
1760 [ case "$withval" in
1764 # Conditions under which pam_smbpass should not be built.
1766 if test x$PICFLAG = x; then
1767 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
1769 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
1770 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
1773 PAM_MOD="bin/pam_smbpass.so"
1784 ###############################################
1785 # test for where we get crypt() from, but only
1787 if test $with_pam_for_crypt = no; then
1788 AC_CHECK_FUNCS(crypt)
1789 if test x"$ac_cv_func_crypt" = x"no"; then
1790 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
1791 AC_DEFINE(HAVE_CRYPT)])
1796 ## moved after the check for -lcrypt in order to
1797 ## ensure that the necessary libraries are included
1798 ## check checking for truncated salt. Wrapped by the
1799 ## $with_pam_for_crypt variable as above --jerry
1801 if test $with_pam_for_crypt = no; then
1802 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1803 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1804 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1805 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1806 AC_DEFINE(HAVE_TRUNCATED_SALT)
1812 ########################################################################################
1814 ## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
1816 ########################################################################################
1818 ## set the with_smbpasswd_sam as the default
1819 with_smbpasswd_sam=yes
1822 #################################################
1823 # check for a TDB password database
1824 AC_MSG_CHECKING(whether to use TDB SAM database)
1826 [ --with-tdbsam Include experimental TDB SAM support (default=no)],
1827 [ case "$withval" in
1830 AC_DEFINE(WITH_TDB_SAM)
1831 with_smbpasswd_sam=no
1840 #################################################
1841 # check for a LDAP password database
1842 AC_MSG_CHECKING(whether to use LDAP SAM database)
1843 AC_ARG_WITH(ldapsam,
1844 [ --with-ldapsam Include experimental LDAP SAM support (default=no)],
1845 [ case "$withval" in
1848 AC_DEFINE(WITH_LDAP_SAM)
1849 LIBS="-lldap -llber $LIBS"
1850 with_smbpasswd_sam=no
1859 #################################################
1860 # check for a NISPLUS password database
1861 AC_MSG_CHECKING(whether to use NISPLUS SAM database)
1862 AC_ARG_WITH(nisplussam,
1863 [ --with-nisplussam Include NISPLUS SAM support (default=no)],
1864 [ case "$withval" in
1867 AC_DEFINE(WITH_NISPLUS_SAM)
1868 with_smbpasswd_sam=no
1877 ################################################
1878 # This test should come last because the
1879 # smbpasswd SAM is only used if another format
1880 # has not been defined
1881 AC_MSG_CHECKING(whether to use traditional smbpasswd file)
1882 if test $with_smbpasswd_sam = yes; then
1884 AC_DEFINE(WITH_SMBPASSWD_SAM)
1889 ########################################################################################
1891 ## END OF TESTS FOR SAM BACKENDS.
1893 ########################################################################################
1895 #################################################
1896 # check for a NISPLUS_HOME support
1897 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1898 AC_ARG_WITH(nisplus-home,
1899 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
1900 [ case "$withval" in
1903 AC_DEFINE(WITH_NISPLUS_HOME)
1912 #################################################
1913 # check for the secure socket layer
1914 AC_MSG_CHECKING(whether to use SSL)
1916 [ --with-ssl Include SSL support (default=no)
1917 --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl/include)
1918 --with-ssllib=DIR Where the SSL libraries are (defaults to /usr/local/ssl/lib)],
1919 [ case "$withval" in
1923 withval="/usr/local/ssl" # default
1925 if test "${with_sslinc+set}" = set; then
1927 withval="$with_sslinc"
1930 echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1931 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1934 CFLAGS="-I${withval} $CFLAGS"
1940 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1944 if test "${with_ssllib+set}" = set; then
1946 withval="$with_ssllib"
1949 echo "configure: warning: --with-ssllib called without argument - will use default" 1>&w
1950 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1953 LDFLAGS="-L${withval}/lib $LDFLAGS"
1959 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1963 LIBS="-lssl -lcrypto $LIBS"
1965 # if test ! -d ${withval}; then
1966 # echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1970 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own
1980 #################################################
1981 # check for syslog logging
1982 AC_MSG_CHECKING(whether to use syslog logging)
1984 [ --with-syslog Include experimental SYSLOG support (default=no)],
1985 [ case "$withval" in
1988 AC_DEFINE(WITH_SYSLOG)
1997 #################################################
1998 # check for a shared memory profiling support
1999 AC_MSG_CHECKING(whether to use profiling)
2000 AC_ARG_WITH(profiling-data,
2001 [ --with-profiling-data Include gathering source code profile information (default=no)],
2002 [ case "$withval" in
2005 AC_DEFINE(WITH_PROFILE)
2015 #################################################
2016 # check for experimental disk-quotas support
2017 QUOTAOBJS=smbd/noquotas.o
2019 AC_MSG_CHECKING(whether to support disk-quotas)
2021 [ --with-quotas Include experimental disk-quota support (default=no)],
2022 [ case "$withval" in
2027 # Check for kernel 2.4.x quota braindamage...
2028 AC_CACHE_CHECK([for linux 2.4.x quota braindamage..],samba_cv_linux_2_4_quota_braindamage, [
2029 AC_TRY_COMPILE([#include <stdio.h>
2030 #include <sys/types.h>
2031 #include <asm/types.h>
2032 #include <linux/quota.h>
2034 #include <linux/unistd.h>],[struct mem_dqblk D;],
2035 samba_cv_linux_2_4_quota_braindamage=yes,samba_cv_linux_2_4_quota_braindamage=no)])
2036 if test x"$samba_cv_linux_2_4_quota_braindamage" = x"yes"; then
2037 AC_DEFINE(LINUX_QUOTAS_2)
2039 AC_DEFINE(LINUX_QUOTAS_1)
2045 QUOTAOBJS=smbd/quotas.o
2046 AC_DEFINE(WITH_QUOTAS)
2056 #################################################
2057 # check for experimental utmp accounting
2059 AC_MSG_CHECKING(whether to support utmp accounting)
2061 [ --with-utmp Include experimental utmp accounting (default=no)],
2062 [ case "$withval" in
2065 AC_DEFINE(WITH_UTMP)
2074 #################################################
2075 # set private directory location
2076 AC_ARG_WITH(privatedir,
2077 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
2078 [ case "$withval" in
2081 # Just in case anybody calls it without argument
2083 AC_MSG_WARN([--with-privatedir called without argument - will use default])
2084 privatedir='${prefix}/private'
2087 privatedir="$withval"
2090 AC_SUBST(privatedir)],
2091 [privatedir='${prefix}/private'
2092 AC_SUBST(privatedir)]
2095 #################################################
2096 # set lock directory location
2097 AC_ARG_WITH(lockdir,
2098 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
2099 [ case "$withval" in
2102 # Just in case anybody calls it without argument
2104 AC_MSG_WARN([--with-lockdir called without argument - will use default])
2105 lockdir='$(VARDIR)/locks'
2112 [lockdir='$(VARDIR)/locks'
2116 #################################################
2117 # set SWAT directory location
2118 AC_ARG_WITH(swatdir,
2119 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
2120 [ case "$withval" in
2123 # Just in case anybody does it
2125 AC_MSG_WARN([--with-swatdir called without argument - will use default])
2126 swatdir='${prefix}/swat'
2133 [swatdir='${prefix}/swat'
2137 #################################################
2138 # choose native language(s) of man pages
2139 AC_MSG_CHECKING(chosen man pages' language(s))
2140 AC_ARG_WITH(manpages-langs,
2141 [ --with-manpages-langs={en,ja,pl} Choose man pages' language(s). (en)],
2142 [ case "$withval" in
2144 AC_MSG_WARN(--with-manpages-langs called without argument - will use default)
2152 AC_MSG_RESULT($manlangs)
2153 manlangs=`echo $manlangs | sed "s/,/ /"` # replacing commas with spaces to produce a list
2154 AC_SUBST(manlangs)],
2157 AC_MSG_RESULT($manlangs)
2161 #################################################
2162 # these tests are taken from the GNU fileutils package
2163 AC_CHECKING(how to get filesystem space usage)
2166 # Test for statvfs64.
2167 if test $space = no; then
2169 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2171 #if defined(HAVE_UNISTD_H)
2174 #include <sys/types.h>
2175 #include <sys/statvfs.h>
2178 struct statvfs64 fsd;
2179 exit (statvfs64 (".", &fsd));
2181 fu_cv_sys_stat_statvfs64=yes,
2182 fu_cv_sys_stat_statvfs64=no,
2183 fu_cv_sys_stat_statvfs64=cross)])
2184 if test $fu_cv_sys_stat_statvfs64 = yes; then
2186 AC_DEFINE(STAT_STATVFS64)
2190 # Perform only the link test since it seems there are no variants of the
2191 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2192 # because that got a false positive on SCO OSR5. Adding the declaration
2193 # of a `struct statvfs' causes this test to fail (as it should) on such
2194 # systems. That system is reported to work fine with STAT_STATFS4 which
2195 # is what it gets when this test fails.
2196 if test $space = no; then
2198 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2199 [AC_TRY_LINK([#include <sys/types.h>
2200 #include <sys/statvfs.h>],
2201 [struct statvfs fsd; statvfs (0, &fsd);],
2202 fu_cv_sys_stat_statvfs=yes,
2203 fu_cv_sys_stat_statvfs=no)])
2204 if test $fu_cv_sys_stat_statvfs = yes; then
2206 AC_DEFINE(STAT_STATVFS)
2210 if test $space = no; then
2211 # DEC Alpha running OSF/1
2212 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2213 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2215 #include <sys/param.h>
2216 #include <sys/types.h>
2217 #include <sys/mount.h>
2222 exit (statfs (".", &fsd, sizeof (struct statfs)));
2224 fu_cv_sys_stat_statfs3_osf1=yes,
2225 fu_cv_sys_stat_statfs3_osf1=no,
2226 fu_cv_sys_stat_statfs3_osf1=no)])
2227 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2228 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2230 AC_DEFINE(STAT_STATFS3_OSF1)
2234 if test $space = no; then
2236 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2237 member (AIX, 4.3BSD)])
2238 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2240 #ifdef HAVE_SYS_PARAM_H
2241 #include <sys/param.h>
2243 #ifdef HAVE_SYS_MOUNT_H
2244 #include <sys/mount.h>
2246 #ifdef HAVE_SYS_VFS_H
2247 #include <sys/vfs.h>
2253 exit (statfs (".", &fsd));
2255 fu_cv_sys_stat_statfs2_bsize=yes,
2256 fu_cv_sys_stat_statfs2_bsize=no,
2257 fu_cv_sys_stat_statfs2_bsize=no)])
2258 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2259 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2261 AC_DEFINE(STAT_STATFS2_BSIZE)
2265 if test $space = no; then
2267 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2268 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2269 [AC_TRY_RUN([#include <sys/types.h>
2270 #include <sys/statfs.h>
2274 exit (statfs (".", &fsd, sizeof fsd, 0));
2276 fu_cv_sys_stat_statfs4=yes,
2277 fu_cv_sys_stat_statfs4=no,
2278 fu_cv_sys_stat_statfs4=no)])
2279 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2280 if test $fu_cv_sys_stat_statfs4 = yes; then
2282 AC_DEFINE(STAT_STATFS4)
2286 if test $space = no; then
2288 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2289 member (4.4BSD and NetBSD)])
2290 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2291 [AC_TRY_RUN([#include <sys/types.h>
2292 #ifdef HAVE_SYS_PARAM_H
2293 #include <sys/param.h>
2295 #ifdef HAVE_SYS_MOUNT_H
2296 #include <sys/mount.h>
2302 exit (statfs (".", &fsd));
2304 fu_cv_sys_stat_statfs2_fsize=yes,
2305 fu_cv_sys_stat_statfs2_fsize=no,
2306 fu_cv_sys_stat_statfs2_fsize=no)])
2307 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2308 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2310 AC_DEFINE(STAT_STATFS2_FSIZE)
2314 if test $space = no; then
2316 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2317 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2318 [AC_TRY_RUN([#include <sys/types.h>
2319 #ifdef HAVE_SYS_PARAM_H
2320 #include <sys/param.h>
2322 #ifdef HAVE_SYS_MOUNT_H
2323 #include <sys/mount.h>
2325 #ifdef HAVE_SYS_FS_TYPES_H
2326 #include <sys/fs_types.h>
2331 /* Ultrix's statfs returns 1 for success,
2332 0 for not mounted, -1 for failure. */
2333 exit (statfs (".", &fsd) != 1);
2335 fu_cv_sys_stat_fs_data=yes,
2336 fu_cv_sys_stat_fs_data=no,
2337 fu_cv_sys_stat_fs_data=no)])
2338 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2339 if test $fu_cv_sys_stat_fs_data = yes; then
2341 AC_DEFINE(STAT_STATFS2_FS_DATA)
2346 # As a gating factor for large file support, in order to
2347 # use <4GB files we must have the following minimal support
2349 # long long, and a 64 bit off_t or off64_t.
2350 # If we don't have all of these then disable large
2353 AC_MSG_CHECKING([if large file support can be enabled])
2355 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2356 #include <sys/types.h>
2362 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2363 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2364 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2366 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2368 AC_ARG_WITH(spinlocks,
2369 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no) ])
2370 if test "x$with_spinlocks" = "xyes"; then
2371 AC_DEFINE(USE_SPINLOCKS)
2375 AC_DEFINE(SPARC_SPINLOCKS)
2378 i386|i486|i586|i686)
2379 AC_DEFINE(INTEL_SPINLOCKS)
2383 AC_DEFINE(MIPS_SPINLOCKS)
2387 AC_DEFINE(POWERPC_SPINLOCKS)
2392 #################################################
2393 # check for ACL support
2395 AC_MSG_CHECKING(whether to support ACLs)
2396 AC_ARG_WITH(acl-support,
2397 [ --with-acl-support Include ACL support (default=no)],
2398 [ case "$withval" in
2403 AC_MSG_RESULT(Using UnixWare ACLs)
2404 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2407 AC_MSG_RESULT(Using solaris ACLs)
2408 AC_DEFINE(HAVE_SOLARIS_ACLS)
2411 AC_MSG_RESULT(Using HPUX ACLs)
2412 AC_DEFINE(HAVE_HPUX_ACLS)
2415 AC_MSG_RESULT(Using IRIX ACLs)
2416 AC_DEFINE(HAVE_IRIX_ACLS)
2419 AC_MSG_RESULT(Using AIX ACLs)
2420 AC_DEFINE(HAVE_AIX_ACLS)
2423 AC_MSG_RESULT(Using Tru64 ACLs)
2424 AC_DEFINE(HAVE_TRU64_ACLS)
2428 AC_CHECK_LIB(acl,acl_get_file)
2429 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2430 AC_TRY_LINK([#include <sys/types.h>
2431 #include <sys/acl.h>],
2432 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2433 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2434 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2435 AC_MSG_RESULT(Using posix ACLs)
2436 AC_DEFINE(HAVE_POSIX_ACLS)
2437 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2438 AC_TRY_LINK([#include <sys/types.h>
2439 #include <sys/acl.h>],
2440 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2441 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2442 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2443 AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2451 AC_DEFINE(HAVE_NO_ACLS)
2454 AC_DEFINE(HAVE_NO_ACLS)
2458 #################################################
2459 # Check whether winbind is supported on this platform. If so we need to
2460 # build and install client programs (WINBIND_TARGETS), sbin programs
2461 # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS).
2463 AC_MSG_CHECKING(whether to build winbind)
2465 # Initially, the value of $host_os decides whether winbind is supported
2473 winbind_no_reason=", unsupported on $host_os"
2477 # Check the setting of --with-winbindd
2479 AC_ARG_WITH(winbind,
2480 [ --with-winbind Build winbind (default, if supported by OS)],
2493 # We need unix domain sockets for winbind
2495 if test x"$HAVE_WINBIND" = x"yes"; then
2496 if test x"$samba_cv_unixsocket" = x"no"; then
2497 winbind_no_reason=", no unix domain socket support on $host_os"
2502 # Display test results
2504 if test x"$HAVE_WINBIND" = x"yes"; then
2508 WINBIND_TARGETS="bin/wbinfo"
2509 WINBIND_STARGETS="bin/winbindd"
2510 WINBIND_LTARGETS="nsswitch/libnss_winbind.so"
2513 WINBIND_PAM_TARGETS="nsswitch/pam_winbind.so"
2517 AC_MSG_RESULT(no$winbind_no_reason)
2522 WINBIND_PAM_PROGS=""
2525 # Substitution time!
2527 AC_SUBST(WINBIND_TARGETS)
2528 AC_SUBST(WINBIND_STARGETS)
2529 AC_SUBST(WINBIND_LTARGETS)
2530 AC_SUBST(WINBIND_PAM_TARGETS)
2532 #################################################
2533 # Check to see if we should use the included popt
2535 AC_ARG_WITH(included-popt,
2536 [ --with-included-popt use bundled popt library, not from system],
2547 if test x"$INCLUDED_POPT" != x"yes"; then
2548 AC_CHECK_LIB(popt, poptGetContext,
2549 INCLUDED_POPT=no, INCLUDED_POPT=yes)
2552 AC_MSG_CHECKING(whether to use included popt)
2553 if test x"$INCLUDED_POPT" = x"yes"; then
2554 AC_MSG_RESULT($srcdir/popt)
2555 BUILD_POPT='$(POPT_OBJS)'
2556 FLAGS1="-I$srcdir/popt"
2561 AC_SUBST(BUILD_POPT)
2564 #################################################
2565 # final configure stuff
2567 echo "checking configure summary"
2568 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2569 echo "configure OK";,
2570 AC_MSG_ERROR([summary failure. Aborting config]),:)
2575 AC_OUTPUT(include/stamp-h Makefile)