dnl -*- mode: m4-mode -*- dnl Process this file with autoconf to produce a configure script. dnl disabled 2.53 requirement - we do work with 2.52 on suse 7.3 for example dnl AC_PREREQ(2.53) AC_INIT(include/includes.h) AC_CONFIG_HEADER(include/config.h) AC_DISABLE_STATIC AC_ENABLE_SHARED ################################################# # Directory handling stuff to support both the # legacy SAMBA directories and FHS compliant # ones... AC_PREFIX_DEFAULT(/usr/local/samba) AC_ARG_WITH(fhs, [ --with-fhs Use FHS-compliant paths (default=no)], configdir="${sysconfdir}/samba" lockdir="\${VARDIR}/cache/samba" piddir="\${VARDIR}/run/samba" logfilebase="\${VARDIR}/log/samba" privatedir="\${CONFIGDIR}/private" libdir="\${prefix}/lib/samba" swatdir="\${DATADIR}/samba/swat", configdir="\${LIBDIR}" logfilebase="\${VARDIR}" lockdir="\${VARDIR}/locks" piddir="\${VARDIR}/locks" privatedir="\${prefix}/private" swatdir="\${prefix}/swat") ################################################# # 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 configuration directory location AC_ARG_WITH(configdir, [ --with-configdir=DIR Where to put configuration files (\$libdir)], [ 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, [ --with-logfilebase=DIR Where to put log files (\$(VARDIR))], [ 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]) AC_SUBST(configdir) AC_SUBST(lockdir) AC_SUBST(piddir) AC_SUBST(logfilebase) AC_SUBST(privatedir) AC_SUBST(bindir) AC_SUBST(sbindir) dnl Unique-to-Samba variables we'll be playing with. AC_SUBST(SHELL) AC_SUBST(LDSHFLAGS) AC_SUBST(SONAMEFLAG) AC_SUBST(SHLD) AC_SUBST(HOST_OS) AC_SUBST(PICFLAG) AC_SUBST(PICSUFFIX) AC_SUBST(POBAD_CC) AC_SUBST(SHLIBEXT) AC_SUBST(INSTALLCLIENTCMD_SH) AC_SUBST(INSTALLCLIENTCMD_A) AC_SUBST(LIBSMBCLIENT_SHARED) AC_SUBST(LIBSMBCLIENT) AC_SUBST(PRINTLIBS) AC_SUBST(AUTHLIBS) AC_SUBST(ACLLIBS) AC_SUBST(SHLIB_PROGS) AC_SUBST(SMBWRAPPER) AC_SUBST(EXTRA_BIN_PROGS) AC_SUBST(EXTRA_SBIN_PROGS) AC_SUBST(EXTRA_ALL_TARGETS) AC_ARG_ENABLE(debug, [ --enable-debug Turn on compiler debugging information (default=no)], [if eval "test x$enable_debug = xyes"; then CFLAGS="${CFLAGS} -gstabs" fi]) AC_ARG_ENABLE(developer, [ --enable-developer Turn on developer warnings and debugging (default=no)], [if eval "test x$enable_developer = xyes"; then developer=yes CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wstrict-prototypes -Wpointer-arith -Wcast-qual -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 CFLAGS="${CFLAGS} -gstabs -Wall -Wshadow -Wpointer-arith -Wcast-qual -Wcast-align -Wwrite-strings -DDEBUG_PASSWORD -DDEVELOPER" fi]) sinclude(build/m4/rewrite.m4) dnl exclude these modules AC_ARG_WITH(exclude-modules, [ --with-exclude-modules=MODULES Comma-seperated list of names of modules to exclude from build], [ if test $withval; then for i in `echo $withval | sed -e's/,/ /g'` do eval MODULE_$i=NOT done fi ]) dnl Always built these modules shared AC_ARG_WITH(shared-modules, [ --with-shared-modules=MODULES Comma-seperated list of names of modules to build shared], [ if test $withval; then for i in `echo $withval | sed -e's/,/ /g'` do eval MODULE_$i=SHARED done fi ]) dnl Always built these modules static AC_ARG_WITH(static-modules, [ --with-static-modules=MODULES Comma-seperated list of names of modules to statically link in], [ if test $withval; then for i in `echo $withval | sed -e's/,/ /g'` do eval MODULE_$i=STATIC done fi ]) sinclude(nsswitch/config.m4) sinclude(lib/popt/config.m4) sinclude(lib/iconv.m4) sinclude(lib/basic.m4) sinclude(lib/ldb/config.m4) sinclude(lib/cmdline/config.m4) sinclude(param/config.m4) sinclude(libcli/config.m4) sinclude(librpc/config.m4) sinclude(libcli/libsmb.m4) sinclude(smbd/process_model.m4) sinclude(smb_server/config.m4) sinclude(auth/config.m4) sinclude(passdb/config.m4) sinclude(ntvfs/config.m4) sinclude(rpc_server/config.m4) sinclude(lib/registry/config.m4) sinclude(torture/config.m4) ####################################### # Check for comparison_fn_t AC_CACHE_CHECK([for comparison_fn_t],samba_cv_HAVE_COMPARISON_FN_T,[ AC_TRY_COMPILE([ #include int list_find(const void *needle, const void *base, size_t nmemb, size_t size, comparison_fn_t comp_fn) { return 1; } ],[], samba_cv_HAVE_COMPARISON_FN_T=yes,samba_cv_HAVE_COMPARISON_FN_T=no) ]) if test x"$samba_cv_HAVE_COMPARISON_FN_T" = x"yes"; then AC_DEFINE(HAVE_COMPARISON_FN_T,1,[Whether or not we have comparison_fn_t]) fi ######################################################## # 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) 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) AC_CHECK_FUNC_EXT(ldap_domain2hostlist,$LDAP_LIBS) ######################################################## # 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 #include ], [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]) AC_CHECK_FUNC_EXT(ldap_initialize,$LDAP_LIBS) if test x"$ac_cv_lib_ext_ldap_ldap_init" = x"yes" -a x"$ac_cv_func_ext_ldap_domain2hostlist" = x"yes"; then AC_DEFINE(HAVE_LDAP,1,[Whether ldap is available]) default_static_modules="$default_static_modules pdb_ldap idmap_ldap"; SMBLDAP="lib/smbldap.o" 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 ################################################# # check for sendfile support with_sendfile_support=yes AC_MSG_CHECKING(whether to check to support sendfile) AC_ARG_WITH(sendfile-support, [ --with-sendfile-support Check for sendfile support (default=yes)], [ case "$withval" in yes) AC_MSG_RESULT(yes); case "$host_os" in *linux*) AC_CACHE_CHECK([for linux sendfile64 support],samba_cv_HAVE_SENDFILE64,[ AC_TRY_LINK([#include ], [\ 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 ], [\ 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 ], [\ 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 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]) elif test x"$samba_cv_HAVE_SENDFILE" = x"yes"; then 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]) elif test x"$samba_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken]) AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used]) else AC_MSG_RESULT(no); fi ;; *freebsd*) AC_CACHE_CHECK([for freebsd sendfile support],samba_cv_HAVE_SENDFILE,[ AC_TRY_LINK([\ #include #include #include #include ], [\ int fromfd, tofd, ret, total=0; off_t offset, nwritten; struct sf_hdtr hdr; struct iovec hdtrl; hdr.headers = &hdtrl; hdr.hdr_cnt = 1; hdr.trailers = NULL; hdr.trl_cnt = 0; hdtrl.iov_base = NULL; hdtrl.iov_len = 0; ret = sendfile(fromfd, tofd, offset, total, &hdr, &nwritten, 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() 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]) else AC_MSG_RESULT(no); fi ;; *hpux*) AC_CACHE_CHECK([for hpux sendfile64 support],samba_cv_HAVE_SENDFILE64,[ AC_TRY_LINK([\ #include #include ], [\ 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 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]) else AC_MSG_RESULT(no); fi AC_CACHE_CHECK([for hpux sendfile support],samba_cv_HAVE_SENDFILE,[ AC_TRY_LINK([\ #include #include ], [\ 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 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]) else AC_MSG_RESULT(no); fi ;; *solaris*) AC_CHECK_LIB(sendfile,sendfilev) AC_CACHE_CHECK([for solaris sendfilev64 support],samba_cv_HAVE_SENDFILEV64,[ AC_TRY_LINK([\ #include ], [\ int sfvcnt; size_t xferred; struct sendfilevec vec[2]; ssize_t nwritten; int tofd; 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 = 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 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]) else AC_MSG_RESULT(no); fi AC_CACHE_CHECK([for solaris sendfilev support],samba_cv_HAVE_SENDFILEV,[ AC_TRY_LINK([\ #include ], [\ int sfvcnt; size_t xferred; struct sendfilevec vec[2]; ssize_t nwritten; int tofd; 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 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]) else AC_MSG_RESULT(no); fi ;; *) ;; esac ;; *) AC_MSG_RESULT(no) ;; esac ], AC_MSG_RESULT(yes) ) AC_DEFINE_UNQUOTED(STRING_STATIC_MODULES, "$string_static_modules", [String list of builtin modules]) ################################################# # do extra things if we are running insure if test "${ac_cv_prog_CC}" = "insure"; then CPPFLAGS="$CPPFLAGS -D__INSURE__" fi ################################################# # final configure stuff AC_MSG_CHECKING([configure summary]) AC_TRY_RUN([#include "${srcdir-.}/build/tests/summary.c"], AC_MSG_RESULT(yes), AC_MSG_ERROR([summary failure. Aborting config]); exit 1;, AC_MSG_WARN([cannot run when cross-compiling])) builddir=`pwd` AC_SUBST(builddir) 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) AC_OUTPUT(Makefile)