1998-07-29 07:08:05 +04:00
dnl Process this file with autoconf to produce a configure script.
2003-02-17 03:10:37 +03:00
dnl We must use autotools 2.53 or above
AC_PREREQ(2.53)
1998-08-09 15:14:23 +04:00
AC_INIT(include/includes.h)
AC_CONFIG_HEADER(include/config.h)
2002-07-15 14:35:28 +04:00
2003-02-24 06:22:49 +03:00
AC_DISABLE_STATIC
AC_ENABLE_SHARED
2004-08-24 15:26:53 +04:00
SMB_VERSION_STRING=`cat $srcdir/include/version.h | grep 'SAMBA_VERSION_OFFICIAL_STRING' | cut -d '"' -f2`
2004-05-13 16:00:15 +04:00
echo "SAMBA VERSION: ${SMB_VERSION_STRING}"
2004-08-24 15:26:53 +04:00
SAMBA_VERSION_SVN_REVISION=`cat $srcdir/include/version.h | grep 'SAMBA_VERSION_SVN_REVISION' | cut -d ' ' -f3-`
2004-06-04 15:29:50 +04:00
if test -n "${SAMBA_VERSION_SVN_REVISION}";then
echo "BUILD REVISION: ${SAMBA_VERSION_SVN_REVISION}"
fi
2002-07-15 14:35:28 +04:00
#################################################
# Directory handling stuff to support both the
# legacy SAMBA directories and FHS compliant
# ones...
1998-11-19 07:15:23 +03:00
AC_PREFIX_DEFAULT(/usr/local/samba)
1998-07-29 07:08:05 +04:00
2004-03-02 21:07:06 +03:00
lockdir="\${VARDIR}/locks"
piddir="\${VARDIR}/locks"
mandir="\${prefix}/man"
logfilebase="\${VARDIR}"
privatedir="\${prefix}/private"
libdir="\${prefix}/lib"
configdir="\${LIBDIR}"
swatdir="\${prefix}/swat"
2002-07-15 14:35:28 +04:00
AC_ARG_WITH(fhs,
[ --with-fhs Use FHS-compliant paths (default=no)],
2004-03-02 21:07:06 +03:00
[ case "$withval" in
yes)
2003-12-10 00:29:25 +03:00
lockdir="\${VARDIR}/lib/samba"
piddir="\${VARDIR}/run"
mandir="\${prefix}/share/man"
2002-07-15 14:35:28 +04:00
logfilebase="\${VARDIR}/log/samba"
privatedir="\${CONFIGDIR}/private"
2002-11-27 02:18:35 +03:00
libdir="\${prefix}/lib/samba"
2004-03-02 21:07:06 +03:00
configdir="${sysconfdir}/samba"
2004-03-15 19:20:03 +03:00
swatdir="\${DATADIR}/samba/swat"
2004-03-02 21:07:06 +03:00
;;
esac])
2002-07-15 14:35:28 +04:00
#################################################
# set private directory location
AC_ARG_WITH(privatedir,
[ --with-privatedir=DIR Where to put smbpasswd ($ac_default_prefix/private)],
[ case "$withval" in
yes|no)
#
# Just in case anybody calls it without argument
#
AC_MSG_WARN([--with-privatedir called without argument - will use default])
;;
* )
privatedir="$withval"
;;
esac])
#################################################
# set lock directory location
AC_ARG_WITH(lockdir,
[ --with-lockdir=DIR Where to put lock files ($ac_default_prefix/var/locks)],
[ case "$withval" in
yes|no)
#
# Just in case anybody calls it without argument
#
AC_MSG_WARN([--with-lockdir called without argument - will use default])
;;
* )
lockdir="$withval"
;;
esac])
#################################################
# set pid directory location
AC_ARG_WITH(piddir,
[ --with-piddir=DIR Where to put pid files ($ac_default_prefix/var/locks)],
[ case "$withval" in
yes|no)
#
# Just in case anybody calls it without argument
#
AC_MSG_WARN([--with-piddir called without argument - will use default])
;;
* )
piddir="$withval"
;;
esac])
#################################################
# set SWAT directory location
AC_ARG_WITH(swatdir,
[ --with-swatdir=DIR Where to put SWAT files ($ac_default_prefix/swat)],
[ case "$withval" in
yes|no)
#
# Just in case anybody does it
#
AC_MSG_WARN([--with-swatdir called without argument - will use default])
;;
* )
swatdir="$withval"
;;
esac])
#################################################
# set configuration directory location
AC_ARG_WITH(configdir,
2004-03-19 19:58:16 +03:00
[ --with-configdir=DIR Where to put configuration files ($libdir)],
2002-07-15 14:35:28 +04:00
[ case "$withval" in
yes|no)
#
# Just in case anybody does it
#
AC_MSG_WARN([--with-configdir called without argument - will use default])
;;
* )
configdir="$withval"
;;
esac])
#################################################
# set log directory location
AC_ARG_WITH(logfilebase,
2004-03-19 19:58:16 +03:00
[ --with-logfilebase=DIR Where to put log files ($VARDIR)],
2002-07-15 14:35:28 +04:00
[ case "$withval" in
yes|no)
#
# Just in case anybody does it
#
AC_MSG_WARN([--with-logfilebase called without argument - will use default])
;;
* )
logfilebase="$withval"
;;
esac])
2004-03-19 19:58:16 +03:00
#################################################
# set lib directory location
AC_ARG_WITH(libdir,
[ --with-libdir=DIR Where to put libdir ($libdir)],
[ case "$withval" in
yes|no)
#
# Just in case anybody does it
#
AC_MSG_WARN([--with-libdir without argument - will use default])
;;
* )
libdir="$withval"
;;
esac])
#################################################
# set lib directory location
AC_ARG_WITH(mandir,
[ --with-mandir=DIR Where to put man pages ($mandir)],
[ case "$withval" in
yes|no)
#
# Just in case anybody does it
#
AC_MSG_WARN([--with-mandir without argument - will use default])
;;
* )
mandir="$withval"
;;
esac])
2003-11-26 23:58:53 +03:00
AC_ARG_WITH(cfenc,
[ --with-cfenc=HEADERDIR Use internal CoreFoundation encoding API
for optimization (Mac OS X/Darwin only)],
[
# May be in source $withval/CoreFoundation/StringEncodings.subproj.
# Should have been in framework $withval/CoreFoundation.framework/Headers.
for d in \
$withval/CoreFoundation/StringEncodings.subproj \
$withval/StringEncodings.subproj \
$withval/CoreFoundation.framework/Headers \
$withval/Headers \
$withval
do
if test -r $d/CFStringEncodingConverter.h; then
ln -sfh $d include/CoreFoundation
fi
done
])
2002-07-15 14:35:28 +04:00
AC_SUBST(configdir)
AC_SUBST(lockdir)
AC_SUBST(piddir)
AC_SUBST(logfilebase)
AC_SUBST(privatedir)
AC_SUBST(swatdir)
AC_SUBST(bindir)
AC_SUBST(sbindir)
1998-11-14 00:41:01 +03:00
dnl Unique-to-Samba variables we'll be playing with.
1998-07-29 07:08:05 +04:00
AC_SUBST(SHELL)
1998-10-04 18:56:19 +04:00
AC_SUBST(LDSHFLAGS)
2002-07-15 14:35:28 +04:00
AC_SUBST(SONAMEFLAG)
2001-07-14 06:52:41 +04:00
AC_SUBST(SHLD)
1998-10-05 16:17:01 +04:00
AC_SUBST(HOST_OS)
2003-10-14 07:02:46 +04:00
AC_SUBST(PICFLAGS)
2001-07-23 15:22:29 +04:00
AC_SUBST(PICSUFFIX)
2005-07-04 20:39:11 +04:00
AC_SUBST(libc_cv_fpie)
AC_SUBST(PIE_CFLAGS)
AC_SUBST(PIE_LDFLAGS)
1999-12-13 16:27:58 +03:00
AC_SUBST(SHLIBEXT)
2005-12-06 00:02:23 +03:00
AC_SUBST(INSTALLLIBCMD_SH)
AC_SUBST(INSTALLLIBCMD_A)
AC_SUBST(INSTALL_LIBMSRPC)
AC_SUBST(LIBMSRPC_SHARED)
AC_SUBST(LIBMSRPC)
AC_SUBST(INSTALL_LIBSMBCLIENT)
2001-09-22 11:50:08 +04:00
AC_SUBST(LIBSMBCLIENT_SHARED)
2002-07-15 14:35:28 +04:00
AC_SUBST(LIBSMBCLIENT)
2005-12-06 00:02:23 +03:00
AC_SUBST(INSTALL_LIBSMBSHAREMODES)
2005-09-06 00:36:07 +04:00
AC_SUBST(LIBSMBSHAREMODES_SHARED)
AC_SUBST(LIBSMBSHAREMODES)
2003-09-08 06:48:06 +04:00
AC_SUBST(PRINT_LIBS)
AC_SUBST(AUTH_LIBS)
AC_SUBST(ACL_LIBS)
AC_SUBST(PASSDB_LIBS)
2003-05-29 23:08:40 +04:00
AC_SUBST(IDMAP_LIBS)
2003-04-16 18:45:11 +04:00
AC_SUBST(KRB5_LIBS)
AC_SUBST(LDAP_LIBS)
2002-11-29 04:17:00 +03:00
AC_SUBST(SHLIB_PROGS)
AC_SUBST(SMBWRAPPER)
2005-04-12 22:59:49 +04:00
AC_SUBST(SMBWRAP_OBJS)
AC_SUBST(SMBWRAP_INC)
2002-11-29 04:17:00 +03:00
AC_SUBST(EXTRA_BIN_PROGS)
AC_SUBST(EXTRA_SBIN_PROGS)
AC_SUBST(EXTRA_ALL_TARGETS)
2005-09-30 21:13:37 +04:00
AC_SUBST(CONFIG_LIBS)
2001-04-06 22:37:55 +04:00
2005-07-04 20:39:11 +04:00
# Set defaults
PIE_CFLAGS=""
PIE_LDFLAGS=""
AC_ARG_ENABLE(pie, [ --enable-pie Turn on pie support if available (default=yes)])
if test "x$enable_pie" != xno
then
AC_CACHE_CHECK(for -fPIE, libc_cv_fpie, [dnl
cat > conftest.c <<EOF
int foo;
main () { return 0;}
EOF
if AC_TRY_COMMAND([${CC-cc} $CFLAGS $CPPFLAGS $LDFLAGS -pie -fPIE -o conftest conftest.c 1>&AS_MESSAGE_LOG_FD])
then
libc_cv_fpie=yes
PIE_CFLAGS="-fPIE"
PIE_LDFLAGS="-pie"
fi
rm -f conftest*])
fi
if test "x$PIE_CFLAGS" = x
then
libc_cv_fpie=no
fi
2002-07-15 14:35:28 +04:00
AC_ARG_ENABLE(debug,
[ --enable-debug Turn on compiler debugging information (default=no)],
2001-04-06 22:37:55 +04:00
[if eval "test x$enable_debug = xyes"; then
CFLAGS="${CFLAGS} -g"
fi])
2005-05-02 14:12:36 +04:00
AC_SUBST(SOCKWRAP)
AC_ARG_ENABLE(socket-wrapper,
[ --enable-socket-wrapper Turn on socket wrapper library (default=no)],
[if eval "test x$enable_socket_wrapper = xyes"; then
AC_DEFINE(SOCKET_WRAPPER,1,[Use socket wrapper library])
SOCKWRAP="\$(SOCKET_WRAPPER_OBJ)"
fi])
2005-03-25 17:37:10 +03:00
# compile with optimization and without debugging by default, but
# allow people to set their own preference.
# do this here since AC_CACHE_CHECK apparently sets the CFLAGS to "-g -O2"
# if it has no value. This prevent *very* large debug binaries from occurring
# by default.
if test "x$CFLAGS" = x; then
CFLAGS="-O"
fi
2005-05-07 21:09:16 +04:00
CFLAGS="${CFLAGS} -D_SAMBA_BUILD_"
2005-03-25 17:37:10 +03:00
2002-07-15 14:35:28 +04:00
AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings and debugging (default=no)],
2001-09-25 09:08:05 +04:00
[if eval "test x$enable_developer = xyes"; then
2003-04-26 17:49:55 +04:00
developer=yes
2005-03-31 09:06:04 +04:00
CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
2005-03-03 09:15:13 +03:00
# Add -Wdeclaration-after-statement if compiler supports it
AC_CACHE_CHECK(
[that the C compiler understands -Wdeclaration-after-statement],
samba_cv_HAVE_Wdeclaration_after_statement, [
AC_TRY_RUN_STRICT([
int main(void)
{
return 0;
}],[-Wdeclaration-after-statement],[$CPPFLAGS],[$LDFLAGS],
samba_cv_HAVE_Wdeclaration_after_statement=yes,
samba_cv_HAVE_Wdeclaration_after_statement=no,
samba_cv_HAVE_Wdeclaration_after_statement=cross)
])
if test x"$samba_cv_HAVE_Wdeclaration_after_statement" = x"yes"; then
CFLAGS="${CFLAGS} -Wdeclaration-after-statement"
fi
2001-09-25 09:08:05 +04:00
fi])
1998-11-15 02:52:49 +03:00
2002-07-15 14:35:28 +04:00
AC_ARG_ENABLE(krb5developer, [ --enable-krb5developer Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
2002-01-15 01:11:01 +03:00
[if eval "test x$enable_krb5developer = xyes"; then
2003-04-26 17:49:55 +04:00
developer=yes
2003-06-30 06:11:13 +04:00
CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
2002-01-15 01:11:01 +03:00
fi])
2002-07-15 14:35:28 +04:00
AC_ARG_ENABLE(dmalloc, [ --enable-dmalloc Enable heap debugging [default=no]])
2001-12-20 07:01:44 +03:00
if test "x$enable_dmalloc" = xyes
then
AC_DEFINE(ENABLE_DMALLOC, 1, [Define to turn on dmalloc debugging])
2002-01-09 09:38:22 +03:00
AC_DEFINE(DMALLOC_FUNC_CHECK, 1,
[Define to check invariants around some common functions])
2001-12-20 07:01:44 +03:00
LIBS="$LIBS -ldmalloc"
fi
1998-11-14 00:41:01 +03:00
dnl Checks for programs.
2003-10-01 22:54:06 +04:00
##
## for some reason this macro resets the CFLAGS
## so save and restore
##
OLD_CFLAGS=${CFLAGS}
1998-11-14 00:41:01 +03:00
AC_PROG_CC
2003-10-01 22:54:06 +04:00
CFLAGS=${OLD_CFLAGS}
2003-11-26 23:58:53 +03:00
OLD_CFLAGS=${CFLAGS}
AC_PROG_CPP
CFLAGS=${OLD_CFLAGS}
1998-11-14 00:41:01 +03:00
AC_PROG_INSTALL
1998-07-29 07:08:05 +04:00
AC_PROG_AWK
2003-02-24 06:22:49 +03:00
AC_PATH_PROG(PERL, perl)
1998-07-29 07:08:05 +04:00
2003-10-03 04:06:46 +04:00
AC_CHECK_TOOL(AR, ar)
2002-07-15 14:35:28 +04:00
dnl Check if we use GNU ld
LD=ld
AC_PROG_LD_GNU
2004-10-10 16:01:14 +04:00
dnl Certain versions of GNU ld the default is not to have the
dnl --allow-shlib-undefined flag defined. This causes a stackload of
dnl warnings when building modules.
if test "$ac_cv_prog_gnu_ld" = "yes"; then
ac_cv_gnu_ld_version=`$LD -v 2>/dev/null | head -1`
AC_MSG_CHECKING(GNU ld release date)
changequote(,)dnl
ac_cv_gnu_ld_date=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([2-9][0-9][0-9][0-9]\)[-]*\([01][0-9]\)[-]*\([0-3][0-9]\).*$,\1\2\3,p'`
changequote([,])dnl
AC_MSG_RESULT(${ac_cv_gnu_ld_date})
2004-11-23 19:35:14 +03:00
if test -n "$ac_cv_gnu_ld_date"; then
2005-09-30 21:13:37 +04:00
if test "$ac_cv_gnu_ld_date" -lt 20030217; then
ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
fi
2004-11-23 19:35:14 +03:00
else
AC_MSG_CHECKING(GNU ld release version)
changequote(,)dnl
ac_cv_gnu_ld_vernr=`echo $ac_cv_gnu_ld_version | sed -n 's,^.*\([1-9][0-9]*\.[0-9][0-9]*\).*$,\1,p'`
ac_cv_gnu_ld_vernr_major=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 1`
ac_cv_gnu_ld_vernr_minor=`echo $ac_cv_gnu_ld_vernr | cut -d '.' -f 2`
changequote([,])dnl
AC_MSG_RESULT(${ac_cv_gnu_ld_vernr})
AC_MSG_CHECKING(GNU ld release version major)
AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_major})
AC_MSG_CHECKING(GNU ld release version minor)
AC_MSG_RESULT(${ac_cv_gnu_ld_vernr_minor})
if test "$ac_cv_gnu_ld_vernr_major" -lt 2 || test "$ac_cv_gnu_ld_vernr_minor" -lt 14; then
ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
fi
fi
2004-10-10 16:01:14 +04:00
fi
2001-10-11 11:42:52 +04:00
dnl needed before AC_TRY_COMPILE
AC_ISC_POSIX
2002-12-01 06:06:18 +03:00
dnl look for executable suffix
AC_EXEEXT
1999-12-13 16:27:58 +03:00
dnl Check if C compiler understands -c and -o at the same time
AC_PROG_CC_C_O
if eval "test \"`echo '$ac_cv_prog_cc_'${ac_cc}_c_o`\" = no"; then
BROKEN_CC=
else
BROKEN_CC=#
fi
AC_SUBST(BROKEN_CC)
2003-05-12 05:20:17 +04:00
dnl Check if the C compiler understands -Werror
AC_CACHE_CHECK([that the C compiler understands -Werror],samba_cv_HAVE_Werror, [
AC_TRY_RUN_STRICT([
int main(void)
{
return 0;
}],[-Werror],[$CPPFLAGS],[$LDFLAGS],
samba_cv_HAVE_Werror=yes,samba_cv_HAVE_Werror=no,samba_cv_HAVE_Werror=cross)])
if test x"$samba_cv_HAVE_Werror" = x"yes"; then
Werror_FLAGS="-Werror"
else
dnl Check if the C compiler understands -w2
AC_CACHE_CHECK([that the C compiler understands -w2],samba_cv_HAVE_w2, [
AC_TRY_RUN_STRICT([
int main(void)
{
return 0;
}],[-w2],[$CPPFLAGS],[$LDFLAGS],
samba_cv_HAVE_w2=yes,samba_cv_HAVE_w2=no,samba_cv_HAVE_w2=cross)])
if test x"$samba_cv_HAVE_w2" = x"yes"; then
Werror_FLAGS="-w2"
fi
fi
1999-12-13 16:27:58 +03:00
dnl Check if the C compiler understands volatile (it should, being ANSI).
AC_CACHE_CHECK([that the C compiler understands volatile],samba_cv_volatile, [
AC_TRY_COMPILE([#include <sys/types.h>],[volatile int i = 0],
samba_cv_volatile=yes,samba_cv_volatile=no)])
if test x"$samba_cv_volatile" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_VOLATILE, 1, [Whether the C compiler understands volatile])
1999-12-13 16:27:58 +03:00
fi
2003-11-02 19:54:21 +03:00
UNAME_S=`(uname -s) 2>/dev/null` || UNAME_S="unknown"
2003-05-12 05:20:17 +04:00
AC_MSG_CHECKING(uname -s)
AC_MSG_RESULT(${UNAME_S})
2003-11-02 19:54:21 +03:00
UNAME_R=`(uname -r) 2>/dev/null` || UNAME_R="unknown"
2003-05-12 05:20:17 +04:00
AC_MSG_CHECKING(uname -r)
AC_MSG_RESULT(${UNAME_R})
2003-11-02 19:54:21 +03:00
UNAME_M=`(uname -m) 2>/dev/null` || UNAME_M="unknown"
2003-05-12 05:20:17 +04:00
AC_MSG_CHECKING(uname -m)
AC_MSG_RESULT(${UNAME_M})
2003-11-02 19:54:21 +03:00
UNAME_P=`(uname -p) 2>/dev/null` || UNAME_P="unknown"
2003-05-12 05:20:17 +04:00
AC_MSG_CHECKING(uname -p)
AC_MSG_RESULT(${UNAME_P})
1999-12-13 16:27:58 +03:00
1998-10-06 03:44:13 +04:00
AC_CANONICAL_SYSTEM
2000-04-01 02:30:13 +04:00
dnl Add #include for broken IRIX header files
case "$host_os" in
2001-03-27 05:41:50 +04:00
*irix6*) AC_ADD_INCLUDE(<standards.h>)
2000-04-01 02:30:13 +04:00
;;
esac
1998-10-07 08:24:04 +04:00
AC_VALIDATE_CACHE_SYSTEM_TYPE
2002-02-22 05:47:53 +03:00
DYNEXP=
2003-04-15 16:02:24 +04:00
dnl Add modules that have to be built by default here
dnl These have to be built static:
2005-09-30 21:13:37 +04:00
default_static_modules="pdb_smbpasswd pdb_tdbsam rpc_lsa rpc_samr rpc_reg rpc_lsa_ds rpc_wks rpc_svcctl rpc_ntsvcs rpc_net rpc_dfs rpc_srv rpc_spoolss rpc_eventlog auth_rhosts auth_sam auth_unix auth_winbind auth_server auth_domain auth_builtin"
2003-04-15 16:02:24 +04:00
2003-04-26 15:48:16 +04:00
dnl These are preferably build shared, and static if dlopen() is not available
2005-10-18 22:26:43 +04:00
default_shared_modules="vfs_recycle vfs_audit vfs_extd_audit vfs_full_audit vfs_netatalk vfs_fake_perms vfs_default_quota vfs_readonly vfs_cap vfs_expand_msdfs vfs_shadow_copy charset_CP850 charset_CP437 auth_script"
2003-04-26 15:48:16 +04:00
2003-04-26 17:49:55 +04:00
if test "x$developer" = xyes; then
2003-04-15 16:02:24 +04:00
default_static_modules="$default_static_modules rpc_echo"
2003-04-26 15:48:16 +04:00
default_shared_modules="$default_shared_modules charset_weird"
2003-04-15 16:02:24 +04:00
fi
1998-11-20 02:42:57 +03:00
#
# Config CPPFLAG settings for strange OS's that must be set
2004-04-10 18:26:19 +04:00
# before other tests. Do NOT invoke AC_CHECK_HEADERS within this
# case statement; its first reference must be unconditional.
1998-11-20 02:42:57 +03:00
#
1998-11-20 01:37:33 +03:00
case "$host_os" in
1998-11-20 02:42:57 +03:00
# Try to work out if this is the native HPUX compiler that uses the -Ae flag.
*hpux*)
2002-02-22 05:47:53 +03:00
1998-11-20 02:42:57 +03:00
AC_PROG_CC_FLAG(Ae)
2001-08-03 00:52:57 +04:00
# mmap on HPUX is completely broken...
2002-10-28 22:28:32 +03:00
AC_DEFINE(MMAP_BLACKLIST, 1, [Whether MMAP is broken])
1998-11-20 02:42:57 +03:00
if test $ac_cv_prog_cc_Ae = yes; then
CPPFLAGS="$CPPFLAGS -Ae"
fi
1999-12-13 16:27:58 +03:00
#
# Defines needed for HPUX support.
# HPUX has bigcrypt but (sometimes?) doesn't use it for
# password hashing - hence the USE_BOTH_CRYPT_CALLS define.
#
case `uname -r` in
*9*|*10*)
2003-02-12 23:40:29 +03:00
CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
2002-10-28 22:28:32 +03:00
AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
AC_DEFINE(_ALIGNMENT_REQUIRED,1,[Required alignment])
AC_DEFINE(_MAX_ALIGNMENT,4,[Maximum alignment])
1999-12-13 16:27:58 +03:00
;;
*11*)
2003-02-12 23:40:29 +03:00
CPPFLAGS="$CPPFLAGS -D_HPUX_SOURCE -D_POSIX_SOURCE -D_LARGEFILE64_SOURCE -D_ALIGNMENT_REQUIRED=1 -D_MAX_ALIGNMENT=4 -DMAX_POSITIVE_LOCK_OFFSET=0x1ffffffffffLL"
2002-10-28 22:28:32 +03:00
AC_DEFINE(USE_BOTH_CRYPT_CALLS, 1, [Whether to use both of HPUX' crypt calls])
AC_DEFINE(_HPUX_SOURCE, 1, [Whether to use HPUX extensions])
AC_DEFINE(_POSIX_SOURCE, 1, [Whether to use POSIX compatible functions])
AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to use large file support])
AC_DEFINE(_ALIGNMENT_REQUIRED, 1, [Required alignment])
AC_DEFINE(_MAX_ALIGNMENT, 4, [Maximum alignment])
1999-12-13 16:27:58 +03:00
;;
esac
1998-11-20 02:42:57 +03:00
;;
2002-01-01 09:55:33 +03:00
#
# CRAY Unicos has broken const handling
*unicos*)
AC_MSG_RESULT([disabling const])
CPPFLAGS="$CPPFLAGS -Dconst="
;;
1998-11-20 02:42:57 +03:00
#
1999-12-13 16:27:58 +03:00
# AIX4.x doesn't even admit to having large
1998-11-20 02:42:57 +03:00
# files *at all* unless the -D_LARGE_FILE or -D_LARGE_FILE_API flags are set.
#
*aix4*)
1999-12-13 16:27:58 +03:00
AC_MSG_RESULT([enabling large file support])
1998-11-20 02:42:57 +03:00
CPPFLAGS="$CPPFLAGS -D_LARGE_FILES"
2002-10-28 22:28:32 +03:00
AC_DEFINE(_LARGE_FILES, 1, [Whether to enable large file support])
1998-11-20 02:42:57 +03:00
;;
1999-12-13 16:27:58 +03:00
#
# Defines needed for Solaris 2.6/2.7 aka 7.0 to make it admit
# to the existance of large files..
# Note that -D_LARGEFILE64_SOURCE is different from the Sun
# recommendations on large file support, however it makes the
# compile work using gcc 2.7 and 2.8, whereas using the Sun
# recommendation makes the compile fail on gcc2.7. JRA.
2003-08-27 18:37:24 +04:00
#
# Solaris uses SYSV printing. Make sure to set that here. --jerry
1999-12-13 16:27:58 +03:00
#
*solaris*)
2003-08-27 18:37:24 +04:00
AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
1999-12-13 16:27:58 +03:00
case `uname -r` in
2004-10-27 21:03:09 +04:00
5.0|5.0.*|5.1|5.1.*|5.2|5.2.*|5.3|5.3.*|5.5|5.5.*)
2001-09-15 04:29:54 +04:00
AC_MSG_RESULT([no large file support])
;;
5.*)
1999-12-13 16:27:58 +03:00
AC_MSG_RESULT([enabling large file support])
if test "$ac_cv_prog_gcc" = yes; then
${CC-cc} -v >conftest.c 2>&1
ac_cv_gcc_compiler_version_number=`grep 'gcc version' conftest.c`
rm -fr conftest.c
case "$ac_cv_gcc_compiler_version_number" in
*"gcc version 2.6"*|*"gcc version 2.7"*)
2004-10-11 09:07:31 +04:00
CPPFLAGS="$CPPFLAGS -D_LARGEFILE64_SOURCE -D_REENTRANT"
LDFLAGS="$LDFLAGS -lthread"
2002-10-28 22:28:32 +03:00
AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
1999-12-13 16:27:58 +03:00
;;
*)
2004-10-11 09:07:31 +04:00
CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
LDFLAGS="$LDFLAGS -lthread"
2002-10-28 22:28:32 +03:00
AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
1999-12-13 16:27:58 +03:00
;;
esac
else
2004-10-11 09:07:31 +04:00
CPPFLAGS="$CPPFLAGS -D_LARGEFILE_SOURCE -D_REENTRANT -D_FILE_OFFSET_BITS=64"
LDFLAGS="$LDFLAGS -lthread"
2002-10-28 22:28:32 +03:00
AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
1999-12-13 16:27:58 +03:00
fi
;;
esac
;;
#
2003-08-27 18:37:24 +04:00
# IRIX uses SYSV printing. Make sure to set that here
#
*irix*)
AC_DEFINE(SYSV, 1, [Whether to enable System V compatibility])
;;
2005-06-06 17:30:45 +04:00
*freebsd*|*dragonfly*)
2003-09-02 04:09:31 +04:00
AC_DEFINE(FREEBSD, 1, [Whether the host os is FreeBSD])
;;
2003-08-27 18:37:24 +04:00
#
2003-01-30 20:07:28 +03:00
# VOS may need to have POSIX support and System V compatibility enabled.
#
*vos*)
case "$CPPFLAGS" in
*-D_POSIX_C_SOURCE*)
;;
*)
2004-04-07 02:12:21 +04:00
CPPFLAGS="$CPPFLAGS -D_POSIX_C_SOURCE=200112L"
AC_DEFINE(_POSIX_C_SOURCE, 200112L, [Whether to enable POSIX support])
2003-01-30 20:07:28 +03:00
;;
esac
case "$CPPFLAGS" in
*-D_SYSV*|*-D_SVID_SOURCE*)
;;
*)
CPPFLAGS="$CPPFLAGS -D_SYSV"
AC_DEFINE(_SYSV, 1, [Whether to enable System V compatibility])
2003-11-26 23:58:53 +03:00
esac
2003-01-30 20:07:28 +03:00
;;
#
1999-12-13 16:27:58 +03:00
# Tests needed for SINIX large file support.
#
*sysv4*)
if test $host = mips-sni-sysv4 ; then
AC_MSG_CHECKING([for LFS support])
old_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
AC_TRY_RUN([
#include <unistd.h>
main () {
#if _LFS64_LARGEFILE == 1
exit(0);
#else
exit(1);
#endif
}], [SINIX_LFS_SUPPORT=yes], [SINIX_LFS_SUPPORT=no], [SINIX_LFS_SUPPORT=cross])
CPPFLAGS="$old_CPPFLAGS"
if test x$SINIX_LFS_SUPPORT = xyes ; then
CPPFLAGS="-D_LARGEFILE64_SOURCE $CPPFLAGS"
2002-10-28 22:28:32 +03:00
AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
1999-12-13 16:27:58 +03:00
CFLAGS="`getconf LFS64_CFLAGS` $CFLAGS"
LDFLAGS="`getconf LFS64_LDFLAGS` $LDFLAGS"
LIBS="`getconf LFS64_LIBS` $LIBS"
fi
AC_MSG_RESULT([$SINIX_LFS_SUPPORT])
fi
;;
2001-02-27 06:37:29 +03:00
# Tests for linux LFS support. Need kernel 2.4 and glibc2.2 or greater support.
1999-12-13 16:27:58 +03:00
#
2001-02-27 06:37:29 +03:00
*linux*)
AC_MSG_CHECKING([for LFS support])
old_CPPFLAGS="$CPPFLAGS"
2001-06-07 03:07:10 +04:00
CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
2001-02-27 06:37:29 +03:00
AC_TRY_RUN([
#include <unistd.h>
#include <sys/utsname.h>
2004-01-22 13:12:26 +03:00
#include <string.h>
#include <stdlib.h>
2001-02-27 06:37:29 +03:00
main() {
#if _LFS64_LARGEFILE == 1
struct utsname uts;
char *release;
int major, minor;
/* Ensure this is glibc 2.2 or higher */
#if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
int libc_major = __GLIBC__;
int libc_minor = __GLIBC_MINOR__;
if (libc_major < 2)
exit(1);
if (libc_minor < 2)
exit(1);
#endif
/* Ensure this is kernel 2.4 or higher */
uname(&uts);
2003-09-26 18:43:36 +04:00
release = strdup(uts.release);
2001-02-27 06:37:29 +03:00
major = atoi(strsep(&release, "."));
minor = atoi(strsep(&release, "."));
if (major > 2 || (major == 2 && minor > 3))
exit(0);
exit(1);
#else
exit(1);
#endif
}
], [LINUX_LFS_SUPPORT=yes], [LINUX_LFS_SUPPORT=no], [LINUX_LFS_SUPPORT=cross])
2003-11-26 23:58:53 +03:00
CPPFLAGS="$old_CPPFLAGS"
if test x$LINUX_LFS_SUPPORT = xyes ; then
CPPFLAGS="-D_LARGEFILE64_SOURCE -D_FILE_OFFSET_BITS=64 -D_GNU_SOURCE $CPPFLAGS"
AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
AC_DEFINE(_FILE_OFFSET_BITS, 64, [File offset bits])
AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
fi
AC_MSG_RESULT([$LINUX_LFS_SUPPORT])
;;
2001-02-27 06:37:29 +03:00
2003-09-14 02:41:21 +04:00
#
# MacOS X is the *only* system that uses compose character in utf8. This
# is so horribly broken....
#
*darwin*)
2004-04-10 18:26:19 +04:00
AC_DEFINE(BROKEN_UNICODE_COMPOSE_CHARACTERS, 1, [Does this system use unicode compose characters])
2003-09-14 02:41:21 +04:00
# Add Fink directories for various packages, like dlcompat.
# Note: iconv does that explicitly below, but other packages
# don't.
2004-04-10 18:26:19 +04:00
CPPFLAGS="$CPPFLAGS -I/sw/include"
LDFLAGS="$LDFLAGS -L/sw/lib"
2003-09-14 02:41:21 +04:00
# If we have dlsym_prepend_underscore (from Fink's dlcompat),
# use that instead of plain dlsym.
2004-04-10 18:26:19 +04:00
AC_CHECK_LIB(dl,dlopen)
AC_CHECK_FUNCS(dlsym_prepend_underscore,[CPPFLAGS="$CPPFLAGS -Ddlsym=dlsym_prepend_underscore"])
2003-09-14 02:41:21 +04:00
2004-04-10 18:26:19 +04:00
# Add a system specific charset module.
2003-11-26 23:58:53 +03:00
2004-04-10 18:26:19 +04:00
default_shared_modules="$default_shared_modules charset_macosxfs"
;;
1999-12-13 16:27:58 +03:00
*hurd*)
AC_MSG_CHECKING([for LFS support])
old_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
AC_TRY_RUN([
#include <unistd.h>
main () {
#if _LFS64_LARGEFILE == 1
exit(0);
#else
exit(1);
#endif
}], [GLIBC_LFS_SUPPORT=yes], [GLIBC_LFS_SUPPORT=no], [GLIBC_LFS_SUPPORT=cross])
CPPFLAGS="$old_CPPFLAGS"
if test x$GLIBC_LFS_SUPPORT = xyes ; then
CPPFLAGS="-D_LARGEFILE64_SOURCE -D_GNU_SOURCE $CPPFLAGS"
2002-10-28 22:28:32 +03:00
AC_DEFINE(_LARGEFILE64_SOURCE, 1, [Whether to enable large file support])
AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
1999-12-13 16:27:58 +03:00
fi
AC_MSG_RESULT([$GLIBC_LFS_SUPPORT])
;;
1998-11-20 01:37:33 +03:00
esac
1998-07-29 07:08:05 +04:00
AC_INLINE
AC_HEADER_STDC
AC_HEADER_DIRENT
AC_HEADER_TIME
AC_HEADER_SYS_WAIT
2005-06-28 02:06:41 +04:00
AC_CHECK_HEADERS(aio.h arpa/inet.h sys/fcntl.h sys/select.h fcntl.h sys/time.h sys/unistd.h rpc/nettype.h)
2005-08-24 07:09:26 +04:00
AC_CHECK_HEADERS(unistd.h utime.h grp.h sys/id.h limits.h memory.h alloca.h)
2005-03-22 21:07:58 +03:00
AC_CHECK_HEADERS(rpc/rpc.h rpcsvc/nis.h rpcsvc/ypclnt.h)
2005-09-08 05:05:16 +04:00
AC_CHECK_HEADERS(sys/param.h ctype.h sys/wait.h sys/resource.h sys/ioctl.h sys/ipc.h sys/prctl.h)
2001-05-03 23:47:30 +04:00
AC_CHECK_HEADERS(sys/mman.h sys/filio.h sys/priv.h sys/shm.h string.h strings.h stdlib.h sys/socket.h)
2005-05-12 17:39:00 +04:00
AC_CHECK_HEADERS(sys/un.h)
1999-12-13 16:27:58 +03:00
AC_CHECK_HEADERS(sys/mount.h sys/vfs.h sys/fs/s5param.h sys/filsys.h termios.h termio.h)
AC_CHECK_HEADERS(sys/termio.h sys/statfs.h sys/dustat.h sys/statvfs.h stdarg.h sys/sockio.h)
2004-11-01 01:06:37 +03:00
AC_CHECK_HEADERS(sys/sysmacros.h security/_pam_macros.h dlfcn.h)
2003-04-15 01:49:49 +04:00
AC_CHECK_HEADERS(sys/syslog.h syslog.h execinfo.h)
2003-06-30 06:11:13 +04:00
AC_CHECK_HEADERS(langinfo.h locale.h)
2001-05-23 01:47:11 +04:00
2005-08-13 02:58:47 +04:00
AC_CHECK_HEADERS(rpcsvc/yp_prot.h,,,[[
#if HAVE_RPC_RPC_H
#include <rpc/rpc.h>
#endif
]])
## These fail to compile on IRIX so just check for their presence
AC_CHECK_HEADERS(sys/mode.h,,,)
2004-04-10 18:26:19 +04:00
# Look for Darwin headers
old_CPPFLAGS="$CPPFLAGS"
CPPFLAGS="-Iinclude $CPPFLAGS"
AC_CHECK_HEADERS([CoreFoundation/CFStringEncodingConverter.h], [], [AC_CHECK_HEADERS([CFStringEncodingConverter.h])])
CPPFLAGS="$old_CPPFLAGS"
2003-03-13 09:48:06 +03:00
# In valgrind 1.0.x, it's just valgrind.h. In 1.9.x+ there's a
# subdirectory of headers.
AC_CHECK_HEADERS(valgrind.h valgrind/valgrind.h valgrind/memcheck.h)
2005-08-14 16:13:32 +04:00
# check for linux on amd64 since valgrind is not quite there yet
2005-07-16 01:36:00 +04:00
case "$host_os" in
*linux*)
case "$UNAME_P" in
*x86_64*)
AC_DEFINE(HAVE_64BIT_LINUX,1,[Whether we are running on 64bit linux])
;;
esac
;;
esac
1999-12-13 16:27:58 +03:00
#
# HPUX has a bug in that including shadow.h causes a re-definition of MAXINT.
# This causes configure to fail to detect it. Check for shadow separately on HPUX.
#
case "$host_os" in
*hpux*)
AC_TRY_COMPILE([#include <shadow.h>],[struct spwd testme],
ac_cv_header_shadow_h=yes,ac_cv_header_shadow_h=no)
if test x"$ac_cv_header_shadow_h" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SHADOW_H,1,[Whether we have shadow.h])
1999-12-13 16:27:58 +03:00
fi
;;
esac
2004-11-01 01:06:37 +03:00
AC_CHECK_HEADERS(shadow.h netinet/tcp.h netinet/in_systm.h netinet/in_ip.h)
AC_CHECK_HEADERS(nss.h nss_common.h nsswitch.h ns_api.h sys/security.h security/pam_appl.h)
2001-04-13 23:12:06 +04:00
AC_CHECK_HEADERS(stropts.h poll.h)
AC_CHECK_HEADERS(sys/capability.h syscall.h sys/syscall.h)
2006-01-11 13:21:23 +03:00
AC_CHECK_HEADERS(sys/acl.h sys/attributes.h attr/xattr.h sys/xattr.h sys/extattr.h sys/uio.h sys/proplist.h)
2005-04-09 01:05:14 +04:00
AC_CHECK_HEADERS(sys/cdefs.h glob.h)
2005-03-22 21:07:58 +03:00
2005-08-13 02:58:47 +04:00
AC_CHECK_HEADERS(netinet/ip.h,,,[[
#include <sys/types.h>
#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
#include <netinet/in.h>
#if HAVE_NETINET_IN_SYSTM_H
#include <netinet/in_systm.h>
#endif
]])
AC_CHECK_HEADERS(net/if.h,,,[[
#include <sys/types.h>
#if HAVE_SYS_SOCKET_H
#include <sys/socket.h>
#endif
]])
AC_CHECK_HEADERS(security/pam_modules.h,,,[[
#if HAVE_SECURITY_PAM_APPL_H
#include <security/pam_appl.h>
#endif
]])
1998-07-29 07:08:05 +04:00
2000-10-21 05:47:25 +04:00
# For experimental utmp support (lastlog on some BSD-like systems)
AC_CHECK_HEADERS(utmp.h utmpx.h lastlog.h)
1998-09-21 13:07:08 +04:00
AC_CHECK_SIZEOF(int,cross)
AC_CHECK_SIZEOF(long,cross)
AC_CHECK_SIZEOF(short,cross)
1998-07-29 07:08:05 +04:00
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
1998-10-07 11:55:14 +04:00
AC_DIRENT_D_OFF
1998-07-29 07:08:05 +04:00
AC_CHECK_TYPE(ino_t,unsigned)
1998-10-05 07:52:57 +04:00
AC_CHECK_TYPE(loff_t,off_t)
AC_CHECK_TYPE(offset_t,loff_t)
1998-09-11 05:24:30 +04:00
AC_CHECK_TYPE(ssize_t, int)
1999-12-29 05:00:38 +03:00
AC_CHECK_TYPE(wchar_t, unsigned short)
1998-07-29 07:08:05 +04:00
2001-08-23 23:06:20 +04:00
############################################
# for cups support we need libcups, and a handful of header files
2002-07-15 14:35:28 +04:00
AC_ARG_ENABLE(cups,
[ --enable-cups Turn on CUPS support (default=auto)])
1999-12-13 16:27:58 +03:00
2002-07-15 14:35:28 +04:00
if test x$enable_cups != xno; then
AC_PATH_PROG(CUPS_CONFIG, cups-config)
2001-08-23 23:06:20 +04:00
2002-07-15 14:35:28 +04:00
if test "x$CUPS_CONFIG" != x; then
2004-07-06 23:24:34 +04:00
AC_DEFINE(HAVE_CUPS,1,[Whether we have CUPS])
2002-07-15 14:35:28 +04:00
CFLAGS="$CFLAGS `$CUPS_CONFIG --cflags`"
LDFLAGS="$LDFLAGS `$CUPS_CONFIG --ldflags`"
2003-09-08 06:48:06 +04:00
PRINT_LIBS="$PRINT_LIBS `$CUPS_CONFIG --libs`"
2004-09-06 14:22:03 +04:00
elif test x"$enable_cups" = x"yes"; then
2004-07-06 23:24:34 +04:00
AC_MSG_ERROR(Cups support required but cups-config not located. Make sure cups-devel related files are installed.)
2001-08-23 23:06:20 +04:00
fi
fi
2005-09-21 03:28:22 +04:00
AC_ARG_ENABLE(iprint,
[ --enable-iprint Turn on iPrint support (default=yes if cups is yes)])
if test x$enable_iprint != xno; then
if test "x$CUPS_CONFIG" != x; then
AC_DEFINE(HAVE_IPRINT,1,[Whether we have iPrint])
elif test x"$enable_iprint" = x"yes"; then
AC_MSG_ERROR(iPrint support required but cups not enabled. Make sure cups-devel related files are installed and that cups is enabled.)
fi
fi
2001-08-23 23:06:20 +04:00
############################################
2002-10-28 22:28:32 +03:00
# we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code
2003-01-15 21:57:41 +03:00
AC_SEARCH_LIBS(dlopen, [dl])
2002-07-15 14:35:28 +04:00
# dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
1999-12-13 16:27:58 +03:00
2001-09-03 12:50:59 +04:00
############################################
# check if the compiler can do immediate structures
AC_CACHE_CHECK([for immediate structures],samba_cv_immediate_structures, [
AC_TRY_COMPILE([
#include <stdio.h>],
[
typedef struct {unsigned x;} FOOBAR;
2002-02-22 04:54:17 +03:00
#define X_FOOBAR(x) ((FOOBAR) { x })
#define FOO_ONE X_FOOBAR(1)
FOOBAR f = FOO_ONE;
static struct {
FOOBAR y;
} f2[] = {
{FOO_ONE}
};
2001-09-03 12:50:59 +04:00
],
samba_cv_immediate_structures=yes,samba_cv_immediate_structures=no)])
if test x"$samba_cv_immediate_structures" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_IMMEDIATE_STRUCTURES,1,[Whether the compiler supports immediate structures])
2001-09-03 12:50:59 +04:00
fi
2003-03-18 14:22:52 +03:00
############################################
# check if the compiler can do immediate structures
AC_CACHE_CHECK([if the compiler will optimize out function calls],samba_cv_optimize_out_funcation_calls, [
AC_TRY_LINK([
#include <stdio.h>],
[
if (0) {
this_function_does_not_exist();
} else {
return 1;
}
],
samba_cv_optimize_out_funcation_calls=yes,samba_cv_optimize_out_funcation_calls=no)])
if test x"$samba_cv_optimize_out_funcation_calls" = x"yes"; then
AC_DEFINE(HAVE_COMPILER_WILL_OPTIMIZE_OUT_FNS,1,[Whether the compiler will optimize out function calls])
fi
2001-07-25 07:28:45 +04:00
############################################
# check for unix domain sockets
AC_CACHE_CHECK([for unix domain sockets],samba_cv_unixsocket, [
AC_TRY_COMPILE([
#include <sys/types.h>
#include <stdlib.h>
#include <stddef.h>
#include <sys/socket.h>
#include <sys/un.h>],
[
struct sockaddr_un sunaddr;
sunaddr.sun_family = AF_UNIX;
],
samba_cv_unixsocket=yes,samba_cv_unixsocket=no)])
if test x"$samba_cv_unixsocket" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UNIXSOCKET,1,[If we need to build with unixscoket support])
2001-07-25 07:28:45 +04:00
fi
2001-06-25 06:53:13 +04:00
AC_CACHE_CHECK([for socklen_t type],samba_cv_socklen_t, [
AC_TRY_COMPILE([
#include <sys/types.h>
#if STDC_HEADERS
#include <stdlib.h>
#include <stddef.h>
#endif
#include <sys/socket.h>],[socklen_t i = 0],
samba_cv_socklen_t=yes,samba_cv_socklen_t=no)])
if test x"$samba_cv_socklen_t" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SOCKLEN_T_TYPE,1,[Whether we have the variable type socklen_t])
2001-06-25 06:53:13 +04:00
fi
1999-12-13 16:27:58 +03:00
AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
AC_TRY_COMPILE([
#include <sys/types.h>
#if STDC_HEADERS
#include <stdlib.h>
#include <stddef.h>
#endif
#include <signal.h>],[sig_atomic_t i = 0],
samba_cv_sig_atomic_t=yes,samba_cv_sig_atomic_t=no)])
if test x"$samba_cv_sig_atomic_t" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SIG_ATOMIC_T_TYPE,1,[Whether we have the atomic_t variable type])
1999-12-13 16:27:58 +03:00
fi
2005-06-28 02:06:41 +04:00
AC_CACHE_CHECK([for struct timespec type],samba_cv_struct_timespec, [
AC_TRY_COMPILE([
#include <sys/types.h>
#if STDC_HEADERS
#include <stdlib.h>
#include <stddef.h>
#endif
2005-09-07 19:12:54 +04:00
#if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
2005-08-13 02:58:47 +04:00
#if HAVE_AIO_H
#include <aio.h>
#endif
],[struct timespec ts;],
2005-06-28 02:06:41 +04:00
samba_cv_struct_timespec=yes,samba_cv_struct_timespec=no)])
if test x"$samba_cv_struct_timespec" = x"yes"; then
AC_DEFINE(HAVE_STRUCT_TIMESPEC,1,[Whether we have struct timespec])
fi
2001-05-30 16:28:13 +04:00
# stupid headers have the functions but no declaration. grrrr.
AC_HAVE_DECL(errno, [#include <errno.h>])
AC_HAVE_DECL(setresuid, [#include <unistd.h>])
AC_HAVE_DECL(setresgid, [#include <unistd.h>])
AC_HAVE_DECL(asprintf, [#include <stdio.h>])
AC_HAVE_DECL(vasprintf, [#include <stdio.h>])
AC_HAVE_DECL(vsnprintf, [#include <stdio.h>])
AC_HAVE_DECL(snprintf, [#include <stdio.h>])
1998-10-15 04:55:17 +04:00
1998-08-19 19:01:03 +04:00
# and glibc has setresuid under linux but the function does
# nothing until kernel 2.1.44! very dumb.
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for real setresuid],samba_cv_have_setresuid,[
AC_TRY_RUN([#include <errno.h>
1998-08-19 19:01:03 +04:00
main() { setresuid(1,1,1); setresuid(2,2,2); exit(errno==EPERM?0:1);}],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SETRESUID,1,[Whether the system has setresuid])
1998-09-21 13:07:08 +04:00
fi
1998-08-19 19:01:03 +04:00
1999-12-13 16:27:58 +03:00
# Do the same check for setresguid...
#
AC_CACHE_CHECK([for real setresgid],samba_cv_have_setresgid,[
AC_TRY_RUN([#include <unistd.h>
#include <errno.h>
main() { errno = 0; setresgid(1,1,1); exit(errno != 0 ? (errno==EPERM ? 0 : 1) : 0);}],
samba_cv_have_setresgid=yes,samba_cv_have_setresgid=no,samba_cv_have_setresgid=cross)])
if test x"$samba_cv_have_setresgid" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SETRESGID,1,[Whether the system has setresgid])
1999-12-13 16:27:58 +03:00
fi
1998-07-29 07:08:05 +04:00
AC_FUNC_MEMCMP
###############################################
2001-04-13 23:12:06 +04:00
# Readline included by default unless explicitly asked not to
test "${with_readline+set}" != "set" && with_readline=yes
1999-12-13 16:27:58 +03:00
# test for where we get readline() from
2001-04-13 23:12:06 +04:00
AC_MSG_CHECKING(whether to use readline)
AC_ARG_WITH(readline,
2003-05-20 22:26:06 +04:00
[ --with-readline[=DIR] Look for readline include/libs in DIR (default=auto) ],
2001-04-13 23:12:06 +04:00
[ case "$with_readline" in
yes)
AC_MSG_RESULT(yes)
AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
AC_CHECK_HEADERS(readline/history.h)
AC_CHECK_HEADERS(readline.h readline/readline.h,[
2003-02-15 22:13:53 +03:00
for termlib in ncurses curses termcap terminfo termlib tinfo; do
2001-04-13 23:12:06 +04:00
AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
done
AC_CHECK_LIB(readline, rl_callback_handler_install,
[TERMLIBS="-lreadline $TERMLIBS"
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
2001-04-13 23:12:06 +04:00
break], [TERMLIBS=], $TERMLIBS)])
;;
no)
AC_MSG_RESULT(no)
;;
*)
AC_MSG_RESULT(yes)
1998-09-18 21:50:18 +04:00
2001-04-13 23:12:06 +04:00
# Needed for AC_CHECK_HEADERS and AC_CHECK_LIB to look at
# alternate readline path
_ldflags=${LDFLAGS}
_cppflags=${CPPFLAGS}
# Add additional search path
LDFLAGS="-L$with_readline/lib $LDFLAGS"
CPPFLAGS="-I$with_readline/include $CPPFLAGS"
AC_CHECK_HEADERS(readline.h history.h readline/readline.h)
AC_CHECK_HEADERS(readline/history.h)
AC_CHECK_HEADERS(readline.h readline/readline.h,[
for termlib in ncurses curses termcap terminfo termlib; do
AC_CHECK_LIB(${termlib}, tgetent, [TERMLIBS="-l${termlib}"; break])
done
AC_CHECK_LIB(readline, rl_callback_handler_install,
[TERMLDFLAGS="-L$with_readline/lib"
TERMCPPFLAGS="-I$with_readline/include"
CPPFLAGS="-I$with_readline/include $CPPFLAGS"
TERMLIBS="-lreadline $TERMLIBS"
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_LIBREADLINE,1,[Whether the system has readline])
2001-04-13 23:12:06 +04:00
break], [TERMLIBS= CPPFLAGS=$_cppflags], $TERMLIBS)])
LDFLAGS=$_ldflags
;;
esac],
AC_MSG_RESULT(no)
)
AC_SUBST(TERMLIBS)
AC_SUBST(TERMLDFLAGS)
1999-12-13 16:27:58 +03:00
2001-11-19 07:18:45 +03:00
# The readline API changed slightly from readline3 to readline4, so
# code will generate warnings on one of them unless we have a few
# special cases.
AC_CHECK_LIB(readline, rl_completion_matches,
[AC_DEFINE(HAVE_NEW_LIBREADLINE, 1,
[Do we have rl_completion_matches?])],
[],
[$TERMLIBS])
1998-08-08 09:25:04 +04:00
# 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.
1998-09-21 13:07:08 +04:00
AC_CHECK_FUNCS(connect)
if test x"$ac_cv_func_connect" = x"no"; then
case "$LIBS" in
*-lnsl*) ;;
2005-10-26 17:44:46 +04:00
*) AC_CHECK_LIB(nsl_s, connect) ;;
1998-09-21 13:07:08 +04:00
esac
case "$LIBS" in
*-lnsl*) ;;
2005-10-26 17:44:46 +04:00
*) AC_CHECK_LIB(nsl, connect) ;;
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_CONNECT,1,[Whether the system has connect()])
1998-09-21 13:07:08 +04:00
fi
fi
1998-08-08 09:25:04 +04:00
2000-10-07 04:26:04 +04:00
###############################################
2003-01-15 21:57:41 +03:00
# test for where we get yp_get_default_domain() from
AC_SEARCH_LIBS(yp_get_default_domain, [nsl])
2000-10-07 04:26:04 +04:00
AC_CHECK_FUNCS(yp_get_default_domain)
1999-12-13 16:27:58 +03:00
# Check if we have execl, if not we need to compile smbrun.
AC_CHECK_FUNCS(execl)
if test x"$ac_cv_func_execl" = x"no"; then
2002-12-06 02:02:17 +03:00
EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbrun\$(EXEEXT)"
1999-12-13 16:27:58 +03:00
fi
1998-07-29 07:08:05 +04:00
2002-07-15 14:35:28 +04:00
AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
2004-09-28 09:33:30 +04:00
AC_CHECK_FUNCS(fstat strchr utime utimes getrlimit fsync memset strlcpy strlcat setpgid)
2001-04-28 17:49:34 +04:00
AC_CHECK_FUNCS(memmove vsnprintf snprintf asprintf vasprintf setsid glob strpbrk pipe crypt16 getauthuid)
2001-09-28 22:07:11 +04:00
AC_CHECK_FUNCS(strftime sigprocmask sigblock sigaction sigset innetgr setnetgrent getnetgrent endnetgrent)
2002-03-19 05:32:39 +03:00
AC_CHECK_FUNCS(initgroups select poll rdchk getgrnam getgrent pathconf realpath)
2005-05-16 22:45:19 +04:00
AC_CHECK_FUNCS(setpriv setgidx setuidx setgroups sysconf mktime rename ftruncate chsize stat64 fstat64)
2005-08-22 20:18:02 +04:00
AC_CHECK_FUNCS(lstat64 fopen64 atexit grantpt dup2 lseek64 ftruncate64)
2001-03-31 23:06:45 +04:00
AC_CHECK_FUNCS(fseek64 fseeko64 ftell64 ftello64 setluid getpwanam setlinebuf)
2005-08-22 20:18:02 +04:00
AC_CHECK_FUNCS(opendir64 readdir64 seekdir64 telldir64 rewinddir64 closedir64)
2001-06-30 02:32:24 +04:00
AC_CHECK_FUNCS(srandom random srand rand setenv usleep strcasecmp fcvt fcvtl symlink readlink)
2003-07-17 14:03:37 +04:00
AC_CHECK_FUNCS(syslog vsyslog timegm)
2003-06-30 06:11:13 +04:00
AC_CHECK_FUNCS(setlocale nl_langinfo)
2005-01-07 02:45:53 +03:00
AC_CHECK_FUNCS(nanosleep)
2002-12-01 06:06:18 +03:00
# setbuffer, shmget, shm_open are needed for smbtorture
2003-04-15 01:49:49 +04:00
AC_CHECK_FUNCS(setbuffer shmget shm_open backtrace_symbols)
2004-02-11 22:07:02 +03:00
AC_CHECK_HEADERS(libexc.h)
AC_CHECK_LIB(exc, trace_back_stack)
1999-12-13 16:27:58 +03:00
1998-11-14 00:41:01 +03:00
# syscall() is needed for smbwrapper.
AC_CHECK_FUNCS(syscall)
1998-07-29 07:08:05 +04:00
1998-10-04 18:02:50 +04:00
AC_CHECK_FUNCS(_dup _dup2 _opendir _readdir _seekdir _telldir _closedir)
AC_CHECK_FUNCS(__dup __dup2 __opendir __readdir __seekdir __telldir __closedir)
AC_CHECK_FUNCS(__getcwd _getcwd)
AC_CHECK_FUNCS(__xstat __fxstat __lxstat)
AC_CHECK_FUNCS(_stat _lstat _fstat __stat __lstat __fstat)
1998-10-04 19:54:04 +04:00
AC_CHECK_FUNCS(_acl __acl _facl __facl _open __open _chdir __chdir)
AC_CHECK_FUNCS(_close __close _fchdir __fchdir _fcntl __fcntl)
1998-10-07 09:58:09 +04:00
AC_CHECK_FUNCS(getdents _getdents __getdents _lseek __lseek _read __read)
2003-02-14 22:42:54 +03:00
AC_CHECK_FUNCS(getdirentries _write __write _fork __fork)
1998-10-05 04:48:59 +04:00
AC_CHECK_FUNCS(_stat64 __stat64 _fstat64 __fstat64 _lstat64 __lstat64)
1998-10-07 12:12:04 +04:00
AC_CHECK_FUNCS(__sys_llseek llseek _llseek __llseek readdir64 _readdir64 __readdir64)
1998-10-05 06:14:19 +04:00
AC_CHECK_FUNCS(pread _pread __pread pread64 _pread64 __pread64)
AC_CHECK_FUNCS(pwrite _pwrite __pwrite pwrite64 _pwrite64 __pwrite64)
1998-10-05 13:01:49 +04:00
AC_CHECK_FUNCS(open64 _open64 __open64 creat64)
2005-09-08 05:05:16 +04:00
AC_CHECK_FUNCS(prctl)
AC_TRY_COMPILE([
#ifdef HAVE_SYS_PRCTL_H
#include <sys/prctl.h>
#endif
],
[int i; i = prtcl(0); ],
AC_DEFINE(HAVE_PRCTL, 1, [Whether prctl is available]),[])
1998-10-04 18:02:50 +04:00
2003-07-17 14:03:37 +04:00
#
#
#
case "$host_os" in
*linux*)
2003-09-10 19:39:21 +04:00
# glibc <= 2.3.2 has a broken getgrouplist
AC_TRY_RUN([
2003-07-17 14:03:37 +04:00
#include <unistd.h>
#include <sys/utsname.h>
main() {
/* glibc up to 2.3 has a broken getgrouplist */
#if defined(__GLIBC__) && defined(__GLIBC_MINOR__)
int libc_major = __GLIBC__;
int libc_minor = __GLIBC_MINOR__;
if (libc_major < 2)
exit(1);
if ((libc_major == 2) && (libc_minor <= 3))
exit(1);
#endif
exit(0);
}
], [linux_getgrouplist_ok=yes], [linux_getgrouplist_ok=no])
if test x"$linux_getgrouplist_ok" = x"yes"; then
AC_DEFINE(HAVE_GETGROUPLIST, 1, [Have good getgrouplist])
fi
;;
*)
AC_CHECK_FUNCS(getgrouplist)
;;
esac
1999-12-13 16:27:58 +03:00
#
# stat64 family may need <sys/stat.h> on some systems, notably ReliantUNIX
#
if test x$ac_cv_func_stat64 = xno ; then
AC_MSG_CHECKING([for stat64 in <sys/stat.h>])
AC_TRY_LINK([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <sys/stat.h>
], [struct stat64 st64; exit(stat64(".",&st64));], [ac_cv_func_stat64=yes])
AC_MSG_RESULT([$ac_cv_func_stat64])
if test x$ac_cv_func_stat64 = xyes ; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_STAT64,1,[Whether stat64() is available])
1999-12-13 16:27:58 +03:00
fi
fi
if test x$ac_cv_func_lstat64 = xno ; then
AC_MSG_CHECKING([for lstat64 in <sys/stat.h>])
AC_TRY_LINK([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <sys/stat.h>
], [struct stat64 st64; exit(lstat64(".",&st64));], [ac_cv_func_lstat64=yes])
AC_MSG_RESULT([$ac_cv_func_lstat64])
if test x$ac_cv_func_lstat64 = xyes ; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_LSTAT64,[Whether lstat64() is available])
1999-12-13 16:27:58 +03:00
fi
fi
if test x$ac_cv_func_fstat64 = xno ; then
AC_MSG_CHECKING([for fstat64 in <sys/stat.h>])
AC_TRY_LINK([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <sys/stat.h>
], [struct stat64 st64; exit(fstat64(0,&st64));], [ac_cv_func_fstat64=yes])
AC_MSG_RESULT([$ac_cv_func_fstat64])
if test x$ac_cv_func_fstat64 = xyes ; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_FSTAT64,1,[Whether fstat64() is available])
1999-12-13 16:27:58 +03:00
fi
fi
2005-07-22 05:14:09 +04:00
#################################################
# Check whether struct stat has timestamps with sub-second resolution.
# At least IRIX and Solaris have these.
#
# We check that
# all of st_mtim, st_atim and st_ctim exist
# all of the members are in fact of type struct timespec
#
# There is some conflicting standards weirdness about whether we should use
# "struct timespec" or "timespec_t". Linux doesn't have timespec_t, so we
# prefer struct timespec.
AC_CACHE_CHECK([whether struct stat has sub-second timestamps], samba_stat_hires,
[
AC_TRY_COMPILE(
[
#if TIME_WITH_SYS_TIME
# include <sys/time.h>
# include <time.h>
#else
# if HAVE_SYS_TIME_H
# include <sys/time.h>
# else
# include <time.h>
# endif
#endif
#ifdef HAVE_SYS_STAT_H
#include <sys/stat.h>
#endif
],
[
struct timespec t;
struct stat s = {0};
t.tv_sec = s.st_mtim.tv_sec;
t.tv_nsec = s.st_mtim.tv_nsec;
t.tv_sec = s.st_ctim.tv_sec;
t.tv_nsec = s.st_ctim.tv_nsec;
t.tv_sec = s.st_atim.tv_sec;
t.tv_nsec = s.st_atim.tv_nsec;
],
samba_stat_hires=yes, samba_stat_hires=no)
])
if test x"$samba_stat_hires" = x"yes" ; then
AC_DEFINE(HAVE_STAT_ST_MTIM, 1, [whether struct stat contains st_mtim])
AC_DEFINE(HAVE_STAT_ST_ATIM, 1, [whether struct stat contains st_atim])
AC_DEFINE(HAVE_STAT_ST_CTIM, 1, [whether struct stat contains st_ctim])
AC_DEFINE(HAVE_STAT_HIRES_TIMESTAMPS, 1,
[whether struct stat has sub-second timestamps])
fi
2001-10-16 05:05:49 +04:00
#####################################
# we might need the resolv library on some systems
AC_CHECK_LIB(resolv, dn_expand)
1999-12-13 16:27:58 +03:00
1998-11-19 07:15:23 +03:00
#
1998-11-20 23:44:21 +03:00
# Check for the functions putprpwnam, set_auth_parameters,
# getspnam, bigcrypt and getprpwnam in -lsec and -lsecurity
# Needed for OSF1 and HPUX.
1998-11-19 07:15:23 +03:00
#
1998-11-20 23:44:21 +03:00
1998-11-26 00:17:20 +03:00
AC_LIBTESTFUNC(security, putprpwnam)
AC_LIBTESTFUNC(sec, putprpwnam)
1998-11-19 01:04:24 +03:00
1998-11-26 00:17:20 +03:00
AC_LIBTESTFUNC(security, set_auth_parameters)
AC_LIBTESTFUNC(sec, set_auth_parameters)
1998-11-19 07:15:23 +03:00
1999-12-13 16:27:58 +03:00
# UnixWare 7.x has its getspnam in -lgen
AC_LIBTESTFUNC(gen, getspnam)
1998-11-26 00:17:20 +03:00
AC_LIBTESTFUNC(security, getspnam)
AC_LIBTESTFUNC(sec, getspnam)
1998-11-20 23:44:21 +03:00
1998-11-26 00:17:20 +03:00
AC_LIBTESTFUNC(security, bigcrypt)
AC_LIBTESTFUNC(sec, bigcrypt)
1998-11-20 23:44:21 +03:00
1998-11-26 00:17:20 +03:00
AC_LIBTESTFUNC(security, getprpwnam)
AC_LIBTESTFUNC(sec, getprpwnam)
1998-11-20 01:37:33 +03:00
2003-06-06 00:29:55 +04:00
############################################
# Check if we have libattr
2006-01-11 13:21:23 +03:00
case "$host_os" in
*osf*)
AC_SEARCH_LIBS(getproplist, [proplist])
AC_CHECK_FUNCS(getproplist fgetproplist setproplist fsetproplist)
AC_CHECK_FUNCS(delproplist fdelproplist add_proplist_entry get_proplist_entry)
AC_CHECK_FUNCS(sizeof_proplist_entry)
;;
*)
AC_SEARCH_LIBS(getxattr, [attr])
AC_CHECK_FUNCS(getxattr lgetxattr fgetxattr listxattr llistxattr)
AC_CHECK_FUNCS(flistxattr removexattr lremovexattr fremovexattr)
AC_CHECK_FUNCS(setxattr lsetxattr fsetxattr)
AC_CHECK_FUNCS(attr_get attr_list attr_set attr_remove)
AC_CHECK_FUNCS(attr_getf attr_listf attr_setf attr_removef)
;;
esac
2005-04-09 01:05:14 +04:00
# Check if we have extattr
case "$host_os" in
2005-06-06 17:30:45 +04:00
*freebsd4* | *dragonfly* )
2005-04-09 01:05:14 +04:00
AC_DEFINE(BROKEN_EXTATTR, 1, [Does extattr API work])
;;
*)
AC_CHECK_FUNCS(extattr_delete_fd extattr_delete_file extattr_delete_link)
AC_CHECK_FUNCS(extattr_get_fd extattr_get_file extattr_get_link)
AC_CHECK_FUNCS(extattr_list_fd extattr_list_file extattr_list_link)
AC_CHECK_FUNCS(extattr_set_fd extattr_set_file extattr_set_link)
;;
esac
2003-06-06 00:29:55 +04:00
2003-02-24 06:22:49 +03:00
# Assume non-shared by default and override below
BLDSHARED="false"
1998-11-14 00:41:01 +03:00
# these are the defaults, good for lots of systems
HOST_OS="$host_os"
LDSHFLAGS="-shared"
2002-07-15 14:35:28 +04:00
SONAMEFLAG="#"
2003-07-11 18:20:12 +04:00
SHLD="\${CC} \${CFLAGS}"
2003-10-14 07:02:46 +04:00
PICFLAGS=""
2001-07-23 15:22:29 +04:00
PICSUFFIX="po"
1999-12-13 16:27:58 +03:00
SHLIBEXT="so"
1998-11-14 00:41:01 +03:00
2003-02-24 06:22:49 +03:00
if test "$enable_shared" = "yes"; then
# this bit needs to be modified for each OS that is suported by
2005-04-12 22:59:49 +04:00
# smbwrapper. You need to specify how to create a shared library and
2003-02-24 06:22:49 +03:00
# how to compile C code to produce PIC object files
AC_MSG_CHECKING([ability to build shared libraries])
# and these are for particular systems
case "$host_os" in
2002-10-28 22:28:32 +03:00
*linux*) AC_DEFINE(LINUX,1,[Whether the host os is linux])
2001-07-11 05:58:37 +04:00
BLDSHARED="true"
2004-10-10 16:01:14 +04:00
if test "${ac_cv_gnu_ld_no_default_allow_shlib_undefined}" = "yes"; then
LDSHFLAGS="-shared -Wl,-Bsymbolic -Wl,--allow-shlib-undefined"
else
LDSHFLAGS="-shared -Wl,-Bsymbolic"
fi
2002-02-22 06:29:13 +03:00
DYNEXP="-Wl,--export-dynamic"
2003-10-14 07:02:46 +04:00
PICFLAGS="-fPIC"
2002-07-15 14:35:28 +04:00
SONAMEFLAG="-Wl,-soname="
2002-01-10 00:30:37 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
2002-12-04 22:47:01 +03:00
;;
2002-10-28 22:28:32 +03:00
*solaris*) AC_DEFINE(SUNOS5,1,[Whether the host os is solaris])
2001-07-11 05:58:37 +04:00
BLDSHARED="true"
2002-07-15 14:35:28 +04:00
LDSHFLAGS="-G"
SONAMEFLAG="-h "
if test "${GCC}" = "yes"; then
2003-10-14 07:02:46 +04:00
PICFLAGS="-fPIC"
2002-07-15 14:35:28 +04:00
if test "${ac_cv_prog_gnu_ld}" = "yes"; then
DYNEXP="-Wl,-E"
fi
2001-07-23 15:22:29 +04:00
else
2003-10-14 07:02:46 +04:00
PICFLAGS="-KPIC"
2002-07-15 14:35:28 +04:00
## ${CFLAGS} added for building 64-bit shared
## libs using Sun's Compiler
LDSHFLAGS="-G \${CFLAGS}"
2001-09-11 08:29:25 +04:00
PICSUFFIX="po.o"
2001-07-23 15:22:29 +04:00
fi
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
2003-03-26 22:39:27 +03:00
AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
2002-12-04 22:47:01 +03:00
;;
2002-10-28 22:28:32 +03:00
*sunos*) AC_DEFINE(SUNOS4,1,[Whether the host os is sunos4])
2001-07-11 05:58:37 +04:00
BLDSHARED="true"
2002-07-15 14:35:28 +04:00
LDSHFLAGS="-G"
SONAMEFLAG="-Wl,-h,"
2003-10-14 07:02:46 +04:00
PICFLAGS="-KPIC" # Is this correct for SunOS
2002-12-04 06:12:09 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
2003-03-26 22:39:27 +03:00
AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
2002-12-04 22:47:01 +03:00
;;
2005-06-06 17:30:45 +04:00
*netbsd* | *freebsd* | *dragonfly* )
2004-09-02 18:18:17 +04:00
BLDSHARED="true"
2002-09-25 19:19:00 +04:00
LDSHFLAGS="-shared"
DYNEXP="-Wl,--export-dynamic"
SONAMEFLAG="-Wl,-soname,"
2003-10-14 07:02:46 +04:00
PICFLAGS="-fPIC -DPIC"
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
2003-03-26 22:39:27 +03:00
AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
2002-12-04 22:47:01 +03:00
;;
2002-09-25 19:19:00 +04:00
*openbsd*) BLDSHARED="true"
2002-07-15 14:35:28 +04:00
LDSHFLAGS="-shared"
DYNEXP="-Wl,-Bdynamic"
SONAMEFLAG="-Wl,-soname,"
2003-10-14 07:02:46 +04:00
PICFLAGS="-fPIC"
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
2003-03-26 22:39:27 +03:00
AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
2002-12-04 22:47:01 +03:00
;;
2002-10-28 22:28:32 +03:00
*irix*) AC_DEFINE(IRIX,1,[Whether the host os is irix])
1999-12-13 16:27:58 +03:00
case "$host_os" in
2002-10-28 22:28:32 +03:00
*irix6*) AC_DEFINE(IRIX6,1,[Whether the host os is irix6])
1999-12-13 16:27:58 +03:00
;;
esac
2001-07-11 05:58:37 +04:00
BLDSHARED="true"
2002-07-15 14:35:28 +04:00
LDSHFLAGS="-set_version sgi1.0 -shared"
SONAMEFLAG="-soname "
2002-02-06 03:53:00 +03:00
SHLD="\${LD}"
2002-07-15 14:35:28 +04:00
if test "${GCC}" = "yes"; then
2003-10-14 07:02:46 +04:00
PICFLAGS="-fPIC"
2001-07-23 11:18:03 +04:00
else
2003-10-14 07:02:46 +04:00
PICFLAGS="-KPIC"
2001-07-23 11:18:03 +04:00
fi
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,512,[The size of a block])
2002-12-04 22:47:01 +03:00
;;
2002-10-28 22:28:32 +03:00
*aix*) AC_DEFINE(AIX,1,[Whether the host os is aix])
2001-07-11 05:58:37 +04:00
BLDSHARED="true"
2003-04-16 18:45:11 +04:00
LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-bnoentry,-berok"
2006-01-10 00:58:40 +03:00
DYNEXP="-Wl,-brtl,-bexpall,-bbigtoc"
2003-10-14 07:02:46 +04:00
PICFLAGS="-O2"
2002-09-25 19:19:00 +04:00
if test "${GCC}" != "yes"; then
2002-07-15 14:35:28 +04:00
## for funky AIX compiler using strncpy()
2002-09-25 19:19:00 +04:00
CFLAGS="$CFLAGS -D_LINUX_SOURCE_COMPAT -qmaxmem=32000"
2002-07-15 14:35:28 +04:00
fi
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,DEV_BSIZE,[The size of a block])
2004-08-25 18:24:16 +04:00
AC_DEFINE(BROKEN_STRNLEN,1,[Does strnlen work correctly])
AC_DEFINE(BROKEN_STRNDUP,1,[Does strndup work correctly])
2002-12-04 22:47:01 +03:00
;;
2002-10-28 22:28:32 +03:00
*hpux*) AC_DEFINE(HPUX,1,[Whether the host os is HPUX])
1999-12-13 16:27:58 +03:00
# Use special PIC flags for the native HP-UX compiler.
if test $ac_cv_prog_cc_Ae = yes; then
2002-03-23 11:28:19 +03:00
BLDSHARED="true"
2004-09-21 05:37:34 +04:00
SHLD="cc"
LDSHFLAGS="-b -Wl,-B,symbolic,-b,-z"
SONAMEFLAG="-Wl,+h "
2003-10-14 07:02:46 +04:00
PICFLAGS="+z"
2003-09-08 10:30:49 +04:00
elif test "${GCC}" = "yes"; then
2003-10-14 07:02:46 +04:00
PICFLAGS="-fPIC"
1999-12-13 16:27:58 +03:00
fi
2005-08-03 00:58:10 +04:00
if test "$host_cpu" = "ia64"; then
SHLIBEXT="so"
2005-11-15 02:09:46 +03:00
DYNEXP="-Wl,-E,+b/usr/local/lib/hpux32:/usr/lib/hpux32"
2005-08-03 00:58:10 +04:00
else
SHLIBEXT="sl"
2005-11-15 02:09:46 +03:00
DYNEXP="-Wl,-E,+b/usr/local/lib:/usr/lib"
2005-08-03 00:58:10 +04:00
fi
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,8192,[The size of a block])
2003-03-26 22:39:27 +03:00
AC_DEFINE(POSIX_ACL_NEEDS_MASK,1,[Does a POSIX ACL need a mask element])
2002-12-04 22:47:01 +03:00
;;
2002-12-04 06:12:09 +03:00
*qnx*) AC_DEFINE(QNX,1,[Whether the host os is qnx])
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
;;
2002-10-28 22:28:32 +03:00
*osf*) AC_DEFINE(OSF1,1,[Whether the host os is osf1])
2001-07-11 05:58:37 +04:00
BLDSHARED="true"
2002-07-15 14:35:28 +04:00
LDSHFLAGS="-shared"
SONAMEFLAG="-Wl,-soname,"
2003-10-14 07:02:46 +04:00
PICFLAGS="-fPIC"
2002-12-04 06:12:09 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
2003-03-26 22:39:27 +03:00
AC_DEFINE(BROKEN_GETGRNAM,1,[Does getgrnam work correctly])
2002-12-04 22:47:01 +03:00
;;
2002-12-04 06:12:09 +03:00
*sco*) AC_DEFINE(SCO,1,[Whether the host os is sco unix])
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
;;
2002-10-28 22:28:32 +03:00
*unixware*) AC_DEFINE(UNIXWARE,1,[Whether the host os is unixware])
2001-07-11 05:58:37 +04:00
BLDSHARED="true"
2002-07-15 14:35:28 +04:00
LDSHFLAGS="-shared"
SONAMEFLAG="-Wl,-soname,"
2003-10-14 07:02:46 +04:00
PICFLAGS="-KPIC"
2002-12-04 06:12:09 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
2002-12-04 22:47:01 +03:00
;;
2002-12-04 06:12:09 +03:00
*next2*) AC_DEFINE(NEXT2,1,[Whether the host os is NeXT v2])
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
;;
*dgux*) AC_CHECK_PROG( ROFF, groff, [groff -etpsR -Tascii -man])
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
;;
2002-10-28 22:28:32 +03:00
*sysv4*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1999-12-13 16:27:58 +03:00
case "$host" in
2002-07-15 14:35:28 +04:00
*-univel-*) if [ test "$GCC" != yes ]; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
2002-02-22 06:29:13 +03:00
fi
LDSHFLAGS="-G"
DYNEXP="-Bexport"
1999-12-13 16:27:58 +03:00
;;
2002-10-28 22:28:32 +03:00
*mips-sni-sysv4*) AC_DEFINE(RELIANTUNIX,1,[Whether the host os is reliantunix]);;
1999-12-13 16:27:58 +03:00
esac
2002-12-04 06:12:09 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
2002-12-04 22:47:01 +03:00
;;
2002-02-22 05:47:53 +03:00
2002-10-28 22:28:32 +03:00
*sysv5*) AC_DEFINE(SYSV,1,[Whether this is a system V system])
1999-12-13 16:27:58 +03:00
if [ test "$GCC" != yes ]; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_MEMSET,1,[Whether memset() is available])
1999-12-13 16:27:58 +03:00
fi
LDSHFLAGS="-G"
2002-12-04 06:12:09 +03:00
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
2002-12-04 22:47:01 +03:00
;;
2003-01-30 20:07:28 +03:00
*vos*) AC_DEFINE(STAT_ST_BLOCKSIZE,4096)
BLDSHARED="false"
LDSHFLAGS=""
;;
2003-09-14 02:41:21 +04:00
2003-09-14 23:18:48 +04:00
*darwin*) AC_DEFINE(DARWINOS,1,[Whether the host os is Darwin/MacOSX])
2003-09-14 02:41:21 +04:00
BLDSHARED="true"
LDSHFLAGS="-bundle -flat_namespace -undefined suppress"
SHLIBEXT="dylib"
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
;;
2002-12-04 22:47:01 +03:00
*)
AC_DEFINE(STAT_ST_BLOCKSIZE,512)
;;
2003-02-24 06:22:49 +03:00
esac
AC_SUBST(DYNEXP)
AC_MSG_RESULT($BLDSHARED)
AC_MSG_CHECKING([linker flags for shared libraries])
AC_MSG_RESULT([$LDSHFLAGS])
AC_MSG_CHECKING([compiler flags for position-independent code])
AC_MSG_RESULT([$PICFLAGS])
fi
1998-11-14 00:41:01 +03:00
2002-01-01 01:10:24 +03:00
#######################################################
# test whether building a shared library actually works
if test $BLDSHARED = true; then
AC_CACHE_CHECK([whether building shared libraries actually works],
[ac_cv_shlib_works],[
# try building a trivial shared library
2004-09-09 07:36:05 +04:00
ac_cv_shlib_works=no
# The $SHLD and $LDSHFLAGS variables may contain references to other
# variables so they need to be eval'ed.
2003-10-14 07:02:46 +04:00
$CC $CPPFLAGS $CFLAGS $PICFLAGS -c -o \
shlib.$PICSUFFIX ${srcdir-.}/tests/shlib.c && \
2004-09-09 07:36:05 +04:00
`eval echo $SHLD` `eval echo $LDSHFLAGS` -o "shlib.$SHLIBEXT" \
shlib.$PICSUFFIX && ac_cv_shlib_works=yes
2003-10-14 07:02:46 +04:00
rm -f "shlib.$SHLIBEXT" shlib.$PICSUFFIX
2002-01-01 01:10:24 +03:00
])
if test $ac_cv_shlib_works = no; then
BLDSHARED=false
fi
fi
1998-11-14 00:41:01 +03:00
################
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
1998-07-29 07:08:05 +04:00
AC_TRY_RUN([#include <stdio.h>
main() { long long x = 1000000; x *= x; exit(((x/1000000) == 1000000)? 0: 1); }],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_LONGLONG,1,[Whether the host supports long long's])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
2000-03-30 03:03:48 +04:00
#
# Check if the compiler supports the LL prefix on long long integers.
# AIX needs this.
AC_CACHE_CHECK([for LL suffix on long long integers],samba_cv_compiler_supports_ll, [
AC_TRY_COMPILE([#include <stdio.h>],[long long i = 0x8000000000LL],
samba_cv_compiler_supports_ll=yes,samba_cv_compiler_supports_ll=no)])
if test x"$samba_cv_compiler_supports_ll" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(COMPILER_SUPPORTS_LL,1,[Whether the compiler supports the LL prefix on long long integers])
2000-03-30 03:03:48 +04:00
fi
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for 64 bit off_t],samba_cv_SIZEOF_OFF_T,[
1998-09-03 22:40:31 +04:00
AC_TRY_RUN([#include <stdio.h>
#include <sys/stat.h>
main() { exit((sizeof(off_t) == 8) ? 0 : 1); }],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(SIZEOF_OFF_T,8,[The size of the 'off_t' type])
1998-09-21 13:07:08 +04:00
fi
1998-09-03 22:40:31 +04:00
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for off64_t],samba_cv_HAVE_OFF64_T,[
1999-12-13 16:27:58 +03:00
AC_TRY_RUN([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <stdio.h>
1998-07-29 07:08:05 +04:00
#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); }],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_OFF64_T,1,[Whether off64_t is available])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for 64 bit ino_t],samba_cv_SIZEOF_INO_T,[
2006-01-13 01:17:54 +03:00
AC_TRY_RUN([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <stdio.h>
1998-09-05 00:53:58 +04:00
#include <sys/stat.h>
main() { exit((sizeof(ino_t) == 8) ? 0 : 1); }],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(SIZEOF_INO_T,8,[The size of the 'ino_t' type])
1998-09-21 13:07:08 +04:00
fi
1998-09-05 00:53:58 +04:00
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for ino64_t],samba_cv_HAVE_INO64_T,[
1999-12-13 16:27:58 +03:00
AC_TRY_RUN([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <stdio.h>
1998-09-05 00:53:58 +04:00
#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); }],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_INO64_T,1,[Whether the 'ino64_t' type is available])
1998-09-21 13:07:08 +04:00
fi
1998-09-05 00:53:58 +04:00
2006-01-13 01:17:54 +03:00
AC_CACHE_CHECK([for 64 bit dev_t],samba_cv_SIZEOF_DEV_T,[
AC_TRY_RUN([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <stdio.h>
#include <sys/stat.h>
main() { exit((sizeof(dev_t) == 8) ? 0 : 1); }],
samba_cv_SIZEOF_DEV_T=yes,samba_cv_SIZEOF_DEV_T=no,samba_cv_SIZEOF_DEV_T=cross)])
if test x"$samba_cv_SIZEOF_DEV_T" = x"yes"; then
AC_DEFINE(SIZEOF_DEV_T,8,[The size of the 'dev_t' type])
fi
2002-01-10 03:28:09 +03:00
AC_CACHE_CHECK([for dev64_t],samba_cv_HAVE_DEV64_T,[
AC_TRY_RUN([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <stdio.h>
#include <sys/stat.h>
main() { struct stat64 st; dev64_t s; if (sizeof(dev_t) == sizeof(dev64_t)) exit(1); exit((lstat64("/dev/null", &st)==0)?0:1); }],
samba_cv_HAVE_DEV64_T=yes,samba_cv_HAVE_DEV64_T=no,samba_cv_HAVE_DEV64_T=cross)])
if test x"$samba_cv_HAVE_DEV64_T" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_DEV64_T,1,[Whether the 'dev64_t' type is available])
2002-01-10 03:28:09 +03:00
fi
2005-08-22 22:03:08 +04:00
AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIR64,[
AC_TRY_COMPILE([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <sys/types.h>
#include <dirent.h>],
[DIR64 de;],
samba_cv_HAVE_STRUCT_DIR64=yes,samba_cv_HAVE_STRUCT_DIR64=no)])
2005-08-23 23:04:08 +04:00
if test x"$samba_cv_HAVE_STRUCT_DIR64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
AC_DEFINE(HAVE_STRUCT_DIR64,1,[Whether the 'DIR64' abstract data type is available])
2005-08-22 22:03:08 +04:00
fi
1999-12-13 16:27:58 +03:00
AC_CACHE_CHECK([for struct dirent64],samba_cv_HAVE_STRUCT_DIRENT64,[
AC_TRY_COMPILE([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <sys/types.h>
#include <dirent.h>],
[struct dirent64 de;],
samba_cv_HAVE_STRUCT_DIRENT64=yes,samba_cv_HAVE_STRUCT_DIRENT64=no)])
2002-07-15 14:35:28 +04:00
if test x"$samba_cv_HAVE_STRUCT_DIRENT64" = x"yes" && test x"$ac_cv_func_readdir64" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_STRUCT_DIRENT64,1,[Whether the 'dirent64' struct is available])
1999-12-13 16:27:58 +03:00
fi
2002-01-10 04:49:09 +03:00
AC_CACHE_CHECK([for major macro],samba_cv_HAVE_DEVICE_MAJOR_FN,[
AC_TRY_RUN([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <sys/types.h>
main() { dev_t dev; int i = major(dev); return 0; }],
samba_cv_HAVE_DEVICE_MAJOR_FN=yes,samba_cv_HAVE_DEVICE_MAJOR_FN=no,samba_cv_HAVE_DEVICE_MAJOR_FN=cross)])
if test x"$samba_cv_HAVE_DEVICE_MAJOR_FN" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_DEVICE_MAJOR_FN,1,[Whether the major macro for dev_t is available])
2002-01-10 04:49:09 +03:00
fi
AC_CACHE_CHECK([for minor macro],samba_cv_HAVE_DEVICE_MINOR_FN,[
AC_TRY_RUN([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <sys/types.h>
main() { dev_t dev; int i = minor(dev); return 0; }],
samba_cv_HAVE_DEVICE_MINOR_FN=yes,samba_cv_HAVE_DEVICE_MINOR_FN=no,samba_cv_HAVE_DEVICE_MINOR_FN=cross)])
if test x"$samba_cv_HAVE_DEVICE_MINOR_FN" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_DEVICE_MINOR_FN,1,[Whether the minor macro for dev_t is available])
2002-01-10 04:49:09 +03:00
fi
2004-07-13 02:44:02 +04:00
AC_CACHE_CHECK([for makedev macro],samba_cv_HAVE_MAKEDEV,[
AC_TRY_RUN([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
#include <sys/types.h>
main() { dev_t dev = makedev(1,2); return 0; }],
samba_cv_HAVE_MAKEDEV=yes,samba_cv_HAVE_MAKEDEV=no,samba_cv_HAVE_MAKEDEV=cross)])
if test x"$samba_cv_HAVE_MAKEDEV" = x"yes"; then
AC_DEFINE(HAVE_MAKEDEV,1,[Whether the macro for makedev is available])
fi
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for unsigned char],samba_cv_HAVE_UNSIGNED_CHAR,[
1998-07-29 07:08:05 +04:00
AC_TRY_RUN([#include <stdio.h>
main() { char c; c=250; exit((c > 0)?0:1); }],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UNSIGNED_CHAR,1,[Whether the 'unsigned char' type is available])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for sin_len in sock],samba_cv_HAVE_SOCK_SIN_LEN,[
1998-07-29 07:08:05 +04:00
AC_TRY_COMPILE([#include <sys/types.h>
1998-07-30 08:54:14 +04:00
#include <sys/socket.h>
#include <netinet/in.h>],
1998-07-29 07:08:05 +04:00
[struct sockaddr_in sock; sock.sin_len = sizeof(sock);],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SOCK_SIN_LEN,1,[Whether the sockaddr_in struct has a sin_len property])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
1998-10-07 10:15:08 +04:00
AC_CACHE_CHECK([whether seekdir returns void],samba_cv_SEEKDIR_RETURNS_VOID,[
AC_TRY_COMPILE([#include <sys/types.h>
1998-10-07 12:39:37 +04:00
#include <dirent.h>
void seekdir(DIR *d, long loc) { return; }],[return 0;],
1998-10-07 10:15:08 +04:00
samba_cv_SEEKDIR_RETURNS_VOID=yes,samba_cv_SEEKDIR_RETURNS_VOID=no)])
if test x"$samba_cv_SEEKDIR_RETURNS_VOID" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(SEEKDIR_RETURNS_VOID,1,[Whether seekdir returns void])
1998-10-07 10:15:08 +04:00
fi
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for __FUNCTION__ macro],samba_cv_HAVE_FUNCTION_MACRO,[
1998-07-30 11:05:15 +04:00
AC_TRY_COMPILE([#include <stdio.h>], [printf("%s\n", __FUNCTION__);],
1998-09-21 13:07:08 +04:00
samba_cv_HAVE_FUNCTION_MACRO=yes,samba_cv_HAVE_FUNCTION_MACRO=no)])
if test x"$samba_cv_HAVE_FUNCTION_MACRO" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_FUNCTION_MACRO,1,[Whether there is a __FUNCTION__ macro])
1998-09-21 13:07:08 +04:00
fi
1998-07-30 11:05:15 +04:00
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([if gettimeofday takes tz argument],samba_cv_HAVE_GETTIMEOFDAY_TZ,[
1998-07-29 07:08:05 +04:00
AC_TRY_RUN([
#include <sys/time.h>
#include <unistd.h>
main() { struct timeval tv; exit(gettimeofday(&tv, NULL));}],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_GETTIMEOFDAY_TZ,1,[Whether gettimeofday() is available])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
2003-10-24 20:08:03 +04:00
AC_CACHE_CHECK([for va_copy],samba_cv_HAVE_VA_COPY,[
2002-07-15 14:35:28 +04:00
AC_TRY_LINK([#include <stdarg.h>
2003-10-24 20:08:03 +04:00
va_list ap1,ap2;], [va_copy(ap1,ap2);],
2003-10-31 04:30:02 +03:00
samba_cv_HAVE_VA_COPY=yes,
samba_cv_HAVE_VA_COPY=no)])
2002-07-15 14:35:28 +04:00
if test x"$samba_cv_HAVE_VA_COPY" = x"yes"; then
2003-10-24 20:08:03 +04:00
AC_DEFINE(HAVE_VA_COPY,1,[Whether va_copy() is available])
else
AC_CACHE_CHECK([for __va_copy],samba_cv_HAVE___VA_COPY,[
AC_TRY_LINK([#include <stdarg.h>
2003-10-31 04:30:02 +03:00
va_list ap1,ap2;], [__va_copy(ap1,ap2);],
samba_cv_HAVE___VA_COPY=yes,
samba_cv_HAVE___VA_COPY=no)])
2003-10-24 20:08:03 +04:00
if test x"$samba_cv_HAVE___VA_COPY" = x"yes"; then
AC_DEFINE(HAVE___VA_COPY,1,[Whether __va_copy() is available])
fi
2002-07-15 14:35:28 +04:00
fi
2001-04-27 06:35:42 +04:00
AC_CACHE_CHECK([for C99 vsnprintf],samba_cv_HAVE_C99_VSNPRINTF,[
AC_TRY_RUN([
#include <sys/types.h>
#include <stdarg.h>
void foo(const char *format, ...) {
va_list ap;
int len;
2001-05-01 08:16:28 +04:00
char buf[5];
2002-02-22 04:54:17 +03:00
va_start(ap, format);
len = vsnprintf(buf, 0, format, ap);
va_end(ap);
if (len != 5) exit(1);
2001-04-27 06:35:42 +04:00
va_start(ap, format);
len = vsnprintf(0, 0, format, ap);
va_end(ap);
2001-05-01 08:16:28 +04:00
if (len != 5) exit(1);
if (snprintf(buf, 3, "hello") != 5 || strcmp(buf, "he") != 0) exit(1);
exit(0);
2001-04-27 06:35:42 +04:00
}
main() { foo("hello"); }
],
samba_cv_HAVE_C99_VSNPRINTF=yes,samba_cv_HAVE_C99_VSNPRINTF=no,samba_cv_HAVE_C99_VSNPRINTF=cross)])
if test x"$samba_cv_HAVE_C99_VSNPRINTF" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_C99_VSNPRINTF,1,[Whether there is a C99 compliant vsnprintf])
2001-04-27 06:35:42 +04:00
fi
1998-07-29 07:08:05 +04:00
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for broken readdir],samba_cv_HAVE_BROKEN_READDIR,[
1998-07-29 07:08:05 +04:00
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);} ],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_BROKEN_READDIR,1,[Whether readdir() is broken])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for utimbuf],samba_cv_HAVE_UTIMBUF,[
1998-07-29 07:08:05 +04:00
AC_TRY_COMPILE([#include <sys/types.h>
#include <utime.h>],
[struct utimbuf tbuf; tbuf.actime = 0; tbuf.modtime = 1; exit(utime("foo.c",&tbuf));],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UTIMBUF,1,[Whether struct utimbuf is available])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
2003-06-07 02:33:43 +04:00
##############
# Check utmp details, but only if our OS offers utmp.h
if test x"$ac_cv_header_utmp_h" = x"yes"; then
2000-10-21 05:47:25 +04:00
dnl utmp and utmpx come in many flavours
dnl We need to check for many of them
dnl But we don't need to do each and every one, because our code uses
dnl mostly just the utmp (not utmpx) fields.
AC_CHECK_FUNCS(pututline pututxline updwtmp updwtmpx getutmpx)
AC_CACHE_CHECK([for ut_name in utmp],samba_cv_HAVE_UT_UT_NAME,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmp.h>],
[struct utmp ut; ut.ut_name[0] = 'a';],
samba_cv_HAVE_UT_UT_NAME=yes,samba_cv_HAVE_UT_UT_NAME=no,samba_cv_HAVE_UT_UT_NAME=cross)])
if test x"$samba_cv_HAVE_UT_UT_NAME" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UT_UT_NAME,1,[Whether the utmp struct has a property ut_name])
2000-10-21 05:47:25 +04:00
fi
AC_CACHE_CHECK([for ut_user in utmp],samba_cv_HAVE_UT_UT_USER,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmp.h>],
[struct utmp ut; ut.ut_user[0] = 'a';],
samba_cv_HAVE_UT_UT_USER=yes,samba_cv_HAVE_UT_UT_USER=no,samba_cv_HAVE_UT_UT_USER=cross)])
if test x"$samba_cv_HAVE_UT_UT_USER" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UT_UT_USER,1,[Whether the utmp struct has a property ut_user])
2000-10-21 05:47:25 +04:00
fi
AC_CACHE_CHECK([for ut_id in utmp],samba_cv_HAVE_UT_UT_ID,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmp.h>],
[struct utmp ut; ut.ut_id[0] = 'a';],
samba_cv_HAVE_UT_UT_ID=yes,samba_cv_HAVE_UT_UT_ID=no,samba_cv_HAVE_UT_UT_ID=cross)])
if test x"$samba_cv_HAVE_UT_UT_ID" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UT_UT_ID,1,[Whether the utmp struct has a property ut_id])
2000-10-21 05:47:25 +04:00
fi
AC_CACHE_CHECK([for ut_host in utmp],samba_cv_HAVE_UT_UT_HOST,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmp.h>],
[struct utmp ut; ut.ut_host[0] = 'a';],
samba_cv_HAVE_UT_UT_HOST=yes,samba_cv_HAVE_UT_UT_HOST=no,samba_cv_HAVE_UT_UT_HOST=cross)])
if test x"$samba_cv_HAVE_UT_UT_HOST" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UT_UT_HOST,1,[Whether the utmp struct has a property ut_host])
2000-10-21 05:47:25 +04:00
fi
AC_CACHE_CHECK([for ut_time in utmp],samba_cv_HAVE_UT_UT_TIME,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmp.h>],
[struct utmp ut; time_t t; ut.ut_time = t;],
samba_cv_HAVE_UT_UT_TIME=yes,samba_cv_HAVE_UT_UT_TIME=no,samba_cv_HAVE_UT_UT_TIME=cross)])
if test x"$samba_cv_HAVE_UT_UT_TIME" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UT_UT_TIME,1,[Whether the utmp struct has a property ut_time])
2000-10-21 05:47:25 +04:00
fi
AC_CACHE_CHECK([for ut_tv in utmp],samba_cv_HAVE_UT_UT_TV,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmp.h>],
[struct utmp ut; struct timeval tv; ut.ut_tv = tv;],
samba_cv_HAVE_UT_UT_TV=yes,samba_cv_HAVE_UT_UT_TV=no,samba_cv_HAVE_UT_UT_TV=cross)])
if test x"$samba_cv_HAVE_UT_UT_TV" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UT_UT_TV,1,[Whether the utmp struct has a property ut_tv])
2000-10-21 05:47:25 +04:00
fi
AC_CACHE_CHECK([for ut_type in utmp],samba_cv_HAVE_UT_UT_TYPE,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmp.h>],
[struct utmp ut; ut.ut_type = 0;],
samba_cv_HAVE_UT_UT_TYPE=yes,samba_cv_HAVE_UT_UT_TYPE=no,samba_cv_HAVE_UT_UT_TYPE=cross)])
if test x"$samba_cv_HAVE_UT_UT_TYPE" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UT_UT_TYPE,1,[Whether the utmp struct has a property ut_type])
2000-10-21 05:47:25 +04:00
fi
AC_CACHE_CHECK([for ut_pid in utmp],samba_cv_HAVE_UT_UT_PID,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmp.h>],
[struct utmp ut; ut.ut_pid = 0;],
samba_cv_HAVE_UT_UT_PID=yes,samba_cv_HAVE_UT_UT_PID=no,samba_cv_HAVE_UT_UT_PID=cross)])
if test x"$samba_cv_HAVE_UT_UT_PID" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UT_UT_PID,1,[Whether the utmp struct has a property ut_pid])
2000-10-21 05:47:25 +04:00
fi
AC_CACHE_CHECK([for ut_exit in utmp],samba_cv_HAVE_UT_UT_EXIT,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmp.h>],
[struct utmp ut; ut.ut_exit.e_exit = 0;],
samba_cv_HAVE_UT_UT_EXIT=yes,samba_cv_HAVE_UT_UT_EXIT=no,samba_cv_HAVE_UT_UT_EXIT=cross)])
if test x"$samba_cv_HAVE_UT_UT_EXIT" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UT_UT_EXIT,1,[Whether the utmp struct has a property ut_exit])
2000-10-21 05:47:25 +04:00
fi
AC_CACHE_CHECK([for ut_addr in utmp],samba_cv_HAVE_UT_UT_ADDR,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmp.h>],
[struct utmp ut; ut.ut_addr = 0;],
samba_cv_HAVE_UT_UT_ADDR=yes,samba_cv_HAVE_UT_UT_ADDR=no,samba_cv_HAVE_UT_UT_ADDR=cross)])
if test x"$samba_cv_HAVE_UT_UT_ADDR" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UT_UT_ADDR,1,[Whether the utmp struct has a property ut_addr])
2000-10-21 05:47:25 +04:00
fi
if test x$ac_cv_func_pututline = xyes ; then
AC_CACHE_CHECK([whether pututline returns pointer],samba_cv_PUTUTLINE_RETURNS_UTMP,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmp.h>],
[struct utmp utarg; struct utmp *utreturn; utreturn = pututline(&utarg);],
samba_cv_PUTUTLINE_RETURNS_UTMP=yes,samba_cv_PUTUTLINE_RETURNS_UTMP=no)])
if test x"$samba_cv_PUTUTLINE_RETURNS_UTMP" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(PUTUTLINE_RETURNS_UTMP,1,[Whether pututline returns pointer])
2000-10-21 05:47:25 +04:00
fi
fi
2000-03-22 22:03:12 +03:00
AC_CACHE_CHECK([for ut_syslen in utmpx],samba_cv_HAVE_UX_UT_SYSLEN,[
2000-10-21 05:47:25 +04:00
AC_TRY_COMPILE([#include <sys/types.h>
#include <utmpx.h>],
2000-03-22 22:03:12 +03:00
[struct utmpx ux; ux.ut_syslen = 0;],
samba_cv_HAVE_UX_UT_SYSLEN=yes,samba_cv_HAVE_UX_UT_SYSLEN=no,samba_cv_HAVE_UX_UT_SYSLEN=cross)])
if test x"$samba_cv_HAVE_UX_UT_SYSLEN" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UX_UT_SYSLEN,1,[Whether the utmpx struct has a property ut_syslen])
2000-03-22 22:03:12 +03:00
fi
2003-06-07 02:33:43 +04:00
fi
# end utmp details
2001-07-25 07:05:00 +04:00
2003-02-24 06:22:49 +03:00
ICONV_LOCATION=standard
2004-04-15 03:31:03 +04:00
LOOK_DIRS="/usr /usr/local /sw /opt"
2001-07-25 07:05:00 +04:00
AC_ARG_WITH(libiconv,
2001-08-24 23:58:28 +04:00
[ --with-libiconv=BASEDIR Use libiconv in BASEDIR/lib and BASEDIR/include (default=auto) ],
2003-02-24 06:22:49 +03:00
[
if test "$withval" = "no" ; then
2003-09-18 04:05:19 +04:00
AC_MSG_ERROR([argument to --with-libiconv must be a directory])
2003-02-24 06:22:49 +03:00
else
if test "$withval" != "yes" ; then
2003-08-14 05:12:12 +04:00
ICONV_PATH_SPEC=yes
LOOK_DIRS="$withval"
2003-02-24 06:22:49 +03:00
fi
fi
])
2001-07-25 07:05:00 +04:00
2003-02-24 06:22:49 +03:00
for i in $LOOK_DIRS ; do
save_LIBS=$LIBS
save_LDFLAGS=$LDFLAGS
save_CPPFLAGS=$CPPFLAGS
2004-07-21 23:23:48 +04:00
ICONV_FOUND="no"
unset libext
2003-08-15 01:07:30 +04:00
CPPFLAGS="$CPPFLAGS -I$i/include"
2003-08-14 05:12:12 +04:00
dnl This is here to handle -withval stuff for --with-libiconv
2003-11-07 02:37:58 +03:00
dnl Perhaps we should always add a -L
2004-04-15 03:31:03 +04:00
dnl Check lib and lib32 library variants to cater for IRIX ABI-specific
2004-07-21 23:23:48 +04:00
dnl installation paths. This gets a little tricky since we might have iconv
dnl in both libiconv and in libc. In this case the jm_ICONV test will always
dnl succeed when the header is found. To counter this, make sure the
dnl library directory is there and check the ABI directory first (which
dnl should be harmless on other systems.
2005-08-03 00:58:10 +04:00
dnl For IA64 HPUX systems, the libs are located in lib/hpux32 instead of lib.
for l in "lib32" "lib" "lib/hpux32"; do
2004-07-21 23:23:48 +04:00
if test -d "$i/$l" ; then
LDFLAGS="$save_LDFLAGS -L$i/$l"
2005-09-30 21:13:37 +04:00
LIBS=
export LDFLAGS LIBS CPPFLAGS
2003-02-24 06:22:49 +03:00
dnl Try to find iconv(3)
2004-07-21 23:23:48 +04:00
jm_ICONV($i/$l)
if test x"$ICONV_FOUND" = "xyes" ; then
2005-09-30 21:13:37 +04:00
libext="$l"
break;
fi
2004-04-15 03:31:03 +04:00
fi
done
2003-02-24 06:22:49 +03:00
2004-07-21 23:23:48 +04:00
if test x"$ICONV_FOUND" = "xyes" ; then
2004-01-29 17:03:48 +03:00
LDFLAGS=$save_LDFLAGS
2004-04-15 03:31:03 +04:00
LIB_ADD_DIR(LDFLAGS, "$i/$libext")
2003-02-24 06:22:49 +03:00
CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
2005-09-30 21:13:37 +04:00
LIBS="$save_LIBS"
2003-02-24 06:22:49 +03:00
ICONV_LOCATION=$i
export LDFLAGS LIBS CPPFLAGS
2003-08-13 23:35:37 +04:00
dnl Now, check for a working iconv ... we want to do it here because
dnl there might be a working iconv further down the list of LOOK_DIRS
############
# check for iconv in libc
ic_save_LIBS="$LIBS"
2003-08-14 05:12:12 +04:00
if test x"$ICONV_PATH_SPEC" = "xyes" ; then
2004-07-21 23:23:48 +04:00
LIBS="$LIBS -L$ICONV_LOCATION/$libext"
2003-08-14 05:12:12 +04:00
fi
2003-11-07 02:37:58 +03:00
if test x"$jm_cv_lib_iconv" != x; then
LIBS="$LIBS -l$jm_cv_lib_iconv"
fi
2003-08-16 00:30:52 +04:00
dnl AC_CACHE_CHECK([for working iconv],samba_cv_HAVE_NATIVE_ICONV,[
2003-08-16 00:09:12 +04:00
default_dos_charset=no
default_display_charset=no
default_unix_charset=no
# check for default dos charset name
for j in CP850 IBM850 ; do
rjs_CHARSET($j)
if test x"$ICONV_CHARSET" = x"$j"; then
default_dos_charset="\"$j\""
break
fi
done
# check for default display charset name
for j in ASCII 646 ; do
rjs_CHARSET($j)
if test x"$ICONV_CHARSET" = x"$j"; then
default_display_charset="\"$j\""
break
fi
done
# check for default unix charset name
for j in UTF-8 UTF8 ; do
rjs_CHARSET($j)
if test x"$ICONV_CHARSET" = x"$j"; then
default_unix_charset="\"$j\""
break
fi
done
if test "$default_dos_charset" != "no" -a \
"$default_dos_charset" != "cross" -a \
"$default_display_charset" != "no" -a \
"$default_display_charset" != "cross" -a \
"$default_unix_charset" != "no" -a \
"$default_unix_charset" != "cross"
then
samba_cv_HAVE_NATIVE_ICONV=yes
else if test "$default_dos_charset" = "cross" -o \
"$default_display_charset" = "cross" -o \
"$default_unix_charset" = "cross"
then
samba_cv_HAVE_NATIVE_ICONV=cross
else
samba_cv_HAVE_NATIVE_ICONV=no
fi
fi
2003-08-16 00:30:52 +04:00
dnl ])
2003-08-16 00:09:12 +04:00
2003-08-13 23:35:37 +04:00
LIBS="$ic_save_LIBS"
if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then
2003-10-24 20:08:03 +04:00
CPPFLAGS=$save_CPPFLAGS
2003-11-07 02:37:58 +03:00
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
if test x"$jm_cv_lib_iconv" != x; then
LIBS="$LIBS -l$jm_cv_lib_iconv"
fi
2003-11-10 08:34:51 +03:00
dnl Add the flags we need to CPPFLAGS and LDFLAGS
2003-10-24 20:08:03 +04:00
CFLAGS_ADD_DIR(CPPFLAGS, "$i/include")
2004-04-15 03:31:03 +04:00
LIB_ADD_DIR(LDFLAGS, "$i/$libext")
2003-10-24 20:08:03 +04:00
export CPPFLAGS
2003-08-13 23:35:37 +04:00
AC_DEFINE(HAVE_NATIVE_ICONV,1,[Whether to use native iconv])
2003-08-16 00:09:12 +04:00
AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,$default_dos_charset,[Default dos charset name])
AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,$default_display_charset,[Default display charset name])
AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,$default_unix_charset,[Default unix charset name])
2003-08-13 23:35:37 +04:00
break
fi
dnl We didn't find a working iconv, so keep going
2003-02-24 06:22:49 +03:00
fi
2003-08-14 01:29:59 +04:00
dnl We only need to clean these up here for the next pass through the loop
CPPFLAGS=$save_CPPFLAGS
2003-08-13 23:35:37 +04:00
LDFLAGS=$save_LDFLAGS
LIBS=$save_LIBS
export LDFLAGS LIBS CPPFLAGS
2003-02-24 06:22:49 +03:00
done
2004-04-15 03:31:03 +04:00
unset libext
2001-07-25 07:05:00 +04:00
2001-07-04 11:15:53 +04:00
2003-02-24 06:22:49 +03:00
if test x"$ICONV_FOUND" = x"no" -o x"$samba_cv_HAVE_NATIVE_ICONV" != x"yes" ; then
AC_MSG_WARN([Sufficient support for iconv function was not found.
Install libiconv from http://freshmeat.net/projects/libiconv/ for better charset compatibility!])
2003-09-30 05:30:15 +04:00
AC_DEFINE_UNQUOTED(DEFAULT_DOS_CHARSET,"ASCII",[Default dos charset name])
2003-08-16 01:14:35 +04:00
AC_DEFINE_UNQUOTED(DEFAULT_DISPLAY_CHARSET,"ASCII",[Default display charset name])
AC_DEFINE_UNQUOTED(DEFAULT_UNIX_CHARSET,"UTF8",[Default unix charset name])
2003-02-24 06:22:49 +03:00
fi
2001-07-04 11:15:53 +04:00
2000-06-08 11:40:55 +04:00
AC_CACHE_CHECK([for Linux kernel oplocks],samba_cv_HAVE_KERNEL_OPLOCKS_LINUX,[
AC_TRY_RUN([
#include <sys/types.h>
#include <fcntl.h>
#ifndef F_GETLEASE
2000-06-09 10:55:25 +04:00
#define F_GETLEASE 1025
2000-06-08 11:40:55 +04:00
#endif
main() {
int fd = open("/dev/null", O_RDONLY);
return fcntl(fd, F_GETLEASE, 0) == -1;
}
],
samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=no,samba_cv_HAVE_KERNEL_OPLOCKS_LINUX=cross)])
if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_LINUX" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_KERNEL_OPLOCKS_LINUX,1,[Whether to use linux kernel oplocks])
2000-06-08 11:40:55 +04:00
fi
2000-06-14 11:10:15 +04:00
AC_CACHE_CHECK([for kernel change notify support],samba_cv_HAVE_KERNEL_CHANGE_NOTIFY,[
AC_TRY_RUN([
#include <sys/types.h>
#include <fcntl.h>
#include <signal.h>
#ifndef F_NOTIFY
#define F_NOTIFY 1026
#endif
main() {
2000-06-29 12:23:56 +04:00
exit(fcntl(open("/tmp", O_RDONLY), F_NOTIFY, 0) == -1 ? 1 : 0);
2000-06-14 11:10:15 +04:00
}
],
samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=yes,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=no,samba_cv_HAVE_KERNEL_CHANGE_NOTIFY=cross)])
if test x"$samba_cv_HAVE_KERNEL_CHANGE_NOTIFY" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_KERNEL_CHANGE_NOTIFY,1,[Whether kernel notifies changes])
2000-06-14 11:10:15 +04:00
fi
2000-06-15 13:35:37 +04:00
AC_CACHE_CHECK([for kernel share modes],samba_cv_HAVE_KERNEL_SHARE_MODES,[
AC_TRY_RUN([
#include <sys/types.h>
#include <fcntl.h>
#include <signal.h>
#include <sys/file.h>
#ifndef LOCK_MAND
#define LOCK_MAND 32
#define LOCK_READ 64
#endif
main() {
exit(flock(open("/dev/null", O_RDWR), LOCK_MAND|LOCK_READ) != 0);
}
],
samba_cv_HAVE_KERNEL_SHARE_MODES=yes,samba_cv_HAVE_KERNEL_SHARE_MODES=no,samba_cv_HAVE_KERNEL_SHARE_MODES=cross)])
if test x"$samba_cv_HAVE_KERNEL_SHARE_MODES" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_KERNEL_SHARE_MODES,1,[Whether the kernel supports share modes])
2000-06-15 13:35:37 +04:00
fi
2000-06-14 11:10:15 +04:00
2000-06-08 11:40:55 +04:00
AC_CACHE_CHECK([for IRIX kernel oplock type definitions],samba_cv_HAVE_KERNEL_OPLOCKS_IRIX,[
1998-09-23 05:48:45 +04:00
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;],
2000-06-08 11:40:55 +04:00
samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=yes,samba_cv_HAVE_KERNEL_OPLOCKS_IRIX=no)])
if test x"$samba_cv_HAVE_KERNEL_OPLOCKS_IRIX" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_KERNEL_OPLOCKS_IRIX,1,[Whether IRIX kernel oplock type definitions are available])
1998-09-23 05:48:45 +04:00
fi
1998-09-26 03:40:49 +04:00
AC_CACHE_CHECK([for irix specific capabilities],samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES,[
1998-09-29 01:43:48 +04:00
AC_TRY_RUN([#include <sys/types.h>
#include <sys/capability.h>
main() {
cap_t cap;
1998-09-26 03:40:49 +04:00
if ((cap = cap_get_proc()) == NULL)
exit(1);
cap->cap_effective |= CAP_NETWORK_MGT;
cap->cap_inheritable |= CAP_NETWORK_MGT;
1998-09-29 01:43:48 +04:00
cap_set_proc(cap);
exit(0);
}
1998-09-26 03:40:49 +04:00
],
1998-09-29 01:43:48 +04:00
samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=yes,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=no,samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES=cross)])
1998-09-26 03:40:49 +04:00
if test x"$samba_cv_HAVE_IRIX_SPECIFIC_CAPABILITIES" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_IRIX_SPECIFIC_CAPABILITIES,1,[Whether IRIX specific capabilities are available])
1998-09-26 03:40:49 +04:00
fi
1998-09-05 17:21:57 +04:00
1998-11-19 07:15:23 +03:00
#
# Check for int16, uint16, int32 and uint32 in rpc/types.h included from rpc/rpc.h
# This is *really* broken but some systems (DEC OSF1) do this.... JRA.
#
AC_CACHE_CHECK([for int16 typedef included by rpc/rpc.h],samba_cv_HAVE_INT16_FROM_RPC_RPC_H,[
AC_TRY_COMPILE([#include <sys/types.h>
#if defined(HAVE_RPC_RPC_H)
#include <rpc/rpc.h>
#endif],
[int16 testvar;],
samba_cv_HAVE_INT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT16_FROM_RPC_RPC_H=no)])
if test x"$samba_cv_HAVE_INT16_FROM_RPC_RPC_H" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_INT16_FROM_RPC_RPC_H,1,[Whether int16 typedef is included by rpc/rpc.h])
1998-11-19 07:15:23 +03:00
fi
AC_CACHE_CHECK([for uint16 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT16_FROM_RPC_RPC_H,[
AC_TRY_COMPILE([#include <sys/types.h>
#if defined(HAVE_RPC_RPC_H)
#include <rpc/rpc.h>
#endif],
[uint16 testvar;],
samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT16_FROM_RPC_RPC_H=no)])
if test x"$samba_cv_HAVE_UINT16_FROM_RPC_RPC_H" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UINT16_FROM_RPC_RPC_H,1,[Whether uint16 typedef is included by rpc/rpc.h])
1998-11-19 07:15:23 +03:00
fi
AC_CACHE_CHECK([for int32 typedef included by rpc/rpc.h],samba_cv_HAVE_INT32_FROM_RPC_RPC_H,[
1998-11-19 01:04:24 +03:00
AC_TRY_COMPILE([#include <sys/types.h>
#if defined(HAVE_RPC_RPC_H)
#include <rpc/rpc.h>
#endif],
1998-11-19 07:15:23 +03:00
[int32 testvar;],
samba_cv_HAVE_INT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_INT32_FROM_RPC_RPC_H=no)])
if test x"$samba_cv_HAVE_INT32_FROM_RPC_RPC_H" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_INT32_FROM_RPC_RPC_H,1,[Whether int32 typedef is included by rpc/rpc.h])
1998-11-19 01:04:24 +03:00
fi
1998-11-19 07:15:23 +03:00
AC_CACHE_CHECK([for uint32 typedef included by rpc/rpc.h],samba_cv_HAVE_UINT32_FROM_RPC_RPC_H,[
1998-11-19 01:04:24 +03:00
AC_TRY_COMPILE([#include <sys/types.h>
#if defined(HAVE_RPC_RPC_H)
#include <rpc/rpc.h>
#endif],
1998-11-19 07:15:23 +03:00
[uint32 testvar;],
samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=yes,samba_cv_HAVE_UINT32_FROM_RPC_RPC_H=no)])
if test x"$samba_cv_HAVE_UINT32_FROM_RPC_RPC_H" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UINT32_FROM_RPC_RPC_H,1,[Whether uint32 typedef is included by rpc/rpc.h])
1998-11-19 01:04:24 +03:00
fi
1999-12-13 16:27:58 +03:00
dnl
dnl Some systems (SCO) have a problem including
dnl <prot.h> and <rpc/rpc.h> due to AUTH_ERROR being defined
dnl as a #define in <prot.h> and as part of an enum
dnl in <rpc/rpc.h>.
dnl
AC_CACHE_CHECK([for conflicting AUTH_ERROR define in rpc/rpc.h],samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT,[
AC_TRY_COMPILE([#include <sys/types.h>
#ifdef HAVE_SYS_SECURITY_H
#include <sys/security.h>
#include <prot.h>
#endif /* HAVE_SYS_SECURITY_H */
#if defined(HAVE_RPC_RPC_H)
#include <rpc/rpc.h>
#endif],
[int testvar;],
samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=no,samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT=yes)])
if test x"$samba_cv_HAVE_RPC_AUTH_ERROR_CONFLICT" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_RPC_AUTH_ERROR_CONFLICT,1,[Whether there is a conflicting AUTH_ERROR define in rpc/rpc.h])
1999-12-13 16:27:58 +03:00
fi
1998-09-21 13:07:08 +04:00
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]))
1998-09-05 17:21:57 +04:00
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_FTRUNCATE_EXTEND,1,[Truncate extend])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
2001-06-26 11:44:02 +04:00
AC_CACHE_CHECK([for AF_LOCAL socket support], samba_cv_HAVE_WORKING_AF_LOCAL, [
AC_TRY_RUN([#include "${srcdir-.}/tests/unixsock.c"],
samba_cv_HAVE_WORKING_AF_LOCAL=yes,
samba_cv_HAVE_WORKING_AF_LOCAL=no,
samba_cv_HAVE_WORKING_AF_LOCAL=cross)])
if test x"$samba_cv_HAVE_WORKING_AF_LOCAL" != xno
then
AC_DEFINE(HAVE_WORKING_AF_LOCAL, 1, [Define if you have working AF_LOCAL sockets])
fi
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_BROKEN_GETGROUPS,1,[Whether getgroups is broken])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 09:05:36 +04:00
1998-09-21 15:34:44 +04:00
AC_CACHE_CHECK([whether getpass should be replaced],samba_cv_REPLACE_GETPASS,[
SAVE_CPPFLAGS="$CPPFLAGS"
2005-04-12 22:59:49 +04:00
CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt"
1998-09-21 15:34:44 +04:00
AC_TRY_COMPILE([
#define REPLACE_GETPASS 1
2003-03-28 05:03:31 +03:00
#define NO_PROTO_H 1
1998-09-21 15:34:44 +04:00
#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
2002-10-28 22:28:32 +03:00
AC_DEFINE(REPLACE_GETPASS,1,[Whether getpass should be replaced])
1998-09-21 15:34:44 +04:00
fi
1998-07-29 07:08:05 +04:00
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for broken inet_ntoa],samba_cv_REPLACE_INET_NTOA,[
1998-07-29 11:02:06 +04:00
AC_TRY_RUN([
#include <stdio.h>
#include <sys/types.h>
#include <netinet/in.h>
1999-12-13 16:27:58 +03:00
#ifdef HAVE_ARPA_INET_H
1998-07-29 11:02:06 +04:00
#include <arpa/inet.h>
1999-12-13 16:27:58 +03:00
#endif
1998-07-29 11:02:06 +04:00
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);}],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(REPLACE_INET_NTOA,1,[Whether inet_ntoa should be replaced])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 11:02:06 +04:00
2001-04-12 03:19:08 +04:00
AC_CACHE_CHECK([for secure mkstemp],samba_cv_HAVE_SECURE_MKSTEMP,[
AC_TRY_RUN([#include <stdlib.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>
main() {
struct stat st;
char tpl[20]="/tmp/test.XXXXXX";
int fd = mkstemp(tpl);
if (fd == -1) exit(1);
unlink(tpl);
if (fstat(fd, &st) != 0) exit(1);
if ((st.st_mode & 0777) != 0600) exit(1);
exit(0);
}],
samba_cv_HAVE_SECURE_MKSTEMP=yes,
samba_cv_HAVE_SECURE_MKSTEMP=no,
samba_cv_HAVE_SECURE_MKSTEMP=cross)])
if test x"$samba_cv_HAVE_SECURE_MKSTEMP" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SECURE_MKSTEMP,1,[Whether mkstemp is secure])
2001-04-12 03:19:08 +04:00
fi
2000-02-15 22:36:47 +03:00
AC_CACHE_CHECK([for sysconf(_SC_NGROUPS_MAX)],samba_cv_SYSCONF_SC_NGROUPS_MAX,[
AC_TRY_RUN([#include <unistd.h>
main() { exit(sysconf(_SC_NGROUPS_MAX) == -1 ? 1 : 0); }],
samba_cv_SYSCONF_SC_NGROUPS_MAX=yes,samba_cv_SYSCONF_SC_NGROUPS_MAX=no,samba_cv_SYSCONF_SC_NGROUPS_MAX=cross)])
if test x"$samba_cv_SYSCONF_SC_NGROUPS_MAX" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(SYSCONF_SC_NGROUPS_MAX,1,[Whether sysconf(_SC_NGROUPS_MAX) is available])
2000-02-15 22:36:47 +03:00
fi
2003-12-10 01:41:26 +03:00
AC_CACHE_CHECK([for sysconf(_SC_NPROC_ONLN)],samba_cv_SYSCONF_SC_NPROC_ONLN,[
AC_TRY_RUN([#include <unistd.h>
main() { exit(sysconf(_SC_NPROC_ONLN) == -1 ? 1 : 0); }],
samba_cv_SYSCONF_SC_NPROC_ONLN=yes,samba_cv_SYSCONF_SC_NPROC_ONLN=no,samba_cv_SYSCONF_SC_NPROC_ONLN=cross)])
if test x"$samba_cv_SYSCONF_SC_NPROC_ONLN" = x"yes"; then
AC_DEFINE(SYSCONF_SC_NPROC_ONLN,1,[Whether sysconf(_SC_NPROC_ONLN) is available])
fi
1998-09-21 13:07:08 +04:00
AC_CACHE_CHECK([for root],samba_cv_HAVE_ROOT,[
1998-07-29 07:08:05 +04:00
AC_TRY_RUN([main() { exit(getuid() != 0); }],
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_ROOT,1,[Whether current user is root])
1998-09-21 13:07:08 +04:00
else
AC_MSG_WARN(running as non-root will disable some tests)
fi
1998-07-29 07:08:05 +04:00
1999-12-13 16:27:58 +03:00
##################
# look for a method of finding the list of network interfaces
iface=no;
AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
1998-07-29 07:08:05 +04:00
AC_TRY_RUN([
1999-12-13 16:27:58 +03:00
#define HAVE_IFACE_AIX 1
#define AUTOCONF_TEST 1
#include "confdefs.h"
#include "${srcdir-.}/lib/interfaces.c"],
samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
if test x"$samba_cv_HAVE_IFACE_AIX" = x"yes"; then
2002-10-28 22:28:32 +03:00
iface=yes;AC_DEFINE(HAVE_IFACE_AIX,1,[Whether iface AIX is available])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
1999-12-13 16:27:58 +03:00
if test $iface = no; then
AC_CACHE_CHECK([for iface ifconf],samba_cv_HAVE_IFACE_IFCONF,[
1998-07-29 07:08:05 +04:00
AC_TRY_RUN([
1999-12-13 16:27:58 +03:00
#define HAVE_IFACE_IFCONF 1
#define AUTOCONF_TEST 1
#include "confdefs.h"
#include "${srcdir-.}/lib/interfaces.c"],
samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
if test x"$samba_cv_HAVE_IFACE_IFCONF" = x"yes"; then
2002-10-28 22:28:32 +03:00
iface=yes;AC_DEFINE(HAVE_IFACE_IFCONF,1,[Whether iface ifconf is available])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
fi
1999-12-13 16:27:58 +03:00
if test $iface = no; then
AC_CACHE_CHECK([for iface ifreq],samba_cv_HAVE_IFACE_IFREQ,[
1998-07-29 07:08:05 +04:00
AC_TRY_RUN([
1999-12-13 16:27:58 +03:00
#define HAVE_IFACE_IFREQ 1
#define AUTOCONF_TEST 1
#include "confdefs.h"
#include "${srcdir-.}/lib/interfaces.c"],
samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
if test x"$samba_cv_HAVE_IFACE_IFREQ" = x"yes"; then
2002-10-28 22:28:32 +03:00
iface=yes;AC_DEFINE(HAVE_IFACE_IFREQ,1,[Whether iface ifreq is available])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
fi
1999-12-13 16:27:58 +03:00
################################################
# look for a method of setting the effective uid
seteuid=no;
if test $seteuid = no; then
AC_CACHE_CHECK([for setresuid],samba_cv_USE_SETRESUID,[
AC_TRY_RUN([
#define AUTOCONF_TEST 1
#define USE_SETRESUID 1
#include "confdefs.h"
#include "${srcdir-.}/lib/util_sec.c"],
samba_cv_USE_SETRESUID=yes,samba_cv_USE_SETRESUID=no,samba_cv_USE_SETRESUID=cross)])
if test x"$samba_cv_USE_SETRESUID" = x"yes"; then
2002-10-28 22:28:32 +03:00
seteuid=yes;AC_DEFINE(USE_SETRESUID,1,[Whether setresuid() is available])
1999-12-13 16:27:58 +03:00
fi
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
1999-12-13 16:27:58 +03:00
if test $seteuid = no; then
AC_CACHE_CHECK([for setreuid],samba_cv_USE_SETREUID,[
AC_TRY_RUN([
#define AUTOCONF_TEST 1
#define USE_SETREUID 1
#include "confdefs.h"
#include "${srcdir-.}/lib/util_sec.c"],
samba_cv_USE_SETREUID=yes,samba_cv_USE_SETREUID=no,samba_cv_USE_SETREUID=cross)])
if test x"$samba_cv_USE_SETREUID" = x"yes"; then
2002-10-28 22:28:32 +03:00
seteuid=yes;AC_DEFINE(USE_SETREUID,1,[Whether setreuid() is available])
1999-12-13 16:27:58 +03:00
fi
fi
if test $seteuid = no; then
AC_CACHE_CHECK([for seteuid],samba_cv_USE_SETEUID,[
AC_TRY_RUN([
#define AUTOCONF_TEST 1
#define USE_SETEUID 1
#include "confdefs.h"
#include "${srcdir-.}/lib/util_sec.c"],
samba_cv_USE_SETEUID=yes,samba_cv_USE_SETEUID=no,samba_cv_USE_SETEUID=cross)])
if test x"$samba_cv_USE_SETEUID" = x"yes"; then
2002-10-28 22:28:32 +03:00
seteuid=yes;AC_DEFINE(USE_SETEUID,1,[Whether seteuid() is available])
1999-12-13 16:27:58 +03:00
fi
fi
if test $seteuid = no; then
AC_CACHE_CHECK([for setuidx],samba_cv_USE_SETUIDX,[
AC_TRY_RUN([
#define AUTOCONF_TEST 1
#define USE_SETUIDX 1
#include "confdefs.h"
#include "${srcdir-.}/lib/util_sec.c"],
samba_cv_USE_SETUIDX=yes,samba_cv_USE_SETUIDX=no,samba_cv_USE_SETUIDX=cross)])
if test x"$samba_cv_USE_SETUIDX" = x"yes"; then
2002-10-28 22:28:32 +03:00
seteuid=yes;AC_DEFINE(USE_SETUIDX,1,[Whether setuidx() is available])
1999-12-13 16:27:58 +03:00
fi
fi
2000-04-17 10:11:08 +04:00
AC_CACHE_CHECK([for working mmap],samba_cv_HAVE_MMAP,[
1998-09-21 13:07:08 +04:00
AC_TRY_RUN([#include "${srcdir-.}/tests/shared_mmap.c"],
2000-04-17 10:11:08 +04:00
samba_cv_HAVE_MMAP=yes,samba_cv_HAVE_MMAP=no,samba_cv_HAVE_MMAP=cross)])
if test x"$samba_cv_HAVE_MMAP" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_MMAP,1,[Whether mmap works])
1999-12-13 16:27:58 +03:00
fi
1998-09-21 13:07:08 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_FCNTL_LOCK,1,[Whether fcntl locking is available])
1998-09-21 13:07:08 +04:00
fi
1998-07-29 07:08:05 +04:00
1999-12-13 16:27:58 +03:00
AC_CACHE_CHECK([for broken (glibc2.1/x86) 64 bit fcntl locking],samba_cv_HAVE_BROKEN_FCNTL64_LOCKS,[
AC_TRY_RUN([#include "${srcdir-.}/tests/fcntl_lock64.c"],
samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=yes,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=no,samba_cv_HAVE_BROKEN_FCNTL64_LOCKS=cross)])
if test x"$samba_cv_HAVE_BROKEN_FCNTL64_LOCKS" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_BROKEN_FCNTL64_LOCKS,1,[Whether fcntl64 locks are broken])
1999-12-13 16:27:58 +03:00
else
dnl
dnl Don't check for 64 bit fcntl locking if we know that the
dnl glibc2.1 broken check has succeeded.
dnl
AC_CACHE_CHECK([for 64 bit fcntl locking],samba_cv_HAVE_STRUCT_FLOCK64,[
AC_TRY_RUN([
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
1998-09-04 04:23:28 +04:00
#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
}],
1998-09-21 13:07:08 +04:00
samba_cv_HAVE_STRUCT_FLOCK64=yes,samba_cv_HAVE_STRUCT_FLOCK64=no,samba_cv_HAVE_STRUCT_FLOCK64=cross)])
1999-12-13 16:27:58 +03:00
if test x"$samba_cv_HAVE_STRUCT_FLOCK64" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_STRUCT_FLOCK64,1,[Whether the flock64 struct is available])
1999-12-13 16:27:58 +03:00
fi
1998-09-21 13:07:08 +04:00
fi
1998-09-04 04:23:28 +04:00
2002-01-10 00:30:37 +03:00
AC_CACHE_CHECK([for st_blocks in struct stat],samba_cv_HAVE_STAT_ST_BLOCKS,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>],
[struct stat st; st.st_blocks = 0;],
samba_cv_HAVE_STAT_ST_BLOCKS=yes,samba_cv_HAVE_STAT_ST_BLOCKS=no,samba_cv_HAVE_STAT_ST_BLOCKS=cross)])
if test x"$samba_cv_HAVE_STAT_ST_BLOCKS" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_STAT_ST_BLOCKS,1,[Whether the stat struct has a st_block property])
2002-01-10 00:30:37 +03:00
fi
2001-11-15 02:00:37 +03:00
2002-09-25 19:19:00 +04:00
AC_CACHE_CHECK([for st_blksize in struct stat],samba_cv_HAVE_STAT_ST_BLKSIZE,[
AC_TRY_COMPILE([#include <sys/types.h>
#include <sys/stat.h>
#include <unistd.h>],
[struct stat st; st.st_blksize = 0;],
samba_cv_HAVE_STAT_ST_BLKSIZE=yes,samba_cv_HAVE_STAT_ST_BLKSIZE=no,samba_cv_HAVE_STAT_ST_BLKSIZE=cross)])
if test x"$samba_cv_HAVE_STAT_ST_BLKSIZE" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_STAT_ST_BLKSIZE,1,[Whether the stat struct has a st_blksize property])
2002-09-25 19:19:00 +04:00
fi
2001-11-15 02:00:37 +03:00
case "$host_os" in
*linux*)
AC_CACHE_CHECK([for broken RedHat 7.2 system header files],samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS,[
AC_TRY_COMPILE([
2001-11-15 04:18:10 +03:00
#ifdef HAVE_SYS_VFS_H
2001-11-15 02:00:37 +03:00
#include <sys/vfs.h>
2001-11-15 04:18:10 +03:00
#endif
2001-11-17 02:22:49 +03:00
#ifdef HAVE_SYS_CAPABILITY_H
2001-11-15 02:00:37 +03:00
#include <sys/capability.h>
2001-11-15 04:18:10 +03:00
#endif
2001-11-15 02:00:37 +03:00
],[int i;],
samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=no,samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS=yes)])
if test x"$samba_cv_BROKEN_REDHAT_7_SYSTEM_HEADERS" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
2001-11-15 02:00:37 +03:00
fi
;;
esac
1999-12-13 16:27:58 +03:00
AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
2004-02-02 01:17:36 +03:00
AC_TRY_COMPILE([
#include <sys/types.h>
#include <sys/acl.h>
1999-12-13 16:27:58 +03:00
#if defined(HAVE_RPCSVC_NIS_H)
#include <rpcsvc/nis.h>
#endif],
2001-11-15 04:18:10 +03:00
[int i;],
1999-12-13 16:27:58 +03:00
samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=no,samba_cv_BROKEN_NISPLUS_INCLUDE_FILES=yes)])
if test x"$samba_cv_BROKEN_NISPLUS_INCLUDE_FILES" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(BROKEN_NISPLUS_INCLUDE_FILES,1,[Whether the nisplus include files are broken])
1999-12-13 16:27:58 +03:00
fi
2004-05-13 04:20:50 +04:00
AC_CACHE_CHECK([if the realpath function allows a NULL argument],samba_cv_REALPATH_TAKES_NULL,[
AC_TRY_RUN([
#include <stdio.h>
#include <limits.h>
main() {
char *newpath = realpath("/tmp", NULL);
exit ((newpath != NULL) ? 0 : 1);
}
],
samba_cv_REALPATH_TAKES_NULL=yes,samba_cv_REALPATH_TAKES_NULL=no,samba_cv_REALPATH_TAKES_NULL=cross)])
if test x"$samba_cv_REALPATH_TAKES_NULL" = x"yes"; then
AC_DEFINE(REALPATH_TAKES_NULL,1,[Whether the realpath function allows NULL])
fi
1999-12-13 16:27:58 +03:00
1998-11-14 04:04:13 +03:00
#################################################
# check for smbwrapper support
AC_MSG_CHECKING(whether to use smbwrapper)
AC_ARG_WITH(smbwrapper,
2001-08-24 23:58:28 +04:00
[ --with-smbwrapper Include SMB wrapper support (default=no) ],
1998-11-14 04:04:13 +03:00
[ case "$withval" in
yes)
AC_MSG_RESULT(yes)
2002-10-28 22:28:32 +03:00
AC_DEFINE(WITH_SMBWRAPPER,1,[Whether to include smbwrapper support])
2002-12-06 02:02:17 +03:00
WRAPPROG="bin/smbsh\$(EXEEXT)"
2002-07-15 14:35:28 +04:00
WRAP="bin/smbwrapper.$SHLIBEXT"
2005-04-12 22:59:49 +04:00
WRAP_OBJS="\$(SMBW_OBJ1) \$(SMBWRAPPER_OBJ1)"
WRAP_INC="-I\$(srcdir)/smbwrapper"
1998-11-14 04:04:13 +03:00
# Conditions under which smbwrapper should not be built.
2003-10-14 07:02:46 +04:00
if test x$PICFLAGS = x; then
1998-11-14 04:04:13 +03:00
echo No support for PIC code - disabling smbwrapper and smbsh
2002-07-15 14:35:28 +04:00
WRAPPROG=""
1998-11-14 04:04:13 +03:00
WRAP=""
2005-04-12 22:59:49 +04:00
WRAP_OBJS=""
WRAP_INC=""
1998-11-14 04:04:13 +03:00
elif test x$ac_cv_func_syscall = xno; then
AC_MSG_RESULT([No syscall() -- disabling smbwrapper and smbsh])
2002-07-15 14:35:28 +04:00
WRAPPROG=""
1998-11-14 04:04:13 +03:00
WRAP=""
2005-04-12 22:59:49 +04:00
WRAP_OBJS=""
WRAP_INC=""
1998-11-14 04:04:13 +03:00
fi
2003-06-07 03:55:24 +04:00
EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $WRAPPROG $WRAP"
SMBWRAPPER="$WRAPPROG $WRAP"
2005-04-12 22:59:49 +04:00
SMBWRAP_OBJS="$WRAP_OBJS"
SMBWRAP_INC="$WRAP_INC"
1998-11-14 04:04:13 +03:00
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
1998-07-29 07:08:05 +04:00
#################################################
2001-11-11 13:42:07 +03:00
# check for AFS clear-text auth support
2004-01-06 18:41:32 +03:00
samba_cv_WITH_AFS=no
2001-11-11 13:42:07 +03:00
AC_MSG_CHECKING(whether to use AFS clear-text auth)
1998-07-29 07:08:05 +04:00
AC_ARG_WITH(afs,
2001-11-11 13:42:07 +03:00
[ --with-afs Include AFS clear-text auth support (default=no) ],
1998-07-29 07:08:05 +04:00
[ case "$withval" in
2004-01-06 18:41:32 +03:00
yes|auto)
AC_MSG_RESULT($withval)
samba_cv_WITH_AFS=$withval
1998-07-29 07:08:05 +04:00
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
2003-09-07 20:36:13 +04:00
####################################################
# check for Linux-specific AFS fake-kaserver support
2004-01-06 18:41:32 +03:00
samba_cv_WITH_FAKE_KASERVER=no
2003-09-07 20:36:13 +04:00
AC_MSG_CHECKING(whether to use AFS fake-kaserver)
AC_ARG_WITH(fake-kaserver,
[ --with-fake-kaserver Include AFS fake-kaserver support (default=no) ],
[ case "$withval" in
2004-01-06 18:41:32 +03:00
yes|auto)
AC_MSG_RESULT($withval)
samba_cv_WITH_FAKE_KASERVER=$withval
2003-09-07 20:36:13 +04:00
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
1998-07-29 07:08:05 +04:00
2004-01-06 18:41:32 +03:00
#################################################
# decide whether we can support WITH_AFS and / or WITH_FAKE_KASERVER
if test x"$samba_cv_WITH_AFS" != x"no" ||
test x"$samba_cv_WITH_FAKE_KASERVER" != x"no"; then
# see if this box has the afs-headers in /usr/include/afs
AC_MSG_CHECKING(for /usr/include/afs)
if test -d /usr/include/afs; then
CFLAGS="$CFLAGS -I/usr/include/afs"
CPPFLAGS="$CPPFLAGS -I/usr/include/afs"
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
# check for afs.h
have_afs_headers=no
AC_CHECK_HEADERS(afs.h afs/afs.h)
if test x"$ac_cv_header_afs_h" = x"no" && test x"$ac_cv_header_afs_afs_h" = x"no"; then
if test x"$samba_cv_WITH_FAKE_KASERVER" = x"auto" ||
test x"$samba_cv_WITH_AFS" = x"auto"; then
AC_MSG_WARN([AFS cannot be supported without afs.h])
else
AC_MSG_ERROR([AFS cannot be supported without afs.h])
fi
else
have_afs_headers=yes
fi
fi
2004-09-06 14:22:03 +04:00
if test x"$samba_cv_WITH_FAKE_KASERVER" != x"no" && test x"$have_afs_headers" = x"yes"; then
2004-01-06 18:41:32 +03:00
AC_DEFINE(WITH_FAKE_KASERVER,1,[Whether to include AFS fake-kaserver support])
fi
2004-05-02 16:13:16 +04:00
#################################################
# check whether to compile AFS/NT ACL mapping module
samba_cv_WITH_VFS_AFSACL=no
AC_MSG_CHECKING(whether to use AFS fake-kaserver)
AC_ARG_WITH(vfs-afsacl,
[ --with-vfs-afsacl Include AFS to NT ACL mapping module (default=no) ],
[ case "$withval" in
yes|auto)
AC_MSG_RESULT($withval)
samba_cv_WITH_VFS_AFSACL=yes
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
2004-09-06 14:22:03 +04:00
if test x"$samba_cv_WITH_VFS_AFSACL" = x"yes"; then
2004-05-02 16:13:16 +04:00
default_shared_modules="$default_shared_modules vfs_afsacl"
fi
2004-01-06 18:41:32 +03:00
if test x"$samba_cv_WITH_AFS" != x"no" && test x"$have_afs_headers" = x"yes"; then
AC_DEFINE(WITH_AFS,1,[Whether to include AFS clear-text auth support])
fi
1998-07-29 07:08:05 +04:00
#################################################
2001-11-11 13:42:07 +03:00
# check for the DFS clear-text auth system
AC_MSG_CHECKING(whether to use DFS clear-text auth)
1998-07-29 07:08:05 +04:00
AC_ARG_WITH(dfs,
2001-11-11 13:42:07 +03:00
[ --with-dce-dfs Include DCE/DFS clear-text auth support (default=no)],
1998-07-29 07:08:05 +04:00
[ case "$withval" in
yes)
AC_MSG_RESULT(yes)
2002-10-28 22:28:32 +03:00
AC_DEFINE(WITH_DFS,1,[Whether to include DFS support])
1998-07-29 07:08:05 +04:00
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
2003-07-22 03:42:45 +04:00
########################################################
# Compile with LDAP support?
with_ldap_support=auto
AC_MSG_CHECKING([for LDAP support])
AC_ARG_WITH(ldap,
[ --with-ldap LDAP support (default yes)],
[ case "$withval" in
yes|no)
with_ldap_support=$withval
;;
esac ])
AC_MSG_RESULT($with_ldap_support)
SMBLDAP=""
AC_SUBST(SMBLDAP)
2005-05-31 17:46:45 +04:00
SMBLDAPUTIL=""
AC_SUBST(SMBLDAPUTIL)
2003-07-22 03:42:45 +04:00
if test x"$with_ldap_support" != x"no"; then
##################################################################
# first test for ldap.h and lber.h
# (ldap.h is required for this test)
AC_CHECK_HEADERS(ldap.h lber.h)
if test x"$ac_cv_header_ldap_h" != x"yes"; then
if test x"$with_ldap_support" = x"yes"; then
AC_MSG_ERROR(ldap.h is needed for LDAP support)
else
AC_MSG_WARN(ldap.h is needed for LDAP support)
fi
with_ldap_support=no
fi
fi
if test x"$with_ldap_support" != x"no"; then
ac_save_LIBS=$LIBS
##################################################################
# we might need the lber lib on some systems. To avoid link errors
# this test must be before the libldap test
AC_CHECK_LIB_EXT(lber, LDAP_LIBS, ber_scanf)
########################################################
# now see if we can find the ldap libs in standard paths
AC_CHECK_LIB_EXT(ldap, LDAP_LIBS, ldap_init)
########################################################
# If we have LDAP, does it's rebind procedure take 2 or 3 arguments?
# Check found in pam_ldap 145.
AC_CHECK_FUNC_EXT(ldap_set_rebind_proc,$LDAP_LIBS)
LIBS="$LIBS $LDAP_LIBS"
AC_CACHE_CHECK(whether ldap_set_rebind_proc takes 3 arguments, smb_ldap_cv_ldap_set_rebind_proc, [
AC_TRY_COMPILE([
#include <lber.h>
#include <ldap.h>],
[ldap_set_rebind_proc(0, 0, 0);],
[smb_ldap_cv_ldap_set_rebind_proc=3],
[smb_ldap_cv_ldap_set_rebind_proc=2]
)
])
AC_DEFINE_UNQUOTED(LDAP_SET_REBIND_PROC_ARGS, $smb_ldap_cv_ldap_set_rebind_proc, [Number of arguments to ldap_set_rebind_proc])
2005-11-22 20:15:28 +03:00
if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes"; then
2003-07-22 03:42:45 +04:00
AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available])
2005-10-14 03:03:30 +04:00
CPPFLAGS="$CPPFLAGS -DLDAP_DEPRECATED"
2003-07-22 03:42:45 +04:00
default_static_modules="$default_static_modules pdb_ldap idmap_ldap";
2005-09-30 21:13:37 +04:00
default_shared_modules="$default_shared_modules";
2003-07-22 03:42:45 +04:00
SMBLDAP="lib/smbldap.o"
2005-05-31 17:46:45 +04:00
SMBLDAPUTIL="lib/smbldap_util.o"
2003-07-22 03:42:45 +04:00
with_ldap_support=yes
AC_MSG_CHECKING(whether LDAP support is used)
AC_MSG_RESULT(yes)
else
if test x"$with_ldap_support" = x"yes"; then
AC_MSG_ERROR(libldap is needed for LDAP support)
else
AC_MSG_WARN(libldap is needed for LDAP support)
fi
LDAP_LIBS=""
with_ldap_support=no
fi
LIBS=$ac_save_LIBS
fi
2002-09-25 19:19:00 +04:00
#################################################
# active directory support
2003-06-24 09:31:08 +04:00
with_ads_support=auto
2003-07-22 03:42:45 +04:00
AC_MSG_CHECKING([for Active Directory and krb5 support])
2001-10-16 05:05:49 +04:00
2002-09-25 19:19:00 +04:00
AC_ARG_WITH(ads,
2003-07-22 03:42:45 +04:00
[ --with-ads Active Directory support (default auto)],
2002-09-25 19:19:00 +04:00
[ case "$withval" in
2003-06-24 09:31:08 +04:00
yes|no)
with_ads_support="$withval"
2002-09-25 19:19:00 +04:00
;;
esac ])
AC_MSG_RESULT($with_ads_support)
FOUND_KRB5=no
2003-04-16 18:45:11 +04:00
KRB5_LIBS=""
2003-06-23 05:05:31 +04:00
2003-07-22 03:42:45 +04:00
if test x"$with_ldap_support" != x"yes"; then
if test x"$with_ads_support" = x"yes"; then
AC_MSG_ERROR(Active Directory Support requires LDAP support)
elif test x"$with_ads_support" != x"no"; then
AC_MSG_WARN(Active Directory Support requires LDAP support)
fi
with_ads_support=no
fi
2005-11-22 20:15:28 +03:00
AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS)
if test x"$ac_cv_func_ext_ldap_initialize" != x"yes"; then
if test x"$with_ads_support" = x"yes"; then
AC_MSG_ERROR(Active Directory Support requires ldap_initialize)
fi
AC_MSG_WARN(Active Directory Support requires ldap_initialize)
with_ads_support=no
fi
AC_CHECK_FUNC_EXT(ldap_domain2hostlist,$LDAP_LIBS)
if test x"$ac_cv_func_ext_ldap_domain2hostlist" != x"yes"; then
if test x"$with_ads_support" = x"yes"; then
AC_MSG_ERROR(Active Directory Support requires ldap_domain2hostlist)
fi
AC_MSG_WARN(Active Directory Support requires ldap_domain2hostlist)
with_ads_support=no
fi
AC_CHECK_FUNC_EXT(ldap_add_result_entry,$LDAP_LIBS)
if test x"$ac_cv_func_ext_ldap_add_result_entry" != x"yes"; then
if test x"$with_ads_support" = x"yes"; then
AC_MSG_ERROR(Active Directory Support requires ldap_add_result_entry)
fi
AC_MSG_WARN(Active Directory Support requires ldap_add_result_entry)
with_ads_support=no
fi
2003-06-24 09:31:08 +04:00
if test x"$with_ads_support" != x"no"; then
# Do no harm to the values of CFLAGS and LIBS while testing for
# Kerberos support.
2004-11-02 05:21:26 +03:00
2003-02-15 22:13:53 +03:00
if test x$FOUND_KRB5 = x"no"; then
2003-06-23 05:05:31 +04:00
#################################################
# check for location of Kerberos 5 install
AC_MSG_CHECKING(for kerberos 5 install path)
AC_ARG_WITH(krb5,
[ --with-krb5=base-dir Locate Kerberos 5 support (default=/usr)],
[ case "$withval" in
no)
2003-07-22 03:42:45 +04:00
AC_MSG_RESULT(no krb5-path given)
;;
yes)
AC_MSG_RESULT(/usr)
FOUND_KRB5=yes
2003-06-23 05:05:31 +04:00
;;
*)
2003-07-22 03:42:45 +04:00
AC_MSG_RESULT($withval)
KRB5_CFLAGS="-I$withval/include"
KRB5_CPPFLAGS="-I$withval/include"
KRB5_LDFLAGS="-L$withval/lib"
2003-06-23 05:05:31 +04:00
FOUND_KRB5=yes
2004-11-02 05:21:26 +03:00
if test -x "$withval/bin/krb5-config"; then
2005-01-24 19:30:46 +03:00
KRB5CONFIG=$withval/bin/krb5-config
2004-11-02 05:21:26 +03:00
fi
2003-06-23 05:05:31 +04:00
;;
esac ],
2003-07-22 03:42:45 +04:00
AC_MSG_RESULT(no krb5-path given)
2003-06-23 05:05:31 +04:00
)
2003-02-15 22:13:53 +03:00
fi
2002-09-25 19:19:00 +04:00
2004-11-02 05:21:26 +03:00
#################################################
# check for krb5-config from recent MIT and Heimdal kerberos 5
2005-01-24 19:30:46 +03:00
AC_PATH_PROG(KRB5CONFIG, krb5-config)
2004-11-02 05:21:26 +03:00
AC_MSG_CHECKING(for working krb5-config)
2005-01-24 19:30:46 +03:00
if test -x "$KRB5CONFIG"; then
2004-11-02 05:21:26 +03:00
ac_save_CFLAGS=$CFLAGS
CFLAGS="";export CFLAGS
ac_save_LDFLAGS=$LDFLAGS
LDFLAGS="";export LDFLAGS
2005-01-24 19:30:46 +03:00
KRB5_LIBS="`$KRB5CONFIG --libs gssapi`"
KRB5_LDFLAGS="`$KRB5CONFIG --libs gssapi | sed s/-lgss.*//`"
KRB5_CFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`"
KRB5_CPPFLAGS="`$KRB5CONFIG --cflags | sed s/@INCLUDE_des@//`"
2004-11-02 05:21:26 +03:00
CFLAGS=$ac_save_CFLAGS;export CFLAGS
LDFLAGS=$ac_save_LDFLAGS;export LDFLAGS
FOUND_KRB5=yes
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no. Fallback to previous krb5 detection strategy)
fi
2003-06-23 05:05:31 +04:00
if test x$FOUND_KRB5 = x"no"; then
#################################################
# see if this box has the SuSE location for the heimdal krb implementation
AC_MSG_CHECKING(for /usr/include/heimdal)
if test -d /usr/include/heimdal; then
if test -f /usr/lib/heimdal/lib/libkrb5.a; then
2003-07-22 03:42:45 +04:00
KRB5_CFLAGS="-I/usr/include/heimdal"
KRB5_CPPFLAGS="-I/usr/include/heimdal"
KRB5_LDFLAGS="-L/usr/lib/heimdal/lib"
2003-06-23 05:05:31 +04:00
AC_MSG_RESULT(yes)
else
2003-07-22 03:42:45 +04:00
KRB5_CFLAGS="-I/usr/include/heimdal"
KRB5_CPPFLAGS="-I/usr/include/heimdal"
2003-06-23 05:05:31 +04:00
AC_MSG_RESULT(yes)
fi
2003-02-04 19:33:24 +03:00
else
2003-06-23 05:05:31 +04:00
AC_MSG_RESULT(no)
2003-02-04 19:33:24 +03:00
fi
2003-06-23 05:05:31 +04:00
fi
2002-11-13 10:04:00 +03:00
2003-06-23 05:05:31 +04:00
if test x$FOUND_KRB5 = x"no"; then
#################################################
# see if this box has the RedHat location for kerberos
AC_MSG_CHECKING(for /usr/kerberos)
if test -d /usr/kerberos -a -f /usr/kerberos/lib/libkrb5.a; then
2003-07-22 03:42:45 +04:00
KRB5_LDFLAGS="-L/usr/kerberos/lib"
KRB5_CFLAGS="-I/usr/kerberos/include"
KRB5_CPPFLAGS="-I/usr/kerberos/include"
2003-06-23 05:05:31 +04:00
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
fi
2001-11-27 04:45:08 +03:00
2003-07-22 03:42:45 +04:00
ac_save_CFLAGS=$CFLAGS
ac_save_CPPFLAGS=$CPPFLAGS
ac_save_LDFLAGS=$LDFLAGS
2004-11-02 05:21:26 +03:00
CFLAGS="$KRB5_CFLAGS $CFLAGS"
CPPFLAGS="$KRB5_CPPFLAGS $CPPFLAGS"
LDFLAGS="$KRB5_LDFLAGS $LDFLAGS"
2003-07-22 03:42:45 +04:00
KRB5_LIBS="$KRB5_LDFLAGS $KRB5_LIBS"
2002-09-25 19:19:00 +04:00
# now check for krb5.h. Some systems have the libraries without the headers!
# note that this check is done here to allow for different kerberos
# include paths
AC_CHECK_HEADERS(krb5.h)
2001-11-28 01:37:25 +03:00
2003-06-23 05:27:17 +04:00
if test x"$ac_cv_header_krb5_h" = x"no"; then
2003-06-24 09:31:08 +04:00
# Give a warning if AD support was not explicitly requested,
# i.e with_ads_support = auto, otherwise die with an error.
if test x"$with_ads_support" = x"yes"; then
AC_MSG_ERROR([Active Directory cannot be supported without krb5.h])
else
AC_MSG_WARN([Active Directory cannot be supported without krb5.h])
fi
# Turn off AD support and restore CFLAGS and LIBS variables
with_ads_support="no"
2003-07-22 03:42:45 +04:00
CFLAGS=$ac_save_CFLAGS
CPPFLAGS=$ac_save_CPPFLAGS
LDFLAGS=$ac_save_LDFLAGS
2003-06-24 11:46:26 +04:00
fi
2003-06-24 09:31:08 +04:00
fi
# Now we have determined whether we really want ADS support
2003-07-22 03:42:45 +04:00
if test x"$with_ads_support" != x"no"; then
ac_save_LIBS=$LIBS
2003-06-24 09:31:08 +04:00
2002-09-25 19:19:00 +04:00
# now check for gssapi headers. This is also done here to allow for
# different kerberos include paths
2003-01-16 05:58:14 +03:00
AC_CHECK_HEADERS(gssapi.h gssapi/gssapi_generic.h gssapi/gssapi.h com_err.h)
2001-12-10 21:07:17 +03:00
2002-09-25 19:19:00 +04:00
##################################################################
# we might need the k5crypto and com_err libraries on some systems
2003-07-22 03:42:45 +04:00
AC_CHECK_LIB_EXT(com_err, KRB5_LIBS, _et_list)
AC_CHECK_LIB_EXT(k5crypto, KRB5_LIBS, krb5_encrypt_data)
2003-06-23 05:05:31 +04:00
2003-01-16 05:39:49 +03:00
# Heimdal checks.
2003-07-22 03:42:45 +04:00
AC_CHECK_LIB_EXT(crypto, KRB5_LIBS, des_set_key)
AC_CHECK_LIB_EXT(asn1, KRB5_LIBS, copy_Authenticator)
AC_CHECK_LIB_EXT(roken, KRB5_LIBS, roken_getaddrinfo_hostspec)
2003-06-23 05:05:31 +04:00
2003-01-28 03:33:21 +03:00
# Heimdal checks. On static Heimdal gssapi must be linked before krb5.
2003-07-22 03:42:45 +04:00
AC_CHECK_LIB_EXT(gssapi, KRB5_LIBS, gss_display_status,[],[],
AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
2003-07-16 23:17:33 +04:00
2003-07-22 03:42:45 +04:00
########################################################
# now see if we can find the krb5 libs in standard paths
# or as specified above
AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_mk_req_extended)
2004-06-18 01:23:56 +04:00
AC_CHECK_LIB_EXT(krb5, KRB5_LIBS, krb5_kt_compare)
2003-06-23 05:05:31 +04:00
2003-07-22 03:42:45 +04:00
########################################################
# now see if we can find the gssapi libs in standard paths
AC_CHECK_LIB_EXT(gssapi_krb5, KRB5_LIBS,gss_display_status,[],[],
AC_DEFINE(HAVE_GSSAPI,1,[Whether GSSAPI is available]))
AC_CHECK_FUNC_EXT(krb5_set_real_time, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_set_default_in_tkt_etypes, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_set_default_tgs_ktypes, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_principal2salt, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_use_enctype, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_string_to_key, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_get_pw_salt, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_string_to_key_salt, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_auth_con_setkey, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_auth_con_setuseruserkey, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_locate_kdc, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_get_permitted_enctypes, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_get_default_in_tkt_etypes, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_free_ktypes, $KRB5_LIBS)
2004-01-08 11:19:18 +03:00
AC_CHECK_FUNC_EXT(krb5_free_data_contents, $KRB5_LIBS)
2003-07-22 03:42:45 +04:00
AC_CHECK_FUNC_EXT(krb5_principal_get_comp_string, $KRB5_LIBS)
2004-06-19 04:54:54 +04:00
AC_CHECK_FUNC_EXT(krb5_free_unparsed_name, $KRB5_LIBS)
2004-06-24 09:56:44 +04:00
AC_CHECK_FUNC_EXT(krb5_free_keytab_entry_contents, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_kt_free_entry, $KRB5_LIBS)
2004-08-25 11:52:23 +04:00
AC_CHECK_FUNC_EXT(krb5_krbhst_get_addrinfo, $KRB5_LIBS)
2004-10-29 04:02:32 +04:00
AC_CHECK_FUNC_EXT(krb5_c_enctype_compare, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_enctypes_compatible_keys, $KRB5_LIBS)
2005-09-30 21:13:37 +04:00
AC_CHECK_FUNC_EXT(krb5_crypto_init, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_crypto_destroy, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_decode_ap_req, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(decode_krb5_ap_req, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_free_ap_req, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(free_AP_REQ, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_c_verify_checksum, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_principal_compare_any_realm, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_parse_name_norealm, $KRB5_LIBS)
AC_CHECK_FUNC_EXT(krb5_princ_size, $KRB5_LIBS)
2003-07-22 03:42:45 +04:00
2004-11-02 05:21:26 +03:00
LIBS="$KRB5_LIBS $LIBS"
2005-09-30 21:13:37 +04:00
AC_CACHE_CHECK(whether krb5_verify_checksum takes 7 arguments, smb_krb5_verify_checksum, [
AC_TRY_COMPILE([
#include <krb5.h>],
[krb5_verify_checksum(0, 0, 0, 0, 0, 0, 0);],
[smb_krb5_verify_checksum=7],
[smb_krb5_verify_checksum=6],
)
])
AC_DEFINE_UNQUOTED(KRB5_VERIFY_CHECKSUM_ARGS, $smb_krb5_verify_checksum, [Number of arguments to krb5_verify_checksum])
AC_CACHE_CHECK([for checksum in krb5_checksum],
samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_checksum cksum; cksum.checksum.length = 0;],
samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM=yes,
samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM=no)])
if test x"$samba_cv_HAVE_CHECKSUM_IN_KRB5_CHECKSUM" = x"yes"; then
AC_DEFINE(HAVE_CHECKSUM_IN_KRB5_CHECKSUM,1,
[Whether the krb5_checksum struct has a checksum property])
fi
AC_CACHE_CHECK([for etype in EncryptedData],
samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA,[
AC_TRY_COMPILE([#include <krb5.h>],
[EncryptedData edata; edata.etype = 0;],
samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA=yes,
samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA=no)])
if test x"$samba_cv_HAVE_ETYPE_IN_ENCRYPTEDDATA" = x"yes"; then
AC_DEFINE(HAVE_ETYPE_IN_ENCRYPTEDDATA,1,
[Whether the EncryptedData struct has a etype property])
fi
AC_CACHE_CHECK([for ticket pointer in krb5_ap_req],
samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_ap_req *ap_req; ap_req->ticket = NULL;],
samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ=yes,
samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ=no)])
if test x"$samba_cv_HAVE_TICKET_POINTER_IN_KRB5_AP_REQ" = x"yes"; then
AC_DEFINE(HAVE_TICKET_POINTER_IN_KRB5_AP_REQ,1,
[Whether the krb5_ap_req struct has a ticket pointer])
fi
AC_CACHE_CHECK([for krb5_crypto type],
samba_cv_HAVE_KRB5_CRYPTO,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_crypto crypto;],
samba_cv_HAVE_KRB5_CRYPTO=yes,
samba_cv_HAVE_KRB5_CRYPTO=no)])
if test x"$samba_cv_HAVE_KRB5_CRYPTO" = x"yes"; then
AC_DEFINE(HAVE_KRB5_CRYPTO,1,
[Whether the type krb5_crypto exists])
fi
2004-11-05 03:57:29 +03:00
AC_CACHE_CHECK([for krb5_encrypt_block type],
samba_cv_HAVE_KRB5_ENCRYPT_BLOCK,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_encrypt_block block;],
samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=yes,
samba_cv_HAVE_KRB5_ENCRYPT_BLOCK=no)])
if test x"$samba_cv_HAVE_KRB5_ENCRYPT_BLOCK" = x"yes"; then
AC_DEFINE(HAVE_KRB5_ENCRYPT_BLOCK,1,
[Whether the type krb5_encrypt_block exists])
fi
2003-06-23 05:05:31 +04:00
AC_CACHE_CHECK([for addrtype in krb5_address],
samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_address kaddr; kaddr.addrtype = ADDRTYPE_INET;],
samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=yes,
samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS=no)])
if test x"$samba_cv_HAVE_ADDRTYPE_IN_KRB5_ADDRESS" = x"yes"; then
AC_DEFINE(HAVE_ADDRTYPE_IN_KRB5_ADDRESS,1,
[Whether the krb5_address struct has a addrtype property])
fi
AC_CACHE_CHECK([for addr_type in krb5_address],
samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_address kaddr; kaddr.addr_type = KRB5_ADDRESS_INET;],
samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=yes,
samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS=no)])
if test x"$samba_cv_HAVE_ADDR_TYPE_IN_KRB5_ADDRESS" = x"yes"; then
AC_DEFINE(HAVE_ADDR_TYPE_IN_KRB5_ADDRESS,1,
[Whether the krb5_address struct has a addr_type property])
fi
AC_CACHE_CHECK([for enc_part2 in krb5_ticket],
samba_cv_HAVE_KRB5_TKT_ENC_PART2,
[AC_TRY_COMPILE([#include <krb5.h>],
[krb5_ticket tkt; tkt.enc_part2->authorization_data[0]->contents = NULL;],
samba_cv_HAVE_KRB5_TKT_ENC_PART2=yes,samba_cv_HAVE_KRB5_TKT_ENC_PART2=no)])
if test x"$samba_cv_HAVE_KRB5_TKT_ENC_PART2" = x"yes"; then
AC_DEFINE(HAVE_KRB5_TKT_ENC_PART2,1,
[Whether the krb5_ticket struct has a enc_part2 property])
fi
2004-10-29 03:50:14 +04:00
AC_CACHE_CHECK([for keyblock in krb5_creds],
samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_creds creds; krb5_keyblock kb; creds.keyblock = kb;],
samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=yes,
samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS=no)])
if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_IN_CREDS" = x"yes"; then
AC_DEFINE(HAVE_KRB5_KEYBLOCK_IN_CREDS,1,
[Whether the krb5_creds struct has a keyblock property])
fi
AC_CACHE_CHECK([for session in krb5_creds],
samba_cv_HAVE_KRB5_SESSION_IN_CREDS,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_creds creds; krb5_keyblock kb; creds.session = kb;],
samba_cv_HAVE_KRB5_SESSION_IN_CREDS=yes,
samba_cv_HAVE_KRB5_SESSION_IN_CREDS=no)])
if test x"$samba_cv_HAVE_KRB5_SESSION_IN_CREDS" = x"yes"; then
AC_DEFINE(HAVE_KRB5_SESSION_IN_CREDS,1,
[Whether the krb5_creds struct has a session property])
fi
2003-06-23 05:05:31 +04:00
AC_CACHE_CHECK([for keyvalue in krb5_keyblock],
samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_keyblock key; key.keyvalue.data = NULL;],
samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=yes,
samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE=no)])
if test x"$samba_cv_HAVE_KRB5_KEYBLOCK_KEYVALUE" = x"yes"; then
AC_DEFINE(HAVE_KRB5_KEYBLOCK_KEYVALUE,1,
[Whether the krb5_keyblock struct has a keyvalue property])
fi
AC_CACHE_CHECK([for ENCTYPE_ARCFOUR_HMAC_MD5],
samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_enctype enctype; enctype = ENCTYPE_ARCFOUR_HMAC_MD5;],
samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=yes,
samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5=no)])
2003-09-02 22:31:41 +04:00
AC_CACHE_CHECK([for KEYTYPE_ARCFOUR_56],
samba_cv_HAVE_KEYTYPE_ARCFOUR_56,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_keytype keytype; keytype = KEYTYPE_ARCFOUR_56;],
samba_cv_HAVE_KEYTYPE_ARCFOUR_56=yes,
samba_cv_HAVE_KEYTYPE_ARCFOUR_56=no)])
# Heimdals with KEYTYPE_ARCFOUR but not KEYTYPE_ARCFOUR_56 are broken
# w.r.t. arcfour and windows, so we must not enable it here
if test x"$samba_cv_HAVE_ENCTYPE_ARCFOUR_HMAC_MD5" = x"yes" -a\
x"$samba_cv_HAVE_KEYTYPE_ARCFOUR_56" = x"yes"; then
2003-06-23 05:05:31 +04:00
AC_DEFINE(HAVE_ENCTYPE_ARCFOUR_HMAC_MD5,1,
[Whether the ENCTYPE_ARCFOUR_HMAC_MD5 key type is available])
fi
2003-03-18 01:45:16 +03:00
2003-08-28 00:22:12 +04:00
AC_CACHE_CHECK([for AP_OPTS_USE_SUBKEY],
samba_cv_HAVE_AP_OPTS_USE_SUBKEY,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_flags ap_options; ap_options = AP_OPTS_USE_SUBKEY;],
samba_cv_HAVE_AP_OPTS_USE_SUBKEY=yes,
samba_cv_HAVE_AP_OPTS_USE_SUBKEY=no)])
if test x"$samba_cv_HAVE_AP_OPTS_USE_SUBKEY" = x"yes"; then
AC_DEFINE(HAVE_AP_OPTS_USE_SUBKEY,1,
[Whether the AP_OPTS_USE_SUBKEY ap option is available])
fi
2004-06-18 01:23:56 +04:00
AC_CACHE_CHECK([for KV5M_KEYTAB],
samba_cv_HAVE_KV5M_KEYTAB,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_keytab_entry entry; entry.magic = KV5M_KEYTAB;],
samba_cv_HAVE_KV5M_KEYTAB=yes,
samba_cv_HAVE_KV5M_KEYTAB=no)])
if test x"$samba_cv_HAVE_KV5M_KEYTAB" = x"yes"; then
AC_DEFINE(HAVE_KV5M_KEYTAB,1,
[Whether the KV5M_KEYTAB option is available])
fi
2005-09-30 21:13:37 +04:00
AC_CACHE_CHECK([for KRB5_KU_OTHER_CKSUM],
samba_cv_HAVE_KRB5_KU_OTHER_CKSUM,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_keyusage usage = KRB5_KU_OTHER_CKSUM;],
samba_cv_HAVE_KRB5_KU_OTHER_CKSUM=yes,
samba_cv_HAVE_KRB5_KU_OTHER_CKSUM=no)])
if test x"$samba_cv_HAVE_KRB5_KU_OTHER_CKSUM" = x"yes"; then
AC_DEFINE(HAVE_KRB5_KU_OTHER_CKSUM,1,
[Whether KRB5_KU_OTHER_CKSUM is available])
fi
AC_CACHE_CHECK([for KRB5_KEYUSAGE_APP_DATA_CKSUM],
samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_keyusage usage = KRB5_KEYUSAGE_APP_DATA_CKSUM;],
samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM=yes,
samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM=no)])
if test x"$samba_cv_HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM" = x"yes"; then
AC_DEFINE(HAVE_KRB5_KEYUSAGE_APP_DATA_CKSUM,1,
[Whether KRB5_KEYUSAGE_APP_DATA_CKSUM is available])
fi
2003-07-22 03:42:45 +04:00
AC_CACHE_CHECK([for the krb5_princ_component macro],
samba_cv_HAVE_KRB5_PRINC_COMPONENT,[
AC_TRY_LINK([#include <krb5.h>],
[const krb5_data *pkdata; krb5_context context; krb5_principal principal; pkdata = krb5_princ_component(context, principal, 0);],
samba_cv_HAVE_KRB5_PRINC_COMPONENT=yes,
samba_cv_HAVE_KRB5_PRINC_COMPONENT=no)])
2002-09-25 19:19:00 +04:00
2003-07-22 03:42:45 +04:00
if test x"$samba_cv_HAVE_KRB5_PRINC_COMPONENT" = x"yes"; then
AC_DEFINE(HAVE_KRB5_PRINC_COMPONENT,1,
[Whether krb5_princ_component is available])
fi
2002-09-25 19:19:00 +04:00
2003-11-03 21:11:00 +03:00
AC_CACHE_CHECK([for key in krb5_keytab_entry],
samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY,[
AC_TRY_COMPILE([#include <krb5.h>],
2003-12-12 23:16:03 +03:00
[krb5_keytab_entry entry; krb5_keyblock e; entry.key = e;],
2003-11-03 21:11:00 +03:00
samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=yes,
samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY=no)])
if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEY" = x"yes"; then
AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEY,1,
[Whether krb5_keytab_entry has key member])
fi
AC_CACHE_CHECK([for keyblock in krb5_keytab_entry],
samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,[
AC_TRY_COMPILE([#include <krb5.h>],
[krb5_keytab_entry entry; entry.keyblock.keytype = 0;],
samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=yes,
samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK=no)])
if test x"$samba_cv_HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK" = x"yes"; then
AC_DEFINE(HAVE_KRB5_KEYTAB_ENTRY_KEYBLOCK,1,
[Whether krb5_keytab_entry has keyblock member])
fi
2002-09-25 19:19:00 +04:00
2003-07-22 03:42:45 +04:00
if test x"$ac_cv_lib_ext_krb5_krb5_mk_req_extended" = x"yes"; then
AC_DEFINE(HAVE_KRB5,1,[Whether to have KRB5 support])
AC_DEFINE(WITH_ADS,1,[Whether to include Active Directory support])
AC_MSG_CHECKING(whether Active Directory and krb5 support is used)
AC_MSG_RESULT(yes)
else
2003-04-16 18:45:11 +04:00
if test x"$with_ads_support" = x"yes"; then
2003-07-22 03:42:45 +04:00
AC_MSG_ERROR(libkrb5 is needed for Active Directory support)
else
AC_MSG_WARN(libkrb5 is needed for Active Directory support)
2003-04-16 18:45:11 +04:00
fi
2003-07-22 03:42:45 +04:00
KRB5_LIBS=""
with_ads_support=no
fi
2004-06-25 01:35:16 +04:00
AC_CACHE_CHECK([for WRFILE: keytab support],
samba_cv_HAVE_WRFILE_KEYTAB,[
AC_TRY_RUN([
#include<krb5.h>
main()
{
krb5_context context;
krb5_keytab keytab;
krb5_init_context(&context);
2004-11-19 02:25:37 +03:00
return krb5_kt_resolve(context, "WRFILE:api", &keytab);
2004-06-25 01:35:16 +04:00
}],
2004-11-19 00:22:24 +03:00
samba_cv_HAVE_WRFILE_KEYTAB=yes,
samba_cv_HAVE_WRFILE_KEYTAB=no)])
2004-06-25 01:35:16 +04:00
if test x"$samba_cv_HAVE_WRFILE_KEYTAB" = x"yes"; then
AC_DEFINE(HAVE_WRFILE_KEYTAB,1,
[Whether the WRFILE:-keytab is supported])
fi
AC_CACHE_CHECK([for krb5_princ_realm returns krb5_realm or krb5_data],
samba_cv_KRB5_PRINC_REALM_RETURNS_REALM,[
AC_TRY_COMPILE([#include <krb5.h>],
[
krb5_context context;
krb5_principal principal;
krb5_realm realm; realm = *krb5_princ_realm(context, principal);],
samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=yes,
samba_cv_KRB5_PRINC_REALM_RETURNS_REALM=no)])
if test x"$samba_cv_KRB5_PRINC_REALM_RETURNS_REALM" = x"yes"; then
AC_DEFINE(KRB5_PRINC_REALM_RETURNS_REALM,1,
[Whether krb5_princ_realm returns krb5_realm or krb5_data])
fi
LIBS="$ac_save_LIBS"
2001-11-20 11:54:15 +03:00
fi
2002-11-09 19:57:45 +03:00
########################################################
2003-05-20 22:26:06 +04:00
# Compile experimental passdb backends?
2004-01-05 00:09:42 +03:00
# (pdb_xml, pdb_mysql, pdb_pgsql)
2003-05-20 22:26:06 +04:00
AC_MSG_CHECKING(whether to build experimental passdb libraries)
AC_ARG_WITH(expsam,
2003-05-21 01:15:49 +04:00
[ --with-expsam=<list> Include experimental passdb libraries (default=no)]
[ Valid choices include (comma separated list): ]
2004-01-05 00:09:42 +03:00
[ xml, mysql & pgsql],
2003-05-21 01:15:49 +04:00
[ expsam_pdb_modules=`echo "$withval" | sed 's/,/ /g'`
if test "z$expsam_pdb_modules" = "zyes"; then
2004-01-05 00:09:42 +03:00
expsam_pdb_modules="xml mysql pgsql"
2003-05-21 01:15:49 +04:00
fi
AC_MSG_RESULT($expsam_pdb_modules)
for i in $expsam_pdb_modules
do
case "$i" in
2004-01-05 00:09:42 +03:00
xml|all|yes)
2003-05-21 01:15:49 +04:00
## pdb_xml
2003-10-10 00:20:18 +04:00
AM_PATH_XML2([2.0.0],[default_shared_modules="$default_shared_modules pdb_xml"],[AC_MSG_ERROR([Can't find XML libraries while XML support is requested])])
2003-05-21 01:15:49 +04:00
CFLAGS="$CFLAGS $XML_CFLAGS"
;;
2004-01-05 00:09:42 +03:00
mysql|all|yes)
2003-05-21 01:15:49 +04:00
## pdb_mysql
2003-10-10 00:20:18 +04:00
AM_PATH_MYSQL([default_shared_modules="$default_shared_modules pdb_mysql"],[AC_MSG_ERROR([Can't find MySQL libraries while MySQL support is requested])])
2003-05-21 01:15:49 +04:00
CFLAGS="$CFLAGS $MYSQL_CFLAGS"
;;
2004-01-05 00:09:42 +03:00
pgsql|all|yes)
## pdb_pgsql
AM_PATH_PGSQL([default_shared_modules="$default_shared_modules pdb_pgsql"],[])
CFLAGS="$CFLAGS $PGSQL_CFLAGS"
;;
2003-07-15 17:00:20 +04:00
no)
;;
2003-05-21 01:15:49 +04:00
*)
echo "Unknown module name \"$i\"! Exiting..."
exit 1
;;
esac
done ],
2003-05-20 22:26:06 +04:00
AC_MSG_RESULT(no)
)
2002-11-09 19:57:45 +03:00
1998-07-29 07:08:05 +04:00
#################################################
# check for automount support
2002-11-29 04:17:00 +03:00
AC_MSG_CHECKING(whether to use automount)
1998-07-29 07:08:05 +04:00
AC_ARG_WITH(automount,
2002-11-29 04:17:00 +03:00
[ --with-automount Include automount support (default=no)],
1998-07-29 07:08:05 +04:00
[ case "$withval" in
yes)
AC_MSG_RESULT(yes)
2002-10-28 22:28:32 +03:00
AC_DEFINE(WITH_AUTOMOUNT,1,[Whether to include automount support])
1998-07-29 07:08:05 +04:00
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
1998-09-28 23:18:21 +04:00
#################################################
# check for smbmount support
2002-11-29 04:17:00 +03:00
AC_MSG_CHECKING(whether to use smbmount)
1998-09-28 23:18:21 +04:00
AC_ARG_WITH(smbmount,
2002-11-29 04:17:00 +03:00
[ --with-smbmount Include smbmount (Linux only) support (default=no)],
1998-09-28 23:18:21 +04:00
[ case "$withval" in
yes)
2001-09-21 01:06:02 +04:00
case "$host_os" in
*linux*)
AC_MSG_RESULT(yes)
2002-10-28 22:28:32 +03:00
AC_DEFINE(WITH_SMBMOUNT,1,[Whether to build smbmount])
2002-11-29 04:17:00 +03:00
EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/smbmount bin/smbmnt bin/smbumount"
2001-09-21 01:06:02 +04:00
;;
*)
AC_MSG_ERROR(not on a linux system!)
;;
esac
1998-09-28 23:18:21 +04:00
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
2004-06-18 01:23:56 +04:00
1999-12-13 16:27:58 +03:00
#################################################
2001-11-11 13:42:07 +03:00
# check for a PAM clear-text auth, accounts, password and session support
2001-08-07 23:34:38 +04:00
with_pam_for_crypt=no
2001-11-11 13:42:07 +03:00
AC_MSG_CHECKING(whether to use PAM)
1999-12-13 16:27:58 +03:00
AC_ARG_WITH(pam,
2001-11-11 13:42:07 +03:00
[ --with-pam Include PAM support (default=no)],
1999-12-13 16:27:58 +03:00
[ case "$withval" in
yes)
AC_MSG_RESULT(yes)
2003-09-04 04:51:50 +04:00
if test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
if test x"$ac_cv_header_security_pam_modules_h" = x"no"; then
if test x"$ac_cv_header_security__pam_macros_h" = x"no"; then
AC_MSG_ERROR(--with-pam specified but no PAM headers found)
fi
fi
fi
2002-10-28 22:28:32 +03:00
AC_DEFINE(WITH_PAM,1,[Whether to include PAM support])
2003-09-08 06:48:06 +04:00
AUTH_LIBS="$AUTH_LIBS -lpam"
2001-08-07 23:34:38 +04:00
with_pam_for_crypt=yes
1999-12-13 16:27:58 +03:00
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
2001-04-25 01:13:48 +04:00
# we can't build a pam module if we don't have pam.
2002-10-28 22:28:32 +03:00
AC_CHECK_LIB(pam, pam_get_data, [AC_DEFINE(HAVE_LIBPAM,1,[Whether libpam is available])])
2001-04-25 01:13:48 +04:00
#################################################
# check for pam_smbpass support
AC_MSG_CHECKING(whether to use pam_smbpass)
AC_ARG_WITH(pam_smbpass,
2003-05-20 22:26:06 +04:00
[ --with-pam_smbpass Build PAM module for authenticating against passdb backends (default=no)],
2001-04-25 01:13:48 +04:00
[ case "$withval" in
yes)
AC_MSG_RESULT(yes)
2003-09-04 06:23:43 +04:00
# Conditions under which pam_smbpass should not be built.
2001-04-25 01:13:48 +04:00
2003-10-14 07:02:46 +04:00
if test x$PICFLAGS = x; then
2003-09-04 06:23:43 +04:00
AC_MSG_ERROR([No support for PIC code])
elif test x"$ac_cv_header_security_pam_appl_h" = x"no"; then
AC_MSG_ERROR([No security/pam_appl.h found])
2001-04-25 01:13:48 +04:00
elif test x$ac_cv_lib_pam_pam_get_data = xno; then
2003-09-04 06:23:43 +04:00
AC_MSG_ERROR([No libpam found])
2001-04-25 01:13:48 +04:00
else
2003-09-08 06:48:06 +04:00
AUTH_LIBS="$AUTH_LIBS -lpam"
2003-04-05 03:22:19 +04:00
SHLIB_PROGS="$SHLIB_PROGS bin/pam_smbpass.$SHLIBEXT"
2001-04-25 01:13:48 +04:00
fi
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
2001-04-19 17:47:12 +04:00
###############################################
2003-02-24 06:22:49 +03:00
# test for where we get crypt() from
AC_SEARCH_LIBS(crypt, [crypt],
2003-09-08 06:48:06 +04:00
[test "$ac_cv_search_crypt" = "none required" || AUTH_LIBS="-lcrypt $AUTH_LIBS"
2003-02-24 06:22:49 +03:00
AC_DEFINE(HAVE_CRYPT,1,[Whether the system has the crypt() function])])
2001-04-19 17:47:12 +04:00
2001-08-07 23:34:38 +04:00
##
## moved after the check for -lcrypt in order to
## ensure that the necessary libraries are included
## check checking for truncated salt. Wrapped by the
## $with_pam_for_crypt variable as above --jerry
##
if test $with_pam_for_crypt = no; then
AC_CACHE_CHECK([for a crypt that needs truncated salt],samba_cv_HAVE_TRUNCATED_SALT,[
2002-10-28 22:28:32 +03:00
crypt_LIBS="$LIBS"
2003-09-08 06:48:06 +04:00
LIBS="$AUTH_LIBS $LIBS"
2001-08-07 23:34:38 +04:00
AC_TRY_RUN([#include "${srcdir-.}/tests/crypttest.c"],
2002-10-28 22:28:32 +03:00
samba_cv_HAVE_TRUNCATED_SALT=no,samba_cv_HAVE_TRUNCATED_SALT=yes,samba_cv_HAVE_TRUNCATED_SALT=cross)
LIBS="$crypt_LIBS"])
2001-08-07 23:34:38 +04:00
if test x"$samba_cv_HAVE_TRUNCATED_SALT" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_TRUNCATED_SALT,1,[Whether crypt needs truncated salt])
2001-08-07 23:34:38 +04:00
fi
fi
2004-02-02 03:08:35 +03:00
2001-09-26 04:22:54 +04:00
########################################################################################
##
## TESTS FOR SAM BACKENDS. KEEP THESE GROUPED TOGETHER
##
########################################################################################
2002-10-01 17:10:57 +04:00
#################################################
# check for a LDAP password database configuration backwards compatibility
AC_MSG_CHECKING(whether to use LDAP SAM 2.2 compatible configuration)
AC_ARG_WITH(ldapsam,
2003-05-20 22:26:06 +04:00
[ --with-ldapsam Include LDAP SAM 2.2 compatible configuration (default=no)],
2002-10-01 17:10:57 +04:00
[ case "$withval" in
yes)
AC_MSG_RESULT(yes)
2003-04-15 15:39:56 +04:00
AC_DEFINE(WITH_LDAP_SAMCONFIG,1,[Whether to include 2.2 compatible LDAP SAM configuration])
2002-10-01 17:10:57 +04:00
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
2001-09-26 04:22:54 +04:00
########################################################################################
##
## END OF TESTS FOR SAM BACKENDS.
##
########################################################################################
1998-08-08 05:15:14 +04:00
#################################################
# check for a NISPLUS_HOME support
AC_MSG_CHECKING(whether to use NISPLUS_HOME)
AC_ARG_WITH(nisplus-home,
2001-08-24 23:58:28 +04:00
[ --with-nisplus-home Include NISPLUS_HOME support (default=no)],
1998-08-08 05:15:14 +04:00
[ case "$withval" in
yes)
AC_MSG_RESULT(yes)
2002-10-28 22:28:32 +03:00
AC_DEFINE(WITH_NISPLUS_HOME,1,[Whether to include nisplus_home support])
1998-08-08 05:15:14 +04:00
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
1998-07-29 07:08:05 +04:00
#################################################
# check for syslog logging
AC_MSG_CHECKING(whether to use syslog logging)
AC_ARG_WITH(syslog,
2001-08-24 23:58:28 +04:00
[ --with-syslog Include experimental SYSLOG support (default=no)],
1998-07-29 07:08:05 +04:00
[ case "$withval" in
yes)
AC_MSG_RESULT(yes)
2002-10-28 22:28:32 +03:00
AC_DEFINE(WITH_SYSLOG,1,[Whether to include experimental syslog support])
1998-07-29 07:08:05 +04:00
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
1999-04-01 09:22:58 +04:00
#################################################
# check for a shared memory profiling support
AC_MSG_CHECKING(whether to use profiling)
2001-09-05 21:39:51 +04:00
AC_ARG_WITH(profiling-data,
2001-08-24 23:58:28 +04:00
[ --with-profiling-data Include gathering source code profile information (default=no)],
1999-04-01 09:22:58 +04:00
[ case "$withval" in
yes)
AC_MSG_RESULT(yes)
2002-10-28 22:28:32 +03:00
AC_DEFINE(WITH_PROFILE,1,[Whether to use profiling])
1999-04-01 09:22:58 +04:00
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
AC_MSG_RESULT(no)
)
1998-11-03 05:25:28 +03:00
#################################################
# check for experimental disk-quotas support
2003-05-14 18:38:11 +04:00
samba_cv_WITH_QUOTAS=auto
2003-05-12 05:20:17 +04:00
samba_cv_TRY_QUOTAS=no
2003-05-14 18:38:11 +04:00
samba_cv_RUN_QUOTA_TESTS=auto
samba_cv_WITH_SYS_QUOTAS=auto
2005-09-12 14:23:14 +04:00
samba_cv_TRY_SYS_QUOTAS=auto
samba_cv_SYSQUOTA_FOUND=no
2003-05-14 18:38:11 +04:00
2003-05-12 05:20:17 +04:00
AC_MSG_CHECKING(whether to try disk-quotas support)
1998-11-03 05:25:28 +03:00
AC_ARG_WITH(quotas,
2003-05-12 05:20:17 +04:00
[ --with-quotas Include disk-quota support (default=no)],
[ case "$withval" in
2003-05-12 06:45:29 +04:00
yes)
AC_MSG_RESULT(yes)
2003-05-14 18:38:11 +04:00
samba_cv_WITH_QUOTAS=yes
2003-05-12 06:45:29 +04:00
samba_cv_TRY_QUOTAS=yes
2003-05-14 18:38:11 +04:00
samba_cv_RUN_QUOTA_TESTS=yes
#set sys quotas to auto in this case
samba_cv_TRY_SYS_QUOTAS=auto
2003-05-12 05:20:17 +04:00
;;
2003-05-14 18:38:11 +04:00
auto)
AC_MSG_RESULT(auto)
samba_cv_WITH_QUOTAS=auto
samba_cv_TRY_QUOTAS=auto
samba_cv_RUN_QUOTA_TESTS=auto
#set sys quotas to auto in this case
samba_cv_TRY_SYS_QUOTAS=auto
;;
no)
2003-05-12 06:45:29 +04:00
AC_MSG_RESULT(no)
2003-05-14 18:38:11 +04:00
samba_cv_WITH_QUOTAS=no
samba_cv_TRY_QUOTAS=no
samba_cv_RUN_QUOTA_TESTS=no
;;
*)
AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
2003-05-12 05:20:17 +04:00
;;
esac ],
2003-05-14 18:38:11 +04:00
AC_MSG_RESULT(${samba_cv_TRY_QUOTAS})
2003-05-12 05:20:17 +04:00
)
AC_MSG_CHECKING(whether to try the new lib/sysquotas.c interface)
AC_ARG_WITH(sys-quotas,
[ --with-sys-quotas Include lib/sysquotas.c support (default=auto)],
1998-11-03 05:25:28 +03:00
[ case "$withval" in
yes)
AC_MSG_RESULT(yes)
2003-05-14 18:38:11 +04:00
samba_cv_WITH_SYS_QUOTAS=yes
2003-05-12 05:20:17 +04:00
samba_cv_TRY_SYS_QUOTAS=yes
2003-05-14 18:38:11 +04:00
samba_cv_RUN_QUOTA_TESTS=yes
;;
auto)
AC_MSG_RESULT(auto)
samba_cv_WITH_SYS_QUOTAS=auto
samba_cv_TRY_SYS_QUOTAS=auto
samba_cv_RUN_QUOTA_TESTS=auto
1998-11-03 05:25:28 +03:00
;;
2003-05-12 05:20:17 +04:00
no)
1998-11-03 05:25:28 +03:00
AC_MSG_RESULT(no)
2003-05-14 18:38:11 +04:00
samba_cv_WITH_SYS_QUOTAS=no
2003-05-12 05:20:17 +04:00
samba_cv_TRY_SYS_QUOTAS=no
;;
*)
2003-05-14 18:38:11 +04:00
AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
1998-11-03 05:25:28 +03:00
;;
esac ],
2003-05-14 18:38:11 +04:00
AC_MSG_RESULT(${samba_cv_TRY_SYS_QUOTAS})
1998-11-03 05:25:28 +03:00
)
2003-05-12 05:20:17 +04:00
2005-09-12 14:23:14 +04:00
if test x"$samba_cv_TRY_SYS_QUOTAS" = x"auto"; then
2003-05-12 05:20:17 +04:00
AC_MSG_CHECKING(whether to try the lib/sysquotas.c interface on ${host_os})
case "$host_os" in
*linux*)
AC_MSG_RESULT(yes)
2003-05-14 18:38:11 +04:00
samba_cv_TRY_SYS_QUOTAS=yes
samba_cv_RUN_QUOTA_TESTS=yes
2003-05-12 05:20:17 +04:00
;;
*)
AC_MSG_RESULT(no)
2003-05-14 18:38:11 +04:00
samba_cv_TRY_SYS_QUOTAS=no
2003-05-12 05:20:17 +04:00
;;
esac
fi
#############################################
# only check for quota stuff if --with-quotas
2003-05-14 18:38:11 +04:00
if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then
2003-05-12 05:20:17 +04:00
2005-09-12 14:23:14 +04:00
case "$host_os" in
# on linux we didn't need to test we have builtin support
*linux*)
samba_cv_SYSQUOTA_FOUND=yes
AC_DEFINE(HAVE_QUOTACTL_LINUX,1,[Whether Linux quota support is available])
samba_cv_sysquotas_file="lib/sysquotas_linux.c"
AC_MSG_CHECKING(whether to use the lib/sysquotas_linux.c builtin support)
AC_MSG_RESULT(yes)
AC_DEFINE(HAVE_LINUX_XFS_QUOTAS,1,[Whether Linux xfs quota support is available])
samba_cv_found_xfs_header=yes
AC_MSG_CHECKING(whether to use the lib/sysquotas_xfs.c builtin support)
AC_MSG_RESULT(yes)
;;
2005-10-12 20:52:08 +04:00
*solaris*)
# need to set this define when using static linking (BUG 1473)
CPPFLAGS="$CPPFLAGS -DSUNOS5"
;;
2005-09-12 14:23:14 +04:00
*)
;;
esac
2004-01-05 22:36:02 +03:00
# some broken header files need this
AC_CHECK_HEADER(asm/types.h,[
AC_DEFINE(HAVE_ASM_TYPES_H,1,[check for <asm/types.h>])
AC_ADD_INCLUDE(<asm/types.h>)
])
2003-05-12 05:20:17 +04:00
# For quotas on Veritas VxFS filesystems
AC_CHECK_HEADERS(sys/fs/vx_quota.h)
# For sys/quota.h and linux/quota.h
AC_CHECK_HEADERS(sys/quota.h)
2004-01-06 21:13:32 +03:00
if test x"$samba_cv_found_xfs_header" != x"yes"; then
2004-01-05 22:36:02 +03:00
# if we have xfs quota support <sys/quota.h> (IRIX) we should use it
AC_CACHE_CHECK([for XFS QUOTA in <sys/quota.h>],samba_cv_HAVE_SYS_QUOTA_XFS, [
2003-05-12 05:20:17 +04:00
AC_TRY_COMPILE([
#include "confdefs.h"
#ifdef HAVE_SYS_TYPES_H
#include <sys/types.h>
#endif
#ifdef HAVE_ASM_TYPES_H
#include <asm/types.h>
#endif
2004-01-05 22:36:02 +03:00
#include <sys/quota.h>
],[int i = Q_XGETQUOTA;],
samba_cv_HAVE_SYS_QUOTA_XFS=yes,samba_cv_HAVE_SYS_QUOTA_XFS=no)])
if test "$samba_cv_HAVE_SYS_QUOTA_XFS"x = "yes"x; then
2004-01-06 21:13:32 +03:00
samba_cv_found_xfs_header=yes
2003-05-12 05:20:17 +04:00
fi
fi
# if we have struct dqblk .dqb_fsoftlimit instead of .dqb_isoftlimit on IRIX
AC_CACHE_CHECK([if struct dqblk has .dqb_fsoftlimit],samba_cv_HAVE_DQB_FSOFTLIMIT, [
AC_TRY_COMPILE([
#include "confdefs.h"
#ifdef HAVE_SYS_QUOTA_H
#include <sys/quota.h>
#endif
],[
struct dqblk D;
D.dqb_fsoftlimit = 0;],
samba_cv_HAVE_DQB_FSOFTLIMIT=yes,samba_cv_HAVE_DQB_FSOFTLIMIT=no)])
if test "$samba_cv_HAVE_DQB_FSOFTLIMIT"x = "yes"x; then
AC_DEFINE(HAVE_DQB_FSOFTLIMIT,1,[struct dqblk .dqb_fsoftlimit])
fi
##################
# look for a working quota system
if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
AC_CACHE_CHECK([for long quotactl(int cmd, char *special, qid_t id, caddr_t addr)],samba_cv_HAVE_QUOTACTL_4A,[
AC_TRY_RUN_STRICT([
#define HAVE_QUOTACTL_4A 1
#define AUTOCONF_TEST 1
#include "confdefs.h"
2003-10-10 00:58:11 +04:00
#include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
2003-05-12 05:20:17 +04:00
samba_cv_HAVE_QUOTACTL_4A=yes,samba_cv_HAVE_QUOTACTL_4A=no,samba_cv_HAVE_QUOTACTL_4A=cross)])
if test x"$samba_cv_HAVE_QUOTACTL_4A" = x"yes"; then
2004-01-05 22:36:02 +03:00
samba_cv_SYSQUOTA_FOUND=yes;
AC_DEFINE(HAVE_QUOTACTL_4A,1,[Whether long quotactl(int cmd, char *special, qid_t id, caddr_t addr) is available])
samba_cv_sysquotas_file="lib/sysquotas_4A.c"
2003-05-12 05:20:17 +04:00
fi
fi
if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
AC_CACHE_CHECK([for int quotactl(const char *path, int cmd, int id, char *addr)],samba_cv_HAVE_QUOTACTL_4B,[
AC_TRY_RUN_STRICT([
#define HAVE_QUOTACTL_4B 1
#define AUTOCONF_TEST 1
#include "confdefs.h"
2003-10-10 00:58:11 +04:00
#include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
2003-05-12 05:20:17 +04:00
samba_cv_HAVE_QUOTACTL_4B=yes,samba_cv_HAVE_QUOTACTL_4B=no,samba_cv_HAVE_QUOTACTL_4B=cross)])
if test x"$samba_cv_HAVE_QUOTACTL_4B" = x"yes"; then
echo "int quotactl(const char *path, int cmd, int id, char *addr) is not reworked for the new sys_quota api"
2004-01-05 22:36:02 +03:00
samba_cv_SYSQUOTA_FOUND=yes;
AC_DEFINE(HAVE_QUOTACTL_4B,1,[Whether int quotactl(const char *path, int cmd, int id, char *addr) is available])
samba_cv_sysquotas_file="lib/sysquotas_4B.c"
2003-05-12 05:20:17 +04:00
fi
fi
if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
AC_CACHE_CHECK([for CRAY int quotactl (char *spec, int request, char *arg)],samba_cv_HAVE_QUOTACTL_3,[
AC_TRY_RUN_STRICT([
#define HAVE_QUOTACTL_3 1
#define AUTOCONF_TEST 1
#include "confdefs.h"
2003-10-10 00:58:11 +04:00
#include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS],
2003-05-12 05:20:17 +04:00
samba_cv_HAVE_QUOTACTL_3=yes,samba_cv_HAVE_QUOTACTL_3=no,samba_cv_HAVE_QUOTACTL_3=cross)])
if test x"$samba_cv_HAVE_QUOTACTL_3" = x"yes"; then
echo "CRAY int quotactl (char *spec, int request, char *arg) is NOT reworked for the sys_quota api"
2004-01-05 22:36:02 +03:00
samba_cv_SYSQUOTA_FOUND=yes;
AC_DEFINE(HAVE_QUOTACTL_3,1,[Whether CRAY int quotactl (char *spec, int request, char *arg); is available])
samba_cv_sysquotas_file="lib/sysquotas_3.c"
2003-05-12 05:20:17 +04:00
fi
fi
#################################################
# check for mntent.h and struct mntent
AC_CHECK_HEADERS(mntent.h)
#################################################
# check for setmntent,getmntent,endmntent
AC_CHECK_FUNCS(setmntent getmntent endmntent)
#################################################
# check for devnm.h and struct mntent
AC_CHECK_HEADERS(devnm.h)
#################################################
# check for devnm
AC_CHECK_FUNCS(devnm)
2003-05-14 18:38:11 +04:00
if test x"$samba_cv_WITH_SYS_QUOTAS" = x"yes"; then
if test x"$samba_cv_SYSQUOTA_FOUND" != x"yes"; then
# if --with-sys-quotas=yes then build it
# you have can use the get/set quota command smb.conf
# options then
samba_cv_SYSQUOTA_FOUND=auto
fi
if test x"$samba_cv_TRY_SYS_QUOTAS" != x"yes"; then
# if --with-sys-quotas=yes then build it
# you have can use the get/set quota command smb.conf
# options then
samba_cv_TRY_SYS_QUOTAS=auto
fi
fi
2003-05-12 05:20:17 +04:00
2003-05-14 18:38:11 +04:00
if test x"$samba_cv_SYSQUOTA_FOUND" != x"no"; then
2003-05-12 05:20:17 +04:00
AC_CACHE_CHECK([whether the sys_quota interface works],samba_cv_SYSQUOTA_WORKS,[
SAVE_CPPFLAGS="$CPPFLAGS"
2005-04-12 22:59:49 +04:00
CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/nsswitch"
2003-05-12 05:20:17 +04:00
AC_TRY_COMPILE([
#include "confdefs.h"
#define NO_PROTO_H 1
#define NO_CONFIG_H 1
#define HAVE_SYS_QUOTAS 1
2004-01-05 22:36:02 +03:00
#include "${srcdir-.}/${samba_cv_sysquotas_file}"
2003-05-12 05:20:17 +04:00
#include "${srcdir-.}/lib/sysquotas.c"
],[],samba_cv_SYSQUOTA_WORKS=yes,samba_cv_SYSQUOTA_WORKS=no)
CPPFLAGS="$SAVE_CPPFLAGS"
])
if test x"$samba_cv_SYSQUOTA_WORKS" = x"yes"; then
AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface)
2003-05-14 18:38:11 +04:00
if test x"$samba_cv_TRY_SYS_QUOTAS" != x"no"; then
2003-05-12 05:20:17 +04:00
AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
AC_DEFINE(HAVE_SYS_QUOTAS,1,[Whether the new lib/sysquotas.c interface can be used])
samba_cv_WE_USE_SYS_QUOTAS=yes
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
fi
fi
2004-01-06 21:13:32 +03:00
if test x"$samba_cv_SYSQUOTA_FOUND" != x"no" -a x"$samba_cv_found_xfs_header" = x"yes"; then
AC_CACHE_CHECK([whether the sys_quota interface works with XFS],samba_cv_SYSQUOTA_WORKS_XFS,[
SAVE_CPPFLAGS="$CPPFLAGS"
2005-04-12 22:59:49 +04:00
CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/nsswitch"
2004-01-06 21:13:32 +03:00
AC_TRY_COMPILE([
#include "confdefs.h"
#define NO_PROTO_H 1
#define NO_CONFIG_H 1
#define HAVE_SYS_QUOTAS 1
#define HAVE_XFS_QUOTAS 1
#include "${srcdir-.}/lib/sysquotas_xfs.c"
],[],samba_cv_SYSQUOTA_WORKS_XFS=yes,samba_cv_SYSQUOTA_WORKS_XFS=no)
CPPFLAGS="$SAVE_CPPFLAGS"
])
if test x"$samba_cv_SYSQUOTA_WORKS_XFS" = x"yes"; then
if test x"$samba_cv_WE_USE_SYS_QUOTAS" = x"yes"; then
AC_DEFINE(HAVE_XFS_QUOTAS,1,[Whether xfs quota support is available])
fi
fi
fi
2003-05-12 05:20:17 +04:00
AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[
SAVE_CPPFLAGS="$CPPFLAGS"
2005-10-12 20:52:08 +04:00
CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/nsswitch -I${srcdir-.}/smbwrapper"
2003-05-12 05:20:17 +04:00
AC_TRY_COMPILE([
#include "confdefs.h"
#define NO_PROTO_H 1
#define NO_CONFIG_H 1
#include "${srcdir-.}/smbd/quotas.c"
],[],samba_cv_QUOTA_WORKS=yes,samba_cv_QUOTA_WORKS=no)
CPPFLAGS="$SAVE_CPPFLAGS"
])
if test x"$samba_cv_QUOTA_WORKS" = x"yes"; then
2003-05-14 18:38:11 +04:00
AC_MSG_CHECKING(whether to use the old quota support)
2003-05-12 05:20:17 +04:00
if test x"$samba_cv_WE_USE_SYS_QUOTAS" != x"yes"; then
2003-05-14 18:38:11 +04:00
if test x"$samba_cv_TRY_QUOTAS" != x"no"; then
AC_DEFINE(WITH_QUOTAS,1,[Whether to use disk quota support])
AC_MSG_RESULT(yes)
else
AC_MSG_RESULT(no)
fi
else
AC_MSG_RESULT(no)
2003-05-12 05:20:17 +04:00
fi
fi
####################
2003-05-14 18:38:11 +04:00
# End of quota check samba_cv_RUN_QUOTA_TESTS
2003-05-12 05:20:17 +04:00
fi
1998-07-29 07:08:05 +04:00
2000-01-12 06:09:17 +03:00
#################################################
# check for experimental utmp accounting
AC_MSG_CHECKING(whether to support utmp accounting)
2003-06-07 02:33:43 +04:00
WITH_UTMP=yes
2000-01-12 06:09:17 +03:00
AC_ARG_WITH(utmp,
2003-06-07 02:33:43 +04:00
[ --with-utmp Include utmp accounting (default, if supported by OS)],
2000-01-12 06:09:17 +03:00
[ case "$withval" in
2003-06-07 02:33:43 +04:00
no)
WITH_UTMP=no
;;
2000-01-12 06:09:17 +03:00
*)
2003-06-07 02:33:43 +04:00
WITH_UTMP=yes
;;
2000-01-12 06:09:17 +03:00
esac ],
)
2003-06-07 02:33:43 +04:00
# utmp requires utmp.h
# Note similar check earlier, when checking utmp details.
if test x"$WITH_UTMP" = x"yes" -a x"$ac_cv_header_utmp_h" = x"no"; then
utmp_no_reason=", no utmp.h on $host_os"
WITH_UTMP=no
fi
# Display test results
if test x"$WITH_UTMP" = x"yes"; then
AC_MSG_RESULT(yes)
AC_DEFINE(WITH_UTMP,1,[Whether to include experimental utmp accounting])
else
AC_MSG_RESULT(no$utmp_no_reason)
fi
2005-12-06 00:02:23 +03:00
INSTALLLIBCMD_SH=:
INSTALLLIBCMD_A=:
2005-10-18 23:34:42 +04:00
if test $BLDSHARED = true; then
2005-12-06 00:02:23 +03:00
INSTALLLIBCMD_SH="\$(INSTALLCMD)"
2005-10-18 23:34:42 +04:00
fi
if test $enable_static = yes; then
2005-12-06 00:02:23 +03:00
INSTALLLIBCMD_A="\$(INSTALLCMD)"
2005-10-18 23:34:42 +04:00
fi
2005-12-06 00:02:23 +03:00
#################################################
# should we build libmsrpc?
INSTALL_LIBMSRPC=
LIBMSRPC_SHARED=
LIBMSRPC=
AC_MSG_CHECKING(whether to build the libmsrpc shared library)
AC_ARG_WITH(libmsrpc,
[ --with-libmsrpc Build the libmsrpc shared library (default=yes if shared libs supported)],
[ case "$withval" in
no)
AC_MSG_RESULT(no)
;;
*)
if test $BLDSHARED = true; then
LIBMSRPC_SHARED=bin/libmsrpc.$SHLIBEXT
LIBMSRPC=libmsrpc
AC_MSG_RESULT(yes)
else
enable_static=yes
AC_MSG_RESULT(no shared library support -- will supply static library)
fi
if test $enable_static = yes; then
LIBMSRPC=libmsrpc
fi
INSTALL_LIBMSRPC=installlibmsrpc
;;
esac ],
[
# if unspecified, default is to built it if possible.
if test $BLDSHARED = true; then
LIBMSRPC_SHARED=bin/libmsrpc.$SHLIBEXT
LIBMSRPC=libmsrpc
AC_MSG_RESULT(yes)
else
enable_static=yes
AC_MSG_RESULT(no shared library support -- will supply static library)
fi
if test $enable_static = yes; then
LIBMSRPC=libmsrpc
fi]
INSTALL_LIBMSRPC=installlibmsrpc
)
#################################################
# should we build libsmbclient?
INSTALL_LIBSMBCLIENT=
2002-07-15 14:35:28 +04:00
LIBSMBCLIENT_SHARED=
LIBSMBCLIENT=
AC_MSG_CHECKING(whether to build the libsmbclient shared library)
AC_ARG_WITH(libsmbclient,
2003-01-28 23:11:20 +03:00
[ --with-libsmbclient Build the libsmbclient shared library (default=yes if shared libs supported)],
2002-07-15 14:35:28 +04:00
[ case "$withval" in
no)
AC_MSG_RESULT(no)
;;
*)
if test $BLDSHARED = true; then
LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
LIBSMBCLIENT=libsmbclient
AC_MSG_RESULT(yes)
else
2003-02-24 06:22:49 +03:00
enable_static=yes
AC_MSG_RESULT(no shared library support -- will supply static library)
fi
if test $enable_static = yes; then
2003-01-28 23:11:20 +03:00
LIBSMBCLIENT=libsmbclient
2002-07-15 14:35:28 +04:00
fi
2005-12-06 00:02:23 +03:00
INSTALL_LIBSMBCLIENT=installclientlib
2002-07-15 14:35:28 +04:00
;;
esac ],
2003-01-28 23:11:20 +03:00
[
2005-12-06 00:02:23 +03:00
# if unspecified, default is to built it if possible.
2003-01-28 23:11:20 +03:00
if test $BLDSHARED = true; then
LIBSMBCLIENT_SHARED=bin/libsmbclient.$SHLIBEXT
LIBSMBCLIENT=libsmbclient
AC_MSG_RESULT(yes)
2003-02-24 06:22:49 +03:00
else
enable_static=yes
AC_MSG_RESULT(no shared library support -- will supply static library)
fi
if test $enable_static = yes; then
2003-01-28 23:11:20 +03:00
LIBSMBCLIENT=libsmbclient
fi]
2005-12-06 00:02:23 +03:00
INSTALL_LIBSMBCLIENT=installclientlib
2002-07-15 14:35:28 +04:00
)
2005-12-06 00:02:23 +03:00
INSTALL_LIBSMBSHAREMODES=
2005-09-06 21:59:32 +04:00
LIBSMBSHAREMODES_SHARED=
LIBSMBSHAREMODES=
2005-09-06 00:36:07 +04:00
AC_MSG_CHECKING(whether to build the libsmbsharemodes shared library)
AC_ARG_WITH(libsmbsharemodes,
[ --with-libsmbsharemodes Build the libsmbsharemodes shared library (default=yes if shared libs supported)],
[ case "$withval" in
2005-09-30 21:13:37 +04:00
no)
2005-09-06 00:36:07 +04:00
AC_MSG_RESULT(no)
;;
*)
if test $BLDSHARED = true; then
LIBSMBSHAREMODES_SHARED=bin/libsmbsharemodes.$SHLIBEXT
2005-09-06 21:59:32 +04:00
LIBSMBSHAREMODES=libsmbsharemodes
2005-09-06 00:36:07 +04:00
AC_MSG_RESULT(yes)
else
2005-09-30 21:13:37 +04:00
enable_static=yes
2005-09-06 00:36:07 +04:00
AC_MSG_RESULT(no shared library support -- will supply static library)
fi
if test $enable_static = yes; then
2005-09-06 21:59:32 +04:00
LIBSMBSHAREMODES=libsmbsharemodes
2005-09-06 00:36:07 +04:00
fi
2005-12-06 00:02:23 +03:00
INSTALL_LIBSMBSHAREMODES=installlibsmbsharemodes
2005-09-06 00:36:07 +04:00
;;
esac ],
[
2005-12-06 00:02:23 +03:00
# if unspecified, default is to built it if possible.
2005-09-06 00:36:07 +04:00
if test $BLDSHARED = true; then
LIBSMBSHAREMODES_SHARED=bin/libsmbsharemodes.$SHLIBEXT
LIBSMBSHAREMODES=libsmbsharemodes
AC_MSG_RESULT(yes)
else
enable_static=yes
AC_MSG_RESULT(no shared library support -- will supply static library)
fi
if test $enable_static = yes; then
2005-09-06 21:59:32 +04:00
LIBSMBSHAREMODES=libsmbsharemodes
2005-09-06 00:36:07 +04:00
fi]
2005-12-06 00:02:23 +03:00
INSTALL_LIBSMBSHAREMODES=installlibsmbsharemodes
2005-09-06 00:36:07 +04:00
)
1998-07-29 07:08:05 +04:00
#################################################
# these tests are taken from the GNU fileutils package
AC_CHECKING(how to get filesystem space usage)
space=no
1998-09-18 03:06:57 +04:00
# Test for statvfs64.
if test $space = no; then
# SVR4
AC_CACHE_CHECK([statvfs64 function (SVR4)], fu_cv_sys_stat_statvfs64,
[AC_TRY_RUN([
1999-12-13 16:27:58 +03:00
#if defined(HAVE_UNISTD_H)
#include <unistd.h>
#endif
1998-09-18 03:06:57 +04:00
#include <sys/types.h>
#include <sys/statvfs.h>
main ()
{
struct statvfs64 fsd;
1999-12-13 16:27:58 +03:00
exit (statvfs64 (".", &fsd));
1998-09-18 03:06:57 +04:00
}],
fu_cv_sys_stat_statvfs64=yes,
1998-09-21 13:07:08 +04:00
fu_cv_sys_stat_statvfs64=no,
fu_cv_sys_stat_statvfs64=cross)])
1998-09-18 03:06:57 +04:00
if test $fu_cv_sys_stat_statvfs64 = yes; then
space=yes
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_STATVFS64,1,[Whether statvfs64() is available])
1998-09-18 03:06:57 +04:00
fi
fi
1998-07-29 07:08:05 +04:00
# 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
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_STATVFS,1,[Whether statvfs() is available])
1998-07-29 07:08:05 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_STATFS3_OSF1,1,[Whether statfs requires 3 arguments])
1998-07-29 07:08:05 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_STATFS2_BSIZE,1,[Whether statfs requires two arguments and struct statfs has bsize property])
1998-07-29 07:08:05 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_STATFS4,1,[Whether statfs requires 4 arguments])
1998-07-29 07:08:05 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_STATFS2_FSIZE,1,[Whether statfs requires 2 arguments and struct statfs has fsize])
1998-07-29 07:08:05 +04:00
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
2002-10-28 22:28:32 +03:00
AC_DEFINE(STAT_STATFS2_FS_DATA,1,[Whether statfs requires 2 arguments and struct fs_data is available])
1998-07-29 07:08:05 +04:00
fi
fi
1999-12-13 16:27:58 +03:00
#
# As a gating factor for large file support, in order to
# use <4GB files we must have the following minimal support
# available.
# long long, and a 64 bit off_t or off64_t.
# If we don't have all of these then disable large
# file support.
#
2000-12-08 06:44:52 +03:00
AC_MSG_CHECKING([if large file support can be enabled])
1999-12-13 16:27:58 +03:00
AC_TRY_COMPILE([
#if defined(HAVE_LONGLONG) && (defined(HAVE_OFF64_T) || (defined(SIZEOF_OFF_T) && (SIZEOF_OFF_T == 8)))
#include <sys/types.h>
#else
__COMPILE_ERROR_
#endif
],
[int i],
samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=yes,samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT=no)
if test x"$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_EXPLICIT_LARGEFILE_SUPPORT,1,[Whether large file support can be enabled])
1999-12-13 16:27:58 +03:00
fi
2000-12-08 06:44:52 +03:00
AC_MSG_RESULT([$samba_cv_HAVE_EXPLICIT_LARGEFILE_SUPPORT])
1999-12-13 16:27:58 +03:00
2001-08-24 23:58:28 +04:00
AC_ARG_WITH(spinlocks,
[ --with-spinlocks Use spin locks instead of fcntl locks (default=no) ])
2000-12-06 03:05:15 +03:00
if test "x$with_spinlocks" = "xyes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(USE_SPINLOCKS,1,[Whether to use spin locks instead of fcntl locks])
2000-12-06 03:05:15 +03:00
case "$host_cpu" in
sparc)
2002-10-28 22:28:32 +03:00
AC_DEFINE(SPARC_SPINLOCKS,1,[Whether to use sparc spinlocks])
2000-12-06 03:05:15 +03:00
;;
i386|i486|i586|i686)
2002-10-28 22:28:32 +03:00
AC_DEFINE(INTEL_SPINLOCKS,1,[Whether to use intel spinlocks])
2000-12-06 03:05:15 +03:00
;;
mips)
2002-10-28 22:28:32 +03:00
AC_DEFINE(MIPS_SPINLOCKS,1,[Whether to use mips spinlocks])
2000-12-06 03:05:15 +03:00
;;
powerpc)
2002-10-28 22:28:32 +03:00
AC_DEFINE(POWERPC_SPINLOCKS,1,[Whether to use powerpc spinlocks])
2000-12-06 03:05:15 +03:00
;;
esac
fi
2000-12-07 08:38:01 +03:00
#################################################
2001-02-25 03:24:54 +03:00
# check for ACL support
2000-12-07 08:38:01 +03:00
2001-02-25 03:24:54 +03:00
AC_MSG_CHECKING(whether to support ACLs)
AC_ARG_WITH(acl-support,
2001-08-24 23:58:28 +04:00
[ --with-acl-support Include ACL support (default=no)],
2000-12-07 08:38:01 +03:00
[ case "$withval" in
yes)
2000-12-07 09:23:01 +03:00
2001-12-15 05:40:16 +03:00
case "$host_os" in
*sysv5*)
AC_MSG_RESULT(Using UnixWare ACLs)
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
2001-12-15 05:40:16 +03:00
;;
*solaris*)
AC_MSG_RESULT(Using solaris ACLs)
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
2005-10-19 01:24:42 +04:00
ACL_LIBS="$ACL_LIBS -lsec"
2001-12-15 05:40:16 +03:00
;;
*hpux*)
AC_MSG_RESULT(Using HPUX ACLs)
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
2001-12-15 05:40:16 +03:00
;;
*irix*)
AC_MSG_RESULT(Using IRIX ACLs)
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
2001-12-15 05:40:16 +03:00
;;
*aix*)
AC_MSG_RESULT(Using AIX ACLs)
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
2001-12-15 05:40:16 +03:00
;;
*osf*)
AC_MSG_RESULT(Using Tru64 ACLs)
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
2003-09-08 06:48:06 +04:00
ACL_LIBS="$ACL_LIBS -lpacl"
2001-12-15 05:40:16 +03:00
;;
2005-07-20 12:07:06 +04:00
*freebsd[[5-9]]*)
2003-05-19 22:00:44 +04:00
AC_MSG_RESULT(Using FreeBSD posix ACLs)
AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether FreeBSD POSIX ACLs are available])
AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
;;
2003-06-03 10:33:20 +04:00
*linux*)
2003-09-08 06:48:06 +04:00
AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
2003-06-03 10:33:20 +04:00
AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
acl_LIBS=$LIBS
LIBS="$LIBS -lacl"
AC_TRY_LINK([#include <sys/types.h>
#include <sys/acl.h>],
[ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
LIBS=$acl_LIBS])
if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
AC_MSG_RESULT(Using posix ACLs)
AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
acl_LIBS=$LIBS
LIBS="$LIBS -lacl"
AC_TRY_LINK([#include <sys/types.h>
#include <sys/acl.h>],
[ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
LIBS=$acl_LIBS])
if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
fi
fi
;;
*)
2003-09-08 06:48:06 +04:00
AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
2001-12-15 05:40:16 +03:00
AC_CACHE_CHECK([for ACL support],samba_cv_HAVE_POSIX_ACLS,[
2003-02-24 06:22:49 +03:00
acl_LIBS=$LIBS
LIBS="$LIBS -lacl"
2001-12-15 05:40:16 +03:00
AC_TRY_LINK([#include <sys/types.h>
2000-12-07 09:23:01 +03:00
#include <sys/acl.h>],
[ acl_t acl; int entry_id; acl_entry_t *entry_p; return acl_get_entry( acl, entry_id, entry_p);],
2003-02-24 06:22:49 +03:00
samba_cv_HAVE_POSIX_ACLS=yes,samba_cv_HAVE_POSIX_ACLS=no)
LIBS=$acl_LIBS])
2001-04-14 23:46:28 +04:00
if test x"$samba_cv_HAVE_POSIX_ACLS" = x"yes"; then
AC_MSG_RESULT(Using posix ACLs)
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
2001-04-14 23:46:28 +04:00
AC_CACHE_CHECK([for acl_get_perm_np],samba_cv_HAVE_ACL_GET_PERM_NP,[
2003-02-24 06:22:49 +03:00
acl_LIBS=$LIBS
LIBS="$LIBS -lacl"
2001-04-14 23:46:28 +04:00
AC_TRY_LINK([#include <sys/types.h>
#include <sys/acl.h>],
[ acl_permset_t permset_d; acl_perm_t perm; return acl_get_perm_np( permset_d, perm);],
2003-02-24 06:22:49 +03:00
samba_cv_HAVE_ACL_GET_PERM_NP=yes,samba_cv_HAVE_ACL_GET_PERM_NP=no)
LIBS=$acl_LIBS])
2001-04-14 23:46:28 +04:00
if test x"$samba_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
2001-04-14 23:46:28 +04:00
fi
fi
2001-02-25 03:24:54 +03:00
;;
esac
;;
2000-12-07 08:38:01 +03:00
*)
AC_MSG_RESULT(no)
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
2000-12-07 08:38:01 +03:00
;;
esac ],
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
2001-02-25 03:24:54 +03:00
AC_MSG_RESULT(no)
2000-12-07 08:38:01 +03:00
)
2001-05-16 06:32:34 +04:00
2005-06-28 02:06:41 +04:00
#################################################
# check for AIO support
AC_MSG_CHECKING(whether to support asynchronous io)
AC_ARG_WITH(aio-support,
[ --with-aio-support Include asynchronous io support (default=no)],
[ case "$withval" in
yes)
2005-08-02 20:49:19 +04:00
AC_MSG_RESULT(yes)
2005-06-28 02:06:41 +04:00
case "$host_os" in
*)
AC_CHECK_LIB(rt,aio_read,[AIO_LIBS="$ACL_LIBS -lrt"])
2006-01-11 13:21:23 +03:00
AC_CHECK_LIB(aio,aio_read,[AIO_LIBS="$ACL_LIBS -laio"])
2005-06-28 02:06:41 +04:00
AC_CACHE_CHECK([for asynchronous io support],samba_cv_HAVE_AIO,[
aio_LIBS=$LIBS
2006-01-11 13:21:23 +03:00
LIBS=$AIO_LIBS
2005-06-28 02:06:41 +04:00
AC_TRY_LINK([#include <sys/types.h>
#include <aio.h>],
[ struct aiocb a; return aio_read(&a);],
samba_cv_HAVE_AIO=yes,samba_cv_HAVE_AIO=no)
LIBS=$aio_LIBS])
AC_CACHE_CHECK([for 64-bit asynchronous io support],samba_cv_HAVE_AIO64,[
aio_LIBS=$LIBS
2006-01-11 13:21:23 +03:00
LIBS=$AIO_LIBS
2005-06-28 02:06:41 +04:00
AC_TRY_LINK([#include <sys/types.h>
#include <aio.h>],
[ struct aiocb64 a; return aio_read64(&a);],
samba_cv_HAVE_AIO64=yes,samba_cv_HAVE_AIO64=no)
LIBS=$aio_LIBS])
if test x"$samba_cv_HAVE_AIO64" = x"yes"; then
AC_DEFINE(HAVE_AIOCB64,1,[Whether 64 bit aio is available])
AC_DEFINE(WITH_AIO, 1, [Using asynchronous io])
2006-01-11 13:21:23 +03:00
LIBS=$AIO_LIBS
2005-06-28 02:06:41 +04:00
elif test x"$samba_cv_HAVE_AIO" = x"yes"; then
AC_DEFINE(WITH_AIO, 1, [Using asynchronous io])
2006-01-11 13:21:23 +03:00
LIBS=$AIO_LIBS
2005-06-28 02:06:41 +04:00
fi
2005-08-02 20:49:19 +04:00
if test x"$samba_cv_HAVE_AIO" = x"yes"; then
AC_MSG_CHECKING(for aio_read)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_read(&a); }],
[AC_DEFINE(HAVE_AIO_READ, 1, [Have aio_read]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_write)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_write(&a); }],
[AC_DEFINE(HAVE_AIO_WRITE, 1, [Have aio_write]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_fsync)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_fsync(1, &a); }],
[AC_DEFINE(HAVE_AIO_FSYNC, 1, [Have aio_fsync]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_return)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_return(&a); }],
[AC_DEFINE(HAVE_AIO_RETURN, 1, [Have aio_return]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_error)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_error(&a); }],
[AC_DEFINE(HAVE_AIO_ERROR, 1, [Have aio_error]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_cancel)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_cancel(1, &a); }],
[AC_DEFINE(HAVE_AIO_CANCEL, 1, [Have aio_cancel]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_suspend)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_suspend(&a, 1, NULL); }],
[AC_DEFINE(HAVE_AIO_SUSPEND, 1, [Have aio_suspend]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
fi
if test x"$samba_cv_HAVE_AIO64" = x"yes"; then
AC_MSG_CHECKING(for aio_read64)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_read64(&a); }],
[AC_DEFINE(HAVE_AIO_READ64, 1, [Have aio_read64]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_write64)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_write64(&a); }],
[AC_DEFINE(HAVE_AIO_WRITE64, 1, [Have aio_write64]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_fsync64)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_fsync64(1, &a); }],
[AC_DEFINE(HAVE_AIO_FSYNC64, 1, [Have aio_fsync64]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_return64)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_return64(&a); }],
[AC_DEFINE(HAVE_AIO_RETURN64, 1, [Have aio_return64]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_error64)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_error64(&a); }],
[AC_DEFINE(HAVE_AIO_ERROR64, 1, [Have aio_error64]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_cancel64)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_cancel64(1, &a); }],
[AC_DEFINE(HAVE_AIO_CANCEL64, 1, [Have aio_cancel64]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
AC_MSG_CHECKING(for aio_suspend64)
AC_LINK_IFELSE([#include <aio.h>
int main() { struct aiocb a; return aio_suspend64(&a, 1, NULL); }],
[AC_DEFINE(HAVE_AIO_SUSPEND64, 1, [Have aio_suspend64]) AC_MSG_RESULT(yes)],
[AC_MSG_RESULT(no)])
fi
2005-06-28 02:06:41 +04:00
;;
esac
;;
*)
AC_MSG_RESULT(no)
AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support is available])
;;
esac ],
AC_DEFINE(HAVE_NO_AIO,1,[Whether no asynchronous io support should be built in])
AC_MSG_RESULT(no)
)
2002-09-25 19:19:00 +04:00
#################################################
# check for sendfile support
2002-10-05 04:40:49 +04:00
with_sendfile_support=yes
AC_MSG_CHECKING(whether to check to support sendfile)
2002-09-25 19:19:00 +04:00
AC_ARG_WITH(sendfile-support,
2003-05-20 22:26:06 +04:00
[ --with-sendfile-support Check for sendfile support (default=yes)],
2002-09-25 19:19:00 +04:00
[ case "$withval" in
yes)
2002-10-01 09:54:40 +04:00
AC_MSG_RESULT(yes);
2002-09-25 19:19:00 +04:00
case "$host_os" in
*linux*)
AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
AC_TRY_LINK([#include <sys/sendfile.h>],
[\
int tofd, fromfd;
off64_t offset;
size_t total;
ssize_t nwritten = sendfile64(tofd, fromfd, &offset, total);
],
samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
AC_CACHE_CHECK([for linux sendfile support],samba_cv_HAVE_SENDFILE,[
AC_TRY_LINK([#include <sys/sendfile.h>],
[\
int tofd, fromfd;
off_t offset;
size_t total;
ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
],
samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
# Try and cope with broken Linux sendfile....
AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[
AC_TRY_LINK([\
#if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
#undef _FILE_OFFSET_BITS
#endif
#include <sys/sendfile.h>],
[\
int tofd, fromfd;
off_t offset;
size_t total;
ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
],
samba_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,samba_cv_HAVE_BROKEN_LINUX_SENDFILE=no)])
if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SENDFILE64,1,[Whether 64-bit sendfile() is available])
AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
2002-09-25 19:19:00 +04:00
elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
AC_DEFINE(LINUX_SENDFILE_API,1,[Whether linux sendfile() API is available])
AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
2002-09-25 19:19:00 +04:00
elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
2002-09-25 19:19:00 +04:00
else
AC_MSG_RESULT(no);
fi
;;
2005-06-06 17:30:45 +04:00
*freebsd* | *dragonfly* )
2002-09-25 19:19:00 +04:00
AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[
AC_TRY_LINK([\
#include <sys/types.h>
2003-01-15 21:57:41 +03:00
#include <unistd.h>
2002-09-25 19:19:00 +04:00
#include <sys/socket.h>
#include <sys/uio.h>],
[\
2003-01-15 21:57:41 +03:00
int fromfd, tofd, ret, total=0;
2002-09-25 19:19:00 +04:00
off_t offset, nwritten;
struct sf_hdtr hdr;
struct iovec hdtrl;
2003-01-15 21:57:41 +03:00
hdr.headers = &hdtrl;
hdr.hdr_cnt = 1;
hdr.trailers = NULL;
hdr.trl_cnt = 0;
2002-09-25 19:19:00 +04:00
hdtrl.iov_base = NULL;
hdtrl.iov_len = 0;
2003-01-15 21:57:41 +03:00
ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 0);
2002-09-25 19:19:00 +04:00
],
samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() support is available])
AC_DEFINE(FREEBSD_SENDFILE_API,1,[Whether the FreeBSD sendfile() API is available])
AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2002-09-25 19:19:00 +04:00
else
AC_MSG_RESULT(no);
fi
;;
*hpux*)
AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[
AC_TRY_LINK([\
#include <sys/socket.h>
#include <sys/uio.h>],
[\
int fromfd, tofd;
size_t total=0;
struct iovec hdtrl[2];
ssize_t nwritten;
off64_t offset;
hdtrl[0].iov_base = 0;
hdtrl[0].iov_len = 0;
nwritten = sendfile64(tofd, fromfd, offset, total, &hdtrl[0], 0);
],
samba_cv_HAVE_SENDFILE64=yes,samba_cv_HAVE_SENDFILE64=no)])
if test x"$samba_cv_HAVE_SENDFILE64" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SENDFILE64,1,[Whether sendfile64() is available])
AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2002-09-25 19:19:00 +04:00
else
AC_MSG_RESULT(no);
fi
AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[
AC_TRY_LINK([\
#include <sys/socket.h>
#include <sys/uio.h>],
[\
int fromfd, tofd;
size_t total=0;
struct iovec hdtrl[2];
ssize_t nwritten;
off_t offset;
hdtrl[0].iov_base = 0;
hdtrl[0].iov_len = 0;
nwritten = sendfile(tofd, fromfd, offset, total, &hdtrl[0], 0);
],
samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
AC_DEFINE(HPUX_SENDFILE_API,1,[Whether the hpux sendfile() API is available])
AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2002-09-25 19:19:00 +04:00
else
AC_MSG_RESULT(no);
fi
2002-10-01 01:17:18 +04:00
;;
*solaris*)
2002-11-16 04:08:46 +03:00
AC_CHECK_LIB(sendfile,sendfilev)
2002-10-01 01:17:18 +04:00
AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[
AC_TRY_LINK([\
#include <sys/sendfile.h>],
[\
int sfvcnt;
size_t xferred;
struct sendfilevec vec[2];
ssize_t nwritten;
2002-10-01 09:54:40 +04:00
int tofd;
2002-10-01 01:17:18 +04:00
sfvcnt = 2;
2002-09-25 19:19:00 +04:00
2002-10-01 01:17:18 +04:00
vec[0].sfv_fd = SFV_FD_SELF;
vec[0].sfv_flag = 0;
vec[0].sfv_off = 0;
vec[0].sfv_len = 0;
vec[1].sfv_fd = 0;
vec[1].sfv_flag = 0;
vec[1].sfv_off = 0;
vec[1].sfv_len = 0;
nwritten = sendfilev64(tofd, vec, sfvcnt, &xferred);
],
samba_cv_HAVE_SENDFILEV64=yes,samba_cv_HAVE_SENDFILEV64=no)])
if test x"$samba_cv_HAVE_SENDFILEV64" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SENDFILEV64,1,[Whether sendfilev64() is available])
AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the soloris sendfile() API is available])
AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() support should be included])
2002-10-01 01:17:18 +04:00
else
AC_MSG_RESULT(no);
fi
AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[
AC_TRY_LINK([\
#include <sys/sendfile.h>],
[\
int sfvcnt;
size_t xferred;
struct sendfilevec vec[2];
ssize_t nwritten;
2002-10-01 09:54:40 +04:00
int tofd;
2002-10-01 01:17:18 +04:00
sfvcnt = 2;
vec[0].sfv_fd = SFV_FD_SELF;
vec[0].sfv_flag = 0;
vec[0].sfv_off = 0;
vec[0].sfv_len = 0;
vec[1].sfv_fd = 0;
vec[1].sfv_flag = 0;
vec[1].sfv_off = 0;
vec[1].sfv_len = 0;
nwritten = sendfilev(tofd, vec, sfvcnt, &xferred);
],
samba_cv_HAVE_SENDFILEV=yes,samba_cv_HAVE_SENDFILEV=no)])
if test x"$samba_cv_HAVE_SENDFILEV" = x"yes"; then
2002-10-28 22:28:32 +03:00
AC_DEFINE(HAVE_SENDFILEV,1,[Whether sendfilev() is available])
AC_DEFINE(SOLARIS_SENDFILE_API,1,[Whether the solaris sendfile() API is available])
AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
2002-10-01 01:17:18 +04:00
else
AC_MSG_RESULT(no);
fi
2002-09-25 19:19:00 +04:00
;;
2004-12-21 01:33:37 +03:00
*aix*)
AC_CACHE_CHECK([for AIX send_file support],samba_cv_HAVE_SENDFILE,[
AC_TRY_LINK([\
#include <sys/socket.h>],
[\
int fromfd, tofd;
size_t total=0;
struct sf_parms hdtrl;
ssize_t nwritten;
off64_t offset;
hdtrl.header_data = 0;
hdtrl.header_length = 0;
hdtrl.file_descriptor = fromfd;
hdtrl.file_offset = 0;
hdtrl.file_bytes = 0;
hdtrl.trailer_data = 0;
hdtrl.trailer_length = 0;
2002-09-25 19:19:00 +04:00
2004-12-21 01:33:37 +03:00
nwritten = send_file(&tofd, &hdtrl, 0);
],
samba_cv_HAVE_SENDFILE=yes,samba_cv_HAVE_SENDFILE=no)])
if test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then
AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
AC_DEFINE(AIX_SENDFILE_API,1,[Whether the AIX send_file() API is available])
AC_DEFINE(WITH_SENDFILE,1,[Whether to include sendfile() support])
else
AC_MSG_RESULT(no);
fi
;;
2002-09-25 19:19:00 +04:00
*)
;;
esac
;;
*)
AC_MSG_RESULT(no)
;;
esac ],
2002-10-05 04:40:49 +04:00
AC_MSG_RESULT(yes)
2002-09-25 19:19:00 +04:00
)
2001-05-16 06:32:34 +04:00
#################################################
2001-08-01 06:30:33 +04:00
# Check whether winbind is supported on this platform. If so we need to
2002-11-29 04:17:00 +03:00
# build and install client programs, sbin programs and shared libraries
2001-05-16 06:32:34 +04:00
2001-08-01 06:30:33 +04:00
AC_MSG_CHECKING(whether to build winbind)
# Initially, the value of $host_os decides whether winbind is supported
2001-06-01 15:53:48 +04:00
2003-04-02 10:26:55 +04:00
HAVE_WINBIND=yes
2003-04-14 05:10:49 +04:00
# Define the winbind shared library name and any specific linker flags
# it needs to be built with.
2003-06-16 07:28:27 +04:00
WINBIND_NSS="nsswitch/libnss_winbind.$SHLIBEXT"
WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT"
2003-04-14 05:10:49 +04:00
WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
2002-03-01 04:03:06 +03:00
case "$host_os" in
2003-11-27 08:11:14 +03:00
*linux*)
2003-04-02 10:26:55 +04:00
WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o"
;;
2005-07-20 12:07:06 +04:00
*freebsd[[5-9]]*)
2004-01-08 00:08:42 +03:00
# FreeBSD winbind client is implemented as a wrapper around
# the Linux version.
WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_freebsd.o \
nsswitch/winbind_nss_linux.o"
2004-04-28 23:18:41 +04:00
WINBIND_NSS="nsswitch/nss_winbind.$SHLIBEXT"
WINBIND_WINS_NSS="nsswitch/nss_wins.$SHLIBEXT"
2003-11-27 08:11:14 +03:00
;;
2003-04-02 10:26:55 +04:00
*irix*)
2003-06-16 07:28:27 +04:00
# IRIX has differently named shared libraries
2003-04-02 10:26:55 +04:00
WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o"
2003-06-16 07:28:27 +04:00
WINBIND_NSS="nsswitch/libns_winbind.$SHLIBEXT"
WINBIND_WINS_NSS="nsswitch/libns_wins.$SHLIBEXT"
2002-03-01 04:03:06 +03:00
;;
*solaris*)
2003-04-02 10:26:55 +04:00
# Solaris winbind client is implemented as a wrapper around
# the Linux version.
WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o \
nsswitch/winbind_nss_linux.o"
2002-03-01 22:30:34 +03:00
WINBIND_NSS_EXTRA_LIBS="-lsocket"
2002-03-01 04:03:06 +03:00
;;
*hpux11*)
2002-03-04 01:49:08 +03:00
WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_solaris.o"
2002-03-01 04:03:06 +03:00
;;
2003-04-02 10:26:55 +04:00
*aix*)
2003-06-16 07:28:27 +04:00
# AIX has even differently named shared libraries. No
# WINS support has been implemented yet.
2003-04-02 10:26:55 +04:00
WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_aix.o"
2003-04-14 05:10:49 +04:00
WINBIND_NSS_LDSHFLAGS="-Wl,-bexpall,-bM:SRE,-ewb_aix_init"
2003-06-16 07:28:27 +04:00
WINBIND_NSS="nsswitch/WINBIND"
WINBIND_WINS_NSS=""
2003-04-02 10:26:55 +04:00
;;
2002-03-01 04:03:06 +03:00
*)
2001-08-01 06:30:33 +04:00
HAVE_WINBIND=no
2002-03-01 04:03:06 +03:00
winbind_no_reason=", unsupported on $host_os"
;;
2001-05-16 06:32:34 +04:00
esac
2003-04-14 05:10:49 +04:00
AC_SUBST(WINBIND_NSS)
2003-06-16 07:28:27 +04:00
AC_SUBST(WINBIND_WINS_NSS)
2003-04-14 05:10:49 +04:00
AC_SUBST(WINBIND_NSS_LDSHFLAGS)
2002-11-29 04:17:00 +03:00
AC_SUBST(WINBIND_NSS_EXTRA_OBJS)
AC_SUBST(WINBIND_NSS_EXTRA_LIBS)
2004-09-08 03:22:09 +04:00
# Check the setting of --with-winbind
2001-08-01 06:30:33 +04:00
2001-06-01 15:53:48 +04:00
AC_ARG_WITH(winbind,
2001-08-24 23:58:28 +04:00
[ --with-winbind Build winbind (default, if supported by OS)],
2001-06-01 15:53:48 +04:00
[
case "$withval" in
2001-08-01 06:30:33 +04:00
yes)
HAVE_WINBIND=yes
;;
2001-06-01 15:53:48 +04:00
no)
2001-08-01 06:30:33 +04:00
HAVE_WINBIND=no
2001-06-01 15:53:48 +04:00
winbind_reason=""
;;
esac ],
)
2001-08-01 06:30:33 +04:00
# We need unix domain sockets for winbind
if test x"$HAVE_WINBIND" = x"yes"; then
if test x"$samba_cv_unixsocket" = x"no"; then
winbind_no_reason=", no unix domain socket support on $host_os"
HAVE_WINBIND=no
fi
fi
# Display test results
2002-01-08 07:44:15 +03:00
if test x"$HAVE_WINBIND" = x"yes"; then
2001-06-01 15:53:48 +04:00
AC_MSG_RESULT(yes)
2002-10-28 22:28:32 +03:00
AC_DEFINE(WITH_WINBIND,1,[Whether to build winbind])
2001-08-01 06:30:33 +04:00
2002-12-06 02:02:17 +03:00
EXTRA_BIN_PROGS="$EXTRA_BIN_PROGS bin/wbinfo\$(EXEEXT)"
EXTRA_SBIN_PROGS="$EXTRA_SBIN_PROGS bin/winbindd\$(EXEEXT)"
2004-04-13 16:28:38 +04:00
if test $BLDSHARED = true; then
2003-06-16 07:28:27 +04:00
SHLIB_PROGS="$SHLIB_PROGS $WINBIND_NSS $WINBIND_WINS_NSS"
2003-05-03 19:30:41 +04:00
2002-01-08 07:44:15 +03:00
if test x"$with_pam" = x"yes"; then
2003-04-05 03:32:51 +04:00
SHLIB_PROGS="$SHLIB_PROGS nsswitch/pam_winbind.$SHLIBEXT"
2002-01-08 07:44:15 +03:00
fi
fi
2001-08-01 06:30:33 +04:00
else
AC_MSG_RESULT(no$winbind_no_reason)
2001-06-01 15:53:48 +04:00
fi
2005-08-17 19:23:52 +04:00
# Solaris 10 does have new member in nss_XbyY_key
AC_CHECK_MEMBER(union nss_XbyY_key.ipnode.af_family,
AC_DEFINE(HAVE_NSS_XBYY_KEY_IPNODE, 1, [Defined if union nss_XbyY_key has ipnode field]),,
[#include <nss_dbdefs.h>])
2002-05-13 04:06:35 +04:00
# Solaris has some extra fields in struct passwd that need to be
2003-05-03 19:30:41 +04:00
# initialised otherwise nscd crashes.
AC_CHECK_MEMBER(struct passwd.pw_comment,
AC_DEFINE(HAVE_PASSWD_PW_COMMENT, 1, [Defined if struct passwd has pw_comment field]),,
[#include <pwd.h>])
2002-05-13 04:06:35 +04:00
2003-05-03 19:30:41 +04:00
AC_CHECK_MEMBER(struct passwd.pw_age,
AC_DEFINE(HAVE_PASSWD_PW_AGE, 1, [Defined if struct passwd has pw_age field]),,
[#include <pwd.h>])
2002-05-13 04:06:35 +04:00
2004-10-01 06:57:10 +04:00
# AIX 4.3.x and 5.1 do not have as many members in
# struct secmethod_table as AIX 5.2
AC_CHECK_MEMBERS([struct secmethod_table.method_attrlist], , ,
[#include <usersec.h>])
AC_CHECK_MEMBERS([struct secmethod_table.method_version], , ,
[#include <usersec.h>])
2001-10-23 18:16:22 +04:00
#################################################
# Check to see if we should use the included popt
AC_ARG_WITH(included-popt,
[ --with-included-popt use bundled popt library, not from system],
[
case "$withval" in
yes)
INCLUDED_POPT=yes
;;
no)
INCLUDED_POPT=no
;;
esac ],
)
2001-10-23 21:12:30 +04:00
if test x"$INCLUDED_POPT" != x"yes"; then
AC_CHECK_LIB(popt, poptGetContext,
INCLUDED_POPT=no, INCLUDED_POPT=yes)
2001-10-23 18:16:22 +04:00
fi
2001-11-14 04:18:41 +03:00
AC_MSG_CHECKING(whether to use included popt)
2001-10-23 18:16:22 +04:00
if test x"$INCLUDED_POPT" = x"yes"; then
2002-08-17 21:00:51 +04:00
AC_MSG_RESULT(yes)
2001-10-23 18:16:22 +04:00
BUILD_POPT='$(POPT_OBJS)'
2003-04-16 18:45:11 +04:00
POPTLIBS='$(POPT_OBJS)'
2001-12-05 22:45:30 +03:00
FLAGS1="-I$srcdir/popt"
2001-10-23 18:16:22 +04:00
else
AC_MSG_RESULT(no)
2003-04-16 18:45:11 +04:00
BUILD_POPT=""
POPTLIBS="-lpopt"
2001-10-23 18:16:22 +04:00
fi
AC_SUBST(BUILD_POPT)
2003-04-16 18:45:11 +04:00
AC_SUBST(POPTLIBS)
2001-12-05 22:45:30 +03:00
AC_SUBST(FLAGS1)
2001-10-23 18:16:22 +04:00
2002-09-25 19:19:00 +04:00
#################################################
# Check if the user wants Python
# At the moment, you can use this to set which Python binary to link
# against. (Libraries built for Python2.2 can't be used by 2.1,
# though they can coexist in different directories.) In the future
# this might make the Python stuff be built by default.
2002-12-06 02:02:17 +03:00
# Defaulting python breaks the clean target if python isn't installed
2002-11-29 04:17:00 +03:00
2002-12-06 02:02:17 +03:00
PYTHON=
2002-11-29 04:17:00 +03:00
2002-09-25 19:19:00 +04:00
AC_ARG_WITH(python,
[ --with-python=PYTHONNAME build Python libraries],
[ case "${withval-python}" in
yes)
2002-12-06 02:02:17 +03:00
PYTHON=python
2002-11-29 04:17:00 +03:00
EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS python_ext"
;;
no)
PYTHON=
2002-09-25 19:19:00 +04:00
;;
*)
PYTHON=${withval-python}
;;
esac ])
AC_SUBST(PYTHON)
2005-09-23 23:51:44 +04:00
for i in `echo $default_static_modules | sed -e 's/,/ /g'`
2003-04-15 16:02:24 +04:00
do
eval MODULE_DEFAULT_$i=STATIC
done
2005-09-23 23:51:44 +04:00
for i in `echo $default_shared_modules | sed -e 's/,/ /g'`
2003-04-15 16:02:24 +04:00
do
2004-04-13 16:28:38 +04:00
dnl Fall back to static if we cannot build shared libraries
2003-04-15 16:02:24 +04:00
eval MODULE_DEFAULT_$i=STATIC
2004-04-13 16:28:38 +04:00
if test $BLDSHARED = true; then
2003-04-15 16:02:24 +04:00
eval MODULE_DEFAULT_$i=SHARED
fi
done
dnl Always built these modules static
MODULE_pdb_guest=STATIC
MODULE_rpc_spoolss=STATIC
MODULE_rpc_srv=STATIC
2003-05-29 23:08:40 +04:00
MODULE_idmap_tdb=STATIC
2003-04-15 16:02:24 +04:00
AC_ARG_WITH(static-modules,
[ --with-static-modules=MODULES Comma-seperated list of names of modules to statically link in],
[ if test $withval; then
2005-09-23 23:51:44 +04:00
for i in `echo $withval | sed -e 's/,/ /g'`
2003-04-15 16:02:24 +04:00
do
eval MODULE_$i=STATIC
done
fi ])
AC_ARG_WITH(shared-modules,
[ --with-shared-modules=MODULES Comma-seperated list of names of modules to build shared],
[ if test $withval; then
2005-09-23 23:51:44 +04:00
for i in `echo $withval | sed -e 's/,/ /g'`
2003-04-15 16:02:24 +04:00
do
eval MODULE_$i=SHARED
done
fi ])
2003-05-20 22:26:06 +04:00
###########################################################################
2003-05-21 01:15:49 +04:00
## contributed pdb_modules
2003-05-20 22:26:06 +04:00
2003-05-21 01:15:49 +04:00
SMB_MODULE(pdb_xml, passdb/pdb_xml.o, "bin/xml.$SHLIBEXT", PDB,
2003-09-08 06:48:06 +04:00
[ PASSDB_LIBS="$PASSDB_LIBS $XML_LIBS" ] )
2003-05-21 01:15:49 +04:00
SMB_MODULE(pdb_mysql, passdb/pdb_mysql.o, "bin/mysql.$SHLIBEXT", PDB,
2003-09-08 06:48:06 +04:00
[ PASSDB_LIBS="$PASSDB_LIBS $MYSQL_LIBS" ] )
2004-01-05 00:09:42 +03:00
SMB_MODULE(pdb_pgsql, passdb/pdb_pgsql.o, "bin/pgsql.$SHLIBEXT", PDB,
[ PASSDB_LIBS="$PASSDB_LIBS $PGSQL_LIBS" ] )
2003-05-20 22:26:06 +04:00
2003-05-21 01:15:49 +04:00
## end of contributed pdb_modules
2003-05-20 22:26:06 +04:00
###########################################################################
2005-03-05 04:22:53 +03:00
SMB_MODULE(pdb_ldap, passdb/pdb_ldap.o passdb/pdb_nds.o, "bin/ldapsam.$SHLIBEXT", PDB,
2003-09-08 06:48:06 +04:00
[ PASSDB_LIBS="$PASSDB_LIBS $LDAP_LIBS" ] )
2003-04-15 16:02:24 +04:00
SMB_MODULE(pdb_smbpasswd, passdb/pdb_smbpasswd.o, "bin/smbpasswd.$SHLIBEXT", PDB)
SMB_MODULE(pdb_tdbsam, passdb/pdb_tdb.o, "bin/tdbsam.$SHLIBEXT", PDB)
SMB_MODULE(pdb_guest, passdb/pdb_guest.o, "bin/guest.$SHLIBEXT", PDB)
2003-10-10 02:52:51 +04:00
SMB_SUBSYSTEM(PDB,passdb/pdb_interface.o)
2003-04-15 16:02:24 +04:00
2005-09-30 21:13:37 +04:00
2003-04-15 16:02:24 +04:00
SMB_MODULE(rpc_lsa, \$(RPC_LSA_OBJ), "bin/librpc_lsarpc.$SHLIBEXT", RPC)
SMB_MODULE(rpc_reg, \$(RPC_REG_OBJ), "bin/librpc_winreg.$SHLIBEXT", RPC)
2003-08-15 01:14:28 +04:00
SMB_MODULE(rpc_lsa_ds, \$(RPC_LSA_DS_OBJ), "bin/librpc_lsa_ds.$SHLIBEXT", RPC)
2003-04-15 16:02:24 +04:00
SMB_MODULE(rpc_wks, \$(RPC_WKS_OBJ), "bin/librpc_wkssvc.$SHLIBEXT", RPC)
2005-03-24 02:26:33 +03:00
SMB_MODULE(rpc_svcctl, \$(RPC_SVCCTL_OBJ), "bin/librpc_svcctl.$SHLIBEXT", RPC)
2005-09-30 21:13:37 +04:00
SMB_MODULE(rpc_ntsvcs, \$(RPC_NTSVCS_OBJ), "bin/librpc_ntsvcs.$SHLIBEXT", RPC)
2003-04-15 16:02:24 +04:00
SMB_MODULE(rpc_net, \$(RPC_NETLOG_OBJ), "bin/librpc_NETLOGON.$SHLIBEXT", RPC)
SMB_MODULE(rpc_dfs, \$(RPC_DFS_OBJ), "bin/librpc_netdfs.$SHLIBEXT", RPC)
SMB_MODULE(rpc_srv, \$(RPC_SVC_OBJ), "bin/librpc_srvsvc.$SHLIBEXT", RPC)
SMB_MODULE(rpc_spoolss, \$(RPC_SPOOLSS_OBJ), "bin/librpc_spoolss.$SHLIBEXT", RPC)
2005-03-24 02:26:33 +03:00
SMB_MODULE(rpc_eventlog, \$(RPC_EVENTLOG_OBJ), "bin/librpc_eventlog.$SHLIBEXT", RPC)
2003-04-15 16:02:24 +04:00
SMB_MODULE(rpc_samr, \$(RPC_SAMR_OBJ), "bin/librpc_samr.$SHLIBEXT", RPC)
SMB_MODULE(rpc_echo, \$(RPC_ECHO_OBJ), "bin/librpc_echo.$SHLIBEXT", RPC)
2003-10-10 02:52:51 +04:00
SMB_SUBSYSTEM(RPC,smbd/server.o)
2003-04-15 16:02:24 +04:00
2006-01-13 17:55:08 +03:00
SMB_MODULE(idmap_ldap, sam/idmap_ldap.o, "bin/ldap.$SHLIBEXT", IDMAP)
SMB_MODULE(idmap_tdb, sam/idmap_tdb.o, "bin/tdb.$SHLIBEXT", IDMAP)
SMB_MODULE(idmap_rid, sam/idmap_rid.o, "bin/rid.$SHLIBEXT", IDMAP)
SMB_MODULE(idmap_ad, sam/idmap_ad.o, "bin/ad.$SHLIBEXT", IDMAP)
2003-10-10 02:52:51 +04:00
SMB_SUBSYSTEM(IDMAP,sam/idmap.o)
2003-05-29 23:08:40 +04:00
2003-04-26 15:48:16 +04:00
SMB_MODULE(charset_weird, modules/weird.o, "bin/weird.$SHLIBEXT", CHARSET)
2003-08-26 23:48:16 +04:00
SMB_MODULE(charset_CP850, modules/CP850.o, "bin/CP850.$SHLIBEXT", CHARSET)
2003-08-28 21:16:27 +04:00
SMB_MODULE(charset_CP437, modules/CP437.o, "bin/CP437.$SHLIBEXT", CHARSET)
2003-11-26 23:58:53 +03:00
SMB_MODULE(charset_macosxfs, modules/charset_macosxfs.o,"bin/macosxfs.$SHLIBEXT", CHARSET)
2003-10-10 02:52:51 +04:00
SMB_SUBSYSTEM(CHARSET,lib/iconv.o)
2003-04-15 16:02:24 +04:00
SMB_MODULE(auth_rhosts, \$(AUTH_RHOSTS_OBJ), "bin/rhosts.$SHLIBEXT", AUTH)
SMB_MODULE(auth_sam, \$(AUTH_SAM_OBJ), "bin/sam.$SHLIBEXT", AUTH)
SMB_MODULE(auth_unix, \$(AUTH_UNIX_OBJ), "bin/unix.$SHLIBEXT", AUTH)
SMB_MODULE(auth_winbind, \$(AUTH_WINBIND_OBJ), "bin/winbind.$SHLIBEXT", AUTH)
2003-08-15 10:07:36 +04:00
SMB_MODULE(auth_server, \$(AUTH_SERVER_OBJ), "bin/smbserver.$SHLIBEXT", AUTH)
2003-04-15 16:02:24 +04:00
SMB_MODULE(auth_domain, \$(AUTH_DOMAIN_OBJ), "bin/domain.$SHLIBEXT", AUTH)
SMB_MODULE(auth_builtin, \$(AUTH_BUILTIN_OBJ), "bin/builtin.$SHLIBEXT", AUTH)
2005-09-15 03:58:14 +04:00
SMB_MODULE(auth_script, \$(AUTH_SCRIPT_OBJ), "bin/script.$SHLIBEXT", AUTH)
2003-10-10 02:52:51 +04:00
SMB_SUBSYSTEM(AUTH,auth/auth.o)
2003-04-15 16:02:24 +04:00
SMB_MODULE(vfs_recycle, \$(VFS_RECYCLE_OBJ), "bin/recycle.$SHLIBEXT", VFS)
SMB_MODULE(vfs_audit, \$(VFS_AUDIT_OBJ), "bin/audit.$SHLIBEXT", VFS)
SMB_MODULE(vfs_extd_audit, \$(VFS_EXTD_AUDIT_OBJ), "bin/extd_audit.$SHLIBEXT", VFS)
2004-04-29 16:11:59 +04:00
SMB_MODULE(vfs_full_audit, \$(VFS_FULL_AUDIT_OBJ), "bin/full_audit.$SHLIBEXT", VFS)
2003-04-15 16:02:24 +04:00
SMB_MODULE(vfs_netatalk, \$(VFS_NETATALK_OBJ), "bin/netatalk.$SHLIBEXT", VFS)
2003-05-03 19:30:41 +04:00
SMB_MODULE(vfs_fake_perms, \$(VFS_FAKE_PERMS_OBJ), "bin/fake_perms.$SHLIBEXT", VFS)
2003-07-29 22:07:13 +04:00
SMB_MODULE(vfs_default_quota, \$(VFS_DEFAULT_QUOTA_OBJ), "bin/default_quota.$SHLIBEXT", VFS)
2003-08-12 08:35:47 +04:00
SMB_MODULE(vfs_readonly, \$(VFS_READONLY_OBJ), "bin/readonly.$SHLIBEXT", VFS)
2003-08-28 00:04:23 +04:00
SMB_MODULE(vfs_cap, \$(VFS_CAP_OBJ), "bin/cap.$SHLIBEXT", VFS)
2004-03-27 01:26:33 +03:00
SMB_MODULE(vfs_expand_msdfs, \$(VFS_EXPAND_MSDFS_OBJ), "bin/expand_msdfs.$SHLIBEXT", VFS)
2004-04-22 19:30:42 +04:00
SMB_MODULE(vfs_shadow_copy, \$(VFS_SHADOW_COPY_OBJ), "bin/shadow_copy.$SHLIBEXT", VFS)
2004-05-02 16:13:16 +04:00
SMB_MODULE(vfs_afsacl, \$(VFS_AFSACL_OBJ), "bin/afsacl.$SHLIBEXT", VFS)
2005-03-18 16:13:38 +03:00
SMB_MODULE(vfs_catia, \$(VFS_AFSACL_OBJ), "bin/catia.$SHLIBEXT", VFS)
2003-10-10 02:52:51 +04:00
SMB_SUBSYSTEM(VFS,smbd/vfs.o)
2003-04-15 16:02:24 +04:00
AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules])
2002-04-04 06:30:54 +04:00
#################################################
# do extra things if we are running insure
if test "${ac_cv_prog_CC}" = "insure"; then
CPPFLAGS="$CPPFLAGS -D__INSURE__"
fi
2003-07-04 07:03:47 +04:00
#################################################
# Display summary of libraries detected
AC_MSG_RESULT([Using libraries:])
AC_MSG_RESULT([ LIBS = $LIBS])
2003-07-22 03:42:45 +04:00
if test x"$with_ads_support" != x"no"; then
2003-07-04 07:03:47 +04:00
AC_MSG_RESULT([ KRB5_LIBS = $KRB5_LIBS])
fi
2003-07-22 03:42:45 +04:00
if test x"$with_ldap_support" != x"no"; then
2003-07-04 07:03:47 +04:00
AC_MSG_RESULT([ LDAP_LIBS = $LDAP_LIBS])
fi
2003-09-08 06:48:06 +04:00
AC_MSG_RESULT([ AUTH_LIBS = $AUTH_LIBS])
2003-07-04 07:03:47 +04:00
2001-05-16 06:32:34 +04:00
#################################################
# final configure stuff
2002-04-01 11:29:43 +04:00
AC_MSG_CHECKING([configure summary])
1998-09-21 13:07:08 +04:00
AC_TRY_RUN([#include "${srcdir-.}/tests/summary.c"],
2002-04-01 11:29:43 +04:00
AC_MSG_RESULT(yes),
AC_MSG_ERROR([summary failure. Aborting config]); exit 1;,
AC_MSG_WARN([cannot run when cross-compiling]))
1998-09-05 17:53:13 +04:00
1998-10-05 02:42:05 +04:00
builddir=`pwd`
AC_SUBST(builddir)
2003-02-16 02:07:59 +03:00
dnl Remove -L/usr/lib/? from LDFLAGS and LIBS
LIB_REMOVE_USR_LIB(LDFLAGS)
LIB_REMOVE_USR_LIB(LIBS)
dnl Remove -I/usr/include/? from CFLAGS and CPPFLAGS
CFLAGS_REMOVE_USR_INCLUDE(CFLAGS)
CFLAGS_REMOVE_USR_INCLUDE(CPPFLAGS)
2003-08-28 21:16:27 +04:00
AC_OUTPUT(include/stamp-h Makefile script/findsmb smbadduser script/gen-8bit-gap.sh)
2002-01-03 06:04:35 +03:00
#################################################
# Print very concise instructions on building/use
if test "x$enable_dmalloc" = xyes
then
2002-01-09 10:52:51 +03:00
AC_MSG_RESULT([Note: The dmalloc debug library will be included. To turn it on use])
AC_MSG_RESULT([ \$ eval \`dmalloc samba\`.])
2002-01-10 00:30:37 +03:00
fi