]> arthur.barton.de Git - netatalk.git/blobdiff - configure.in
netbsd compilation error on recent NetBSD, from Mark Davies.
[netatalk.git] / configure.in
index 4167bbe5cfb2e758f0fd491c93759f2d0df240f7..bed9a6ef37605415887fc0c17203be98225195a5 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: configure.in,v 1.179.2.3.2.17 2004-02-07 19:46:07 didg Exp $
+dnl $Id: configure.in,v 1.179.2.3.2.37.2.4 2005-04-13 10:21:09 bfernhomberg Exp $
 dnl configure.in for netatalk
 
 AC_INIT(etc/afpd/main.c)
@@ -85,12 +85,18 @@ 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(langinfo.h locale.h)
+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.
 AC_C_CONST
@@ -104,6 +110,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,34 +130,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])
        ]
 )
@@ -149,28 +205,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
@@ -178,9 +232,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])
@@ -190,13 +243,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])
@@ -332,10 +383,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
@@ -438,6 +490,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
@@ -454,6 +515,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
@@ -482,6 +552,8 @@ AC_ARG_WITH(uams-path,
        ]
 )
 
+NETATALK_AC_CUPS
+
 dnl --------------------------------------------------------------------------
 dnl FHS stuff has to be done last because it overrides other defaults
 dnl --------------------------------------------------------------------------
@@ -511,8 +583,8 @@ dnl post-FHS substitutions, etc
 dnl --------------------------------------------------------------------------
 
 dnl ***** UAMS_PATH
-AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
-       [path to UAMs [default=PKGCONF/uams]])
+dnl AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
+dnl    [path to UAMs [default=PKGCONF/uams]])
 UAMS_PATH="${uams_path}"
 AC_SUBST(UAMS_PATH)
 
@@ -571,9 +643,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 -----
@@ -602,14 +673,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])
        ], [
@@ -640,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,[
@@ -703,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])
@@ -715,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 
 
@@ -731,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
@@ -747,9 +806,87 @@ if test x"$this_os" = "xsolaris"; then
        AC_DEFINE(SOLARIS, 1, [Solaris compatibility macro])
        CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
        need_dash_r=yes
+       sysv_style=solaris
+
+       solaris_module=no
+       AC_MSG_CHECKING([if we can build Solaris kernel module])
+       if test -x /usr/ccs/bin/ld; then
+               solaris_module=yes
+       fi
+       AC_MSG_RESULT([$solaris_module])
+
+       COMPILE_64BIT_KMODULE=no
+       KCFLAGS=""
+       KLDFLAGS=""
+       COMPILE_KERNEL_GCC=no
+
+       if test "$solaris_module" = "yes"; then
+          dnl Solaris kernel module stuff
+           AC_MSG_CHECKING([if we have to build a 64bit kernel module])
+
+          # check for isainfo, if not found it has to be a 32 bit kernel (<=2.6)       
+          if test -x /usr/bin/isainfo; then
+               # check for 64 bit platform
+               if isainfo -kv | grep '^64-bit'; then
+                       COMPILE_64BIT_KMODULE=yes
+               fi
+          fi
+
+          AC_MSG_RESULT([$COMPILE_64BIT_KMODULE])
+
+          if test "${GCC}" = yes; then
+               COMPILE_KERNEL_GCC=yes
+               if test "$COMPILE_64BIT_KMODULE" = yes; then
+               
+                        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=""
+               fi
+               KCFLAGS="$KCFLAGS -D_KERNEL -Wall -Wstrict-prototypes"
+           else
+               if test "$COMPILE_64BIT_KMODULE" = yes; then
+                # use Sun CC (for a 64-bit kernel, uncomment " -xarch=v9 -xregs=no%appl ")
+                       KCFLAGS="-xarch=v9 -xregs=no%appl"
+                       KLDFLAGS="-64"
+               else
+                       KCFLAGS=""
+                       KLDFLAGS=""
+               fi
+               KCFLAGS="-D_KERNEL $KCFLAGS -mno-app-regs -munaligned-doubles -fpcc-struct-return"
+          fi
+
+           AC_CACHE_CHECK([for timeout_id_t],netatalk_cv_HAVE_TIMEOUT_ID_T,[
+           AC_TRY_LINK([\
+#include <sys/stream.h>
+#include <sys/ddi.h>],
+[\
+timeout_id_t dummy;
+],
+netatalk_cv_HAVE_TIMEOUT_ID_T=yes,netatalk_cv_HAVE_TIMEOUT_ID_T=no,netatalk_cv_HAVE_TIMEOUT_ID_T=cross)])
+
+          AC_DEFINE(HAVE_TIMEOUT_ID_T, test x"$netatalk_cv_HAVE_TIMEOUT_ID" = x"yes", [define for timeout_id_t])
+       fi
 
-       AC_MSG_RESULT([enabling Solaris kernel module build])
-       solaris_module=yes
+       AC_SUBST(COMPILE_KERNEL_GCC)
+       AC_SUBST(COMPILE_64BIT_KMODULE)
+       AC_SUBST(KCFLAGS)
+       AC_SUBST(KLDFLAGS)
 fi
 
 dnl ----- Tru64 specific -----
@@ -867,6 +1004,10 @@ AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
 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
 
@@ -884,6 +1025,7 @@ AC_OUTPUT([Makefile
        bin/nbp/Makefile
        bin/pap/Makefile
        bin/psorder/Makefile
+       bin/uniconv/Makefile
        config/Makefile
        contrib/Makefile
        contrib/macusers/Makefile
@@ -896,8 +1038,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
@@ -950,7 +1092,6 @@ AC_OUTPUT([Makefile
        sys/netbsd/Makefile
        sys/netbsd/netatalk/Makefile
        sys/solaris/Makefile
-       sys/solaris/Makefile.kernel
        sys/sunos/Makefile
        sys/ultrix/Makefile
        ],
@@ -960,4 +1101,3 @@ AC_OUTPUT([Makefile
 AC_NETATALK_LIBS_SUMMARY
 AC_NETATALK_CONFIG_SUMMARY
 
-