1dnl Process this file with autoconf to produce a configure script. 2AC_INIT(include/includes.h) 3AC_CONFIG_HEADER(include/config.h) 4 5# we want to be compatibe with older versions of Samba 6AC_PREFIX_DEFAULT(/usr/local/samba) 7 8dnl Unique-to-Samba variables we'll be playing with. 9AC_SUBST(SHELL) 10AC_SUBST(RUNPROG) 11AC_SUBST(MPROGS) 12AC_SUBST(LDSHFLAGS) 13AC_SUBST(HOST_OS) 14AC_SUBST(WRAP) 15AC_SUBST(WRAP32) 16AC_SUBST(PICFLAG) 17AC_SUBST(SHLIBEXT) 18 19# compile with optimisation and without debugging by default 20CFLAGS=${CFLAGS-"-O"} 21 22dnl Checks for programs. 23AC_PROG_CC 24AC_PROG_INSTALL 25AC_PROG_AWK 26 27dnl Check if C compiler understands -c and -o at the same time 28AC_PROG_CC_C_O 29if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then 30 BROKEN_CC= 31else 32 BROKEN_CC=# 33fi 34AC_SUBST(BROKEN_CC) 35 36dnl Check if the C compiler understands volatile (it should, being ANSI). 37AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [ 38 AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0], 39 samba_cv_volatile=yes,samba_cv_volatile=no)]) 40if test x"$samba_cv_volatile" = x"yes"; then 41 AC_DEFINE(HAVE_VOLATILE) 42fi 43 44 45 46AC_CANONICAL_SYSTEM 47 48dnl Add #include for broken IRIX header files 49 case "$host_os" in 50 *irix*) AC_ADD_INCLUDE(<standards.h>) 51 ;; 52esac 53 54AC_VALIDATE_CACHE_SYSTEM_TYPE 55SAMBA_MAINTAINER_MODE 56 57# 58# Config CPPFLAG settings for strange OS's that must be set 59# before other tests. 60# 61case "$host_os" in 62# Try to work out if this is the native HPUX compiler that uses the -Ae flag. 63 *hpux*) 64 AC_PROG_CC_FLAG(Ae) 65 if test $ac_cv_prog_cc_Ae = yes; then 66 CPPFLAGS="$CPPFLAGS -Ae" 67 fi 68# 69# Defines needed for HPUX support. 70# HPUX has bigcrypt but (sometimes?) doesn't use it for 71# password hashing - hence the USE_BOTH_CRYPT_CALLS define. 72# 73 case `uname -r` in 74 *9*|*10*) 75 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE" 76 AC_DEFINE(USE_BOTH_CRYPT_CALLS) 77 ;; 78 *11*) 79 CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE" 80 AC_DEFINE(USE_BOTH_CRYPT_CALLS) 81 ;; 82 esac 83 ;; 84# 85# AIX4.x doesn't even admit to having large 86# files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set. 87# 88 *aix4*) 89 AC_MSG_RESULT([enabling large file support]) 90 CPPFLAGS="$CPPFLAGS -D_LARGE_FILES" 91 ;; 92# 93# Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit 94# to the existance of large files.. 95# Note that -D_LARGEFILE64_SOURCE is different from the Sun 96# recommendations on large file support, however it makes the 97# compile work using gcc 2.7 and 2.8, whereas using the Sun 98# recommendation makes the compile fail on gcc2.7. JRA. 99# 100 *solaris*) 101 case `uname -r` in 102 5.6*|5.7*) 103 AC_MSG_RESULT([enabling large file support]) 104 if test "$ac_cv_prog_gcc" = yes; then 105 ${CC-cc} -v >conftest.c 2>&1 106 ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c` 107 rm -fr conftest.c 108 case "$ac_cv_gcc_compiler_version_number" in 109 *"gcc version 2.6"*|*"gcc version 2.7"*) 110 CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE" 111 ;; 112 *) 113 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" 114 ;; 115 esac 116 else 117 CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64" 118 fi 119 ;; 120 esac 121 ;; 122# 123# Tests needed for SINIX large file support. 124# 125 *sysv4*) 126 if test $host = mips-sni-sysv4 ; then 127 AC_MSG_CHECKING([for LFS support]) 128 old_CPPFLAGS="$CPPFLAGS" 129 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS" 130 AC_TRY_RUN([ 131#include <unistd.h> 132main () { 133#if _LFS64_LARGEFILE == 1 134exit(0); 135#else 136exit(1); 137#endif 138}], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross]) 139 CPPFLAGS="$old_CPPFLAGS" 140 if test x$SINIX_LFS_SUPPORT = xyes ; then 141 CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS" 142 CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS" 143 LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS" 144 LIBS="`getconf LFS64_LIBS` $LIBS" 145 fi 146 AC_MSG_RESULT([$SINIX_LFS_SUPPORT]) 147 fi 148 ;; 149 150# 151# Tests needed for glibc 2.1 large file support. 152# 153 *linux*) 154 AC_MSG_RESULT([disabling large file support for glibc2.1 on Linux]) 155 ;; 156 *hurd*) 157 AC_MSG_CHECKING([for LFS support]) 158 old_CPPFLAGS="$CPPFLAGS" 159 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS" 160 AC_TRY_RUN([ 161#include <unistd.h> 162main () { 163#if _LFS64_LARGEFILE == 1 164exit(0); 165#else 166exit(1); 167#endif 168}], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross]) 169 CPPFLAGS="$old_CPPFLAGS" 170 if test x$GLIBC_LFS_SUPPORT = xyes ; then 171 CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS" 172 fi 173 AC_MSG_RESULT([$GLIBC_LFS_SUPPORT]) 174 ;; 175 176esac 177 178AC_INLINE 179AC_HEADER_STDC 180AC_HEADER_DIRENT 181AC_HEADER_TIME 182AC_HEADER_SYS_WAIT 183AC_CHECK_HEADERS(arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h) 184AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h) 185AC_CHECK_HEADERS(compat.h rpc/rpc.h rpcsvc/nis.h rpcsvc/yp_prot.h rpcsvc/ypclnt.h) 186AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/mode.h) 187AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h string.h strings.h stdlib.h sys/socket.h) 188AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h) 189AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h) 190# 191# HPUX has a bug in that including shadow.h causes a re-definition of MAXINT. 192# This causes configure to fail to detect it. Check for shadow separately on HPUX. 193# 194case "$host_os" in 195 *hpux*) 196 AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme], 197 ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no) 198 if test x"$ac_cv_header_shadow_h" = x"yes"; then 199 AC_DEFINE(HAVE_SHADOW_H) 200 fi 201 ;; 202esac 203AC_CHECK_HEADERS(shadow.h netinet/ip.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h) 204AC_CHECK_HEADERS(sys/security.h security/pam_appl.h) 205AC_CHECK_HEADERS(stropts.h poll.h readline.h history.h readline/readline.h) 206AC_CHECK_HEADERS(readline/history.h sys/capability.h syscall.h sys/syscall.h) 207AC_CHECK_HEADERS(sys/acl.h sys/cdefs.h glob.h) 208 209# For experimental utmp support 210AC_CHECK_HEADERS(utmp.h utmpx.h) 211 212# For quotas on Veritas VxFS filesystems 213AC_CHECK_HEADERS(sys/fs/vx_quota.h) 214 215AC_CHECK_SIZEOF(int,cross) 216AC_CHECK_SIZEOF(long,cross) 217AC_CHECK_SIZEOF(short,cross) 218 219AC_C_CONST 220AC_C_INLINE 221AC_C_BIGENDIAN 222AC_C_CHAR_UNSIGNED 223 224AC_TYPE_SIGNAL 225AC_TYPE_UID_T 226AC_TYPE_MODE_T 227AC_TYPE_OFF_T 228AC_TYPE_SIZE_T 229AC_TYPE_PID_T 230AC_STRUCT_ST_RDEV 231AC_DIRENT_D_OFF 232AC_CHECK_TYPE(ino_t,unsigned) 233AC_CHECK_TYPE(loff_t,off_t) 234AC_CHECK_TYPE(offset_t,loff_t) 235AC_CHECK_TYPE(ssize_t, int) 236 237# we need libcups for CUPS support... 238AC_CHECK_LIB(cups,httpConnect) 239 240# we need libdl for PAM and the new VFS code 241AC_CHECK_LIB(dl,main) 242 243AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [ 244 AC_TRY_COMPILE([ 245#include <sys/types.h> 246#if STDC_HEADERS 247#include <stdlib.h> 248#include <stddef.h> 249#endif 250#include <signal.h>],[sig_atomic_t i = 0], 251 samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)]) 252if test x"$samba_cv_sig_atomic_t" = x"yes"; then 253 AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE) 254fi 255 256AC_CACHE_CHECK([for errno in errno.h],samba_cv_errno, [ 257 AC_TRY_COMPILE([#include <errno.h>],[int i = errno], 258 samba_cv_errno=yes,samba_cv_have_errno=no)]) 259if test x"$samba_cv_errno" = x"yes"; then 260 AC_DEFINE(HAVE_ERRNO_DECL) 261fi 262 263# stupid glibc has the functions but no declaration. grrrr. 264AC_CACHE_CHECK([for setresuid declaration],samba_cv_have_setresuid_decl,[ 265 AC_TRY_COMPILE([#include <unistd.h>],[int i = (int)setresuid], 266 samba_cv_have_setresuid_decl=yes,samba_cv_have_setresuid_decl=no)]) 267if test x"$samba_cv_have_setresuid_decl" = x"yes"; then 268 AC_DEFINE(HAVE_SETRESUID_DECL) 269fi 270 271# stupid glibc has the functions but no declaration. grrrr. 272AC_CACHE_CHECK([for setresgid declaration],samba_cv_have_setresgid_decl,[ 273 AC_TRY_COMPILE([#include <unistd.h>],[int i = (int)setresgid], 274 samba_cv_have_setresgid_decl=yes,samba_cv_have_setresgid_decl=no)]) 275if test x"$samba_cv_have_setresgid_decl" = x"yes"; then 276 AC_DEFINE(HAVE_SETRESGID_DECL) 277fi 278 279# and glibc has setresuid under linux but the function does 280# nothing until kernel 2.1.44! very dumb. 281AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[ 282 AC_TRY_RUN([#include <errno.h> 283main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}], 284 samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)]) 285if test x"$samba_cv_have_setresuid" = x"yes"; then 286 AC_DEFINE(HAVE_SETRESUID) 287fi 288 289# Do the same check for setresguid... 290# 291AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[ 292 AC_TRY_RUN([#include <unistd.h> 293#include <errno.h> 294main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}], 295 samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)]) 296if test x"$samba_cv_have_setresgid" = x"yes"; then 297 AC_DEFINE(HAVE_SETRESGID) 298fi 299 300AC_FUNC_MEMCMP 301 302############################################### 303# test for where we get crypt() from 304AC_CHECK_FUNCS(crypt) 305if test x"$ac_cv_func_crypt" = x"no"; then 306 AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt"; 307 AC_DEFINE(HAVE_CRYPT)]) 308fi 309 310 311############################################### 312# test for where we get readline() from 313if test "$ac_cv_header_readline_h" = "yes" || 314 test "$ac_cv_header_readline_readline_h" = "yes"; then 315 AC_CHECK_LIB(readline,readline) 316fi 317 318 319# The following test taken from the cvs sources 320# If we can't find connect, try looking in -lsocket, -lnsl, and -linet. 321# The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has 322# libsocket.so which has a bad implementation of gethostbyname (it 323# only looks in /etc/hosts), so we only look for -lsocket if we need 324# it. 325AC_CHECK_FUNCS(connect) 326if test x"$ac_cv_func_connect" = x"no"; then 327 case "$LIBS" in 328 *-lnsl*) ;; 329 *) AC_CHECK_LIB(nsl_s, printf) ;; 330 esac 331 case "$LIBS" in 332 *-lnsl*) ;; 333 *) AC_CHECK_LIB(nsl, printf) ;; 334 esac 335 case "$LIBS" in 336 *-lsocket*) ;; 337 *) AC_CHECK_LIB(socket, connect) ;; 338 esac 339 case "$LIBS" in 340 *-linet*) ;; 341 *) AC_CHECK_LIB(inet, connect) ;; 342 esac 343 dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value 344 dnl has been cached. 345 if test x"$ac_cv_lib_socket_connect" = x"yes" || 346 test x"$ac_cv_lib_inet_connect" = x"yes"; then 347 # ac_cv_func_connect=yes 348 # don't! it would cause AC_CHECK_FUNC to succeed next time configure is run 349 AC_DEFINE(HAVE_CONNECT) 350 fi 351fi 352 353# Check if we have execl, if not we need to compile smbrun. 354AC_CHECK_FUNCS(execl) 355if test x"$ac_cv_func_execl" = x"no"; then 356 RUNPROG="bin/smbrun" 357else 358 RUNPROG="" 359fi 360 361AC_CHECK_FUNCS(waitpid getcwd strdup strtoul strerror chown chmod chroot) 362AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync bzero memset) 363AC_CHECK_FUNCS(memmove vsnprintf snprintf setsid glob strpbrk pipe crypt16 getauthuid) 364AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr setnetgrent getnetgrent endnetgrent) 365AC_CHECK_FUNCS(initgroups select rdchk getgrnam getgrent pathconf) 366AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate stat64 fstat64) 367AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64 readdir64) 368AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid yp_get_default_domain getpwanam) 369AC_CHECK_FUNCS(srandom random srand rand setenv usleep mmap64 strcasecmp fcvt fcvtl) 370 371# syscall() is needed for smbwrapper. 372AC_CHECK_FUNCS(syscall) 373 374AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir) 375AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir) 376AC_CHECK_FUNCS(__getcwd _getcwd) 377AC_CHECK_FUNCS(__xstat __fxstat __lxstat) 378AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat) 379AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir) 380AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl) 381AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read) 382AC_CHECK_FUNCS(_write __write _fork __fork) 383AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64) 384AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64) 385AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64) 386AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64) 387AC_CHECK_FUNCS(open64 _open64 __open64 creat64) 388 389# 390# stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX 391# 392 393if test x$ac_cv_func_stat64 = xno ; then 394 AC_MSG_CHECKING([for stat64 in <sys/stat.h>]) 395 AC_TRY_LINK([ 396#if defined(HAVE_UNISTD_H) 397#include <unistd.h> 398#endif 399#include <sys/stat.h> 400], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes]) 401 AC_MSG_RESULT([$ac_cv_func_stat64]) 402 if test x$ac_cv_func_stat64 = xyes ; then 403 AC_DEFINE(HAVE_STAT64) 404 fi 405fi 406 407if test x$ac_cv_func_lstat64 = xno ; then 408 AC_MSG_CHECKING([for lstat64 in <sys/stat.h>]) 409 AC_TRY_LINK([ 410#if defined(HAVE_UNISTD_H) 411#include <unistd.h> 412#endif 413#include <sys/stat.h> 414], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes]) 415 AC_MSG_RESULT([$ac_cv_func_lstat64]) 416 if test x$ac_cv_func_lstat64 = xyes ; then 417 AC_DEFINE(HAVE_LSTAT64) 418 fi 419fi 420 421if test x$ac_cv_func_fstat64 = xno ; then 422 AC_MSG_CHECKING([for fstat64 in <sys/stat.h>]) 423 AC_TRY_LINK([ 424#if defined(HAVE_UNISTD_H) 425#include <unistd.h> 426#endif 427#include <sys/stat.h> 428], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes]) 429 AC_MSG_RESULT([$ac_cv_func_fstat64]) 430 if test x$ac_cv_func_fstat64 = xyes ; then 431 AC_DEFINE(HAVE_FSTAT64) 432 fi 433fi 434 435# 436# If no strcasecmp, check for it in some known places 437# It is in -lresolv on ReliantUNIX and UnixWare 438# -lresolve *must* follow -lnsl for name resolution to work properly 439# 440 441if test x$ac_cv_func_strcasecmp = xno ; then 442 AC_CHECK_LIB(resolv,strcasecmp,[LIBS="$LIBS -lresolv"] 443 AC_DEFINE(HAVE_STRCASECMP)) 444fi 445 446# 447# Check for the functions putprpwnam, set_auth_parameters, 448# getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity 449# Needed for OSF1 and HPUX. 450# 451 452AC_LIBTESTFUNC(security, putprpwnam) 453AC_LIBTESTFUNC(sec, putprpwnam) 454 455AC_LIBTESTFUNC(security, set_auth_parameters) 456AC_LIBTESTFUNC(sec, set_auth_parameters) 457 458# UnixWare 7.x has its getspnam in -lgen 459AC_LIBTESTFUNC(gen, getspnam) 460 461AC_LIBTESTFUNC(security, getspnam) 462AC_LIBTESTFUNC(sec, getspnam) 463 464AC_LIBTESTFUNC(security, bigcrypt) 465AC_LIBTESTFUNC(sec, bigcrypt) 466 467AC_LIBTESTFUNC(security, getprpwnam) 468AC_LIBTESTFUNC(sec, getprpwnam) 469 470# this bit needs to be modified for each OS that is suported by 471# smbwrapper. You need to specify how to created a shared library and 472# how to compile C code to produce PIC object files 473 474# these are the defaults, good for lots of systems 475HOST_OS="$host_os" 476LDSHFLAGS="-shared" 477PICFLAG="" 478SHLIBEXT="so" 479 480# and these are for particular systems 481case "$host_os" in 482 *linux*) AC_DEFINE(LINUX);; 483 *solaris*) AC_DEFINE(SUNOS5) 484 LDSHFLAGS="-G" 485 ;; 486 *sunos*) AC_DEFINE(SUNOS4) 487 LDSHFLAGS="" 488 ;; 489 *bsd*) LDSHFLAGS="-shared -Bshareable" 490 ;; 491 *irix*) AC_DEFINE(IRIX) 492 case "$host_os" in 493 *irix6*) AC_DEFINE(IRIX6) 494 ;; 495 esac 496 ATTEMPT_WRAP32_BUILD=yes 497 ;; 498 *aix*) AC_DEFINE(AIX);; 499 *hpux*) AC_DEFINE(HPUX) 500 SHLIBEXT="sl" 501 # Use special PIC flags for the native HP-UX compiler. 502 if test $ac_cv_prog_cc_Ae = yes; then 503 LDSHFLAGS="-b" 504 PICFLAG="+z" 505 fi 506 ;; 507 *qnx*) AC_DEFINE(QNX);; 508 *osf*) AC_DEFINE(OSF1);; 509 *sco*) AC_DEFINE(SCO);; 510 *next2*) AC_DEFINE(NEXT2);; 511 *dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man]);; 512 *sysv4*) 513 case "$host" in 514 *-univel-*) if [ test "$GCC" != yes ]; then 515 AC_DEFINE(HAVE_MEMSET) 516 fi 517 LDSHFLAGS="-G" 518 ;; 519 *mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX);; 520 esac 521 ;; 522 *sysv5*) 523 if [ test "$GCC" != yes ]; then 524 AC_DEFINE(HAVE_MEMSET) 525 fi 526 LDSHFLAGS="-G" 527 ;; 528esac 529 530# try to work out how to produce pic code with this compiler 531AC_PROG_CC_FLAG(fpic) 532if test $ac_cv_prog_cc_fpic = yes; then 533 PICFLAG="-fpic"; 534fi 535if test x$PICFLAG = x; then 536 AC_PROG_CC_FLAG(Kpic) 537 if test $ac_cv_prog_cc_Kpic = yes; then 538 PICFLAG="-Kpic"; 539 fi 540fi 541if test x$PICFLAG = x; then 542 AC_PROG_CC_FLAG(KPIC) 543 if test $ac_cv_prog_cc_KPIC = yes; then 544 PICFLAG="-KPIC"; 545 fi 546fi 547 548################ 549 550AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[ 551AC_TRY_RUN([#include <stdio.h> 552main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }], 553samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)]) 554if test x"$samba_cv_have_longlong" = x"yes"; then 555 AC_DEFINE(HAVE_LONGLONG) 556fi 557 558# 559# Check if the compiler supports the LL prefix on long long integers. 560# AIX needs this. 561 562AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [ 563 AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL], 564 samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)]) 565if test x"$samba_cv_compiler_supports_ll" = x"yes"; then 566 AC_DEFINE(COMPILER_SUPPORTS_LL) 567fi 568 569 570AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[ 571AC_TRY_RUN([#include <stdio.h> 572#include <sys/stat.h> 573main() { exit((sizeof(off_t) == 8) ? 0 : 1); }], 574samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)]) 575if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then 576 AC_DEFINE(SIZEOF_OFF_T,8) 577fi 578 579AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[ 580AC_TRY_RUN([ 581#if defined(HAVE_UNISTD_H) 582#include <unistd.h> 583#endif 584#include <stdio.h> 585#include <sys/stat.h> 586main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }], 587samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)]) 588if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then 589 AC_DEFINE(HAVE_OFF64_T) 590fi 591 592AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[ 593AC_TRY_RUN([#include <stdio.h> 594#include <sys/stat.h> 595main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }], 596samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)]) 597if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then 598 AC_DEFINE(SIZEOF_INO_T,8) 599fi 600 601AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[ 602AC_TRY_RUN([ 603#if defined(HAVE_UNISTD_H) 604#include <unistd.h> 605#endif 606#include <stdio.h> 607#include <sys/stat.h> 608main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }], 609samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)]) 610if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then 611 AC_DEFINE(HAVE_INO64_T) 612fi 613 614AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[ 615AC_TRY_COMPILE([ 616#if defined(HAVE_UNISTD_H) 617#include <unistd.h> 618#endif 619#include <sys/types.h> 620#include <dirent.h>], 621[struct dirent64 de;], 622samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)]) 623if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes"; then 624 AC_DEFINE(HAVE_STRUCT_DIRENT64) 625fi 626 627AC_CACHE_CHECK([for union semun],samba_cv_HAVE_UNION_SEMUN,[ 628AC_TRY_RUN([ 629#include <sys/types.h> 630#include <sys/ipc.h> 631#include <sys/sem.h> 632main() { union semun ss; exit(0); }], 633samba_cv_HAVE_UNION_SEMUN=yes,samba_cv_HAVE_UNION_SEMUN=no,samba_cv_HAVE_UNION_SEMUN=cross)]) 634if test x"$samba_cv_HAVE_UNION_SEMUN" = x"yes"; then 635 AC_DEFINE(HAVE_UNION_SEMUN) 636fi 637 638AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[ 639AC_TRY_RUN([#include <stdio.h> 640main() { char c; c=250; exit((c > 0)?0:1); }], 641samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)]) 642if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then 643 AC_DEFINE(HAVE_UNSIGNED_CHAR) 644fi 645 646AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[ 647AC_TRY_COMPILE([#include <sys/types.h> 648#include <sys/socket.h> 649#include <netinet/in.h>], 650[struct sockaddr_in sock; sock.sin_len = sizeof(sock);], 651samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)]) 652if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then 653 AC_DEFINE(HAVE_SOCK_SIN_LEN) 654fi 655 656AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[ 657AC_TRY_COMPILE([#include <sys/types.h> 658#include <dirent.h> 659void seekdir(DIR *d, long loc) { return; }],[return 0;], 660samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)]) 661if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then 662 AC_DEFINE(SEEKDIR_RETURNS_VOID) 663fi 664 665AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[ 666AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);], 667samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)]) 668if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then 669 AC_DEFINE(HAVE_FILE_MACRO) 670fi 671 672AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[ 673AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);], 674samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)]) 675if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then 676 AC_DEFINE(HAVE_FUNCTION_MACRO) 677fi 678 679AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[ 680AC_TRY_RUN([ 681#include <sys/time.h> 682#include <unistd.h> 683main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}], 684 samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)]) 685if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then 686 AC_DEFINE(HAVE_GETTIMEOFDAY_TZ) 687fi 688 689 690AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[ 691AC_TRY_RUN([#include <sys/types.h> 692#include <dirent.h> 693main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d); 694if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 && 695di->d_name[0] == 0) exit(0); exit(1);} ], 696samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)]) 697if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then 698 AC_DEFINE(HAVE_BROKEN_READDIR) 699fi 700 701AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[ 702AC_TRY_COMPILE([#include <sys/types.h> 703#include <utime.h>], 704[struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));], 705samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)]) 706if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then 707 AC_DEFINE(HAVE_UTIMBUF) 708fi 709 710dnl utmp and utmpx come in many flavours 711dnl We need to check for many of them 712dnl But we don't need to do each and every one, because our code uses 713dnl mostly just the utmp (not utmpx) fields. 714 715AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[ 716AC_TRY_COMPILE([#include <utmp.h>], 717[struct utmp ut; ut.ut_name[0] = 'a';], 718samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)]) 719if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then 720 AC_DEFINE(HAVE_UT_UT_NAME) 721fi 722 723AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[ 724AC_TRY_COMPILE([#include <utmp.h>], 725[struct utmp ut; ut.ut_user[0] = 'a';], 726samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)]) 727if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then 728 AC_DEFINE(HAVE_UT_UT_USER) 729fi 730 731AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[ 732AC_TRY_COMPILE([#include <utmp.h>], 733[struct utmp ut; ut.ut_id[0] = 'a';], 734samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)]) 735if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then 736 AC_DEFINE(HAVE_UT_UT_ID) 737fi 738 739AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[ 740AC_TRY_COMPILE([#include <utmp.h>], 741[struct utmp ut; ut.ut_host[0] = 'a';], 742samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)]) 743if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then 744 AC_DEFINE(HAVE_UT_UT_HOST) 745fi 746 747AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[ 748AC_TRY_COMPILE([#include <utmp.h>], 749[struct utmp ut; time_t t; ut.ut_time = t;], 750samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)]) 751if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then 752 AC_DEFINE(HAVE_UT_UT_TIME) 753fi 754 755AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[ 756AC_TRY_COMPILE([#include <utmp.h>], 757[struct utmp ut; struct timeval tv; ut.ut_tv = tv;], 758samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)]) 759if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then 760 AC_DEFINE(HAVE_UT_UT_TV) 761fi 762 763AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[ 764AC_TRY_COMPILE([#include <utmpx.h>], 765[struct utmpx ux; ux.ut_syslen = 0;], 766samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)]) 767if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then 768 AC_DEFINE(HAVE_UX_UT_SYSLEN) 769fi 770 771AC_CACHE_CHECK([for kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS,[ 772AC_TRY_COMPILE([#include <sys/types.h> 773#include <fcntl.h>], 774[oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;], 775samba_cv_HAVE_KERNEL_OPLOCKS=yes,samba_cv_HAVE_KERNEL_OPLOCKS=no)]) 776if test x"$samba_cv_HAVE_KERNEL_OPLOCKS" = x"yes"; then 777 AC_DEFINE(HAVE_KERNEL_OPLOCKS) 778fi 779 780AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[ 781AC_TRY_RUN([#include <sys/types.h> 782#include <sys/capability.h> 783main() { 784 cap_t cap; 785 if ((cap = cap_get_proc()) == NULL) 786 exit(1); 787 cap->cap_effective |= CAP_NETWORK_MGT; 788 cap->cap_inheritable |= CAP_NETWORK_MGT; 789 cap_set_proc(cap); 790 exit(0); 791} 792], 793samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)]) 794if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then 795 AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES) 796fi 797 798# 799# Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h 800# This is *really* broken but some systems (DEC OSF1) do this.... JRA. 801# 802 803AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[ 804AC_TRY_COMPILE([#include <sys/types.h> 805#if defined(HAVE_RPC_RPC_H) 806#include <rpc/rpc.h> 807#endif], 808[int16 testvar;], 809samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)]) 810if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then 811 AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H) 812fi 813 814AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[ 815AC_TRY_COMPILE([#include <sys/types.h> 816#if defined(HAVE_RPC_RPC_H) 817#include <rpc/rpc.h> 818#endif], 819[uint16 testvar;], 820samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)]) 821if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then 822 AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H) 823fi 824 825AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[ 826AC_TRY_COMPILE([#include <sys/types.h> 827#if defined(HAVE_RPC_RPC_H) 828#include <rpc/rpc.h> 829#endif], 830[int32 testvar;], 831samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)]) 832if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then 833 AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H) 834fi 835 836AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[ 837AC_TRY_COMPILE([#include <sys/types.h> 838#if defined(HAVE_RPC_RPC_H) 839#include <rpc/rpc.h> 840#endif], 841[uint32 testvar;], 842samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)]) 843if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then 844 AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H) 845fi 846 847dnl 848dnl Some systems (SCO) have a problem including 849dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined 850dnl as a #define in <prot.h> and as part of an enum 851dnl in <rpc/rpc.h>. 852dnl 853 854AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[ 855AC_TRY_COMPILE([#include <sys/types.h> 856#ifdef HAVE_SYS_SECURITY_H 857#include <sys/security.h> 858#include <prot.h> 859#endif /* HAVE_SYS_SECURITY_H */ 860#if defined(HAVE_RPC_RPC_H) 861#include <rpc/rpc.h> 862#endif], 863[int testvar;], 864samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)]) 865if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then 866 AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT) 867fi 868 869AC_MSG_CHECKING([for test routines]) 870AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"], 871 AC_MSG_RESULT(yes), 872 AC_MSG_ERROR([cant find test code. Aborting config]), 873 AC_MSG_WARN([cannot run when cross-compiling])) 874 875AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[ 876AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"], 877 samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)]) 878if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then 879 AC_DEFINE(HAVE_FTRUNCATE_EXTEND) 880fi 881 882AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[ 883AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"], 884 samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)]) 885if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then 886 AC_DEFINE(HAVE_BROKEN_GETGROUPS) 887fi 888 889AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[ 890SAVE_CPPFLAGS="$CPPFLAGS" 891CPPFLAGS="$CPPFLAGS -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/smbwrapper" 892AC_TRY_COMPILE([ 893#define REPLACE_GETPASS 1 894#define NO_CONFIG_H 1 895#define main dont_declare_main 896#include "${srcdir-.}/lib/getsmbpass.c" 897#undef main 898],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no) 899CPPFLAGS="$SAVE_CPPFLAGS" 900]) 901if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then 902 AC_DEFINE(REPLACE_GETPASS) 903fi 904 905AC_CACHE_CHECK([for working fnmatch],samba_cv_HAVE_FNMATCH,[ 906AC_TRY_RUN([#include <fnmatch.h> 907main() { exit(fnmatch("*.o", "x.o", FNM_PATHNAME) == 0? 0: 1); }], 908samba_cv_HAVE_FNMATCH=yes,samba_cv_HAVE_FNMATCH=no,samba_cv_HAVE_FNMATCH=cross)]) 909if test x"$samba_cv_HAVE_FNMATCH" = x"yes"; then 910 AC_DEFINE(HAVE_FNMATCH) 911fi 912 913AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[ 914AC_TRY_RUN([#include <stdlib.h> 915#include <sys/types.h> 916#include <sys/stat.h> 917#include <unistd.h> 918main() { 919 struct stat st; 920 char tpl[20]="/tmp/test.XXXXXX"; 921 int fd = mkstemp(tpl); 922 if (fd == -1) exit(1); 923 unlink(tpl); 924 if (fstat(fd, &st) != 0) exit(1); 925 if ((st.st_mode & 0777) != 0600) exit(1); 926 exit(0); 927}], 928samba_cv_HAVE_SECURE_MKSTEMP=yes, 929samba_cv_HAVE_SECURE_MKSTEMP=no, 930samba_cv_HAVE_SECURE_MKSTEMP=cross)]) 931if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then 932 AC_DEFINE(HAVE_SECURE_MKSTEMP) 933fi 934 935AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[ 936AC_TRY_RUN([ 937#include <stdio.h> 938#include <sys/types.h> 939#include <netinet/in.h> 940#ifdef HAVE_ARPA_INET_H 941#include <arpa/inet.h> 942#endif 943main() { struct in_addr ip; ip.s_addr = 0x12345678; 944if (strcmp(inet_ntoa(ip),"18.52.86.120") && 945 strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); } 946exit(1);}], 947 samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)]) 948if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then 949 AC_DEFINE(REPLACE_INET_NTOA) 950fi 951 952AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[ 953AC_TRY_RUN([#include <unistd.h> 954main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }], 955samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)]) 956if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then 957 AC_DEFINE(SYSCONF_SC_NGROUPS_MAX) 958fi 959 960AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[ 961AC_TRY_RUN([main() { exit(getuid() != 0); }], 962 samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)]) 963if test x"$samba_cv_HAVE_ROOT" = x"yes"; then 964 AC_DEFINE(HAVE_ROOT) 965else 966 AC_MSG_WARN(running as non-root will disable some tests) 967fi 968 969################## 970# look for a method of finding the list of network interfaces 971iface=no; 972AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[ 973AC_TRY_RUN([ 974#define HAVE_IFACE_AIX 1 975#define AUTOCONF_TEST 1 976#include "confdefs.h" 977#include "${srcdir-.}/lib/interfaces.c"], 978 samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)]) 979if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then 980 iface=yes;AC_DEFINE(HAVE_IFACE_AIX) 981fi 982 983if test $iface = no; then 984AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[ 985AC_TRY_RUN([ 986#define HAVE_IFACE_IFCONF 1 987#define AUTOCONF_TEST 1 988#include "confdefs.h" 989#include "${srcdir-.}/lib/interfaces.c"], 990 samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)]) 991if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then 992 iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF) 993fi 994fi 995 996if test $iface = no; then 997AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[ 998AC_TRY_RUN([ 999#define HAVE_IFACE_IFREQ 1 1000#define AUTOCONF_TEST 1 1001#include "confdefs.h" 1002#include "${srcdir-.}/lib/interfaces.c"], 1003 samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)]) 1004if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then 1005 iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ) 1006fi 1007fi 1008 1009 1010################################################ 1011# look for a method of setting the effective uid 1012seteuid=no; 1013if test $seteuid = no; then 1014AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[ 1015AC_TRY_RUN([ 1016#define AUTOCONF_TEST 1 1017#define USE_SETRESUID 1 1018#include "confdefs.h" 1019#include "${srcdir-.}/lib/util_sec.c"], 1020 samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)]) 1021if test x"$samba_cv_USE_SETRESUID" = x"yes"; then 1022 seteuid=yes;AC_DEFINE(USE_SETRESUID) 1023fi 1024fi 1025 1026 1027if test $seteuid = no; then 1028AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[ 1029AC_TRY_RUN([ 1030#define AUTOCONF_TEST 1 1031#define USE_SETREUID 1 1032#include "confdefs.h" 1033#include "${srcdir-.}/lib/util_sec.c"], 1034 samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)]) 1035if test x"$samba_cv_USE_SETREUID" = x"yes"; then 1036 seteuid=yes;AC_DEFINE(USE_SETREUID) 1037fi 1038fi 1039 1040if test $seteuid = no; then 1041AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[ 1042AC_TRY_RUN([ 1043#define AUTOCONF_TEST 1 1044#define USE_SETEUID 1 1045#include "confdefs.h" 1046#include "${srcdir-.}/lib/util_sec.c"], 1047 samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)]) 1048if test x"$samba_cv_USE_SETEUID" = x"yes"; then 1049 seteuid=yes;AC_DEFINE(USE_SETEUID) 1050fi 1051fi 1052 1053if test $seteuid = no; then 1054AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[ 1055AC_TRY_RUN([ 1056#define AUTOCONF_TEST 1 1057#define USE_SETUIDX 1 1058#include "confdefs.h" 1059#include "${srcdir-.}/lib/util_sec.c"], 1060 samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)]) 1061if test x"$samba_cv_USE_SETUIDX" = x"yes"; then 1062 seteuid=yes;AC_DEFINE(USE_SETUIDX) 1063fi 1064fi 1065 1066 1067AC_CACHE_CHECK([for shared mmap],samba_cv_HAVE_SHARED_MMAP,[ 1068AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"], 1069 samba_cv_HAVE_SHARED_MMAP=yes,samba_cv_HAVE_SHARED_MMAP=no,samba_cv_HAVE_SHARED_MMAP=cross)]) 1070if test x"$samba_cv_HAVE_SHARED_MMAP" = x"yes"; then 1071 AC_DEFINE(HAVE_SHARED_MMAP) 1072 AC_DEFINE(HAVE_MMAP) 1073fi 1074 1075AC_CACHE_CHECK([for ftruncate needs root],samba_cv_FTRUNCATE_NEEDS_ROOT,[ 1076AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncroot.c"], 1077 samba_cv_FTRUNCATE_NEEDS_ROOT=yes,samba_cv_FTRUNCATE_NEEDS_ROOT=no,samba_cv_FTRUNCATE_NEEDS_ROOT=cross)]) 1078if test x"$samba_cv_FTRUNCATE_NEEDS_ROOT" = x"yes"; then 1079 AC_DEFINE(FTRUNCATE_NEEDS_ROOT) 1080fi 1081 1082AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[ 1083AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"], 1084 samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)]) 1085if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then 1086 AC_DEFINE(HAVE_FCNTL_LOCK) 1087fi 1088 1089AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[ 1090AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"], 1091 samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)]) 1092if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then 1093 AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS) 1094 1095else 1096 1097dnl 1098dnl Don't check for 64 bit fcntl locking if we know that the 1099dnl glibc2.1 broken check has succeeded. 1100dnl 1101 1102 AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[ 1103 AC_TRY_RUN([ 1104#if defined(HAVE_UNISTD_H) 1105#include <unistd.h> 1106#endif 1107#include <stdio.h> 1108#include <stdlib.h> 1109 1110#ifdef HAVE_FCNTL_H 1111#include <fcntl.h> 1112#endif 1113 1114#ifdef HAVE_SYS_FCNTL_H 1115#include <sys/fcntl.h> 1116#endif 1117main() { struct flock64 fl64; 1118#if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64) 1119exit(0); 1120#else 1121exit(1); 1122#endif 1123}], 1124 samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)]) 1125 1126 if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then 1127 AC_DEFINE(HAVE_STRUCT_FLOCK64) 1128 fi 1129fi 1130 1131AC_CACHE_CHECK([for sysv ipc],samba_cv_HAVE_SYSV_IPC,[ 1132AC_TRY_RUN([#include "${srcdir-.}/tests/sysv_ipc.c"], 1133 samba_cv_HAVE_SYSV_IPC=yes,samba_cv_HAVE_SYSV_IPC=no,samba_cv_HAVE_SYSV_IPC=cross)]) 1134if test x"$samba_cv_HAVE_SYSV_IPC" = x"yes"; then 1135 AC_DEFINE(HAVE_SYSV_IPC) 1136fi 1137 1138AC_CACHE_CHECK([for IRIX sysv ipc semun problem using gcc],samba_cv_NEED_SGI_SEMUN_HACK,[ 1139AC_TRY_RUN([#include "${srcdir-.}/tests/sgi_sysv_hack.c"], 1140 samba_cv_NEED_SGI_SEMUN_HACK=yes,samba_cv_NEED_SGI_SEMUN_HACK=no,samba_cv_NEED_SGI_SEMUN_HACK=cross)]) 1141if test x"$samba_cv_NEED_SGI_SEMUN_HACK" = x"yes"; then 1142 AC_DEFINE(NEED_SGI_SEMUN_HACK) 1143fi 1144 1145AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[ 1146AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"], 1147 samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)]) 1148if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then 1149 AC_DEFINE(HAVE_TRUNCATED_SALT) 1150fi 1151 1152AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[ 1153AC_TRY_COMPILE([#include <sys/acl.h> 1154#if defined(HAVE_RPCSVC_NIS_H) 1155#include <rpcsvc/nis.h> 1156#endif], 1157[return 0;], 1158samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)]) 1159if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then 1160 AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES) 1161fi 1162 1163 1164################################################# 1165# check for smbwrapper support 1166AC_MSG_CHECKING(whether to use smbwrapper) 1167AC_ARG_WITH(smbwrapper, 1168[ --with-smbwrapper Include SMB wrapper support 1169 --without-smbwrapper Don't include SMB wrapper support (default)], 1170[ case "$withval" in 1171 yes) 1172 AC_MSG_RESULT(yes) 1173 AC_DEFINE(WITH_SMBWRAPPER) 1174 WRAP="bin/smbsh bin/smbwrapper.$SHLIBEXT" 1175 1176 if test x$ATTEMPT_WRAP32_BUILD = x; then 1177 WRAP32="" 1178 else 1179 WRAP32=bin/smbwrapper.32.$SHLIBEXT 1180 fi 1181 1182# Conditions under which smbwrapper should not be built. 1183 1184 if test x$PICFLAG = x; then 1185 echo No support for PIC code - disabling smbwrapper and smbsh 1186 WRAP="" 1187 WRAP32="" 1188 elif test x$ac_cv_func_syscall = xno; then 1189 AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh]) 1190 WRAP="" 1191 WRAP32="" 1192 fi 1193 ;; 1194 *) 1195 AC_MSG_RESULT(no) 1196 ;; 1197 esac ], 1198 AC_MSG_RESULT(no) 1199) 1200 1201################################################# 1202# check for the AFS filesystem 1203AC_MSG_CHECKING(whether to use AFS) 1204AC_ARG_WITH(afs, 1205[ --with-afs Include AFS support 1206 --without-afs Don't include AFS support (default)], 1207[ case "$withval" in 1208 yes) 1209 AC_MSG_RESULT(yes) 1210 AC_DEFINE(WITH_AFS) 1211 ;; 1212 *) 1213 AC_MSG_RESULT(no) 1214 ;; 1215 esac ], 1216 AC_MSG_RESULT(no) 1217) 1218 1219 1220################################################# 1221# check for the DFS auth system 1222AC_MSG_CHECKING(whether to use DFS auth) 1223AC_ARG_WITH(dfs, 1224[ --with-dfs Include DFS support 1225 --without-dfs Don't include DFS support (default)], 1226[ case "$withval" in 1227 yes) 1228 AC_MSG_RESULT(yes) 1229 AC_DEFINE(WITH_DFS) 1230 ;; 1231 *) 1232 AC_MSG_RESULT(no) 1233 ;; 1234 esac ], 1235 AC_MSG_RESULT(no) 1236) 1237 1238################################################# 1239# check for Kerberos IV auth system 1240AC_MSG_CHECKING(whether to use Kerberos IV) 1241AC_ARG_WITH(krb4, 1242[ --with-krb4=base-dir Include Kerberos IV support 1243 --without-krb4 Don't include Kerberos IV support (default)], 1244[ AC_MSG_RESULT(yes) 1245 AC_DEFINE(KRB4_AUTH) 1246 AC_CHECK_LIB(resolv, dn_expand) 1247 LIBS="$LIBS -lkrb -ldes" 1248 CFLAGS="$CFLAGS -I$withval/include" 1249 LDFLAGS="$LDFLAGS -L$withval/lib"], 1250 AC_MSG_RESULT(no) 1251) 1252 1253################################################# 1254# check for Kerberos 5 auth system 1255AC_MSG_CHECKING(whether to use Kerberos 5) 1256AC_ARG_WITH(krb5, 1257[ --with-krb5=base-dir Include Kerberos 5 support 1258 --without-krb5 Don't include Kerberos 5 support (default)], 1259[ AC_MSG_RESULT(yes) 1260 AC_DEFINE(KRB5_AUTH) 1261 LIBS="$LIBS -ldes425 -lkrb5 -lcrypto -lcom_err" 1262 CFLAGS="$CFLAGS -I$withval/include" 1263 LDFLAGS="$LDFLAGS -L$withval/lib"], 1264 AC_MSG_RESULT(no) 1265) 1266 1267################################################# 1268# check for automount support 1269AC_MSG_CHECKING(whether to use AUTOMOUNT) 1270AC_ARG_WITH(automount, 1271[ --with-automount Include AUTOMOUNT support 1272 --without-automount Don't include AUTOMOUNT support (default)], 1273[ case "$withval" in 1274 yes) 1275 AC_MSG_RESULT(yes) 1276 AC_DEFINE(WITH_AUTOMOUNT) 1277 ;; 1278 *) 1279 AC_MSG_RESULT(no) 1280 ;; 1281 esac ], 1282 AC_MSG_RESULT(no) 1283) 1284 1285################################################# 1286# check for smbmount support 1287AC_MSG_CHECKING(whether to use SMBMOUNT) 1288AC_ARG_WITH(smbmount, 1289[ --with-smbmount Include SMBMOUNT (Linux only) support 1290 --without-smbmount Don't include SMBMOUNT support (default)], 1291[ case "$withval" in 1292 yes) 1293 AC_MSG_RESULT(yes) 1294 AC_DEFINE(WITH_SMBMOUNT) 1295 MPROGS="bin/smbmount bin/smbmnt bin/smbumount" 1296 ;; 1297 *) 1298 AC_MSG_RESULT(no) 1299 MPROGS= 1300 ;; 1301 esac ], 1302 AC_MSG_RESULT(no) 1303 MPROGS= 1304) 1305 1306 1307################################################# 1308# check for a PAM password database 1309AC_MSG_CHECKING(whether to use PAM password database) 1310AC_ARG_WITH(pam, 1311[ --with-pam Include PAM password database support 1312 --without-pam Don't include PAM password database support (default)], 1313[ case "$withval" in 1314 yes) 1315 AC_MSG_RESULT(yes) 1316 AC_DEFINE(WITH_PAM) 1317 LIBS="$LIBS -lpam" 1318 ;; 1319 *) 1320 AC_MSG_RESULT(no) 1321 ;; 1322 esac ], 1323 AC_MSG_RESULT(no) 1324) 1325 1326 1327################################################# 1328# check for a LDAP password database 1329AC_MSG_CHECKING(whether to use LDAP password database) 1330AC_ARG_WITH(ldap, 1331[ --with-ldap Include LDAP support 1332 --without-ldap Don't include LDAP support (default)], 1333[ case "$withval" in 1334 yes) 1335 AC_MSG_RESULT(yes) 1336 AC_DEFINE(WITH_LDAP) 1337 AC_MSG_ERROR([LDAP password database not supported in this version.]) 1338 ;; 1339 *) 1340 AC_MSG_RESULT(no) 1341 ;; 1342 esac ], 1343 AC_MSG_RESULT(no) 1344) 1345 1346################################################# 1347# check for a NISPLUS password database 1348AC_MSG_CHECKING(whether to use NISPLUS password database) 1349AC_ARG_WITH(nisplus, 1350[ --with-nisplus Include NISPLUS password database support 1351 --without-nisplus Don't include NISPLUS password database support (default)], 1352[ case "$withval" in 1353 yes) 1354 AC_MSG_RESULT(yes) 1355 AC_DEFINE(WITH_NISPLUS) 1356 ;; 1357 *) 1358 AC_MSG_RESULT(no) 1359 ;; 1360 esac ], 1361 AC_MSG_RESULT(no) 1362) 1363 1364################################################# 1365# check for a NISPLUS_HOME support 1366AC_MSG_CHECKING(whether to use NISPLUS_HOME) 1367AC_ARG_WITH(nisplus-home, 1368[ --with-nisplus-home Include NISPLUS_HOME support 1369 --without-nisplus-home Don't include NISPLUS_HOME support (default)], 1370[ case "$withval" in 1371 yes) 1372 AC_MSG_RESULT(yes) 1373 AC_DEFINE(WITH_NISPLUS_HOME) 1374 ;; 1375 *) 1376 AC_MSG_RESULT(no) 1377 ;; 1378 esac ], 1379 AC_MSG_RESULT(no) 1380) 1381 1382################################################# 1383# check for the secure socket layer 1384AC_MSG_CHECKING(whether to use SSL) 1385AC_ARG_WITH(ssl, 1386[ --with-ssl Include SSL support 1387 --without-ssl Don't include SSL support (default) 1388 --with-sslinc=DIR Where the SSL includes are (defaults to /usr/local/ssl)], 1389[ case "$withval" in 1390 yes) 1391 AC_MSG_RESULT(yes) 1392 AC_DEFINE(WITH_SSL) 1393 withval="/usr/local/ssl" # default 1394 1395 if test "${with_sslinc+set}" = set; then 1396 1397 withval="$with_sslinc" 1398 case "$withval" in 1399 yes|no) 1400 echo "configure: warning: --with-sslinc called without argument - will use default" 1>&w 1401 CFLAGS="-I/usr/local/ssl/include $CFLAGS" 1402 LIBS="-lssl -lcrypto $LIBS" 1403 LDFLAGS="=L/usr/local/ssl/lib $LDFLAGS" 1404 ;; 1405 * ) 1406 CFLAGS="-I${withval}/include $CFLAGS" 1407 LIBS="-lssl -lcrypto $LIBS" 1408 LDFLAGS="-L${withval}/lib $LDFLAGS" 1409 ;; 1410 esac 1411 1412 else 1413 1414 CFLAGS="-I/usr/local/ssl/include $CFLAGS" 1415 LIBS="-lssl -lcrypto $LIBS" 1416 LDFLAGS="-L/usr/local/ssl/lib $LDFLAGS" 1417 1418 fi 1419 1420 if test ! -d ${withval}; then 1421 echo "configure: error: called with --with-ssl, but ssl base directory ${withval} does not exist or is not a directory. Aborting config" 1>&2 1422 exit 1 1423 fi 1424 1425 CFLAGS="-DHAVE_CRYPT_DECL $CFLAGS" # Damn, SSLeay defines its own 1426 1427 ;; 1428 *) 1429 AC_MSG_RESULT(no) 1430 ;; 1431 esac ], 1432 AC_MSG_RESULT(no) 1433) 1434 1435################################################# 1436# check for syslog logging 1437AC_MSG_CHECKING(whether to use syslog logging) 1438AC_ARG_WITH(syslog, 1439[ --with-syslog Include experimental SYSLOG support 1440 --without-syslog Don't include SYSLOG support (default)], 1441[ case "$withval" in 1442 yes) 1443 AC_MSG_RESULT(yes) 1444 AC_DEFINE(WITH_SYSLOG) 1445 ;; 1446 *) 1447 AC_MSG_RESULT(no) 1448 ;; 1449 esac ], 1450 AC_MSG_RESULT(no) 1451) 1452 1453################################################# 1454# check for a shared memory profiling support 1455AC_MSG_CHECKING(whether to use profiling) 1456AC_ARG_WITH(profile, 1457[ --with-profile Include profile support 1458 --without-profile Don't include profile support (default)], 1459[ case "$withval" in 1460 yes) 1461 AC_MSG_RESULT(yes) 1462 AC_DEFINE(WITH_PROFILE) 1463 ;; 1464 *) 1465 AC_MSG_RESULT(no) 1466 ;; 1467 esac ], 1468 AC_MSG_RESULT(no) 1469) 1470 1471 1472################################################# 1473# check for experimental netatalk resource fork support 1474AC_MSG_CHECKING(whether to support netatalk) 1475AC_ARG_WITH(netatalk, 1476[ --with-netatalk Include experimental Netatalk support 1477 --without-netatalk Don't include experimental Netatalk support (default)], 1478[ case "$withval" in 1479 yes) 1480 AC_MSG_RESULT(yes) 1481 AC_DEFINE(WITH_NETATALK) 1482 ;; 1483 *) 1484 AC_MSG_RESULT(no) 1485 ;; 1486 esac ], 1487 AC_MSG_RESULT(no) 1488) 1489 1490################################################# 1491# check for experimental disk-quotas support 1492QUOTAOBJS=noquotas.o 1493 1494AC_MSG_CHECKING(whether to support disk-quotas) 1495AC_ARG_WITH(quotas, 1496[ --with-quotas Include experimental disk-quota support 1497 --without-quotas Don't include experimental disk-quota support (default)], 1498[ case "$withval" in 1499 yes) 1500 AC_MSG_RESULT(yes) 1501 QUOTAOBJS=quotas.o 1502 ;; 1503 *) 1504 AC_MSG_RESULT(no) 1505 ;; 1506 esac ], 1507 AC_MSG_RESULT(no) 1508) 1509AC_SUBST(QUOTAOBJS) 1510 1511################################################# 1512# check for experimental utmp accounting 1513 1514AC_MSG_CHECKING(whether to support utmp accounting) 1515AC_ARG_WITH(utmp, 1516[ --with-utmp Include experimental utmp accounting 1517 --without-utmp Don't include experimental utmp accounting (default)], 1518[ case "$withval" in 1519 yes) 1520 AC_MSG_RESULT(yes) 1521 AC_DEFINE(WITH_UTMP) 1522 ;; 1523 *) 1524 AC_MSG_RESULT(no) 1525 ;; 1526 esac ], 1527 AC_MSG_RESULT(no) 1528) 1529 1530################################################# 1531# set private directory location 1532AC_ARG_WITH(privatedir, 1533[ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)], 1534[ case "$withval" in 1535 yes|no) 1536 # 1537 # Just in case anybody calls it without argument 1538 # 1539 AC_MSG_WARN([--with-privatedir called without argument - will use default]) 1540 privatedir='${prefix}/private' 1541 ;; 1542 * ) 1543 privatedir="$withval" 1544 ;; 1545 esac 1546 AC_SUBST(privatedir)], 1547 [privatedir='${prefix}/private' 1548 AC_SUBST(privatedir)] 1549) 1550 1551################################################# 1552# set lock directory location 1553AC_ARG_WITH(lockdir, 1554[ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)], 1555[ case "$withval" in 1556 yes|no) 1557 # 1558 # Just in case anybody calls it without argument 1559 # 1560 AC_MSG_WARN([--with-lockdir called without argument - will use default]) 1561 lockdir='$(VARDIR)/locks' 1562 ;; 1563 * ) 1564 lockdir="$withval" 1565 ;; 1566 esac 1567 AC_SUBST(lockdir)], 1568 [lockdir='$(VARDIR)/locks' 1569 AC_SUBST(lockdir)] 1570) 1571 1572################################################# 1573# set SWAT directory location 1574AC_ARG_WITH(swatdir, 1575[ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)], 1576[ case "$withval" in 1577 yes|no) 1578 # 1579 # Just in case anybody does it 1580 # 1581 AC_MSG_WARN([--with-swatdir called without argument - will use default]) 1582 swatdir='${prefix}/swat' 1583 ;; 1584 * ) 1585 swatdir="$withval" 1586 ;; 1587 esac 1588 AC_SUBST(swatdir)], 1589 [swatdir='${prefix}/swat' 1590 AC_SUBST(swatdir)] 1591) 1592 1593################################################ 1594# include Using Samba O'Reilly book 1595AC_MSG_CHECKING(whether to install Using Samba book) 1596AC_ARG_WITH(sambabook, 1597[ --with-sambabook=DIR Where to put Using Samba book ($ac_default_prefix/swat/using_samba) (default) 1598 --without-sambabook Don't install Using Samba book], 1599[ case "$withval" in 1600 yes) 1601 AC_MSG_WARN([--with-sambabook called without argument - will use default]) 1602 sambabook="${prefix}/swat/using_samba" 1603 AC_MSG_RESULT(install in $sambabook) 1604 ;; 1605 no) 1606 AC_MSG_RESULT(no) 1607 ;; 1608 *) 1609 AC_MSG_RESULT(install in $withval) 1610 sambabook="$withval" 1611 ;; 1612 esac 1613 AC_SUBST(sambabook)], 1614 [sambabook='${prefix}/swat/using_samba' 1615 AC_SUBST(sambabook) 1616 AC_MSG_RESULT($sambabook)] 1617) 1618 1619################################################# 1620# these tests are taken from the GNU fileutils package 1621AC_CHECKING(how to get filesystem space usage) 1622space=no 1623 1624# Test for statvfs64. 1625if test $space = no; then 1626 # SVR4 1627 AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64, 1628 [AC_TRY_RUN([ 1629#if defined(HAVE_UNISTD_H) 1630#include <unistd.h> 1631#endif 1632#include <sys/types.h> 1633#include <sys/statvfs.h> 1634 main () 1635 { 1636 struct statvfs64 fsd; 1637 exit (statvfs64 (".", &fsd)); 1638 }], 1639 fu_cv_sys_stat_statvfs64=yes, 1640 fu_cv_sys_stat_statvfs64=no, 1641 fu_cv_sys_stat_statvfs64=cross)]) 1642 if test $fu_cv_sys_stat_statvfs64 = yes; then 1643 space=yes 1644 AC_DEFINE(STAT_STATVFS64) 1645 fi 1646fi 1647 1648# Perform only the link test since it seems there are no variants of the 1649# statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs) 1650# because that got a false positive on SCO OSR5. Adding the declaration 1651# of a `struct statvfs' causes this test to fail (as it should) on such 1652# systems. That system is reported to work fine with STAT_STATFS4 which 1653# is what it gets when this test fails. 1654if test $space = no; then 1655 # SVR4 1656 AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs, 1657 [AC_TRY_LINK([#include <sys/types.h> 1658#include <sys/statvfs.h>], 1659 [struct statvfs fsd; statvfs (0, &fsd);], 1660 fu_cv_sys_stat_statvfs=yes, 1661 fu_cv_sys_stat_statvfs=no)]) 1662 if test $fu_cv_sys_stat_statvfs = yes; then 1663 space=yes 1664 AC_DEFINE(STAT_STATVFS) 1665 fi 1666fi 1667 1668if test $space = no; then 1669 # DEC Alpha running OSF/1 1670 AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)]) 1671 AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1, 1672 [AC_TRY_RUN([ 1673#include <sys/param.h> 1674#include <sys/types.h> 1675#include <sys/mount.h> 1676 main () 1677 { 1678 struct statfs fsd; 1679 fsd.f_fsize = 0; 1680 exit (statfs (".", &fsd, sizeof (struct statfs))); 1681 }], 1682 fu_cv_sys_stat_statfs3_osf1=yes, 1683 fu_cv_sys_stat_statfs3_osf1=no, 1684 fu_cv_sys_stat_statfs3_osf1=no)]) 1685 AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1) 1686 if test $fu_cv_sys_stat_statfs3_osf1 = yes; then 1687 space=yes 1688 AC_DEFINE(STAT_STATFS3_OSF1) 1689 fi 1690fi 1691 1692if test $space = no; then 1693# AIX 1694 AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl 1695member (AIX, 4.3BSD)]) 1696 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize, 1697 [AC_TRY_RUN([ 1698#ifdef HAVE_SYS_PARAM_H 1699#include <sys/param.h> 1700#endif 1701#ifdef HAVE_SYS_MOUNT_H 1702#include <sys/mount.h> 1703#endif 1704#ifdef HAVE_SYS_VFS_H 1705#include <sys/vfs.h> 1706#endif 1707 main () 1708 { 1709 struct statfs fsd; 1710 fsd.f_bsize = 0; 1711 exit (statfs (".", &fsd)); 1712 }], 1713 fu_cv_sys_stat_statfs2_bsize=yes, 1714 fu_cv_sys_stat_statfs2_bsize=no, 1715 fu_cv_sys_stat_statfs2_bsize=no)]) 1716 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize) 1717 if test $fu_cv_sys_stat_statfs2_bsize = yes; then 1718 space=yes 1719 AC_DEFINE(STAT_STATFS2_BSIZE) 1720 fi 1721fi 1722 1723if test $space = no; then 1724# SVR3 1725 AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)]) 1726 AC_CACHE_VAL(fu_cv_sys_stat_statfs4, 1727 [AC_TRY_RUN([#include <sys/types.h> 1728#include <sys/statfs.h> 1729 main () 1730 { 1731 struct statfs fsd; 1732 exit (statfs (".", &fsd, sizeof fsd, 0)); 1733 }], 1734 fu_cv_sys_stat_statfs4=yes, 1735 fu_cv_sys_stat_statfs4=no, 1736 fu_cv_sys_stat_statfs4=no)]) 1737 AC_MSG_RESULT($fu_cv_sys_stat_statfs4) 1738 if test $fu_cv_sys_stat_statfs4 = yes; then 1739 space=yes 1740 AC_DEFINE(STAT_STATFS4) 1741 fi 1742fi 1743 1744if test $space = no; then 1745# 4.4BSD and NetBSD 1746 AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl 1747member (4.4BSD and NetBSD)]) 1748 AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize, 1749 [AC_TRY_RUN([#include <sys/types.h> 1750#ifdef HAVE_SYS_PARAM_H 1751#include <sys/param.h> 1752#endif 1753#ifdef HAVE_SYS_MOUNT_H 1754#include <sys/mount.h> 1755#endif 1756 main () 1757 { 1758 struct statfs fsd; 1759 fsd.f_fsize = 0; 1760 exit (statfs (".", &fsd)); 1761 }], 1762 fu_cv_sys_stat_statfs2_fsize=yes, 1763 fu_cv_sys_stat_statfs2_fsize=no, 1764 fu_cv_sys_stat_statfs2_fsize=no)]) 1765 AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize) 1766 if test $fu_cv_sys_stat_statfs2_fsize = yes; then 1767 space=yes 1768 AC_DEFINE(STAT_STATFS2_FSIZE) 1769 fi 1770fi 1771 1772if test $space = no; then 1773 # Ultrix 1774 AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)]) 1775 AC_CACHE_VAL(fu_cv_sys_stat_fs_data, 1776 [AC_TRY_RUN([#include <sys/types.h> 1777#ifdef HAVE_SYS_PARAM_H 1778#include <sys/param.h> 1779#endif 1780#ifdef HAVE_SYS_MOUNT_H 1781#include <sys/mount.h> 1782#endif 1783#ifdef HAVE_SYS_FS_TYPES_H 1784#include <sys/fs_types.h> 1785#endif 1786 main () 1787 { 1788 struct fs_data fsd; 1789 /* Ultrix's statfs returns 1 for success, 1790 0 for not mounted, -1 for failure. */ 1791 exit (statfs (".", &fsd) != 1); 1792 }], 1793 fu_cv_sys_stat_fs_data=yes, 1794 fu_cv_sys_stat_fs_data=no, 1795 fu_cv_sys_stat_fs_data=no)]) 1796 AC_MSG_RESULT($fu_cv_sys_stat_fs_data) 1797 if test $fu_cv_sys_stat_fs_data = yes; then 1798 space=yes 1799 AC_DEFINE(STAT_STATFS2_FS_DATA) 1800 fi 1801fi 1802 1803# 1804# As a gating factor for large file support, in order to 1805# use <4GB files we must have the following minimal support 1806# available. 1807# long long, and a 64 bit off_t or off64_t. 1808# If we don't have all of these then disable large 1809# file support. 1810# 1811echo "checking if large file support can be enabled" 1812AC_TRY_COMPILE([ 1813#if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8))) 1814#include <sys/types.h> 1815#else 1816__COMPILE_ERROR_ 1817#endif 1818], 1819[int i], 1820samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no) 1821if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then 1822 echo "yes" 1823 AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT) 1824else 1825 echo "no" 1826fi 1827 1828echo "checking configure summary" 1829AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"], 1830 echo "configure OK";, 1831 AC_MSG_ERROR([summary failure. Aborting config]),:) 1832 1833builddir=`pwd` 1834AC_SUBST(builddir) 1835 1836AC_OUTPUT(include/stamp-h Makefile) 1837