;;
esac])
+
+#################################################
+# set ctdb source directory location
+AC_ARG_WITH(ctdb,
+[ --with-ctdb=DIR Where to find ctdb sources],
+[ case "$withval" in
+ yes|no)
+ AC_MSG_WARN([--with-ctdb called without argument])
+ ;;
+ * )
+ ctdbdir="$withval"
+ ;;
+ esac])
+
#################################################
# set lib directory location
AC_ARG_WITH(libdir,
AC_SUBST(lockdir)
AC_SUBST(piddir)
AC_SUBST(logfilebase)
+AC_SUBST(ctdbdir)
AC_SUBST(privatedir)
AC_SUBST(swatdir)
AC_SUBST(bindir)
AC_SUBST(MODULE_EXPORTS)
AC_SUBST(SONAMEFLAG)
AC_SUBST(SHLD)
+AC_SUBST(DSO_EXPORTS)
AC_SUBST(HOST_OS)
AC_SUBST(PICFLAG)
AC_SUBST(PIE_CFLAGS)
m4_include(lib/socket_wrapper/config.m4)
+SWAT_SBIN_TARGETS='bin/swat$(EXEEXT)'
+SWAT_INSTALL_TARGETS=installswat
AC_ARG_ENABLE(swat,
[ --enable-swat Build the SWAT tool (default=yes)],
[
case "$enable_swat" in
- no) ;;
- *)
- SWAT_SBIN_TARGETS='bin/swat$(EXEEXT)'
- SWAT_INSTALL_TARGETS=installswat
+ no)
+ SWAT_SBIN_TARGETS=''
+ SWAT_INSTALL_TARGETS=''
;;
esac
- AC_SUBST(SWAT_SBIN_TARGETS)
- AC_SUBST(SWAT_INSTALL_TARGETS)
])
+AC_SUBST(SWAT_SBIN_TARGETS)
+AC_SUBST(SWAT_INSTALL_TARGETS)
+
#################################################
# set prefix for 'make test'
selftest_prefix="./"
AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings and debugging (default=no)],
[if eval "test x$enable_developer = xyes"; then
developer=yes
- DEVELOPER_CFLAGS="-gstabs -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
+ fi])
+
+AC_ARG_ENABLE(krb5developer, [ --enable-krb5developer Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
+ [if eval "test x$enable_krb5developer = xyes"; then
+ developer=yes
+ krb5_developer=yes
+ fi])
+
+# Probe the gcc version for extra CFLAGS. We always stash these in
+# DEVELOPER_CFLAGS, so that you can turn them on and off with a simple
+# Makefile edit, avoiding the need to re-run configure.
+if test x"$ac_cv_prog_gcc" = x"yes" ; then
+ DEVELOPER_CFLAGS="-gstabs -Wall -Wshadow -Wpointer-arith -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
# 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=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
+
+ if test x"$samba_cv_HAVE_Wdeclaration_after_statement" = x"yes"; then
DEVELOPER_CFLAGS="${DEVELOPER_CFLAGS} -Wdeclaration-after-statement"
- fi
- # here
+ fi
+
#-Werror-implicit-function-declaration
AC_CACHE_CHECK(
[that the C compiler understands -Werror-implicit-function-declaration],
if test x"$samba_cv_HAVE_Werror_implicit_function_declaration" = x"yes"; then
DEVELOPER_CFLAGS="${DEVELOPER_CFLAGS} -Werror-implicit-function-declaration"
fi
- fi])
-AC_ARG_ENABLE(krb5developer, [ --enable-krb5developer Turn on developer warnings and debugging, except -Wstrict-prototypes (default=no)],
- [if eval "test x$enable_krb5developer = xyes"; then
- developer=yes
- CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER"
- fi])
+ # krb5developer is like developer, except we don't get
+ # -Wstrict-prototypes.
+ if test x"$krb5_developer" != x"$yes" ; then
+ DEVELOPER_CFLAGS="$DEVELOPER_CFLAGS -Wstrict-prototypes"
+ fi
+fi
AC_ARG_ENABLE(dmalloc, [ --enable-dmalloc Enable heap debugging [default=no]])
if test "$ac_cv_gnu_ld_date" -lt 20030217; then
ac_cv_gnu_ld_no_default_allow_shlib_undefined=yes
fi
+ if test "$ac_cv_gnu_ld_date" -gt 20030101; then
+ ac_cv_gnu_ld_version_script=yes
+ fi
else
AC_MSG_CHECKING(GNU ld release version)
changequote(,)dnl
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
+ if test "$ac_cv_gnu_ld_vernr_major" -gt 2 || test "$ac_cv_gnu_l= d_vernr_major"=2 && test "$ac_cv_gnu_ld_vernr_minor" -ge 12; then
+ ac_cv_gnu_ld_version_script=yes
+ fi
fi
fi
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])
- AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Unix 98 sources -- needed for socklen_t in getsockopt on HP/UX 11])
;;
esac
;;
fi
-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
- AC_DEFINE(HAVE_SOCKLEN_T_TYPE,1,[Whether we have the variable type socklen_t])
-fi
-
AC_CACHE_CHECK([for sig_atomic_t type],samba_cv_sig_atomic_t, [
AC_TRY_COMPILE([
#include <sys/types.h>
;;
esac
+########################################################
+# Check if attropen() is present if this is Solaris
+case "$host_os" in
+ *solaris*)
+ AC_CHECK_FUNCS(attropen)
+ ;;
+esac
+
########################################################
# Do xattr functions take additional options like on Darwin?
if test x"$ac_cv_func_getxattr" = x"yes" ; then
SHLD="\${CC} \${CFLAGS}"
PICFLAG="${PIE_CFLAGS}"
SHLIBEXT="so"
-
+DSO_EXPORTS=""
# this bit needs to be modified for each OS that supports share libs
# You need to specify how to create a shared library and
BLDSHARED=false
fi
+if test "$enable_shared" = yes -a "${ac_cv_gnu_ld_version_script}" = yes; then
+ DSO_EXPORTS=\$\(DSO_EXPORTS_CMD\)
+fi
+
AC_MSG_RESULT($BLDSHARED)
AC_MSG_CHECKING([LDFLAGS])
# this test must be before the libldap test
AC_CHECK_LIB_EXT(lber, LDAP_LIBS, ber_scanf)
+ ########################################################
+ # If ber_sockbuf_add_io() is available we can add
+ # SASL wrapping hooks
+ AC_CHECK_FUNC_EXT(ber_sockbuf_add_io,$LDAP_LIBS)
+
+ AC_CACHE_CHECK([for LDAP_OPT_SOCKBUF],samba_cv_HAVE_LDAP_OPT_SOCKBUF,[
+ AC_TRY_COMPILE([#include <ldap.h>],
+ [int val = LDAP_OPT_SOCKBUF;],
+ samba_cv_HAVE_LDAP_OPT_SOCKBUF=yes,
+ samba_cv_HAVE_LDAP_OPT_SOCKBUF=no)])
+
+ if test x"$ac_cv_func_ext_ber_sockbuf_add_io" = x"yes" -a \
+ x"$samba_cv_HAVE_LDAP_OPT_SOCKBUF" = x"yes"; then
+ AC_DEFINE(HAVE_LDAP_SASL_WRAPPING, 1, [Support for SASL wrapping])
+ fi
+
########################################################
# now see if we can find the ldap libs in standard paths
AC_CHECK_LIB_EXT(ldap, LDAP_LIBS, ldap_init)
LDFLAGS=$ac_save_LDFLAGS
fi
AC_CHECK_HEADERS(krb5/locate_plugin.h)
+ if test x"$ac_cv_header_krb5_locate_plugin_h" = x"yes"; then
+ SMB_KRB5_LOCATOR="bin/smb_krb5_locator.$SHLIBEXT"
+ EXTRA_ALL_TARGETS="$EXTRA_ALL_TARGETS $SMB_KRB5_LOCATOR"
+ fi
fi
# Now we have determined whether we really want ADS support
# For quotas on Veritas VxFS filesystems
AC_CHECK_HEADERS(sys/fs/vx_quota.h)
+# For quotas on Linux XFS filesystems
+AC_CHECK_HEADERS(linux/dqblk_xfs.h)
+
# For sys/quota.h and linux/quota.h
AC_CHECK_HEADERS(sys/quota.h)
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)],
+[ --with-libmsrpc Build the libmsrpc shared library (default=no unmaintained)],
[ case "$withval" in
- no)
+ *)
AC_MSG_RESULT(no)
;;
- *)
+ yes)
if test $BLDSHARED = true; then
LIBMSRPC_SHARED=bin/libmsrpc.$SHLIBEXT
LIBMSRPC=libmsrpc
INSTALL_LIBMSRPC=installlibmsrpc
UNINSTALL_LIBMSRPC=uninstalllibmsrpc
;;
- 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
- UNINSTALL_LIBMSRPC=uninstalllibmsrpc
+ esac ]
)
LIBADDNS=
AC_MSG_CHECKING(whether to build the libaddns shared library)
AC_ARG_WITH(libaddns,
-[ --with-libaddns Build the libaddns shared library (default=yes if shared libs supported)],
+[ --with-libaddns Build the libaddns shared library (default=no undefined API)],
[ case "$withval" in
- no)
+ *)
AC_MSG_RESULT(no)
;;
- *)
+ yes)
if test $BLDSHARED = true; then
LIBADDNS_SHARED=bin/libaddns.$SHLIBEXT
LIBADDNS=libaddns
INSTALL_LIBADDNS=installlibaddns
UNINSTALL_LIBADDNS=uninstalllibaddns
;;
- esac ],
-[
-# if unspecified, default is to built it if possible.
- if test $BLDSHARED = true; then
- LIBADDNS_SHARED=bin/libaddns.$SHLIBEXT
- LIBADDNS=libaddns
- 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
- LIBADDNS=libaddns
- fi]
- INSTALL_LIBADDNS=installlibaddns
- UNINSTALL_LIBADDNS=uninstalllibaddns
+ esac ]
)
#################################################
WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS
NSSSONAMEVERSIONSUFFIX=""
-SMB_KRB5_LOCATOR="bin/smb_krb5_locator.$SHLIBEXT"
-
case "$host_os" in
linux*-gnu* | gnu* | k*bsd*-gnu)
NSSSONAMEVERSIONSUFFIX=".2"
esac ])
AC_SUBST(PYTHON)
+
+# Checks for the vfs_fileid module
+# Start
+AC_CHECK_FUNC(getmntent)
+
+AC_CHECK_HEADERS(sys/statfs.h)
+
+AC_MSG_CHECKING([vfs_fileid: checking for statfs() and struct statfs.f_fsid)])
+AC_CACHE_VAL(vfsfileid_cv_statfs,[
+ AC_TRY_RUN([
+ #include <sys/types.h>
+ #include <sys/statfs.h>
+ int main(void)
+ {
+ struct statfs fsd;
+ fsid_t fsid = fsd.f_fsid;
+ return statfs (".", &fsd);
+ }],
+ vfsfileid_cv_statfs=yes,
+ vfsfileid_cv_statfs=no,
+ vfsfileid_cv_statfs=cross)
+])
+AC_MSG_RESULT($vfsfileid_cv_statfs)
+
+if test x"$ac_cv_func_getmntent" = x"yes" -a \
+ x"$vfsfileid_cv_statfs" = x"yes"; then
+ default_shared_modules="$default_shared_modules vfs_fileid"
+fi
+# End
+# Checks for the vfs_fileid module
+
+
for i in `echo $default_static_modules | sed -e 's/,/ /g'`
do
eval MODULE_DEFAULT_$i=STATIC
SMB_MODULE(rpc_epmapper, \$(RPC_EPMAPPER_OBJ), "bin/librpc_epmapper.$SHLIBEXT", RPC)
SMB_SUBSYSTEM(RPC,smbd/server.o)
-SMB_MODULE(idmap_ldap, nsswitch/idmap_ldap.o, "bin/ldap.$SHLIBEXT", IDMAP)
-SMB_MODULE(idmap_tdb, nsswitch/idmap_tdb.o, "bin/tdb.$SHLIBEXT", IDMAP)
-SMB_MODULE(idmap_passdb, nsswitch/idmap_passdb.o, "bin/passdb.$SHLIBEXT", IDMAP)
-SMB_MODULE(idmap_nss, nsswitch/idmap_nss.o, "bin/nss.$SHLIBEXT", IDMAP)
-SMB_MODULE(idmap_rid, nsswitch/idmap_rid.o, "bin/rid.$SHLIBEXT", IDMAP)
-SMB_MODULE(idmap_ad, nsswitch/idmap_ad.o, "bin/ad.$SHLIBEXT", IDMAP)
-SMB_SUBSYSTEM(IDMAP, nsswitch/idmap.o)
+SMB_MODULE(idmap_ldap, winbindd/idmap_ldap.o, "bin/ldap.$SHLIBEXT", IDMAP)
+SMB_MODULE(idmap_tdb, winbindd/idmap_tdb.o, "bin/tdb.$SHLIBEXT", IDMAP)
+SMB_MODULE(idmap_passdb, winbindd/idmap_passdb.o, "bin/passdb.$SHLIBEXT", IDMAP)
+SMB_MODULE(idmap_nss, winbindd/idmap_nss.o, "bin/nss.$SHLIBEXT", IDMAP)
+SMB_MODULE(idmap_rid, winbindd/idmap_rid.o, "bin/rid.$SHLIBEXT", IDMAP)
+SMB_MODULE(idmap_ad, winbindd/idmap_ad.o, "bin/ad.$SHLIBEXT", IDMAP)
+SMB_SUBSYSTEM(IDMAP, winbindd/idmap.o)
-SMB_MODULE(nss_info_template, nsswitch/nss_info_template.o, "bin/template.$SHLIBEXT", NSS_INFO)
-SMB_SUBSYSTEM(NSS_INFO, nsswitch/nss_info.o)
+SMB_MODULE(nss_info_template, winbindd/nss_info_template.o, "bin/template.$SHLIBEXT", NSS_INFO)
+SMB_SUBSYSTEM(NSS_INFO, winbindd/nss_info.o)
SMB_MODULE(charset_weird, modules/weird.o, "bin/weird.$SHLIBEXT", CHARSET)
SMB_MODULE(charset_CP850, modules/CP850.o, "bin/CP850.$SHLIBEXT", CHARSET)
SMB_MODULE(vfs_gpfs, \$(VFS_GPFS_OBJ), "bin/gpfs.$SHLIBEXT", VFS)
SMB_MODULE(vfs_notify_fam, \$(VFS_NOTIFY_FAM_OBJ), "bin/notify_fam.$SHLIBEXT", VFS)
SMB_MODULE(vfs_readahead, \$(VFS_READAHEAD_OBJ), "bin/readahead.$SHLIBEXT", VFS)
+SMB_MODULE(vfs_fileid, \$(VFS_FILEID_OBJ), "bin/fileid.$SHLIBEXT", VFS)
SMB_SUBSYSTEM(VFS,smbd/vfs.o)
AC_MSG_WARN([cannot run when cross-compiling]))
dnl Merge in developer cflags from now on
-if test x"$developer" = x"yes"; then
- CFLAGS="${CFLAGS} ${DEVELOPER_CFLAGS}"
+AC_SUBST(DEVELOPER_CFLAGS)
+if test x"$krb5_developer" = x"yes" -o x"$developer" = x"yes"; then
+ CFLAGS="${CFLAGS} \$(DEVELOPER_CFLAGS)"
fi
builddir=`pwd`
SMBD_LIBS="$samba_dmapi_libs"
AC_SUBST(SMBD_LIBS)
-AC_OUTPUT(Makefile script/findsmb smbadduser script/gen-8bit-gap.sh script/installbin.sh script/uninstallbin.sh)
+AC_OUTPUT(Makefile library-versions script/findsmb smbadduser script/gen-8bit-gap.sh script/installbin.sh script/uninstallbin.sh)
#################################################
# Print very concise instructions on building/use