]> arthur.barton.de Git - netatalk.git/blobdiff - configure.in
fix LFS test for cross compilation, from Bolke de Bruin
[netatalk.git] / configure.in
index 9e4c22158fe0434bf912e3fd1b6cda8f84599c2c..05db1af1523b6da143bb1f39913246016a778271 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: configure.in,v 1.179.2.3.2.21 2004-02-29 15:26:03 bfernhomberg Exp $
+dnl $Id: configure.in,v 1.179.2.3.2.37.2.7 2006-09-07 05:02:20 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 <sys/param.h>
+#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 <time.h>])
 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])
@@ -334,10 +384,11 @@ 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([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.])
+               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
@@ -440,6 +491,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 +516,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 +553,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 +654,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 +684,10 @@ dnl       AC_COMPILE_IFELSE([
 #include <sys/socket.h>
 #include <asm/types.h>
 #include <linux/atalk.h>
-],
-[
-int main() {
-       struct atalk_addr foo;
 
-       return 0;
-}
-       ], [
+       struct atalk_addr foo;
+],
+[ ], [
                ac_have_atalk_addr=yes
                AC_MSG_RESULT([yes])
        ], [
@@ -630,10 +706,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 +720,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 +784,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 +795,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 +806,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 +847,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=""
@@ -936,6 +1018,9 @@ 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)
 
 dnl --------------------- generate files
 
@@ -966,8 +1051,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