X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.in;h=7288b848a9e6c27509b673f0aed6967a9551679a;hb=e41db248e35ef1cc583915f09131422b217b94e8;hp=943a15c6092a8e33990ba01a97e434712dbb1307;hpb=8b61caed2a39dda414113a045d3fa3eaf8ea3b24;p=netatalk.git diff --git a/configure.in b/configure.in index 943a15c6..7288b848 100644 --- a/configure.in +++ b/configure.in @@ -1,4 +1,4 @@ -dnl $Id: configure.in,v 1.179.2.3.2.22 2004-02-29 17:38:03 bfernhomberg Exp $ +dnl $Id: configure.in,v 1.179.2.3.2.37.2.10 2008-12-22 21:18:13 didg Exp $ dnl configure.in for netatalk AC_INIT(etc/afpd/main.c) @@ -46,7 +46,7 @@ dnl AC_CHECK_LIB(crypt, main) dnl Replace `main' with a function in -ld: dnl AC_CHECK_LIB(d, main) dnl Replace `main' with a function in -ldl: -AC_CHECK_LIB(dl, dlopen) +dnl AC_CHECK_LIB(dl, dlopen) dnl Replace `main' with a function in -lkauth: dnl AC_CHECK_LIB(kauth, main) dnl Replace `main' with a function in -lkrb: @@ -55,16 +55,17 @@ dnl Replace `main' with a function in -llwp: dnl AC_CHECK_LIB(lwp, main) dnl Replace `main' with a function in -ln: dnl AC_CHECK_LIB(n, main) -dnl Replace `main' with a function in -lnsl: -AC_CHECK_LIB(nsl, main) + +dnl not the right stuff but should be enough for now +AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)]) +AC_CHECK_FUNC(connect,,[AC_CHECK_LIB(socket,connect)]) + dnl Replace `main' with a function in -lprot: dnl AC_CHECK_LIB(prot, main) dnl Replace `main' with a function in -lrx: dnl AC_CHECK_LIB(rx, main) dnl Replace `main' with a function in -lrxkad: dnl AC_CHECK_LIB(rxkad, main) -dnl Replace `main' with a function in -lsocket: -AC_CHECK_LIB(socket, socket) dnl Replace `main' with a function in -lsys: dnl AC_CHECK_LIB(sys, main) dnl Replace `main' with a function in -lubik: @@ -85,11 +86,17 @@ dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_HEADER_SYS_WAIT -AC_CHECK_HEADERS(fcntl.h limits.h stdint.h strings.h time.h sys/fcntl.h sys/file.h sys/ioctl.h sys/time.h sys/mnttab.h sys/statvfs.h sys/stat.h sys/vfs.h mntent.h syslog.h unistd.h termios.h sys/termios.h netdb.h sgtty.h ufs/quota.h mount.h sys/mount.h statfs.h sys/types.h dlfcn.h errno.h sys/errno.h sys/uio.h) +AC_CHECK_HEADERS(fcntl.h limits.h stdint.h strings.h time.h sys/param.h sys/fcntl.h sys/file.h sys/ioctl.h sys/time.h sys/mnttab.h sys/statvfs.h sys/stat.h sys/vfs.h mntent.h syslog.h unistd.h termios.h sys/termios.h netdb.h sgtty.h ufs/quota.h mount.h statfs.h sys/types.h dlfcn.h errno.h sys/errno.h sys/uio.h) AC_CHECK_HEADER(sys/cdefs.h,, AC_MSG_RESULT([enabling generic cdefs.h from tree]) CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS" ) +AC_CHECK_HEADERS([sys/mount.h], , , +[#ifdef HAVE_SYS_PARAM_H +#include +#endif +]) + AC_CHECK_HEADERS(langinfo.h locale.h sys/filio.h) dnl Checks for typedefs, structures, and compiler characteristics. @@ -104,6 +111,17 @@ AC_STRUCT_ST_RDEV AC_HEADER_TIME AC_STRUCT_TM +dnl -------------------------------------------------------------------------- +dnl check if dlsym needs to add an underscore, uses libtool macros +dnl -------------------------------------------------------------------------- +AC_LTDL_DLLIB +AC_CHECK_FUNCS(dlopen dlsym dlclose) +AC_LTDL_DLSYM_USCORE +if test x"$libltdl_cv_need_uscore" = xyes; then + AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro]) +fi + + dnl Checks for library functions. AC_TYPE_GETGROUPS AC_PROG_GCC_TRADITIONAL @@ -113,36 +131,73 @@ AC_FUNC_MMAP AC_TYPE_SIGNAL AC_FUNC_UTIME_NULL AC_FUNC_WAIT3 -AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul setpgrp strchr memcpy) -AC_FUNC_SETPGRP +AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul strchr memcpy) AC_CHECK_FUNCS(backtrace_symbols) AC_CHECK_FUNCS(setlocale nl_langinfo) -AC_CHECK_FUNCS(dlopen dlclose dlsym dlerror waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64) +AC_CHECK_FUNCS(waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64) AC_CHECK_FUNCS(strlcpy strlcat) +AC_CHECK_FUNCS(setlinebuf) AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include ]) AC_CACHE_SAVE - dnl Checks for (v)snprintf NETATALK_SNPRINTF_CHECK +dnl -------------------------------------------------------------------------- +dnl 64bit platform check +dnl -------------------------------------------------------------------------- + +AC_MSG_CHECKING([whether to check for 64bit libraries]) +dnl Determine libdir name +case $host in +*-*-linux*) + # Test if the compiler is 64bit + echo 'int i;' > conftest.$ac_ext + atalk_cv_cc_64bit_output=no + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *"ELF 64"*) + atalk_cv_cc_64bit_output=yes + ;; + esac + fi + rm -rf conftest* + ;; +esac + +dnl +dnl FIXME: Do we need something like this for Solaris 64bit? +dnl + +case $host_cpu:$atalk_cv_cc_64bit_output in +powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes) + atalk_libname="lib64" + AC_MSG_RESULT([yes]) + ;; +*:*) + atalk_libname="lib" + AC_MSG_RESULT([no]) + ;; +esac + dnl -------------------------------------------------------------------------- dnl specific configuration comes in here: dnl -------------------------------------------------------------------------- -AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled]) netatalk_cv_admin_group=yes AC_MSG_CHECKING([for administrative group support]) -AC_ARG_WITH(admin-group, +AC_ARG_ENABLE(admin-group, [ --disable-admin-group disable admin group],[ - if test "$enableval" = "no"; then + if test x"$enableval" = x"no"; then AC_DEFINE(ADMIN_GRP, 0, [Define if the admin group should be enabled]) - AC_MSG_RESULT([yes]) - else - AC_MSG_RESULT([no]) netatalk_cv_admin_group=no + AC_MSG_RESULT([no]) + else + AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled]) + AC_MSG_RESULT([yes]) fi],[ + AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled]) AC_MSG_RESULT([yes]) ] ) @@ -151,28 +206,26 @@ NETATALK_AFS_CHECK NETATALK_CONFIG_DIRS -AC_MSG_CHECKING([for logfile path]) +AC_MSG_CHECKING([whether to use logfile]) AC_ARG_WITH(logfile, - [ --with-logfile=PATH path for file used by logger [/var/log/netatalk.log] - use --without-logfile to disable logger],[ + [ --with-logfile=PATH path for file used by logger],[ if test x"$withval" = x"no"; then AC_DEFINE(DISABLE_LOGGER, 1, [Define if the logger should not be used]) - AC_MSG_RESULT([syslog]) + AC_MSG_RESULT([no, syslog]) elif test "$withval" != "yes"; then AC_DEFINE_UNQUOTED(LOGFILEPATH, "$withval", [Path to the log file]) AC_MSG_RESULT([$withval]) else - AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log", [Path to the log file]) - AC_MSG_RESULT([/var/log/netatalk.log]) - fi],[ AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log", [Path to the log file]) - AC_MSG_RESULT([/var/log/netatalk.log]) + AC_MSG_RESULT([/var/log/netatalk.log]) + fi],[ + AC_DEFINE(DISABLE_LOGGER, 1, [Define if the logger should not be used]) + AC_MSG_RESULT([no, syslog]) ] ) netatalk_cv_with_cracklib=no -AC_MSG_CHECKING([for cracklib support]) AC_ARG_WITH(cracklib, [ --with-cracklib=DICT enable/set location of cracklib dictionary],[ if test "x$withval" != "xno" ; then @@ -180,9 +233,8 @@ AC_ARG_WITH(cracklib, AC_CHECK_LIB(crack, main, [ AC_DEFINE(USE_CRACKLIB, 1, [Define if cracklib should be used]) LIBS="$LIBS -lcrack" - AC_MSG_RESULT([yes]) if test "$cracklib" = "yes"; then - cracklib="/usr/lib/cracklib_dict" + cracklib="/usr/$atalk_libname/cracklib_dict" fi AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib", [path to cracklib dictionary]) @@ -192,13 +244,11 @@ AC_ARG_WITH(cracklib, AC_MSG_ERROR([cracklib not found!]) ] ) - else - AC_MSG_RESULT([no]) fi - ],[ - AC_MSG_RESULT([no]) ] ) +AC_MSG_CHECKING([for cracklib support]) +AC_MSG_RESULT([$netatalk_cv_with_cracklib]) netatalk_cv_ddp_enabled=yes AC_MSG_CHECKING([whether to enable DDP]) @@ -330,18 +380,6 @@ dnl Check for CNID database backends bdb_required=no AC_NETATALK_CNID([bdb_required=yes],[bdb_required=no]) -dnl Check for Berkeley DB library -if test "x$bdb_required" = "xyes"; then - AC_PATH_BDB(, [ - AC_MSG_RESULT([]) - AC_MSG_RESULT([Make sure you have the Berkeley DB libraries AND headers installed.]) - AC_MSG_RESULT([You can download the latest version from http://www.sleepcat.com.]) - AC_MSG_RESULT([If you have installed BDB in a non standard location use the]) - AC_MSG_RESULT([--with-bdb=/path/to/bdb configure option.]) - AC_MSG_ERROR([Berkeley DB library required but not found!]) - ]) -fi - dnl Check for quota support AC_CHECK_QUOTA @@ -440,6 +478,15 @@ AC_ARG_ENABLE(suse, ] ) +AC_ARG_ENABLE(gentoo, + [ --enable-gentoo use gentoo-style sysv configuration ],[ + if test "$enableval" = "yes"; then + sysv_style=gentoo + fi + AC_MSG_RESULT([enabling gentoo-style sysv support]) + ] +) + AC_ARG_ENABLE(cobalt, [ --enable-cobalt use cobalt-style sysv configuration ], if test "$enableval" = "yes"; then @@ -456,6 +503,15 @@ AC_ARG_ENABLE(netbsd, AC_MSG_RESULT([enabling NetBSD-style rc.d support]) ) +AC_ARG_ENABLE(debian, + [ --enable-debian use debian-style sysv configuration ],[ + if test "$enableval" = "yes"; then + sysv_style=debian + fi + AC_MSG_RESULT([enabling debian-style sysv support]) + ] +) + dnl ----- timelord compilation (disabled by default) AC_MSG_CHECKING([whether timelord should be compiled]) compile_timelord=no @@ -484,6 +540,18 @@ AC_ARG_WITH(uams-path, ] ) +NETATALK_AC_CUPS + +dnl check if we can use attribute unused (gcc only) from ethereal +AC_MSG_CHECKING(to see if we can add '__attribute__((unused))' to CFLAGS) +if test x$GCC != x ; then + CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS" + AC_MSG_RESULT(yes) +else + CFLAGS="-D_U_=\"\" $CFLAGS" + AC_MSG_RESULT(no) +fi + dnl -------------------------------------------------------------------------- dnl FHS stuff has to be done last because it overrides other defaults dnl -------------------------------------------------------------------------- @@ -573,9 +641,8 @@ dnl ----- FreeBSD specific ----- if test x"$this_os" = "xfreebsd"; then AC_MSG_RESULT([ * FreeBSD specific configuration]) AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro]) + AC_DEFINE(FREEBSD, 1, [Define if OS is FreeBSD]) AC_DEFINE(SENDFILE_FLAVOR_BSD, 1, [Define if the sendfile() function uses BSD semantics]) - -dnl AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist]) fi dnl ----- HP-UX 11 specific ----- @@ -604,14 +671,10 @@ dnl AC_COMPILE_IFELSE([ #include #include #include -], -[ -int main() { - struct atalk_addr foo; - return 0; -} - ], [ + struct atalk_addr foo; +], +[ ], [ ac_have_atalk_addr=yes AC_MSG_RESULT([yes]) ], [ @@ -630,10 +693,12 @@ fi # ) # 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) + AC_CHECK_HEADERS(linux/dqblk_xfs.h,, + [AC_CHECK_HEADERS(linux/xqm.h linux/xfs_fs.h) + AC_CHECK_HEADERS(xfs/libxfs.h xfs/xqm.h xfs/xfs_fs.h)] + ) dnl ----- as far as I can tell, dbtob always does the wrong thing @@ -642,14 +707,15 @@ fi AC_DEFINE(HAVE_BROKEN_DBTOB, 1, [Define if dbtob is broken]) netatalk_cv_linux_sendfile=no - AC_ARG_ENABLE(sendfile, - [ --enable-sendfile use sendfile syscall default (no) ],[ - if test "$enableval" = "yes"; then - netatalk_cv_linux_sendfile=yes - fi - AC_MSG_RESULT([enabling sendfile syscall]) - ] - ) +dnl disable this for now, code doesn't use sendfile anyway +dnl AC_ARG_ENABLE(sendfile, +dnl [ --enable-sendfile use sendfile syscall default (no) ],[ +dnl if test "$enableval" = "yes"; then +dnl netatalk_cv_linux_sendfile=yes +dnl fi +dnl AC_MSG_RESULT([enabling sendfile syscall]) +dnl ] +dnl ) if test x"$netatalk_cv_linux_sendfile" = "xyes"; then AC_CACHE_CHECK([for linux sendfile support],netatalk_cv_HAVE_SENDFILE,[ @@ -705,7 +771,6 @@ dnl ----- Mac OSX specific ----- if test x"$this_os" = "xmacosx"; then AC_MSG_RESULT([ * Mac OSX specific configuration]) AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro]) - AC_DEFINE(HAVE_BROKEN_CPP, 1, [Define if cpp is broken]) AC_DEFINE(HAVE_2ARG_DBTOB, 1, [Define if dbtob takes two arguments]) dnl AC_DEFINE(NO_DLFCN_H) AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled]) @@ -717,12 +782,7 @@ dnl ----- NetBSD specific ----- if test x"$this_os" = "xnetbsd"; then AC_MSG_RESULT([ * NetBSD specific configuration]) AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro]) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE. - # If this test is true, it's not an ELF box. - # This REALLY should be a configure test. - AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro]) - fi + AC_DEFINE(NETBSD, 1, [Define if OS is FreeBSD]) CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS" need_dash_r=yes @@ -733,9 +793,6 @@ fi dnl ----- OpenBSD specific ----- if test x"$this_os" = "xopenbsd"; then AC_MSG_RESULT([ * OpenBSD specific configuration]) - AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro]) - AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro]) - dnl ----- OpenBSD does not have crypt.h, uses unistd.h ----- AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled]) fi @@ -777,14 +834,26 @@ if test x"$this_os" = "xsolaris"; then AC_MSG_RESULT([$COMPILE_64BIT_KMODULE]) - if test "${GCC}" = yes; then COMPILE_KERNEL_GCC=yes if test "$COMPILE_64BIT_KMODULE" = yes; then - # use for 64 bit - KCFLAGS="-m64" - #KLDFLAGS="-melf64_sparc" - KLDFLAGS="-64" + + AC_MSG_CHECKING([if we can build a 64bit kernel module]) + + case `$CC --version 2>/dev/null` in + [[12]].* | 3.0.*) + COMPILE_64BIT_KMODULE=no + COMPILE_KERNEL_GCC=no + solaris_module=no;; + *) + # use for 64 bit + KCFLAGS="-m64" + #KLDFLAGS="-melf64_sparc" + KLDFLAGS="-64";; + esac + + AC_MSG_RESULT([$COMPILE_64BIT_KMODULE]) + else KCFLAGS="" KLDFLAGS="" @@ -837,9 +906,30 @@ if test x"$this_os" = "xtru64"; then sysv_style=tru64 fi -dnl -- look for openssl +dnl -- check for libgcrypt, if found enables DHX UAM +AM_PATH_LIBGCRYPT([1:1.2.3],[neta_cv_compile_dhx2=yes + neta_cv_have_libgcrypt=yes + AC_MSG_NOTICE([Enabling DHX2 UAM]) + AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if the DHX2 modules should be built with libgcrypt]) + AC_DEFINE(UAM_DHX2, 1, [Define if the DHX2 UAM modules should be compiled]) + ]) + +dnl -- look for openssl, if found enables DHX UAM and Randnum UAM AC_PATH_SSL +dnl Check for Berkeley DB library +if test "x$bdb_required" = "xyes"; then + AC_PATH_BDB(, [ + AC_MSG_RESULT([]) + AC_MSG_RESULT([Make sure you have the required Berkeley DB libraries AND headers installed.]) + AC_MSG_RESULT([You can download the latest version from http://www.sleepycat.com.]) + AC_MSG_RESULT([If you have installed BDB in a non standard location use the]) + AC_MSG_RESULT([--with-bdb=/path/to/bdb configure option and make sure]) + AC_MSG_RESULT([your linker is configured to check for libraries there.]) + AC_MSG_ERROR([Berkeley DB library required but not found!]) + ]) +fi + dnl -- check for crypt AC_CRYPT @@ -849,7 +939,7 @@ AC_MSG_CHECKING([whether the PGP UAM should be build]) AC_ARG_ENABLE(pgp-uam, [ --enable-pgp-uam enable build of PGP UAM module],[ if test "$enableval" = "yes"; then - if test "$compile_ssl" = "yes"; then + if test "x$neta_cv_have_openssl" = "xyes"; then AC_DEFINE(UAM_PGP, 1, [Define if the PGP UAM module should be compiled]) compile_pgp=yes AC_MSG_RESULT([yes]) @@ -923,12 +1013,17 @@ AC_SUBST(OVERWRITE_CONFIG) AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes) AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes) AM_CONDITIONAL(COMPILE_A2BOOT, test x$compile_a2boot = xyes) -AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes) +AM_CONDITIONAL(HAVE_LIBGCRYPT, test x$neta_cv_have_libgcrypt = xyes) +AM_CONDITIONAL(HAVE_OPENSSL, test x$neta_cv_have_openssl = xyes) +AM_CONDITIONAL(USE_DHX, test x$neta_cv_compile_dhx = xyes) +AM_CONDITIONAL(USE_DHX2, test x$neta_cv_compile_dhx2 = xyes) +AM_CONDITIONAL(USE_RANDNUM, test x$neta_cv_have_openssl = xyes) AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes) AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes) AM_CONDITIONAL(USE_PAM, test x$netatalk_cv_install_pam = xyes) AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes) AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes) +AM_CONDITIONAL(DEFAULT_HOOK, test x$neta_cv_have_libgcrypt != xyes && test x$neta_cv_have_openssl != xyes) AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt) AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd) AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat) @@ -936,7 +1031,10 @@ AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse) AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes) AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64) AM_CONDITIONAL(USE_SOLARIS, test x$sysv_style = xsolaris) +AM_CONDITIONAL(USE_GENTOO, test x$sysv_style = xgentoo) +AM_CONDITIONAL(USE_DEBIAN, test x$sysv_style = xdebian) AM_CONDITIONAL(USE_UNDEF, test x$sysv_style = x) +AM_CONDITIONAL(USE_BDB, test x$bdb_required = xyes) dnl --------------------- generate files @@ -967,8 +1065,8 @@ AC_OUTPUT([Makefile contrib/shell_utils/apple_cp contrib/shell_utils/apple_mv contrib/shell_utils/apple_rm + contrib/shell_utils/asip-status.pl contrib/shell_utils/cleanappledouble.pl - contrib/shell_utils/netatalkshorternamelinks.pl contrib/timelord/Makefile contrib/a2boot/Makefile distrib/Makefile