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
32 dnl Checks for programs.
37 dnl Check if C compiler understands -c and -o at the same time
39 if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
46 dnl Check if the C compiler understands volatile (it should, being ANSI).
47 AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
48 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
49 samba_cv_volatile=yes,samba_cv_volatile=no)])
50 if test x"$samba_cv_volatile" = x"yes"; then
51 AC_DEFINE(HAVE_VOLATILE)
57 dnl Add #include for broken IRIX header files
59 *irix6*) AC_ADD_INCLUDE(<standards.h>)
63 AC_VALIDATE_CACHE_SYSTEM_TYPE
66 # Config CPPFLAG settings for strange OS's that must be set
70 # Try to work out if this is the native HPUX compiler that uses the -Ae flag.
73 # mmap on HPUX is completely broken...
74 AC_DEFINE(MMAP_BLACKLIST)
75 if test $ac_cv_prog_cc_Ae = yes; then
76 CPPFLAGS="$CPPFLAGS -Ae"
79 # Defines needed for HPUX support.
80 # HPUX has bigcrypt but (sometimes?) doesn't use it for
81 # password hashing - hence the USE_BOTH_CRYPT_CALLS define.
85 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE"
86 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
89 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE"
90 AC_DEFINE(USE_BOTH_CRYPT_CALLS)
95 # AIX4.x doesn't even admit to having large
96 # files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
99 AC_MSG_RESULT([enabling large file support])
100 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
103 # Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
104 # to the existance of large files..
105 # Note that -D_LARGEFILE64_SOURCE is different from the Sun
106 # recommendations on large file support, however it makes the
107 # compile work using gcc 2.7 and 2.8, whereas using the Sun
108 # recommendation makes the compile fail on gcc2.7. JRA.
112 5.0*|5.1*|5.2*|5.3*|5.5*)
113 AC_MSG_RESULT([no large file support])
116 AC_MSG_RESULT([enabling large file support])
117 if test "$ac_cv_prog_gcc" = yes; then
118 ${CC-cc} -v >conftest.c 2>&1
119 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
121 case "$ac_cv_gcc_compiler_version_number" in
122 *"gcc version 2.6"*|*"gcc version 2.7"*)
123 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE"
126 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
130 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64"
136 # Tests needed for SINIX large file support.
139 if test $host = mips-sni-sysv4 ; then
140 AC_MSG_CHECKING([for LFS support])
141 old_CPPFLAGS="$CPPFLAGS"
142 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
146 #if _LFS64_LARGEFILE == 1
151 }], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
152 CPPFLAGS="$old_CPPFLAGS"
153 if test x$SINIX_LFS_SUPPORT = xyes ; then
154 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
155 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
156 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
157 LIBS="`getconf LFS64_LIBS` $LIBS"
159 AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
163 # Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
166 AC_MSG_CHECKING([for LFS support])
167 old_CPPFLAGS="$CPPFLAGS"
168 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
171 #include <sys/utsname.h>
173 #if _LFS64_LARGEFILE == 1
178 /* Ensure this is glibc 2.2 or higher */
179 #if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
180 int libc_major = __GLIBC__;
181 int libc_minor = __GLIBC_MINOR__;
189 /* Ensure this is kernel 2.4 or higher */
192 release = uts.release;
193 major = atoi(strsep(&release, "."));
194 minor = atoi(strsep(&release, "."));
196 if (major > 2 || (major == 2 && minor > 3))
203 ], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
204 CPPFLAGS="$old_CPPFLAGS"
205 if test x$LINUX_LFS_SUPPORT = xyes ; then
206 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
208 AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
212 AC_MSG_CHECKING([for LFS support])
213 old_CPPFLAGS="$CPPFLAGS"
214 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
218 #if _LFS64_LARGEFILE == 1
223 }], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
224 CPPFLAGS="$old_CPPFLAGS"
225 if test x$GLIBC_LFS_SUPPORT = xyes ; then
226 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
228 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
238 AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
239 AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
240 AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h)
241 AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/mode.h)
242 AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
243 AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
244 AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
245 AC_CHECK_HEADERS(security/pam_modules.h security/_pam_macros.h)
248 # HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
249 # This causes configure to fail to detect it. Check for shadow separately on HPUX.
253 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
254 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
255 if test x"$ac_cv_header_shadow_h" = x"yes"; then
256 AC_DEFINE(HAVE_SHADOW_H)
260 AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
261 AC_CHECK_HEADERS(nss.h nss_common.h sys/security.h security/pam_appl.h security/pam_modules.h)
262 AC_CHECK_HEADERS(stropts.h poll.h)
263 AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
264 AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h)
266 # For experimental utmp support (lastlog on some BSD-like systems)
267 AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
269 # For quotas on Veritas VxFS filesystems
270 AC_CHECK_HEADERS(sys/fs/vx_quota.h)
272 AC_CHECK_SIZEOF(int,cross)
273 AC_CHECK_SIZEOF(long,cross)
274 AC_CHECK_SIZEOF(short,cross)
289 AC_CHECK_TYPE(ino_t,unsigned)
290 AC_CHECK_TYPE(loff_t,off_t)
291 AC_CHECK_TYPE(offset_t,loff_t)
292 AC_CHECK_TYPE(ssize_t, int)
293 AC_CHECK_TYPE(wchar_t, unsigned short)
295 ############################################
296 # for cups support we need libcups, and a handful of header files
298 AC_CHECK_LIB(cups,httpConnect)
300 # I wonder if there is a nicer way of doing this?
302 if test x"$ac_cv_lib_cups_httpConnect" = x"yes"; then
303 AC_CHECK_HEADERS(cups/cups.h cups/language.h)
304 if x"$ac_cv_header_cups_cups_h" = x"yes"; then
305 if x"$ac_cv_header_cups_language_h" = x"yes"; then
311 ############################################
312 # we need libdl for PAM and the new VFS code
313 AC_CHECK_LIB(dl, dlopen, [LIBS="$LIBS -ldl";
314 AC_DEFINE(HAVE_LIBDL)])
317 ############################################
318 # check if the compiler can do immediate structures
319 AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
323 #define X_FOOBAR(x) ((FOOBAR) { x })
324 typedef struct {unsigned x;} FOOBAR;
325 FOOBAR f = X_FOOBAR(1);
327 samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
328 if test x"$samba_cv_immediate_structures" = x"yes"; then
329 AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES)
332 ############################################
333 # check for unix domain sockets
334 AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
336 #include <sys/types.h>
339 #include <sys/socket.h>
340 #include <sys/un.h>],
342 struct sockaddr_un sunaddr;
343 sunaddr.sun_family = AF_UNIX;
345 samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
346 if test x"$samba_cv_unixsocket" = x"yes"; then
347 AC_DEFINE(HAVE_UNIXSOCKET)
351 AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
353 #include <sys/types.h>
358 #include <sys/socket.h>],[socklen_t i = 0],
359 samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
360 if test x"$samba_cv_socklen_t" = x"yes"; then
361 AC_DEFINE(HAVE_SOCKLEN_T_TYPE)
364 AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
366 #include <sys/types.h>
371 #include <signal.h>],[sig_atomic_t i = 0],
372 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
373 if test x"$samba_cv_sig_atomic_t" = x"yes"; then
374 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE)
377 # stupid headers have the functions but no declaration. grrrr.
378 AC_HAVE_DECL(errno, [#include <errno.h>])
379 AC_HAVE_DECL(setresuid, [#include <unistd.h>])
380 AC_HAVE_DECL(setresgid, [#include <unistd.h>])
381 AC_HAVE_DECL(asprintf, [#include <stdio.h>])
382 AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
383 AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
384 AC_HAVE_DECL(snprintf, [#include <stdio.h>])
386 # and glibc has setresuid under linux but the function does
387 # nothing until kernel 2.1.44! very dumb.
388 AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
389 AC_TRY_RUN([#include <errno.h>
390 main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
391 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
392 if test x"$samba_cv_have_setresuid" = x"yes"; then
393 AC_DEFINE(HAVE_SETRESUID)
396 # Do the same check for setresguid...
398 AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
399 AC_TRY_RUN([#include <unistd.h>
401 main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
402 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
403 if test x"$samba_cv_have_setresgid" = x"yes"; then
404 AC_DEFINE(HAVE_SETRESGID)
409 ###############################################
410 # test for where we get crypt() from
411 AC_CHECK_FUNCS(crypt)
412 if test x"$ac_cv_func_crypt" = x"no"; then
413 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
414 AC_DEFINE(HAVE_CRYPT)])
418 ###############################################
419 # Readline included by default unless explicitly asked not to
420 test "${with_readline+set}" != "set" && with_readline=yes
422 # test for where we get readline() from
423 AC_MSG_CHECKING(whether to use readline)
424 AC_ARG_WITH(readline,
425 [ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto) ],
426 [ case "$with_readline" in
430 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
431 AC_CHECK_HEADERS(readline/history.h)
433 AC_CHECK_HEADERS(readline.h readline/readline.h,[
434 for termlib in ncurses curses termcap terminfo termlib; do
435 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
437 AC_CHECK_LIB(readline, rl_callback_handler_install,
438 [TERMLIBS="-lreadline $TERMLIBS"
439 AC_DEFINE(HAVE_LIBREADLINE)
440 break], [TERMLIBS=], $TERMLIBS)])
448 # Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
449 # alternate readline path
451 _cppflags=${CPPFLAGS}
453 # Add additional search path
454 LDFLAGS="-L$with_readline/lib $LDFLAGS"
455 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
457 AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
458 AC_CHECK_HEADERS(readline/history.h)
460 AC_CHECK_HEADERS(readline.h readline/readline.h,[
461 for termlib in ncurses curses termcap terminfo termlib; do
462 AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
464 AC_CHECK_LIB(readline, rl_callback_handler_install,
465 [TERMLDFLAGS="-L$with_readline/lib"
466 TERMCPPFLAGS="-I$with_readline/include"
467 CPPFLAGS="-I$with_readline/include $CPPFLAGS"
468 TERMLIBS="-lreadline $TERMLIBS"
469 AC_DEFINE(HAVE_LIBREADLINE)
470 break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
478 AC_SUBST(TERMLDFLAGS)
480 # The following test taken from the cvs sources
481 # If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
482 # The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
483 # libsocket.so which has a bad implementation of gethostbyname (it
484 # only looks in /etc/hosts), so we only look for -lsocket if we need
486 AC_CHECK_FUNCS(connect)
487 if test x"$ac_cv_func_connect" = x"no"; then
490 *) AC_CHECK_LIB(nsl_s, printf) ;;
494 *) AC_CHECK_LIB(nsl, printf) ;;
498 *) AC_CHECK_LIB(socket, connect) ;;
502 *) AC_CHECK_LIB(inet, connect) ;;
504 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
506 if test x"$ac_cv_lib_socket_connect" = x"yes" ||
507 test x"$ac_cv_lib_inet_connect" = x"yes"; then
508 # ac_cv_func_connect=yes
509 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
510 AC_DEFINE(HAVE_CONNECT)
514 ###############################################
515 # test for where we get get_yp_default_domain() from
516 AC_CHECK_FUNCS(yp_get_default_domain)
517 if test x"$ac_cv_func_yp_get_default_domain" = x"no"; then
518 AC_CHECK_LIB(nsl, yp_get_default_domain, [LIBS="$LIBS -lnsl";
519 AC_DEFINE(HAVE_YP_GET_DEFAULT_DOMAIN)])
522 # Check if we have execl, if not we need to compile smbrun.
523 AC_CHECK_FUNCS(execl)
524 if test x"$ac_cv_func_execl" = x"no"; then
530 AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown fchown chmod fchmod chroot)
531 AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset)
532 AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
533 AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr setnetgrent getnetgrent endnetgrent)
534 AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf)
535 AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64)
536 AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64)
537 AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
538 AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
539 # setbuffer is needed for smbtorture
540 AC_CHECK_FUNCS(setbuffer)
542 # syscall() is needed for smbwrapper.
543 AC_CHECK_FUNCS(syscall)
545 AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
546 AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
547 AC_CHECK_FUNCS(__getcwd _getcwd)
548 AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
549 AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
550 AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
551 AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
552 AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
553 AC_CHECK_FUNCS(_write __write _fork __fork)
554 AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
555 AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
556 AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
557 AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
558 AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
561 # stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
564 if test x$ac_cv_func_stat64 = xno ; then
565 AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
567 #if defined(HAVE_UNISTD_H)
570 #include <sys/stat.h>
571 ], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
572 AC_MSG_RESULT([$ac_cv_func_stat64])
573 if test x$ac_cv_func_stat64 = xyes ; then
574 AC_DEFINE(HAVE_STAT64)
578 if test x$ac_cv_func_lstat64 = xno ; then
579 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
581 #if defined(HAVE_UNISTD_H)
584 #include <sys/stat.h>
585 ], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
586 AC_MSG_RESULT([$ac_cv_func_lstat64])
587 if test x$ac_cv_func_lstat64 = xyes ; then
588 AC_DEFINE(HAVE_LSTAT64)
592 if test x$ac_cv_func_fstat64 = xno ; then
593 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
595 #if defined(HAVE_UNISTD_H)
598 #include <sys/stat.h>
599 ], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
600 AC_MSG_RESULT([$ac_cv_func_fstat64])
601 if test x$ac_cv_func_fstat64 = xyes ; then
602 AC_DEFINE(HAVE_FSTAT64)
607 # If no strcasecmp, check for it in some known places
608 # It is in -lresolv on ReliantUNIX and UnixWare
609 # -lresolve *must* follow -lnsl for name resolution to work properly
612 if test x$ac_cv_func_strcasecmp = xno ; then
613 AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"]
614 AC_DEFINE(HAVE_STRCASECMP))
618 # Check for the functions putprpwnam, set_auth_parameters,
619 # getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
620 # Needed for OSF1 and HPUX.
623 AC_LIBTESTFUNC(security, putprpwnam)
624 AC_LIBTESTFUNC(sec, putprpwnam)
626 AC_LIBTESTFUNC(security, set_auth_parameters)
627 AC_LIBTESTFUNC(sec, set_auth_parameters)
629 # UnixWare 7.x has its getspnam in -lgen
630 AC_LIBTESTFUNC(gen, getspnam)
632 AC_LIBTESTFUNC(security, getspnam)
633 AC_LIBTESTFUNC(sec, getspnam)
635 AC_LIBTESTFUNC(security, bigcrypt)
636 AC_LIBTESTFUNC(sec, bigcrypt)
638 AC_LIBTESTFUNC(security, getprpwnam)
639 AC_LIBTESTFUNC(sec, getprpwnam)
641 # this bit needs to be modified for each OS that is suported by
642 # smbwrapper. You need to specify how to created a shared library and
643 # how to compile C code to produce PIC object files
645 # these are the defaults, good for lots of systems
655 # and these are for particular systems
657 *linux*) AC_DEFINE(LINUX)
662 *solaris*) AC_DEFINE(SUNOS5)
664 LDSHFLAGS="-Wl,-h,\$@.so -G"
665 if test "${ac_cv_prog_CC}" = "gcc"; then
673 *sunos*) AC_DEFINE(SUNOS4)
675 LDSHFLAGS="-Wl,-h,\$@ -G"
676 PICFLAG="-KPIC" # Is this correct for SunOS
678 *bsd*) BLDSHARED="true"
679 LDSHFLAGS="-Wl,-soname,\$@ -shared"
682 *irix*) AC_DEFINE(IRIX)
684 *irix6*) AC_DEFINE(IRIX6)
687 ATTEMPT_WRAP32_BUILD=yes
689 LDSHFLAGS="-Wl,-soname,\$@ -shared"
690 if test "${ac_cv_prog_CC}" = "gcc"; then
696 *aix*) AC_DEFINE(AIX)
698 LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry"
699 PICFLAG="-O2 -qmaxmem=6000"
701 *hpux*) AC_DEFINE(HPUX)
703 # Use special PIC flags for the native HP-UX compiler.
704 if test $ac_cv_prog_cc_Ae = yes; then
706 LDSHFLAGS="-b -z +h \$@"
710 *qnx*) AC_DEFINE(QNX);;
711 *osf*) AC_DEFINE(OSF1)
713 LDSHFLAGS="-Wl,-soname,\$@ -shared"
716 *sco*) AC_DEFINE(SCO);;
717 *unixware*) AC_DEFINE(UNIXWARE)
719 LDSHFLAGS="-Wl,-soname,\$@ -shared"
722 *next2*) AC_DEFINE(NEXT2);;
723 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);;
726 *-univel-*) if [ test "$GCC" != yes ]; then
727 AC_DEFINE(HAVE_MEMSET)
731 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);;
735 if [ test "$GCC" != yes ]; then
736 AC_DEFINE(HAVE_MEMSET)
742 # this updates our target list if we can build shared libs
743 if test $BLDSHARED = true; then
744 LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
751 AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
752 AC_TRY_RUN([#include <stdio.h>
753 main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
754 samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
755 if test x"$samba_cv_have_longlong" = x"yes"; then
756 AC_DEFINE(HAVE_LONGLONG)
760 # Check if the compiler supports the LL prefix on long long integers.
763 AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
764 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
765 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
766 if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
767 AC_DEFINE(COMPILER_SUPPORTS_LL)
771 AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
772 AC_TRY_RUN([#include <stdio.h>
773 #include <sys/stat.h>
774 main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
775 samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
776 if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
777 AC_DEFINE(SIZEOF_OFF_T,8)
780 AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
782 #if defined(HAVE_UNISTD_H)
786 #include <sys/stat.h>
787 main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
788 samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
789 if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
790 AC_DEFINE(HAVE_OFF64_T)
793 AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
794 AC_TRY_RUN([#include <stdio.h>
795 #include <sys/stat.h>
796 main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
797 samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
798 if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
799 AC_DEFINE(SIZEOF_INO_T,8)
802 AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
804 #if defined(HAVE_UNISTD_H)
808 #include <sys/stat.h>
809 main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
810 samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
811 if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
812 AC_DEFINE(HAVE_INO64_T)
815 AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
817 #if defined(HAVE_UNISTD_H)
820 #include <sys/types.h>
821 #include <dirent.h>],
822 [struct dirent64 de;],
823 samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
824 if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then
825 AC_DEFINE(HAVE_STRUCT_DIRENT64)
828 AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
829 AC_TRY_RUN([#include <stdio.h>
830 main() { char c; c=250; exit((c > 0)?0:1); }],
831 samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
832 if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
833 AC_DEFINE(HAVE_UNSIGNED_CHAR)
836 AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
837 AC_TRY_COMPILE([#include <sys/types.h>
838 #include <sys/socket.h>
839 #include <netinet/in.h>],
840 [struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
841 samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
842 if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
843 AC_DEFINE(HAVE_SOCK_SIN_LEN)
846 AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
847 AC_TRY_COMPILE([#include <sys/types.h>
849 void seekdir(DIR *d, long loc) { return; }],[return 0;],
850 samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
851 if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
852 AC_DEFINE(SEEKDIR_RETURNS_VOID)
855 AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
856 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
857 samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
858 if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
859 AC_DEFINE(HAVE_FILE_MACRO)
862 AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
863 AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
864 samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
865 if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
866 AC_DEFINE(HAVE_FUNCTION_MACRO)
869 AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
871 #include <sys/time.h>
873 main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
874 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
875 if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
876 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
879 AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
881 #include <sys/types.h>
883 void foo(const char *format, ...) {
888 va_start(ap, format);
889 len = vsnprintf(0, 0, format, ap);
891 if (len != 5) exit(1);
893 if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
897 main() { foo("hello"); }
899 samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
900 if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
901 AC_DEFINE(HAVE_C99_VSNPRINTF)
904 AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
905 AC_TRY_RUN([#include <sys/types.h>
907 main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
908 if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
909 di->d_name[0] == 0) exit(0); exit(1);} ],
910 samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
911 if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
912 AC_DEFINE(HAVE_BROKEN_READDIR)
915 AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
916 AC_TRY_COMPILE([#include <sys/types.h>
918 [struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
919 samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
920 if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
921 AC_DEFINE(HAVE_UTIMBUF)
924 dnl utmp and utmpx come in many flavours
925 dnl We need to check for many of them
926 dnl But we don't need to do each and every one, because our code uses
927 dnl mostly just the utmp (not utmpx) fields.
929 AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
931 AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
932 AC_TRY_COMPILE([#include <sys/types.h>
934 [struct utmp ut; ut.ut_name[0] = 'a';],
935 samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
936 if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
937 AC_DEFINE(HAVE_UT_UT_NAME)
940 AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
941 AC_TRY_COMPILE([#include <sys/types.h>
943 [struct utmp ut; ut.ut_user[0] = 'a';],
944 samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
945 if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
946 AC_DEFINE(HAVE_UT_UT_USER)
949 AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
950 AC_TRY_COMPILE([#include <sys/types.h>
952 [struct utmp ut; ut.ut_id[0] = 'a';],
953 samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
954 if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
955 AC_DEFINE(HAVE_UT_UT_ID)
958 AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
959 AC_TRY_COMPILE([#include <sys/types.h>
961 [struct utmp ut; ut.ut_host[0] = 'a';],
962 samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
963 if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
964 AC_DEFINE(HAVE_UT_UT_HOST)
967 AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
968 AC_TRY_COMPILE([#include <sys/types.h>
970 [struct utmp ut; time_t t; ut.ut_time = t;],
971 samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
972 if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
973 AC_DEFINE(HAVE_UT_UT_TIME)
976 AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
977 AC_TRY_COMPILE([#include <sys/types.h>
979 [struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
980 samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
981 if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
982 AC_DEFINE(HAVE_UT_UT_TV)
985 AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
986 AC_TRY_COMPILE([#include <sys/types.h>
988 [struct utmp ut; ut.ut_type = 0;],
989 samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
990 if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
991 AC_DEFINE(HAVE_UT_UT_TYPE)
994 AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
995 AC_TRY_COMPILE([#include <sys/types.h>
997 [struct utmp ut; ut.ut_pid = 0;],
998 samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
999 if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
1000 AC_DEFINE(HAVE_UT_UT_PID)
1003 AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
1004 AC_TRY_COMPILE([#include <sys/types.h>
1006 [struct utmp ut; ut.ut_exit.e_exit = 0;],
1007 samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
1008 if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
1009 AC_DEFINE(HAVE_UT_UT_EXIT)
1012 AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
1013 AC_TRY_COMPILE([#include <sys/types.h>
1015 [struct utmp ut; ut.ut_addr = 0;],
1016 samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
1017 if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
1018 AC_DEFINE(HAVE_UT_UT_ADDR)
1021 if test x$ac_cv_func_pututline = xyes ; then
1022 AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
1023 AC_TRY_COMPILE([#include <sys/types.h>
1025 [struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
1026 samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
1027 if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
1028 AC_DEFINE(PUTUTLINE_RETURNS_UTMP)
1032 AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
1033 AC_TRY_COMPILE([#include <sys/types.h>
1034 #include <utmpx.h>],
1035 [struct utmpx ux; ux.ut_syslen = 0;],
1036 samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
1037 if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
1038 AC_DEFINE(HAVE_UX_UT_SYSLEN)
1042 #################################################
1043 # check for libiconv support
1044 AC_MSG_CHECKING(whether to use libiconv)
1045 AC_ARG_WITH(libiconv,
1046 [ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
1047 [ case "$withval" in
1053 CFLAGS="$CFLAGS -I$withval/include"
1054 LDFLAGS="$LDFLAGS -L$withval/lib"
1055 AC_CHECK_LIB(iconv, iconv_open)
1056 AC_DEFINE_UNQUOTED(WITH_LIBICONV, "${withval}")
1064 # check for iconv in libc
1065 AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
1069 iconv_t cd = iconv_open("ASCII", "UCS-2LE");
1070 if (cd == 0 || cd == (iconv_t)-1) return -1;
1074 samba_cv_HAVE_NATIVE_ICONV=yes,samba_cv_HAVE_NATIVE_ICONV=no,samba_cv_HAVE_NATIVE_ICONV=cross)])
1075 if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
1076 AC_DEFINE(HAVE_NATIVE_ICONV)
1080 AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
1082 #include <sys/types.h>
1085 #define F_GETLEASE 1025
1088 int fd = open("/dev/null", O_RDONLY);
1089 return fcntl(fd, F_GETLEASE, 0) == -1;
1092 samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
1093 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
1094 AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX)
1097 AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
1099 #include <sys/types.h>
1103 #define F_NOTIFY 1026
1106 exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
1109 samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
1110 if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
1111 AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY)
1114 AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
1116 #include <sys/types.h>
1119 #include <sys/file.h>
1121 #define LOCK_MAND 32
1122 #define LOCK_READ 64
1125 exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
1128 samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
1129 if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
1130 AC_DEFINE(HAVE_KERNEL_SHARE_MODES)
1136 AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1137 AC_TRY_COMPILE([#include <sys/types.h>
1138 #include <fcntl.h>],
1139 [oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
1140 samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
1141 if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
1142 AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX)
1145 AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1146 AC_TRY_RUN([#include <sys/types.h>
1147 #include <sys/capability.h>
1150 if ((cap = cap_get_proc()) == NULL)
1152 cap->cap_effective |= CAP_NETWORK_MGT;
1153 cap->cap_inheritable |= CAP_NETWORK_MGT;
1158 samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1159 if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
1160 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES)
1164 # Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
1165 # This is *really* broken but some systems (DEC OSF1) do this.... JRA.
1168 AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
1169 AC_TRY_COMPILE([#include <sys/types.h>
1170 #if defined(HAVE_RPC_RPC_H)
1171 #include <rpc/rpc.h>
1174 samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
1175 if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
1176 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H)
1179 AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
1180 AC_TRY_COMPILE([#include <sys/types.h>
1181 #if defined(HAVE_RPC_RPC_H)
1182 #include <rpc/rpc.h>
1185 samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
1186 if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
1187 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H)
1190 AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1191 AC_TRY_COMPILE([#include <sys/types.h>
1192 #if defined(HAVE_RPC_RPC_H)
1193 #include <rpc/rpc.h>
1196 samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
1197 if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
1198 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H)
1201 AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1202 AC_TRY_COMPILE([#include <sys/types.h>
1203 #if defined(HAVE_RPC_RPC_H)
1204 #include <rpc/rpc.h>
1207 samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
1208 if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
1209 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H)
1213 dnl Some systems (SCO) have a problem including
1214 dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
1215 dnl as a #define in <prot.h> and as part of an enum
1219 AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
1220 AC_TRY_COMPILE([#include <sys/types.h>
1221 #ifdef HAVE_SYS_SECURITY_H
1222 #include <sys/security.h>
1224 #endif /* HAVE_SYS_SECURITY_H */
1225 #if defined(HAVE_RPC_RPC_H)
1226 #include <rpc/rpc.h>
1229 samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
1230 if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
1231 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT)
1234 AC_MSG_CHECKING([for test routines])
1235 AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
1237 AC_MSG_ERROR([cant find test code. Aborting config]),
1238 AC_MSG_WARN([cannot run when cross-compiling]))
1240 AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
1241 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
1242 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
1243 if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
1244 AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
1247 AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
1248 AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
1249 samba_cv_HAVE_WORKING_AF_LOCAL=yes,
1250 samba_cv_HAVE_WORKING_AF_LOCAL=no,
1251 samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
1252 if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
1254 AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
1257 AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
1258 AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
1259 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
1260 if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
1261 AC_DEFINE(HAVE_BROKEN_GETGROUPS)
1264 AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
1265 SAVE_CPPFLAGS="$CPPFLAGS"
1266 CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper"
1268 #define REPLACE_GETPASS 1
1269 #define NO_CONFIG_H 1
1270 #define main dont_declare_main
1271 #include "${srcdir-.}/lib/getsmbpass.c"
1273 ],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
1274 CPPFLAGS="$SAVE_CPPFLAGS"
1276 if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
1277 AC_DEFINE(REPLACE_GETPASS)
1280 AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1283 #include <sys/types.h>
1284 #include <netinet/in.h>
1285 #ifdef HAVE_ARPA_INET_H
1286 #include <arpa/inet.h>
1288 main() { struct in_addr ip; ip.s_addr = 0x12345678;
1289 if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
1290 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
1292 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
1293 if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
1294 AC_DEFINE(REPLACE_INET_NTOA)
1297 AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
1298 AC_TRY_RUN([#include <stdlib.h>
1299 #include <sys/types.h>
1300 #include <sys/stat.h>
1304 char tpl[20]="/tmp/test.XXXXXX";
1305 int fd = mkstemp(tpl);
1306 if (fd == -1) exit(1);
1308 if (fstat(fd, &st) != 0) exit(1);
1309 if ((st.st_mode & 0777) != 0600) exit(1);
1312 samba_cv_HAVE_SECURE_MKSTEMP=yes,
1313 samba_cv_HAVE_SECURE_MKSTEMP=no,
1314 samba_cv_HAVE_SECURE_MKSTEMP=cross)])
1315 if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
1316 AC_DEFINE(HAVE_SECURE_MKSTEMP)
1319 AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
1320 AC_TRY_RUN([#include <unistd.h>
1321 main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
1322 samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
1323 if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
1324 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX)
1327 AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1328 AC_TRY_RUN([main() { exit(getuid() != 0); }],
1329 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
1330 if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
1331 AC_DEFINE(HAVE_ROOT)
1333 AC_MSG_WARN(running as non-root will disable some tests)
1337 # look for a method of finding the list of network interfaces
1339 AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1341 #define HAVE_IFACE_AIX 1
1342 #define AUTOCONF_TEST 1
1343 #include "confdefs.h"
1344 #include "${srcdir-.}/lib/interfaces.c"],
1345 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
1346 if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
1347 iface=yes;AC_DEFINE(HAVE_IFACE_AIX)
1350 if test $iface = no; then
1351 AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1353 #define HAVE_IFACE_IFCONF 1
1354 #define AUTOCONF_TEST 1
1355 #include "confdefs.h"
1356 #include "${srcdir-.}/lib/interfaces.c"],
1357 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
1358 if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
1359 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF)
1363 if test $iface = no; then
1364 AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1366 #define HAVE_IFACE_IFREQ 1
1367 #define AUTOCONF_TEST 1
1368 #include "confdefs.h"
1369 #include "${srcdir-.}/lib/interfaces.c"],
1370 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
1371 if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
1372 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ)
1377 ################################################
1378 # look for a method of setting the effective uid
1380 if test $seteuid = no; then
1381 AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
1383 #define AUTOCONF_TEST 1
1384 #define USE_SETRESUID 1
1385 #include "confdefs.h"
1386 #include "${srcdir-.}/lib/util_sec.c"],
1387 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
1388 if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
1389 seteuid=yes;AC_DEFINE(USE_SETRESUID)
1394 if test $seteuid = no; then
1395 AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
1397 #define AUTOCONF_TEST 1
1398 #define USE_SETREUID 1
1399 #include "confdefs.h"
1400 #include "${srcdir-.}/lib/util_sec.c"],
1401 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
1402 if test x"$samba_cv_USE_SETREUID" = x"yes"; then
1403 seteuid=yes;AC_DEFINE(USE_SETREUID)
1407 if test $seteuid = no; then
1408 AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
1410 #define AUTOCONF_TEST 1
1411 #define USE_SETEUID 1
1412 #include "confdefs.h"
1413 #include "${srcdir-.}/lib/util_sec.c"],
1414 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
1415 if test x"$samba_cv_USE_SETEUID" = x"yes"; then
1416 seteuid=yes;AC_DEFINE(USE_SETEUID)
1420 if test $seteuid = no; then
1421 AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
1423 #define AUTOCONF_TEST 1
1424 #define USE_SETUIDX 1
1425 #include "confdefs.h"
1426 #include "${srcdir-.}/lib/util_sec.c"],
1427 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
1428 if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
1429 seteuid=yes;AC_DEFINE(USE_SETUIDX)
1434 AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1435 AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
1436 samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
1437 if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
1438 AC_DEFINE(HAVE_MMAP)
1441 AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[
1442 AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"],
1443 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)])
1444 if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then
1445 AC_DEFINE(FTRUNCATE_NEEDS_ROOT)
1448 AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
1449 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
1450 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
1451 if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
1452 AC_DEFINE(HAVE_FCNTL_LOCK)
1455 AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
1456 AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
1457 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
1458 if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
1459 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS)
1464 dnl Don't check for 64 bit fcntl locking if we know that the
1465 dnl glibc2.1 broken check has succeeded.
1468 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
1470 #if defined(HAVE_UNISTD_H)
1480 #ifdef HAVE_SYS_FCNTL_H
1481 #include <sys/fcntl.h>
1483 main() { struct flock64 fl64;
1484 #if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
1490 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1492 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
1493 AC_DEFINE(HAVE_STRUCT_FLOCK64)
1497 AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
1498 AC_TRY_COMPILE([#include <sys/acl.h>
1499 #if defined(HAVE_RPCSVC_NIS_H)
1500 #include <rpcsvc/nis.h>
1503 samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
1504 if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
1505 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES)
1509 #################################################
1510 # check for smbwrapper support
1511 AC_MSG_CHECKING(whether to use smbwrapper)
1512 AC_ARG_WITH(smbwrapper,
1513 [ --with-smbwrapper Include SMB wrapper support (default=no) ],
1514 [ case "$withval" in
1517 AC_DEFINE(WITH_SMBWRAPPER)
1518 WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT"
1520 if test x$ATTEMPT_WRAP32_BUILD = x; then
1523 WRAP32=bin/smbwrapper.32.$SHLIBEXT
1526 # Conditions under which smbwrapper should not be built.
1528 if test x$PICFLAG = x; then
1529 echo No support for PIC code - disabling smbwrapper and smbsh
1532 elif test x$ac_cv_func_syscall = xno; then
1533 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
1545 #################################################
1546 # check for the AFS filesystem
1547 AC_MSG_CHECKING(whether to use AFS)
1549 [ --with-afs Include AFS support (default=no) ],
1550 [ case "$withval" in
1563 #################################################
1564 # check for the DFS auth system
1565 AC_MSG_CHECKING(whether to use DFS auth)
1567 [ --with-dce-dfs Include DCE/DFS support (default=no)],
1568 [ case "$withval" in
1580 #################################################
1581 # check for Kerberos IV auth system
1582 AC_MSG_CHECKING(whether to use Kerberos IV)
1584 [ --with-krb4=base-dir Include Kerberos IV support (default=no)],
1585 [ case "$withval" in
1588 AC_DEFINE(KRB4_AUTH)
1589 AC_CHECK_LIB(resolv, dn_expand)
1590 LIBS="$LIBS -lkrb -ldes"
1591 CFLAGS="$CFLAGS -I$withval/include"
1592 LDFLAGS="$LDFLAGS -L$withval/lib"
1593 AC_DEFINE_UNQUOTED(KRB4_DIR, ${withval})
1602 #################################################
1603 # check for Kerberos 5 auth system
1604 AC_MSG_CHECKING(whether to use Kerberos 5)
1606 [ --with-krb5=base-dir Include Kerberos 5 support (default=no)],
1607 [ case "$withval" in
1610 AC_DEFINE(KRB5_AUTH)
1611 LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err"
1612 CFLAGS="$CFLAGS -I$withval/include"
1613 LDFLAGS="$LDFLAGS -L$withval/lib"
1614 AC_DEFINE_UNQUOTED(KRB5_DIR,${withval})
1623 #################################################
1624 # check for automount support
1625 AC_MSG_CHECKING(whether to use AUTOMOUNT)
1626 AC_ARG_WITH(automount,
1627 [ --with-automount Include AUTOMOUNT support (default=no)],
1628 [ case "$withval" in
1631 AC_DEFINE(WITH_AUTOMOUNT)
1640 #################################################
1641 # check for smbmount support
1642 AC_MSG_CHECKING(whether to use SMBMOUNT)
1643 AC_ARG_WITH(smbmount,
1644 [ --with-smbmount Include SMBMOUNT (Linux only) support (default=no)],
1645 [ case "$withval" in
1650 AC_DEFINE(WITH_SMBMOUNT)
1651 MPROGS="bin/smbmount bin/smbmnt bin/smbumount"
1654 AC_MSG_ERROR(not on a linux system!)
1668 #################################################
1669 # check for a PAM password database
1670 with_pam_for_crypt=no
1671 AC_MSG_CHECKING(whether to use PAM password database)
1673 [ --with-pam Include PAM password database support (default=no)],
1674 [ case "$withval" in
1679 with_pam_for_crypt=yes
1688 # we can't build a pam module if we don't have pam.
1689 AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM)])
1691 #################################################
1692 # check for pam_smbpass support
1693 AC_MSG_CHECKING(whether to use pam_smbpass)
1694 AC_ARG_WITH(pam_smbpass,
1695 [ --with-pam_smbpass Build a PAM module to allow other applications to use our smbpasswd file (default=no)],
1696 [ case "$withval" in
1700 # Conditions under which pam_smbpass should not be built.
1702 if test x$PICFLAG = x; then
1703 AC_MSG_RESULT([No support for PIC code - disabling pam_smbpass])
1705 elif test x$ac_cv_lib_pam_pam_get_data = xno; then
1706 AC_MSG_RESULT([No libpam found -- disabling pam_smbpass])
1709 PAM_MOD="bin/pam_smbpass.so"
1720 ###############################################
1721 # test for where we get crypt() from, but only
1723 if test $with_pam_for_crypt = no; then
1724 AC_CHECK_FUNCS(crypt)
1725 if test x"$ac_cv_func_crypt" = x"no"; then
1726 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
1727 AC_DEFINE(HAVE_CRYPT)])
1732 ## moved after the check for -lcrypt in order to
1733 ## ensure that the necessary libraries are included
1734 ## check checking for truncated salt. Wrapped by the
1735 ## $with_pam_for_crypt variable as above --jerry
1737 if test $with_pam_for_crypt = no; then
1738 AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
1739 AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
1740 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)])
1741 if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
1742 AC_DEFINE(HAVE_TRUNCATED_SALT)
1747 #################################################
1748 # check for a TDB password database
1749 AC_MSG_CHECKING(whether to use TDB password database)
1751 [ --with-tdbsam Include experimental TDB password database (default=no)],
1752 [ case "$withval" in
1755 AC_DEFINE(WITH_TDBSAM)
1764 #################################################
1765 # check for a LDAP password database
1766 AC_MSG_CHECKING(whether to use LDAP password database)
1768 [ --with-ldapsam Include Experimental LDAP-Sam support (default=no)],
1769 [ case "$withval" in
1772 AC_DEFINE(WITH_LDAP)
1773 AC_MSG_ERROR([LDAP password database not supported in this version.])
1782 #################################################
1783 # commented out by --jerry
1784 # check for a NISPLUS password database
1785 #AC_MSG_CHECKING(whether to use NISPLUS password database)
1786 #AC_ARG_WITH(nisplus,
1787 #[ --with-nisplus Include NISPLUS password database support
1788 #[ case "$withval" in
1790 # AC_MSG_RESULT(yes)
1791 # AC_DEFINE(WITH_NISPLUS)
1800 #################################################
1801 # check for a NISPLUS_HOME support
1802 AC_MSG_CHECKING(whether to use NISPLUS_HOME)
1803 AC_ARG_WITH(nisplus-home,
1804 [ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
1805 [ case "$withval" in
1808 AC_DEFINE(WITH_NISPLUS_HOME)
1817 #################################################
1818 # check for the secure socket layer
1819 AC_MSG_CHECKING(whether to use SSL)
1821 [ --with-ssl Include SSL support (default=no)
1822 --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl)],
1823 [ case "$withval" in
1827 withval="/usr/local/ssl" # default
1829 if test "${with_sslinc+set}" = set; then
1831 withval="$with_sslinc"
1834 echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w
1835 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1836 LIBS="-lssl -lcrypto $LIBS"
1837 LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS"
1838 AC_DEFINE(SSL_DIR, "/usr/local/ssl")
1841 CFLAGS="-I${withval} $CFLAGS"
1842 LIBS="-lssl -lcrypto $LIBS"
1843 LDFLAGS="-L${withval}/lib $LDFLAGS"
1844 AC_DEFINE_UNQUOTED(SSL_DIR, "${withval}", Used for determining the compile time options)
1850 CFLAGS="-I/usr/local/ssl/include $CFLAGS"
1851 LIBS="-lssl -lcrypto $LIBS"
1852 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS"
1853 AC_DEFINE(SSL_DIR, "/usr/local/ssl")
1857 if test ! -d ${withval}; then
1858 echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2
1862 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own
1872 #################################################
1873 # check for syslog logging
1874 AC_MSG_CHECKING(whether to use syslog logging)
1876 [ --with-syslog Include experimental SYSLOG support (default=no)],
1877 [ case "$withval" in
1880 AC_DEFINE(WITH_SYSLOG)
1889 #################################################
1890 # check for a shared memory profiling support
1891 AC_MSG_CHECKING(whether to use profiling)
1892 AC_ARG_WITH(profiling-data,
1893 [ --with-profiling-data Include gathering source code profile information (default=no)],
1894 [ case "$withval" in
1897 AC_DEFINE(WITH_PROFILE)
1907 #################################################
1908 # check for experimental disk-quotas support
1909 QUOTAOBJS=smbd/noquotas.o
1911 AC_MSG_CHECKING(whether to support disk-quotas)
1913 [ --with-quotas Include experimental disk-quota support (default=no)],
1914 [ case "$withval" in
1919 # Check for kernel 2.4.x quota braindamage...
1920 AC_CACHE_CHECK([for linux 2.4.x quota braindamage..],samba_cv_linux_2_4_quota_braindamage, [
1921 AC_TRY_COMPILE([#include <stdio.h>
1922 #include <sys/types.h>
1923 #include <asm/types.h>
1924 #include <linux/quota.h>
1926 #include <linux/unistd.h>],[struct mem_dqblk D;],
1927 samba_cv_linux_2_4_quota_braindamage=yes,samba_cv_linux_2_4_quota_braindamage=no)])
1928 if test x"$samba_cv_linux_2_4_quota_braindamage" = x"yes"; then
1929 AC_DEFINE(LINUX_QUOTAS_2)
1931 AC_DEFINE(LINUX_QUOTAS_1)
1937 QUOTAOBJS=smbd/quotas.o
1938 AC_DEFINE(WITH_QUOTAS)
1948 #################################################
1949 # check for experimental utmp accounting
1951 AC_MSG_CHECKING(whether to support utmp accounting)
1953 [ --with-utmp Include experimental utmp accounting (default=no)],
1954 [ case "$withval" in
1957 AC_DEFINE(WITH_UTMP)
1966 #################################################
1967 # set private directory location
1968 AC_ARG_WITH(privatedir,
1969 [ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
1970 [ case "$withval" in
1973 # Just in case anybody calls it without argument
1975 AC_MSG_WARN([--with-privatedir called without argument - will use default])
1976 privatedir='${prefix}/private'
1979 privatedir="$withval"
1982 AC_SUBST(privatedir)],
1983 [privatedir='${prefix}/private'
1984 AC_SUBST(privatedir)]
1987 #################################################
1988 # set lock directory location
1989 AC_ARG_WITH(lockdir,
1990 [ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
1991 [ case "$withval" in
1994 # Just in case anybody calls it without argument
1996 AC_MSG_WARN([--with-lockdir called without argument - will use default])
1997 lockdir='$(VARDIR)/locks'
2004 [lockdir='$(VARDIR)/locks'
2008 #################################################
2009 # set SWAT directory location
2010 AC_ARG_WITH(swatdir,
2011 [ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
2012 [ case "$withval" in
2015 # Just in case anybody does it
2017 AC_MSG_WARN([--with-swatdir called without argument - will use default])
2018 swatdir='${prefix}/swat'
2025 [swatdir='${prefix}/swat'
2029 #################################################
2030 # check for i18n'ed SWAT compiling
2031 AC_MSG_CHECKING(whether to use i18n'ed SWAT)
2032 AC_ARG_WITH(i18n-swat,
2033 [ --with-i18n-swat Use i18n'ed SWAT
2034 --without-i18n-swat Don't use i18n'ed SWAT (default)],
2035 [ case "$withval" in
2038 AC_DEFINE(I18N_SWAT)
2047 #################################################
2048 # set SWAT default language for old web browsers.
2049 AC_MSG_CHECKING(whether to use default SWAT language)
2050 AC_ARG_WITH(swat-def-lang,
2051 [ --with-swat-def-lang=LN default SWAT language for old web browsers (empty)],
2053 default_pref_lang=""
2056 AC_MSG_WARN([--with-swat-def-lang called without argument - will use default])
2062 default_pref_lang="$withval"
2063 AC_MSG_RESULT($withval)
2066 AC_DEFINE_UNQUOTED(I18N_DEFAULT_PREF_LANG, "$default_pref_lang")
2069 default_pref_lang=""
2071 AC_DEFINE_UNQUOTED(I18N_DEFAULT_PREF_LANG, "$default_pref_lang")
2075 #################################################
2076 # choose native language(s) of man pages
2077 AC_MSG_CHECKING(chosen man pages' language(s))
2078 AC_ARG_WITH(manpages-langs,
2079 [ --with-manpages-langs={en,ja,pl} Choose man pages' language(s). (en)],
2080 [ case "$withval" in
2082 AC_MSG_WARN(--with-manpages-langs called without argument - will use default)
2090 AC_MSG_RESULT($manlangs)
2091 manlangs=${manlangs//,/ } # replacing commas with spaces to produce a list
2092 AC_SUBST(manlangs)],
2095 AC_MSG_RESULT($manlangs)
2099 #################################################
2100 # these tests are taken from the GNU fileutils package
2101 AC_CHECKING(how to get filesystem space usage)
2104 # Test for statvfs64.
2105 if test $space = no; then
2107 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
2109 #if defined(HAVE_UNISTD_H)
2112 #include <sys/types.h>
2113 #include <sys/statvfs.h>
2116 struct statvfs64 fsd;
2117 exit (statvfs64 (".", &fsd));
2119 fu_cv_sys_stat_statvfs64=yes,
2120 fu_cv_sys_stat_statvfs64=no,
2121 fu_cv_sys_stat_statvfs64=cross)])
2122 if test $fu_cv_sys_stat_statvfs64 = yes; then
2124 AC_DEFINE(STAT_STATVFS64)
2128 # Perform only the link test since it seems there are no variants of the
2129 # statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
2130 # because that got a false positive on SCO OSR5. Adding the declaration
2131 # of a `struct statvfs' causes this test to fail (as it should) on such
2132 # systems. That system is reported to work fine with STAT_STATFS4 which
2133 # is what it gets when this test fails.
2134 if test $space = no; then
2136 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
2137 [AC_TRY_LINK([#include <sys/types.h>
2138 #include <sys/statvfs.h>],
2139 [struct statvfs fsd; statvfs (0, &fsd);],
2140 fu_cv_sys_stat_statvfs=yes,
2141 fu_cv_sys_stat_statvfs=no)])
2142 if test $fu_cv_sys_stat_statvfs = yes; then
2144 AC_DEFINE(STAT_STATVFS)
2148 if test $space = no; then
2149 # DEC Alpha running OSF/1
2150 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
2151 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
2153 #include <sys/param.h>
2154 #include <sys/types.h>
2155 #include <sys/mount.h>
2160 exit (statfs (".", &fsd, sizeof (struct statfs)));
2162 fu_cv_sys_stat_statfs3_osf1=yes,
2163 fu_cv_sys_stat_statfs3_osf1=no,
2164 fu_cv_sys_stat_statfs3_osf1=no)])
2165 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
2166 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
2168 AC_DEFINE(STAT_STATFS3_OSF1)
2172 if test $space = no; then
2174 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
2175 member (AIX, 4.3BSD)])
2176 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
2178 #ifdef HAVE_SYS_PARAM_H
2179 #include <sys/param.h>
2181 #ifdef HAVE_SYS_MOUNT_H
2182 #include <sys/mount.h>
2184 #ifdef HAVE_SYS_VFS_H
2185 #include <sys/vfs.h>
2191 exit (statfs (".", &fsd));
2193 fu_cv_sys_stat_statfs2_bsize=yes,
2194 fu_cv_sys_stat_statfs2_bsize=no,
2195 fu_cv_sys_stat_statfs2_bsize=no)])
2196 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
2197 if test $fu_cv_sys_stat_statfs2_bsize = yes; then
2199 AC_DEFINE(STAT_STATFS2_BSIZE)
2203 if test $space = no; then
2205 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
2206 AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
2207 [AC_TRY_RUN([#include <sys/types.h>
2208 #include <sys/statfs.h>
2212 exit (statfs (".", &fsd, sizeof fsd, 0));
2214 fu_cv_sys_stat_statfs4=yes,
2215 fu_cv_sys_stat_statfs4=no,
2216 fu_cv_sys_stat_statfs4=no)])
2217 AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
2218 if test $fu_cv_sys_stat_statfs4 = yes; then
2220 AC_DEFINE(STAT_STATFS4)
2224 if test $space = no; then
2226 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
2227 member (4.4BSD and NetBSD)])
2228 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
2229 [AC_TRY_RUN([#include <sys/types.h>
2230 #ifdef HAVE_SYS_PARAM_H
2231 #include <sys/param.h>
2233 #ifdef HAVE_SYS_MOUNT_H
2234 #include <sys/mount.h>
2240 exit (statfs (".", &fsd));
2242 fu_cv_sys_stat_statfs2_fsize=yes,
2243 fu_cv_sys_stat_statfs2_fsize=no,
2244 fu_cv_sys_stat_statfs2_fsize=no)])
2245 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
2246 if test $fu_cv_sys_stat_statfs2_fsize = yes; then
2248 AC_DEFINE(STAT_STATFS2_FSIZE)
2252 if test $space = no; then
2254 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
2255 AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
2256 [AC_TRY_RUN([#include <sys/types.h>
2257 #ifdef HAVE_SYS_PARAM_H
2258 #include <sys/param.h>
2260 #ifdef HAVE_SYS_MOUNT_H
2261 #include <sys/mount.h>
2263 #ifdef HAVE_SYS_FS_TYPES_H
2264 #include <sys/fs_types.h>
2269 /* Ultrix's statfs returns 1 for success,
2270 0 for not mounted, -1 for failure. */
2271 exit (statfs (".", &fsd) != 1);
2273 fu_cv_sys_stat_fs_data=yes,
2274 fu_cv_sys_stat_fs_data=no,
2275 fu_cv_sys_stat_fs_data=no)])
2276 AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
2277 if test $fu_cv_sys_stat_fs_data = yes; then
2279 AC_DEFINE(STAT_STATFS2_FS_DATA)
2284 # As a gating factor for large file support, in order to
2285 # use <4GB files we must have the following minimal support
2287 # long long, and a 64 bit off_t or off64_t.
2288 # If we don't have all of these then disable large
2291 AC_MSG_CHECKING([if large file support can be enabled])
2293 #if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
2294 #include <sys/types.h>
2300 samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
2301 if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2302 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT)
2304 AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
2306 AC_ARG_WITH(spinlocks,
2307 [ --with-spinlocks Use spin locks instead of fcntl locks (default=no) ])
2308 if test "x$with_spinlocks" = "xyes"; then
2309 AC_DEFINE(USE_SPINLOCKS)
2313 AC_DEFINE(SPARC_SPINLOCKS)
2316 i386|i486|i586|i686)
2317 AC_DEFINE(INTEL_SPINLOCKS)
2321 AC_DEFINE(MIPS_SPINLOCKS)
2325 AC_DEFINE(POWERPC_SPINLOCKS)
2330 #################################################
2331 # check for ACL support
2333 AC_MSG_CHECKING(whether to support ACLs)
2334 AC_ARG_WITH(acl-support,
2335 [ --with-acl-support Include ACL support (default=no)],
2336 [ case "$withval" in
2341 AC_MSG_RESULT(Using UnixWare ACLs)
2342 AC_DEFINE(HAVE_UNIXWARE_ACLS)
2345 AC_MSG_RESULT(Using solaris ACLs)
2346 AC_DEFINE(HAVE_SOLARIS_ACLS)
2349 AC_MSG_RESULT(Using IRIX ACLs)
2350 AC_DEFINE(HAVE_IRIX_ACLS)
2353 AC_MSG_RESULT(Using AIX ACLs)
2354 AC_DEFINE(HAVE_AIX_ACLS)
2357 AC_MSG_RESULT(Using Tru64 ACLs)
2358 AC_DEFINE(HAVE_TRU64_ACLS)
2362 AC_CHECK_LIB(acl,acl_get_file)
2363 AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2364 AC_TRY_LINK([#include <sys/types.h>
2365 #include <sys/acl.h>],
2366 [ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2367 samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)])
2368 if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
2369 AC_MSG_RESULT(Using posix ACLs)
2370 AC_DEFINE(HAVE_POSIX_ACLS)
2371 AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2372 AC_TRY_LINK([#include <sys/types.h>
2373 #include <sys/acl.h>],
2374 [ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2375 samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)])
2376 if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2377 AC_DEFINE(HAVE_ACL_GET_PERM_NP)
2385 AC_DEFINE(HAVE_NO_ACLS)
2388 AC_DEFINE(HAVE_NO_ACLS)
2392 #################################################
2393 # Check whether winbind is supported on this platform. If so we need to
2394 # build and install client programs (WINBIND_TARGETS), sbin programs
2395 # (WINBIND_STARGETS) and shared libraries (WINBIND_LTARGETS).
2397 AC_MSG_CHECKING(whether to build winbind)
2399 # Initially, the value of $host_os decides whether winbind is supported
2407 winbind_no_reason=", unsupported on $host_os"
2411 # Check the setting of --with-winbindd
2413 AC_ARG_WITH(winbind,
2414 [ --with-winbind Build winbind (default, if supported by OS)],
2427 # We need unix domain sockets for winbind
2429 if test x"$HAVE_WINBIND" = x"yes"; then
2430 if test x"$samba_cv_unixsocket" = x"no"; then
2431 winbind_no_reason=", no unix domain socket support on $host_os"
2436 # Display test results
2438 if test x"$HAVE_WINBIND" = x"yes"; then
2442 WINBIND_TARGETS="\$(WINBIND_PROGS)"
2443 WINBIND_STARGETS="\$(WINBIND_SPROGS)"
2444 WINBIND_LTARGETS="\$(WINBIND_LPROGS)"
2447 WINBIND_PAM_PROGS="\$(WINBIND_PAM_PROGS)"
2451 AC_MSG_RESULT(no$winbind_no_reason)
2456 WINBIND_PAM_PROGS=""
2459 # Substitution time!
2461 AC_SUBST(WINBIND_TARGETS)
2462 AC_SUBST(WINBIND_STARGETS)
2463 AC_SUBST(WINBIND_LTARGETS)
2464 AC_SUBST(WINBIND_PAM_PROGS)
2466 #################################################
2467 # Check for SWAT i18n support
2470 AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE")
2472 ALL_LINGUAS="en ja pl tr"
2475 #################################################
2476 # final configure stuff
2478 echo "checking configure summary"
2479 AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2480 echo "configure OK";,
2481 AC_MSG_ERROR([summary failure. Aborting config]),:)
2486 AC_OUTPUT(include/stamp-h Makefile intl/Makefile po/Makefile.in)