mirror of
https://github.com/samba-team/samba.git
synced 2024-12-27 03:21:53 +03:00
6de1659640
stand-alone macro, candidate for inclusion in the next release of autoconf)
create configure flag --enable-maintainer-mode, that enables automatic
rebuilding of configure from configure.in and aclocal.m4, and of
config.h.in based on acconfig.h. This assumes autoconf and autoheader
are available. Maintainer mode also introduces automatic dependency
tracking of include files, but it depends on features provided by gcc
and GNU make, so you must not enable maintainer mode if you are not
using any of these
(This used to be commit 64cba1cc8e
)
813 lines
24 KiB
Plaintext
813 lines
24 KiB
Plaintext
dnl Process this file with autoconf to produce a configure script.
|
|
AC_INIT(include/includes.h)
|
|
AC_CONFIG_HEADER(include/config.h)
|
|
|
|
dnl Checks for programs.
|
|
AC_PROG_CC
|
|
AC_PROG_INSTALL
|
|
AC_SUBST(SHELL)
|
|
AC_PROG_AWK
|
|
|
|
AC_CANONICAL_SYSTEM
|
|
case "$host_os" in
|
|
*linux*) AC_DEFINE(LINUX);;
|
|
*solaris*) AC_DEFINE(SUNOS5);;
|
|
*sunos*) AC_DEFINE(SUNOS4);;
|
|
*irix*) AC_DEFINE(IRIX);;
|
|
*aix*) AC_DEFINE(AIX);;
|
|
*hpux*) AC_DEFINE(HPUX);;
|
|
*qnx*) AC_DEFINE(QNX);;
|
|
*osf1*) AC_DEFINE(OSF1);;
|
|
*sco*) AC_DEFINE(SCO);;
|
|
*next2*) AC_DEFINE(NEXT2);;
|
|
esac
|
|
|
|
AC_VALIDATE_CACHE_SYSTEM_TYPE
|
|
SAMBA_MAINTAINER_MODE
|
|
|
|
AC_INLINE
|
|
AC_HEADER_STDC
|
|
AC_HEADER_DIRENT
|
|
AC_HEADER_TIME
|
|
AC_HEADER_SYS_WAIT
|
|
AC_CHECK_HEADERS(sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h)
|
|
AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h net/if.h)
|
|
AC_CHECK_HEADERS(compat.h rpc/types.h rpc/xdr.h rpc/auth.h rpc/clnt.h)
|
|
AC_CHECK_HEADERS(rpcsvc/yp_prot.h rpcsvc/ypclnt.h sys/param.h ctype.h )
|
|
AC_CHECK_HEADERS(sys/wait.h sys/resource.h sys/ioctl.h sys/mode.h)
|
|
AC_CHECK_HEADERS(sys/filio.h string.h strings.h stdlib.h sys/socket.h)
|
|
AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h)
|
|
AC_CHECK_HEADERS(sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
|
|
AC_CHECK_HEADERS(shadow.h netinet/tcp.h sys/security.h security/pam_appl.h)
|
|
AC_CHECK_HEADERS(stropts.h poll.h readline.h history.h readline/readline.h)
|
|
AC_CHECK_HEADERS(readline/history.h)
|
|
|
|
AC_CHECK_SIZEOF(int,cross)
|
|
AC_CHECK_SIZEOF(long,cross)
|
|
AC_CHECK_SIZEOF(short,cross)
|
|
|
|
AC_C_CONST
|
|
AC_C_INLINE
|
|
AC_C_BIGENDIAN
|
|
AC_C_CHAR_UNSIGNED
|
|
|
|
AC_TYPE_SIGNAL
|
|
AC_TYPE_UID_T
|
|
AC_TYPE_MODE_T
|
|
AC_TYPE_OFF_T
|
|
AC_TYPE_SIZE_T
|
|
AC_TYPE_PID_T
|
|
AC_STRUCT_ST_RDEV
|
|
AC_CHECK_TYPE(ino_t,unsigned)
|
|
AC_CHECK_TYPE(ssize_t, int)
|
|
|
|
AC_CACHE_CHECK([for errno in errno.h],samba_cv_errno, [
|
|
AC_TRY_COMPILE([#include <errno.h>],[int i = errno],
|
|
samba_cv_errno=yes,samba_cv_have_errno_decl=no)])
|
|
if test x"$samba_cv_errno" = x"yes"; then
|
|
AC_DEFINE(HAVE_ERRNO_DECL)
|
|
fi
|
|
|
|
# stupid glibc has the functions but no declaration. grrrr.
|
|
AC_CACHE_CHECK([for setresuid declaration],samba_cv_have_setresuid_decl,[
|
|
AC_TRY_COMPILE([#include <unistd.h>],[int i = setresuid],
|
|
samba_cv_have_setresuid_decl=yes,samba_cv_have_setresuid_decl=no)])
|
|
if test x"$samba_cv_have_setresuid_decl" = x"yes"; then
|
|
AC_DEFINE(HAVE_SETRESUID_DECL)
|
|
fi
|
|
|
|
# and glibc has setresuid under linux but the function does
|
|
# nothing until kernel 2.1.44! very dumb.
|
|
AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
|
|
AC_TRY_RUN([#include <errno.h>
|
|
main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
|
|
samba_cv_have_setresuid=yes,samba_cv_have_setresuid=no,samba_cv_have_setresuid=cross)])
|
|
if test x"$samba_cv_have_setresuid" = x"yes"; then
|
|
AC_DEFINE(HAVE_SETRESUID)
|
|
fi
|
|
|
|
AC_FUNC_MEMCMP
|
|
|
|
###############################################
|
|
# test for where we get crypt() from
|
|
AC_CHECK_FUNCS(crypt)
|
|
if test x"$ac_cv_func_crypt" = x"no"; then
|
|
AC_CHECK_LIB(crypt, crypt, [LIBS="$LIBS -lcrypt";
|
|
AC_DEFINE(HAVE_CRYPT)])
|
|
fi
|
|
|
|
|
|
###############################################
|
|
# test for where we get pam_authenticate() from
|
|
# might need libdl for this to work
|
|
if test "$ac_cv_header_security_pam_appl_h" = "yes"; then
|
|
AC_CHECK_LIB(dl,main)
|
|
fi
|
|
AC_CHECK_FUNCS(pam_authenticate)
|
|
if test x"$ac_cv_func_pam_authenticate" = x"no"; then
|
|
AC_CHECK_LIB(pam, pam_authenticate, [LIBS="$LIBS -lpam"
|
|
AC_DEFINE(HAVE_PAM_AUTHENTICATE)])
|
|
fi
|
|
|
|
|
|
###############################################
|
|
# test for where we get readline() from
|
|
if test "$ac_cv_header_readline_h" = "yes" ||
|
|
test "$ac_cv_header_readline_readline_h" = "yes"; then
|
|
AC_CHECK_LIB(readline,readline)
|
|
fi
|
|
|
|
|
|
# The following test taken from the cvs sources
|
|
# If we can't find connect, try looking in -lsocket, -lnsl, and -linet.
|
|
# The Irix 5 libc.so has connect and gethostbyname, but Irix 5 also has
|
|
# libsocket.so which has a bad implementation of gethostbyname (it
|
|
# only looks in /etc/hosts), so we only look for -lsocket if we need
|
|
# it.
|
|
AC_CHECK_FUNCS(connect)
|
|
if test x"$ac_cv_func_connect" = x"no"; then
|
|
case "$LIBS" in
|
|
*-lnsl*) ;;
|
|
*) AC_CHECK_LIB(nsl_s, printf) ;;
|
|
esac
|
|
case "$LIBS" in
|
|
*-lnsl*) ;;
|
|
*) AC_CHECK_LIB(nsl, printf) ;;
|
|
esac
|
|
case "$LIBS" in
|
|
*-lsocket*) ;;
|
|
*) AC_CHECK_LIB(socket, connect) ;;
|
|
esac
|
|
case "$LIBS" in
|
|
*-linet*) ;;
|
|
*) AC_CHECK_LIB(inet, connect) ;;
|
|
esac
|
|
dnl We can't just call AC_CHECK_FUNCS(connect) here, because the value
|
|
dnl has been cached.
|
|
if test x"$ac_cv_lib_socket_connect" = x"yes" ||
|
|
test x"$ac_cv_lib_inet_connect" = x"yes"; then
|
|
# ac_cv_func_connect=yes
|
|
# don't! it would cause AC_CHECK_FUNC to succeed next time configure is run
|
|
AC_DEFINE(HAVE_CONNECT)
|
|
fi
|
|
fi
|
|
|
|
|
|
AC_CHECK_FUNCS(waitpid getcwd strdup strerror chown chmod chroot)
|
|
AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync execl bzero memset)
|
|
AC_CHECK_FUNCS(memmove vsnprintf setsid glob strpbrk pipe crypt16 getauthuid)
|
|
AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction innetgr)
|
|
AC_CHECK_FUNCS(initgroups select rdchk getgrnam pathconf putprpwnam)
|
|
AC_CHECK_FUNCS(setuidx setgroups mktime rename ftruncate stat64 fstat64 lstat64)
|
|
AC_CHECK_FUNCS(set_auth_parameters atexit grantpt getspnam dup2 lseek64 ftruncate64)
|
|
AC_CHECK_FUNCS(fseek64 ftell64 bigcrypt getprpwnam setluid yp_get_default_domain getpwanam)
|
|
|
|
AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
|
|
AC_TRY_RUN([#include <stdio.h>
|
|
main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
|
|
samba_cv_have_longlong=yes,samba_cv_have_longlong=no,samba_cv_have_longlong=cross)])
|
|
if test x"$samba_cv_have_longlong" = x"yes"; then
|
|
AC_DEFINE(HAVE_LONGLONG)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
|
|
AC_TRY_RUN([#include <stdio.h>
|
|
#include <sys/stat.h>
|
|
main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
|
|
samba_cv_SIZEOF_OFF_T=yes,samba_cv_SIZEOF_OFF_T=no,samba_cv_SIZEOF_OFF_T=cross)])
|
|
if test x"$samba_cv_SIZEOF_OFF_T" = x"yes"; then
|
|
AC_DEFINE(SIZEOF_OFF_T,8)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
|
|
AC_TRY_RUN([#include <stdio.h>
|
|
#include <sys/stat.h>
|
|
main() { struct stat64 st; off64_t s; if (sizeof(off_t) == sizeof(off64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
|
|
samba_cv_HAVE_OFF64_T=yes,samba_cv_HAVE_OFF64_T=no,samba_cv_HAVE_OFF64_T=cross)])
|
|
if test x"$samba_cv_HAVE_OFF64_T" = x"yes"; then
|
|
AC_DEFINE(HAVE_OFF64_T)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
|
|
AC_TRY_RUN([#include <stdio.h>
|
|
#include <sys/stat.h>
|
|
main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
|
|
samba_cv_SIZEOF_INO_T=yes,samba_cv_SIZEOF_INO_T=no,samba_cv_SIZEOF_INO_T=cross)])
|
|
if test x"$samba_cv_SIZEOF_INO_T" = x"yes"; then
|
|
AC_DEFINE(SIZEOF_INO_T,8)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
|
|
AC_TRY_RUN([#include <stdio.h>
|
|
#include <sys/stat.h>
|
|
main() { struct stat64 st; ino64_t s; if (sizeof(ino_t) == sizeof(ino64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
|
|
samba_cv_HAVE_INO64_T=yes,samba_cv_HAVE_INO64_T=no,samba_cv_HAVE_INO64_T=cross)])
|
|
if test x"$samba_cv_HAVE_INO64_T" = x"yes"; then
|
|
AC_DEFINE(HAVE_INO64_T)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for union semun],samba_cv_HAVE_UNION_SEMUN,[
|
|
AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/ipc.h>
|
|
#include <sys/sem.h>
|
|
main() { union semun ss; exit(0); }],
|
|
samba_cv_HAVE_UNION_SEMUN=yes,samba_cv_HAVE_UNION_SEMUN=no,samba_cv_HAVE_UNION_SEMUN=cross)])
|
|
if test x"$samba_cv_HAVE_UNION_SEMUN" = x"yes"; then
|
|
AC_DEFINE(HAVE_UNION_SEMUN)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
|
|
AC_TRY_RUN([#include <stdio.h>
|
|
main() { char c; c=250; exit((c > 0)?0:1); }],
|
|
samba_cv_HAVE_UNSIGNED_CHAR=yes,samba_cv_HAVE_UNSIGNED_CHAR=no,samba_cv_HAVE_UNSIGNED_CHAR=cross)])
|
|
if test x"$samba_cv_HAVE_UNSIGNED_CHAR" = x"yes"; then
|
|
AC_DEFINE(HAVE_UNSIGNED_CHAR)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
|
|
AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <sys/socket.h>
|
|
#include <netinet/in.h>],
|
|
[struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
|
|
samba_cv_HAVE_SOCK_SIN_LEN=yes,samba_cv_HAVE_SOCK_SIN_LEN=no)])
|
|
if test x"$samba_cv_HAVE_SOCK_SIN_LEN" = x"yes"; then
|
|
AC_DEFINE(HAVE_SOCK_SIN_LEN)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for __FILE__ macro],samba_cv_HAVE_FILE_MACRO,[
|
|
AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FILE__);],
|
|
samba_cv_HAVE_FILE_MACRO=yes,samba_cv_HAVE_FILE_MACRO=no)])
|
|
if test x"$samba_cv_HAVE_FILE_MACRO" = x"yes"; then
|
|
AC_DEFINE(HAVE_FILE_MACRO)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
|
|
AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
|
|
samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
|
|
if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
|
|
AC_DEFINE(HAVE_FUNCTION_MACRO)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
|
|
AC_TRY_RUN([
|
|
#include <sys/time.h>
|
|
#include <unistd.h>
|
|
main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
|
|
samba_cv_HAVE_GETTIMEOFDAY_TZ=yes,samba_cv_HAVE_GETTIMEOFDAY_TZ=no,samba_cv_HAVE_GETTIMEOFDAY_TZ=cross)])
|
|
if test x"$samba_cv_HAVE_GETTIMEOFDAY_TZ" = x"yes"; then
|
|
AC_DEFINE(HAVE_GETTIMEOFDAY_TZ)
|
|
fi
|
|
|
|
|
|
AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
|
|
AC_TRY_RUN([#include <sys/types.h>
|
|
#include <dirent.h>
|
|
main() { struct dirent *di; DIR *d = opendir("."); di = readdir(d);
|
|
if (di && di->d_name[-2] == '.' && di->d_name[-1] == 0 &&
|
|
di->d_name[0] == 0) exit(0); exit(1);} ],
|
|
samba_cv_HAVE_BROKEN_READDIR=yes,samba_cv_HAVE_BROKEN_READDIR=no,samba_cv_HAVE_BROKEN_READDIR=cross)])
|
|
if test x"$samba_cv_HAVE_BROKEN_READDIR" = x"yes"; then
|
|
AC_DEFINE(HAVE_BROKEN_READDIR)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
|
|
AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <utime.h>],
|
|
[struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
|
|
samba_cv_HAVE_UTIMBUF=yes,samba_cv_HAVE_UTIMBUF=no,samba_cv_HAVE_UTIMBUF=cross)])
|
|
if test x"$samba_cv_HAVE_UTIMBUF" = x"yes"; then
|
|
AC_DEFINE(HAVE_UTIMBUF)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS,[
|
|
AC_TRY_COMPILE([#include <sys/types.h>
|
|
#include <fcntl.h>],
|
|
[oplock_stat_t t; t.os_state = OP_REVOKE; t.os_dev = 1; t.os_ino = 1;],
|
|
samba_cv_HAVE_KERNEL_OPLOCKS=yes,samba_cv_HAVE_KERNEL_OPLOCKS=no)])
|
|
if test x"$samba_cv_HAVE_KERNEL_OPLOCKS" = x"yes"; then
|
|
AC_DEFINE(HAVE_KERNEL_OPLOCKS)
|
|
fi
|
|
|
|
|
|
AC_MSG_CHECKING([for test routines])
|
|
AC_TRY_RUN([#include "${srcdir-.}/tests/trivial.c"],
|
|
AC_MSG_RESULT(yes),
|
|
AC_MSG_ERROR([cant find test code. Aborting config]),
|
|
AC_MSG_WARN([cannot run when cross-compiling]))
|
|
|
|
AC_CACHE_CHECK([for ftruncate extend],samba_cv_HAVE_FTRUNCATE_EXTEND,[
|
|
AC_TRY_RUN([#include "${srcdir-.}/tests/ftruncate.c"],
|
|
samba_cv_HAVE_FTRUNCATE_EXTEND=yes,samba_cv_HAVE_FTRUNCATE_EXTEND=no,samba_cv_HAVE_FTRUNCATE_EXTEND=cross)])
|
|
if test x"$samba_cv_HAVE_FTRUNCATE_EXTEND" = x"yes"; then
|
|
AC_DEFINE(HAVE_FTRUNCATE_EXTEND)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for broken getgroups],samba_cv_HAVE_BROKEN_GETGROUPS,[
|
|
AC_TRY_RUN([#include "${srcdir-.}/tests/getgroups.c"],
|
|
samba_cv_HAVE_BROKEN_GETGROUPS=yes,samba_cv_HAVE_BROKEN_GETGROUPS=no,samba_cv_HAVE_BROKEN_GETGROUPS=cross)])
|
|
if test x"$samba_cv_HAVE_BROKEN_GETGROUPS" = x"yes"; then
|
|
AC_DEFINE(HAVE_BROKEN_GETGROUPS)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
|
|
SAVE_CPPFLAGS="$CPPFLAGS"
|
|
CPPFLAGS="$CPPFLAGS -I${srcdir-.}/include -I${srcdir-.}/ubiqx"
|
|
AC_TRY_COMPILE([
|
|
#define REPLACE_GETPASS 1
|
|
#define NO_CONFIG_H 1
|
|
#define main dont_declare_main
|
|
#include "${srcdir-.}/lib/getsmbpass.c"
|
|
#undef main
|
|
],[],samba_cv_REPLACE_GETPASS=yes,samba_cv_REPLACE_GETPASS=no)
|
|
CPPFLAGS="$SAVE_CPPFLAGS"
|
|
])
|
|
if test x"$samba_cv_REPLACE_GETPASS" = x"yes"; then
|
|
AC_DEFINE(REPLACE_GETPASS)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
#include <sys/types.h>
|
|
#include <netinet/in.h>
|
|
#include <arpa/inet.h>
|
|
main() { struct in_addr ip; ip.s_addr = 0x12345678;
|
|
if (strcmp(inet_ntoa(ip),"18.52.86.120") &&
|
|
strcmp(inet_ntoa(ip),"120.86.52.18")) { exit(0); }
|
|
exit(1);}],
|
|
samba_cv_REPLACE_INET_NTOA=yes,samba_cv_REPLACE_INET_NTOA=no,samba_cv_REPLACE_INET_NTOA=cross)])
|
|
if test x"$samba_cv_REPLACE_INET_NTOA" = x"yes"; then
|
|
AC_DEFINE(REPLACE_INET_NTOA)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
|
|
AC_TRY_RUN([main() { exit(getuid() != 0); }],
|
|
samba_cv_HAVE_ROOT=yes,samba_cv_HAVE_ROOT=no,samba_cv_HAVE_ROOT=cross)])
|
|
if test x"$samba_cv_HAVE_ROOT" = x"yes"; then
|
|
AC_DEFINE(HAVE_ROOT)
|
|
else
|
|
AC_MSG_WARN(running as non-root will disable some tests)
|
|
fi
|
|
|
|
netmask=no;
|
|
AC_CACHE_CHECK([for netmask ifconf],samba_cv_HAVE_NETMASK_IFCONF,[
|
|
AC_TRY_RUN([
|
|
#define HAVE_NETMASK_IFCONF 1
|
|
#define AUTOCONF 1
|
|
#include "${srcdir-.}/lib/netmask.c"],
|
|
samba_cv_HAVE_NETMASK_IFCONF=yes,samba_cv_HAVE_NETMASK_IFCONF=no,samba_cv_HAVE_NETMASK_IFCONF=cross)])
|
|
if test x"$samba_cv_HAVE_NETMASK_IFCONF" = x"yes"; then
|
|
netmask=yes;AC_DEFINE(HAVE_NETMASK_IFCONF)
|
|
fi
|
|
|
|
if test $netmask = no; then
|
|
AC_CACHE_CHECK([for netmask ifreq],samba_cv_HAVE_NETMASK_IFREQ,[
|
|
AC_TRY_RUN([
|
|
#define HAVE_NETMASK_IFREQ 1
|
|
#define AUTOCONF 1
|
|
#include "${srcdir-.}/lib/netmask.c"],
|
|
samba_cv_HAVE_NETMASK_IFREQ=yes,samba_cv_HAVE_NETMASK_IFREQ=no,samba_cv_HAVE_NETMASK_IFREQ=cross)])
|
|
if test x"$samba_cv_HAVE_NETMASK_IFREQ" = x"yes"; then
|
|
netmask=yes;AC_DEFINE(HAVE_NETMASK_IFREQ)
|
|
fi
|
|
fi
|
|
|
|
if test $netmask = no; then
|
|
AC_CACHE_CHECK([for netmask AIX],samba_cv_HAVE_NETMASK_AIX,[
|
|
AC_TRY_RUN([
|
|
#define HAVE_NETMASK_AIX 1
|
|
#define AUTOCONF 1
|
|
#include "${srcdir-.}/lib/netmask.c"],
|
|
samba_cv_HAVE_NETMASK_AIX=yes,samba_cv_HAVE_NETMASK_AIX=no,samba_cv_HAVE_NETMASK_AIX=cross)])
|
|
if test x"$samba_cv_HAVE_NETMASK_AIX" = x"yes"; then
|
|
netmask=yes;AC_DEFINE(HAVE_NETMASK_AIX)
|
|
fi
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for trapdoor seteuid],samba_cv_HAVE_TRAPDOOR_UID,[
|
|
AC_TRY_RUN([#include "${srcdir-.}/tests/trapdoor.c"],
|
|
samba_cv_HAVE_TRAPDOOR_UID=no,samba_cv_HAVE_TRAPDOOR_UID=yes,:)])
|
|
if test x"$samba_cv_HAVE_TRAPDOOR_UID" = x"yes"; then
|
|
AC_DEFINE(HAVE_TRAPDOOR_UID)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for shared mmap],samba_cv_HAVE_SHARED_MMAP,[
|
|
AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
|
|
samba_cv_HAVE_SHARED_MMAP=yes,samba_cv_HAVE_SHARED_MMAP=no,samba_cv_HAVE_SHARED_MMAP=cross)])
|
|
if test x"$samba_cv_HAVE_SHARED_MMAP" = x"yes"; then
|
|
AC_DEFINE(HAVE_SHARED_MMAP)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for fcntl locking],samba_cv_HAVE_FCNTL_LOCK,[
|
|
AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock.c"],
|
|
samba_cv_HAVE_FCNTL_LOCK=yes,samba_cv_HAVE_FCNTL_LOCK=no,samba_cv_HAVE_FCNTL_LOCK=cross)])
|
|
if test x"$samba_cv_HAVE_FCNTL_LOCK" = x"yes"; then
|
|
AC_DEFINE(HAVE_FCNTL_LOCK)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
|
|
AC_TRY_RUN([
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
|
|
#ifdef HAVE_FCNTL_H
|
|
#include <fcntl.h>
|
|
#endif
|
|
|
|
#ifdef HAVE_SYS_FCNTL_H
|
|
#include <sys/fcntl.h>
|
|
#endif
|
|
main() { struct flock64 fl64;
|
|
#if defined(F_SETLKW64) && defined(F_SETLK64) && defined(F_GETLK64)
|
|
exit(0);
|
|
#else
|
|
exit(1);
|
|
#endif
|
|
}],
|
|
samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
|
|
if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
|
|
AC_DEFINE(HAVE_STRUCT_FLOCK64)
|
|
fi
|
|
|
|
AC_CACHE_CHECK([for sysv ipc],samba_cv_HAVE_SYSV_IPC,[
|
|
AC_TRY_RUN([#include "${srcdir-.}/tests/sysv_ipc.c"],
|
|
samba_cv_HAVE_SYSV_IPC=yes,samba_cv_HAVE_SYSV_IPC=no,samba_cv_HAVE_SYSV_IPC=cross)])
|
|
if test x"$samba_cv_HAVE_SYSV_IPC" = x"yes"; then
|
|
AC_DEFINE(HAVE_SYSV_IPC)
|
|
fi
|
|
|
|
#################################################
|
|
# check for the AFS filesystem
|
|
AC_MSG_CHECKING(whether to use AFS)
|
|
AC_ARG_WITH(afs,
|
|
[ --with-afs Include AFS support
|
|
--without-afs Don't include AFS support (default)],
|
|
[ case "$withval" in
|
|
yes)
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(WITH_AFS)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
esac ],
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
|
|
#################################################
|
|
# check for the DFS auth system
|
|
AC_MSG_CHECKING(whether to use DFS auth)
|
|
AC_ARG_WITH(dfs,
|
|
[ --with-dfs Include DFS support
|
|
--without-dfs Don't include DFS support (default)],
|
|
[ case "$withval" in
|
|
yes)
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(WITH_DFS)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
esac ],
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
#################################################
|
|
# check for automount support
|
|
AC_MSG_CHECKING(whether to use AUTOMOUNT)
|
|
AC_ARG_WITH(automount,
|
|
[ --with-automount Include AUTOMOUNT support
|
|
--without-automount Don't include AUTOMOUNT support (default)],
|
|
[ case "$withval" in
|
|
yes)
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(WITH_AUTOMOUNT)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
esac ],
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
#################################################
|
|
# check for a LDAP password database
|
|
AC_MSG_CHECKING(whether to use LDAP password database)
|
|
AC_ARG_WITH(ldap,
|
|
[ --with-ldap Include LDAP support
|
|
--without-ldap Don't include LDAP support (default)],
|
|
[ case "$withval" in
|
|
yes)
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(WITH_LDAP)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
esac ],
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
#################################################
|
|
# check for a NISPLUS password database
|
|
AC_MSG_CHECKING(whether to use NISPLUS password database)
|
|
AC_ARG_WITH(nisplus,
|
|
[ --with-nisplus Include NISPLUS password database support
|
|
--without-nisplus Don't include NISPLUS password database support (default)],
|
|
[ case "$withval" in
|
|
yes)
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(WITH_NISPLUS)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
esac ],
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
#################################################
|
|
# check for a NISPLUS_HOME support
|
|
AC_MSG_CHECKING(whether to use NISPLUS_HOME)
|
|
AC_ARG_WITH(nisplus-home,
|
|
[ --with-nisplus-home Include NISPLUS_HOME support
|
|
--without-nisplus-home Don't include NISPLUS_HOME support (default)],
|
|
[ case "$withval" in
|
|
yes)
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(WITH_NISPLUS_HOME)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
esac ],
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
#################################################
|
|
# check for the secure socket layer
|
|
AC_MSG_CHECKING(whether to use SSL)
|
|
AC_ARG_WITH(ssl,
|
|
[ --with-ssl Include SSL support
|
|
--without-ssl Don't include SSL support (default)],
|
|
[ case "$withval" in
|
|
yes)
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(WITH_SSL)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
esac ],
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
#################################################
|
|
# check for experimental mmap support
|
|
AC_MSG_CHECKING(whether to use MMAP)
|
|
AC_ARG_WITH(mmap,
|
|
[ --with-mmap Include experimental MMAP support
|
|
--without-mmap Don't include MMAP support (default)],
|
|
[ case "$withval" in
|
|
yes)
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(WITH_MMAP)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
esac ],
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
#################################################
|
|
# check for syslog logging
|
|
AC_MSG_CHECKING(whether to use syslog logging)
|
|
AC_ARG_WITH(syslog,
|
|
[ --with-syslog Include experimental SYSLOG support
|
|
--without-syslog Don't include SYSLOG support (default)],
|
|
[ case "$withval" in
|
|
yes)
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(WITH_SYSLOG)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
esac ],
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
#################################################
|
|
# check for experimental netatalk resource fork support
|
|
AC_MSG_CHECKING(whether to support netatalk)
|
|
AC_ARG_WITH(netatalk,
|
|
[ --with-netatalk Include experimental Netatalk support
|
|
--without-netatalk Don't include experimental Netatalk support (default)],
|
|
[ case "$withval" in
|
|
yes)
|
|
AC_MSG_RESULT(yes)
|
|
AC_DEFINE(WITH_NETATALK)
|
|
;;
|
|
*)
|
|
AC_MSG_RESULT(no)
|
|
;;
|
|
esac ],
|
|
AC_MSG_RESULT(no)
|
|
)
|
|
|
|
|
|
#################################################
|
|
# these tests are taken from the GNU fileutils package
|
|
AC_CHECKING(how to get filesystem space usage)
|
|
space=no
|
|
|
|
# Test for statvfs64.
|
|
if test $space = no; then
|
|
# SVR4
|
|
AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
|
|
[AC_TRY_RUN([
|
|
#include <sys/types.h>
|
|
#include <sys/statvfs.h>
|
|
main ()
|
|
{
|
|
struct statvfs64 fsd;
|
|
exit (statfs64 (".", &fsd));
|
|
}],
|
|
fu_cv_sys_stat_statvfs64=yes,
|
|
fu_cv_sys_stat_statvfs64=no,
|
|
fu_cv_sys_stat_statvfs64=cross)])
|
|
if test $fu_cv_sys_stat_statvfs64 = yes; then
|
|
space=yes
|
|
AC_DEFINE(STAT_STATVFS64)
|
|
fi
|
|
fi
|
|
|
|
# Perform only the link test since it seems there are no variants of the
|
|
# statvfs function. This check is more than just AC_CHECK_FUNCS(statvfs)
|
|
# because that got a false positive on SCO OSR5. Adding the declaration
|
|
# of a `struct statvfs' causes this test to fail (as it should) on such
|
|
# systems. That system is reported to work fine with STAT_STATFS4 which
|
|
# is what it gets when this test fails.
|
|
if test $space = no; then
|
|
# SVR4
|
|
AC_CACHE_CHECK([statvfs function (SVR4)], fu_cv_sys_stat_statvfs,
|
|
[AC_TRY_LINK([#include <sys/types.h>
|
|
#include <sys/statvfs.h>],
|
|
[struct statvfs fsd; statvfs (0, &fsd);],
|
|
fu_cv_sys_stat_statvfs=yes,
|
|
fu_cv_sys_stat_statvfs=no)])
|
|
if test $fu_cv_sys_stat_statvfs = yes; then
|
|
space=yes
|
|
AC_DEFINE(STAT_STATVFS)
|
|
fi
|
|
fi
|
|
|
|
if test $space = no; then
|
|
# DEC Alpha running OSF/1
|
|
AC_MSG_CHECKING([for 3-argument statfs function (DEC OSF/1)])
|
|
AC_CACHE_VAL(fu_cv_sys_stat_statfs3_osf1,
|
|
[AC_TRY_RUN([
|
|
#include <sys/param.h>
|
|
#include <sys/types.h>
|
|
#include <sys/mount.h>
|
|
main ()
|
|
{
|
|
struct statfs fsd;
|
|
fsd.f_fsize = 0;
|
|
exit (statfs (".", &fsd, sizeof (struct statfs)));
|
|
}],
|
|
fu_cv_sys_stat_statfs3_osf1=yes,
|
|
fu_cv_sys_stat_statfs3_osf1=no,
|
|
fu_cv_sys_stat_statfs3_osf1=no)])
|
|
AC_MSG_RESULT($fu_cv_sys_stat_statfs3_osf1)
|
|
if test $fu_cv_sys_stat_statfs3_osf1 = yes; then
|
|
space=yes
|
|
AC_DEFINE(STAT_STATFS3_OSF1)
|
|
fi
|
|
fi
|
|
|
|
if test $space = no; then
|
|
# AIX
|
|
AC_MSG_CHECKING([for two-argument statfs with statfs.bsize dnl
|
|
member (AIX, 4.3BSD)])
|
|
AC_CACHE_VAL(fu_cv_sys_stat_statfs2_bsize,
|
|
[AC_TRY_RUN([
|
|
#ifdef HAVE_SYS_PARAM_H
|
|
#include <sys/param.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_MOUNT_H
|
|
#include <sys/mount.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_VFS_H
|
|
#include <sys/vfs.h>
|
|
#endif
|
|
main ()
|
|
{
|
|
struct statfs fsd;
|
|
fsd.f_bsize = 0;
|
|
exit (statfs (".", &fsd));
|
|
}],
|
|
fu_cv_sys_stat_statfs2_bsize=yes,
|
|
fu_cv_sys_stat_statfs2_bsize=no,
|
|
fu_cv_sys_stat_statfs2_bsize=no)])
|
|
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_bsize)
|
|
if test $fu_cv_sys_stat_statfs2_bsize = yes; then
|
|
space=yes
|
|
AC_DEFINE(STAT_STATFS2_BSIZE)
|
|
fi
|
|
fi
|
|
|
|
if test $space = no; then
|
|
# SVR3
|
|
AC_MSG_CHECKING([for four-argument statfs (AIX-3.2.5, SVR3)])
|
|
AC_CACHE_VAL(fu_cv_sys_stat_statfs4,
|
|
[AC_TRY_RUN([#include <sys/types.h>
|
|
#include <sys/statfs.h>
|
|
main ()
|
|
{
|
|
struct statfs fsd;
|
|
exit (statfs (".", &fsd, sizeof fsd, 0));
|
|
}],
|
|
fu_cv_sys_stat_statfs4=yes,
|
|
fu_cv_sys_stat_statfs4=no,
|
|
fu_cv_sys_stat_statfs4=no)])
|
|
AC_MSG_RESULT($fu_cv_sys_stat_statfs4)
|
|
if test $fu_cv_sys_stat_statfs4 = yes; then
|
|
space=yes
|
|
AC_DEFINE(STAT_STATFS4)
|
|
fi
|
|
fi
|
|
|
|
if test $space = no; then
|
|
# 4.4BSD and NetBSD
|
|
AC_MSG_CHECKING([for two-argument statfs with statfs.fsize dnl
|
|
member (4.4BSD and NetBSD)])
|
|
AC_CACHE_VAL(fu_cv_sys_stat_statfs2_fsize,
|
|
[AC_TRY_RUN([#include <sys/types.h>
|
|
#ifdef HAVE_SYS_PARAM_H
|
|
#include <sys/param.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_MOUNT_H
|
|
#include <sys/mount.h>
|
|
#endif
|
|
main ()
|
|
{
|
|
struct statfs fsd;
|
|
fsd.f_fsize = 0;
|
|
exit (statfs (".", &fsd));
|
|
}],
|
|
fu_cv_sys_stat_statfs2_fsize=yes,
|
|
fu_cv_sys_stat_statfs2_fsize=no,
|
|
fu_cv_sys_stat_statfs2_fsize=no)])
|
|
AC_MSG_RESULT($fu_cv_sys_stat_statfs2_fsize)
|
|
if test $fu_cv_sys_stat_statfs2_fsize = yes; then
|
|
space=yes
|
|
AC_DEFINE(STAT_STATFS2_FSIZE)
|
|
fi
|
|
fi
|
|
|
|
if test $space = no; then
|
|
# Ultrix
|
|
AC_MSG_CHECKING([for two-argument statfs with struct fs_data (Ultrix)])
|
|
AC_CACHE_VAL(fu_cv_sys_stat_fs_data,
|
|
[AC_TRY_RUN([#include <sys/types.h>
|
|
#ifdef HAVE_SYS_PARAM_H
|
|
#include <sys/param.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_MOUNT_H
|
|
#include <sys/mount.h>
|
|
#endif
|
|
#ifdef HAVE_SYS_FS_TYPES_H
|
|
#include <sys/fs_types.h>
|
|
#endif
|
|
main ()
|
|
{
|
|
struct fs_data fsd;
|
|
/* Ultrix's statfs returns 1 for success,
|
|
0 for not mounted, -1 for failure. */
|
|
exit (statfs (".", &fsd) != 1);
|
|
}],
|
|
fu_cv_sys_stat_fs_data=yes,
|
|
fu_cv_sys_stat_fs_data=no,
|
|
fu_cv_sys_stat_fs_data=no)])
|
|
AC_MSG_RESULT($fu_cv_sys_stat_fs_data)
|
|
if test $fu_cv_sys_stat_fs_data = yes; then
|
|
space=yes
|
|
AC_DEFINE(STAT_STATFS2_FS_DATA)
|
|
fi
|
|
fi
|
|
|
|
echo "checking configure summary"
|
|
AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
|
|
echo "configure OK";,
|
|
AC_MSG_ERROR([summary failure. Aborting config]),:)
|
|
|
|
AC_OUTPUT(Makefile tests/dummy client/dummy lib/dummy ubiqx/dummy
|
|
web/dummy param/dummy nmbd/dummy smbd/dummy rpc_server/dummy
|
|
rpc_client/dummy rpc_parse/dummy locking/dummy passdb/dummy
|
|
script/dummy include/dummy codepages/dummy libsmb/dummy bin/dummy
|
|
utils/dummy printing/dummy include/stamp-h)
|