diff options
Diffstat (limited to 'source3/configure.in')
-rw-r--r-- | source3/configure.in | 101 |
1 files changed, 61 insertions, 40 deletions
diff --git a/source3/configure.in b/source3/configure.in index 1121551efc..821ab3a1ea 100644 --- a/source3/configure.in +++ b/source3/configure.in @@ -187,7 +187,6 @@ AC_SUBST(CONFIG_LIBS) AC_ARG_ENABLE(debug, [ --enable-debug Turn on compiler debugging information (default=no)], [if eval "test x$enable_debug = xyes"; then - echo "DEBUGGING TURNED ON!!!!" CFLAGS="${CFLAGS} -g" fi]) @@ -1636,9 +1635,8 @@ for i in $LOOK_DIRS ; do save_CPPFLAGS=$CPPFLAGS CPPFLAGS="$CPPFLAGS -I$i/include" dnl This is here to handle -withval stuff for --with-libiconv - if test x"$ICONV_PATH_SPEC" = "xyes" ; then - LDFLAGS="-L$i/lib" - fi +dnl Perhaps we should always add a -L + LDFLAGS="$LDFLAGS -L$i/lib" LIBS= export LDFLAGS LIBS CPPFLAGS dnl Try to find iconv(3) @@ -1715,7 +1713,7 @@ dnl ]) LIBS="$ic_save_LIBS" if test x"$samba_cv_HAVE_NATIVE_ICONV" = x"yes"; then CPPFLAGS=$save_CPPFLAGS - CFLAGS_ADD_DIR(CPPFLAGS, "$i/include") + LDFLAGS=$save_LDFLAGS LIBS=$save_LIBS if test x"$jm_cv_lib_iconv" != x; then LIBS="$LIBS -l$jm_cv_lib_iconv" @@ -2640,6 +2638,7 @@ if test x"$with_ads_support" != x"no"; then 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) + AC_CHECK_FUNC_EXT(krb5_free_data_contents, $KRB5_LIBS) AC_CHECK_FUNC_EXT(krb5_principal_get_comp_string, $KRB5_LIBS) LIBS="$LIBS $KRB5_LIBS" @@ -3056,6 +3055,7 @@ samba_cv_TRY_QUOTAS=no samba_cv_RUN_QUOTA_TESTS=auto samba_cv_WITH_SYS_QUOTAS=auto samba_cv_TRY_SYS_QUOTAS=no +samba_cv_SYSQUOTA_FOUND=no; AC_MSG_CHECKING(whether to try disk-quotas support) AC_ARG_WITH(quotas, @@ -3125,6 +3125,11 @@ AC_MSG_CHECKING(whether to try the lib/sysquotas.c interface on ${host_os}) AC_MSG_RESULT(yes) samba_cv_TRY_SYS_QUOTAS=yes samba_cv_RUN_QUOTA_TESTS=yes + 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_DEFINE(HAVE_LINUX_XFS_QUOTAS,1,[Whether Linux xfs quota support is available]) + samba_cv_found_xfs_header=yes ;; *) AC_MSG_RESULT(no) @@ -3137,21 +3142,21 @@ fi # only check for quota stuff if --with-quotas if test x"$samba_cv_RUN_QUOTA_TESTS" != x"no"; then +# 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>) + ]) + # 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) -AC_CHECK_HEADERS(asm/types.h linux/quota.h) - -# For quotas on Linux XFS filesystems -AC_CHECK_HEADERS(linux/xqm.h linux/xfs_fs.h) -AC_CHECK_HEADERS(xfs/libxfs.h xfs/xqm.h xfs/xfs_fs.h) -# For linux > 2.5.56 -AC_CHECK_HEADERS(linux/dqblk_xfs.h) -# if we have struct if_dqblk in <linux/quota.h> we should use it -AC_CACHE_CHECK([for struct if_dqblk in <linux/quota.h>],samba_cv_HAVE_STRUCT_IF_DQBLK, [ +if test x"$samba_cv_found_xfs_header" != x"yes"; then +# 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, [ AC_TRY_COMPILE([ #include "confdefs.h" #ifdef HAVE_SYS_TYPES_H @@ -3160,28 +3165,12 @@ AC_TRY_COMPILE([ #ifdef HAVE_ASM_TYPES_H #include <asm/types.h> #endif -#include <linux/quota.h> -],[struct if_dqblk D;], -samba_cv_HAVE_STRUCT_IF_DQBLK=yes,samba_cv_HAVE_STRUCT_IF_DQBLK=no)]) -if test "$samba_cv_HAVE_STRUCT_IF_DQBLK"x = "yes"x; then - AC_DEFINE(HAVE_STRUCT_IF_DQBLK,1,[struct if_dqblk]) +#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 + samba_cv_found_xfs_header=yes fi - -# if we have struct mem_dqblk in <linux/quota.h> we should use it -AC_CACHE_CHECK([for struct mem_dqblk in <linux/quota.h>],samba_cv_HAVE_STRUCT_MEM_DQBLK, [ -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 -#include <linux/quota.h> -],[struct mem_dqblk D;], -samba_cv_HAVE_STRUCT_MEM_DQBLK=yes,samba_cv_HAVE_STRUCT_MEM_DQBLK=no)]) -if test "$samba_cv_HAVE_STRUCT_MEM_DQBLK"x = "yes"x; then - AC_DEFINE(HAVE_STRUCT_MEM_DQBLK,1,[struct mem_dqblk]) fi # if we have struct dqblk .dqb_fsoftlimit instead of .dqb_isoftlimit on IRIX @@ -3201,7 +3190,6 @@ fi ################## # look for a working quota system -samba_cv_SYSQUOTA_FOUND=no; 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,[ @@ -3212,7 +3200,9 @@ AC_TRY_RUN_STRICT([ #include "${srcdir-.}/tests/sysquotas.c"],[$Werror_FLAGS],[$CPPFLAGS],[$LDFLAGS], 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 - 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_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" fi fi @@ -3226,7 +3216,9 @@ AC_TRY_RUN_STRICT([ 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" -# 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_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" fi fi @@ -3240,7 +3232,9 @@ AC_TRY_RUN_STRICT([ 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" -# 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_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" fi fi @@ -3299,6 +3293,27 @@ AC_MSG_CHECKING(whether to use the new lib/sysquotas.c interface) fi fi +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" +CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper -I${srcdir-.}/nsswitch" +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 + AC_CACHE_CHECK([whether the old quota support works],samba_cv_QUOTA_WORKS,[ SAVE_CPPFLAGS="$CPPFLAGS" CPPFLAGS="$CPPFLAGS -I${srcdir-.}/ -I. -I${srcdir-.}/include -I${srcdir-.}/ubiqx -I${srcdir-.}/popt -I${srcdir-.}/smbwrapper -I${srcdir-.}/nsswitch" @@ -4021,9 +4036,15 @@ WINBIND_WINS_NSS="nsswitch/libnss_wins.$SHLIBEXT" WINBIND_NSS_LDSHFLAGS=$LDSHFLAGS case "$host_os" in - *linux*|*freebsd*) + *linux*) WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_linux.o" ;; + *freebsd5*) + # 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" + ;; *irix*) # IRIX has differently named shared libraries WINBIND_NSS_EXTRA_OBJS="nsswitch/winbind_nss_irix.o" |