mandir="\${prefix}/share/man"
logfilebase="\${VARDIR}/log/samba"
privatedir="\${CONFIGDIR}/private"
- libdir="\${prefix}/lib/samba"
+ test "${libdir}" || libdir="\${prefix}/lib/samba"
configdir="\${sysconfdir}/samba"
swatdir="\${DATADIR}/samba/swat"
- codepagedir="\${prefix}/lib/samba"
+ codepagedir="\${LIBDIR}"
statedir="\${VARDIR}/lib/samba"
cachedir="\${VARDIR}/lib/samba"
AC_DEFINE(FHS_COMPATIBLE, 1, [Whether to use fully FHS-compatible paths])
AC_SUBST(UNINSTALL_LIBADDNS)
AC_SUBST(LIBADDNS_SHARED)
AC_SUBST(LIBADDNS)
+
+AC_SUBST(INSTALL_LIBWBCLIENT)
+AC_SUBST(UNINSTALL_LIBWBCLIENT)
+AC_SUBST(LIBWBCLIENT_SHARED)
+AC_SUBST(LIBWBCLIENT_STATIC)
+AC_SUBST(LIBWBCLIENT)
+AC_SUBST(WINBIND_LIBS)
+
+AC_SUBST(LIBSAMBAUTIL_SHARED)
+
AC_SUBST(INSTALL_LIBSMBCLIENT)
AC_SUBST(UNINSTALL_LIBSMBCLIENT)
AC_SUBST(LIBSMBCLIENT_SHARED)
AC_SUBST(UNINSTALL_LIBSMBSHAREMODES)
AC_SUBST(LIBSMBSHAREMODES_SHARED)
AC_SUBST(LIBSMBSHAREMODES)
+AC_SUBST(INSTALL_LIBNETAPI)
+AC_SUBST(UNINSTALL_LIBNETAPI)
+AC_SUBST(LIBNETAPI_SHARED)
+AC_SUBST(LIBNETAPI)
AC_SUBST(PRINT_LIBS)
AC_SUBST(AUTH_LIBS)
AC_SUBST(ACL_LIBS)
AC_SUBST(CIFSMOUNT_PROGS)
AC_SUBST(INSTALL_CIFSMOUNT)
AC_SUBST(UNINSTALL_CIFSMOUNT)
+AC_SUBST(CIFSSPNEGO_PROGS)
+AC_SUBST(INSTALL_CIFSSPNEGO)
+AC_SUBST(UNINSTALL_CIFSSPNEGO)
AC_SUBST(EXTRA_SBIN_PROGS)
AC_SUBST(EXTRA_ALL_TARGETS)
AC_SUBST(CONFIG_LIBS)
# 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"
+ DEVELOPER_CFLAGS="-g -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],
AC_DEFINE_UNQUOTED(SHLIBEXT, "$SHLIBEXT", [Shared library extension])
+AC_LIBREPLACE_RUNTIME_LIB_PATH_VAR
+
################
AC_CACHE_CHECK([for long long],samba_cv_have_longlong,[
#define NO_CONFIG_H 1
#define HAVE_IFACE_IFCONF 1
#define AUTOCONF_TEST 1
+#define SOCKET_WRAPPER_NOT_REPLACE
#include "${srcdir-.}/lib/replace/replace.c"
#include "${srcdir-.}/lib/interfaces.c"],
samba_cv_HAVE_IFACE_IFCONF=yes,samba_cv_HAVE_IFACE_IFCONF=no,samba_cv_HAVE_IFACE_IFCONF=cross)])
#define NO_CONFIG_H 1
#define HAVE_IFACE_IFREQ 1
#define AUTOCONF_TEST 1
+#define SOCKET_WRAPPER_NOT_REPLACE
#include "${srcdir-.}/lib/replace/replace.c"
+#include "${srcdir-.}/lib/replace/getaddrinfo.c"
+#include "${srcdir-.}/lib/replace/snprintf.c"
#include "${srcdir-.}/lib/interfaces.c"],
samba_cv_HAVE_IFACE_IFREQ=yes,samba_cv_HAVE_IFACE_IFREQ=no,samba_cv_HAVE_IFACE_IFREQ=cross)])
CPPFLAGS="$SAVE_CPPFLAGS"
fi
fi
+dnl AIX 5.3.0.0
+AC_TRY_COMPILE([#include <sys/socket.h>],[
+struct sockaddr_storage s; s.__ss_family = 0],
+samba_cv_have_aix_sockaddr_storage=yes,samba_cv_have_aix_sockaddr_storage=no)
+
+if test x"$samba_cv_have_aix_sockaddr_storage" = x"yes"; then
+ AC_DEFINE(HAVE_AIX_SOCKADDR_STORAGE, 1, [Whether struct sockaddr_storage has __sa_family])
+fi
+
if test $iface = no; then
AC_CACHE_CHECK([for iface AIX],samba_cv_HAVE_IFACE_AIX,[
SAVE_CPPFLAGS="$CPPFLAGS"
#define HAVE_IFACE_AIX 1
#define AUTOCONF_TEST 1
#undef _XOPEN_SOURCE_EXTENDED
+#define SOCKET_WRAPPER_NOT_REPLACE
#include "${srcdir-.}/lib/replace/replace.c"
+#include "${srcdir-.}/lib/replace/snprintf.c"
#include "${srcdir-.}/lib/interfaces.c"],
samba_cv_HAVE_IFACE_AIX=yes,samba_cv_HAVE_IFACE_AIX=no,samba_cv_HAVE_IFACE_AIX=cross)])
CPPFLAGS="$SAVE_CPPFLAGS"
dnl test for ipv6
AC_CACHE_CHECK([for ipv6 support],samba_cv_HAVE_IPV6,[
AC_TRY_COMPILE([
+#include <stdlib.h> /* for NULL */
#include <sys/socket.h>
#include <sys/types.h>
#include <netdb.h>],
[Whether the stat struct has a st_flags member])
fi
-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([
-#ifdef HAVE_SYS_VFS_H
-#include <sys/vfs.h>
-#endif
-#ifdef HAVE_SYS_CAPABILITY_H
-#include <sys/capability.h>
-#endif
-],[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
- AC_DEFINE(BROKEN_REDHAT_7_SYSTEM_HEADERS,1,[Broken RedHat 7.2 system header files])
-fi
-
-AC_CACHE_CHECK([for broken RHEL5 sys/capability.h],samba_cv_BROKEN_RHEL5_SYS_CAP_HEADER,[
-AC_TRY_COMPILE([
-#ifdef HAVE_SYS_CAPABILITY_H
-#include <sys/capability.h>
-#endif
-#include <linux/types.h>
-],[__s8 i;],
- samba_cv_BROKEN_RHEL5_SYS_CAP_HEADER=no,samba_cv_BROKEN_RHEL5_SYS_CAP_HEADER=yes)])
-if test x"$samba_cv_BROKEN_RHEL5_SYS_CAP_HEADER" = x"yes"; then
- AC_DEFINE(BROKEN_RHEL5_SYS_CAP_HEADER,1,[Broken RHEL5 sys/capability.h])
-fi
-;;
-esac
-
AC_CACHE_CHECK([for broken nisplus include files],samba_cv_BROKEN_NISPLUS_INCLUDE_FILES,[
AC_TRY_COMPILE([
#include <sys/types.h>
fi
fi
+ AC_CACHE_CHECK([for krb5_principal_get_realm],
+ samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM,[
+ AC_TRY_LINK([#include <krb5.h>],
+ [krb5_context ctx = NULL; krb5_principal princ = NULL; const char *str = krb5_principal_get_realm(ctx, princ);],
+ samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM=yes,
+ samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM=no)])
+
+ if test x"$samba_cv_HAVE_KRB5_PRINCIPAL_GET_REALM" = x"yes"; then
+ AC_DEFINE(HAVE_KRB5_PRINCIPAL_GET_REALM,1,
+ [Whether the function krb5_principal_get_realm is defined])
+ fi
+
+ AC_CACHE_CHECK([for krb5_princ_realm],
+ samba_cv_HAVE_KRB5_PRINC_REALM,[
+ AC_TRY_LINK([#include <krb5.h>],
+ [krb5_context ctx = NULL; krb5_principal princ = NULL; const char *str = krb5_princ_realm(ctx, princ)->data;],
+ samba_cv_HAVE_KRB5_PRINC_REALM=yes,
+ samba_cv_HAVE_KRB5_PRINC_REALM=no)])
+
+ if test x"$samba_cv_HAVE_KRB5_PRINC_REALM" = x"yes"; then
+ AC_DEFINE(HAVE_KRB5_PRINC_REALM,1,
+ [Whether the macro krb5_princ_realm is defined])
+ fi
+
#
#
# Now the decisions whether we can support krb5
esac ]
)
+#################################################
+# check for cifs.spnego support
+AC_CHECK_HEADERS([keyutils.h], [HAVE_KEYUTILS_H=1], [HAVE_KEYUTILS_H=0])
+CIFSSPNEGO_PROGS=""
+INSTALL_CIFSSPNEGO=""
+UNINSTALL_CIFSSPNEGO=""
+AC_MSG_CHECKING(whether to build cifs.spnego)
+AC_ARG_WITH(cifsspnego,
+[ --with-cifsspnego Include cifs.spnego (Linux only) support (default=no)],
+[ case "$withval" in
+ no)
+ AC_MSG_RESULT(no)
+ ;;
+ *)
+ case "$host_os" in
+ *linux*)
+ if test x"$use_ads" != x"yes"; then
+ AC_MSG_ERROR(ADS support should be enabled for building cifs.spnego)
+ elif test x"$HAVE_KEYUTILS_H" != "x1"; then
+ AC_MSG_ERROR(keyutils package is required for cifs.spnego)
+ else
+ AC_MSG_RESULT(yes)
+ AC_DEFINE(WITH_CIFSSPNEGO,1,[whether to build cifs.spnego])
+ CIFSSPNEGO_PROGS="bin/cifs.spnego"
+ INSTALL_CIFSSPNEGO="installcifsspnego"
+ UNINSTALL_CIFSSPNEGO="uninstallcifsspnego"
+ fi
+ ;;
+ *)
+ AC_MSG_ERROR(not on a linux system!)
+ ;;
+ esac
+ ;;
+ esac ],
+[
+ AC_MSG_RESULT(no)
+ ]
+)
+
#################################################
# Check for a PAM clear-text auth, accounts, password
UNINSTALLLIBCMD_A="rm -f"
fi
+#################################################
+# should we build libnetapi?
+INSTALL_LIBNETAPI=
+UNINSTALL_LIBNETAPI=
+LIBNETAPI_SHARED=
+LIBNETAPI=
+AC_MSG_CHECKING(whether to build the libnetapi shared library)
+AC_ARG_WITH(libnetapi,
+[ --with-libnetapi Build the libnetapi shared library (default=yes if shared libs supported)],
+[ case "$withval" in
+ *)
+ AC_MSG_RESULT(no)
+ ;;
+ yes)
+ if test $BLDSHARED = true; then
+ LIBNETAPI_SHARED=bin/libnetapi.$SHLIBEXT
+ LIBNETAPI=libnetapi
+ 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
+ LIBNETAPI=libnetapi
+ fi
+ INSTALL_LIBNETAPI=installlibnetapi
+ UNINSTALL_LIBNETAPI=uninstalllibnetapi
+ ;;
+ esac ],
+[
+# if unspecified, default is to built it if possible.
+ if test $BLDSHARED = true; then
+ LIBNETAPI_SHARED=bin/libnetapi.$SHLIBEXT
+ LIBNETAPI=libnetapi
+ 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
+ LIBNETAPI=libnetapi
+ fi]
+ INSTALL_LIBNETAPI=installlibnetapi
+)
+
#################################################
# should we build libaddns?
INSTALL_LIBADDNS=
INSTALL_LIBADDNS=installlibaddns
UNINSTALL_LIBADDNS=uninstalllibaddns
;;
- esac ]
+ esac ],
+[AC_MSG_RESULT(no)]
)
#################################################
# should we build libsmbclient?
+
INSTALL_LIBSMBCLIENT=
UNINSTALL_LIBSMBCLIENT=
LIBSMBCLIENT_SHARED=
INSTALL_LIBSMBSHAREMODES=installlibsmbsharemodes
)
+
#################################################
# these tests are taken from the GNU fileutils package
AC_CHECKING(how to get filesystem space usage)
WINBIND_WINS_NSS=""
fi
-if test $BLDSHARED = true -a x"$HAVE_WINBIND" = x"yes"; then
+BUILD_LIBWBCLIENT_SHARED=yes
+
+AC_ARG_ENABLE(libwbclient-shared,
+[ --enable-libwbclient-shared Build libwbclient as shared object (default=yes, \"no\" only for --enable-developer)],
+ [if eval "test x$enable_developer = xyes -a x$enable_libwbclient_shared = xno" ; then
+ BUILD_LIBWBCLIENT_SHARED=no
+ fi])
+
+if test $BLDSHARED = true -a x"$HAVE_WINBIND" = x"yes" -a x"$BUILD_LIBWBCLIENT_SHARED" = x"yes"; then
NSS_MODULES="${WINBIND_NSS} ${WINBIND_WINS_NSS}"
+ ## Only worry about libwbclient if we have shared library support
+ ## and winbindd
+ LIBWBCLIENT_SHARED=bin/libwbclient.$SHLIBEXT
+ LIBWBCLIENT=libwbclient
+ INSTALL_LIBWBCLIENT=installlibwbclient
+ UNINSTALL_LIBWBCLIENT=uninstalllibwbclient
+ WINBIND_LIBS="-lwbclient"
+ LDFLAGS="$LDFLAGS -L./bin"
+else
+ LIBWBCLIENT_STATIC=bin/libwbclient.a
fi
if test x"$HAVE_WINBIND" = x"yes"; then
AC_SUBST(POPTLIBS)
AC_SUBST(FLAGS1)
+#################################################
+# Check if user wants DNS service discovery support
+
+AC_ARG_ENABLE(dnssd,
+[ --enable-dnssd Enable DNS service discovery support (default=auto)])
+
+AC_SUBST(DNSSD_LIBS)
+if test x"$enable_dnssd" != x"no"; then
+ have_dnssd_support=yes
+
+ AC_CHECK_HEADERS(dns_sd.h)
+ if test x"$ac_cv_header_dns_sd_h" != x"yes"; then
+ have_dnssd_support=no
+ fi
+
+ # On Darwin the DNSSD API is in libc, but on other platforms it's
+ # probably in -ldns_sd
+ AC_CHECK_FUNCS(DNSServiceRegister)
+ AC_CHECK_LIB_EXT(dns_sd, DNSSD_LIBS, DNSServiceRegister)
+ if test x"$ac_cv_func_DNSServiceRegister" != x"yes" -a \
+ x"$ac_cv_lib_ext_DNSServiceRegister" != x"yes"; then
+ have_dnssd_support=no
+ fi
+
+ if test x"$have_dnssd_support" = x"yes"; then
+ AC_DEFINE(WITH_DNSSD_SUPPORT, 1,
+ [Whether to enable DNS service discovery support])
+ else
+ if test x"$enable_dnssd" = x"yes"; then
+ AC_MSG_ERROR(DNS service discovery support not available)
+ fi
+ fi
+
+fi
+
#################################################
# Check to see if we should use the included iniparser
SMB_MODULE(vfs_fileid, \$(VFS_FILEID_OBJ), "bin/fileid.$SHLIBEXT", VFS)
SMB_MODULE(vfs_syncops, \$(VFS_SYNCOPS_OBJ), "bin/syncops.$SHLIBEXT", VFS)
SMB_MODULE(vfs_zfsacl, \$(VFS_ZFSACL_OBJ), "bin/zfsacl.$SHLIBEXT", VFS)
+SMB_MODULE(vfs_notify_fam, \$(VFS_NOTIFY_FAM_OBJ), "bin/notify_fam.$SHLIBEXT", VFS)
+
SMB_SUBSYSTEM(VFS,smbd/vfs.o)
if test x"$with_dnsupdate_support" != x"no"; then
AC_MSG_RESULT([ UUID_LIBS = $UUID_LIBS])
fi
+if test x"$have_dnssd_support" != x"no"; then
+ AC_MSG_RESULT([ DNSSD_LIBS = $DNSSD_LIBS])
+fi
AC_MSG_RESULT([ AUTH_LIBS = $AUTH_LIBS])
#################################################
SMBD_LIBS="$samba_dmapi_libs"
AC_SUBST(SMBD_LIBS)
-AC_OUTPUT(Makefile library-versions 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
+ lib/netapi/examples/Makefile
+ pkgconfig/smbclient.pc
+ pkgconfig/wbclient.pc
+ pkgconfig/netapi.pc
+ pkgconfig/smbsharemodes.pc
+ )
#################################################
# Print very concise instructions on building/use