]> arthur.barton.de Git - netatalk.git/blobdiff - configure.in
Forward-Ports from the stabilizing branch.
[netatalk.git] / configure.in
index 9ad9a47a0d74cc981517c71180ffe6e4772b0fb4..f94535c4cbb2282c96afceca0cb9c991e288b1cb 100644 (file)
@@ -1,4 +1,4 @@
-dnl $Id: configure.in,v 1.98 2001-08-28 07:13:03 lancel Exp $
+dnl $Id: configure.in,v 1.132 2001-11-25 21:48:01 srittau Exp $
 dnl configure.in for netatalk
 
 AC_INIT(bin/adv1tov2/adv1tov2.c)
@@ -83,7 +83,7 @@ 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 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)
+AC_CHECK_HEADERS(fcntl.h limits.h stdint.h strings.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)
 AC_CHECK_HEADER(sys/cdefs.h,,
        AC_MSG_RESULT([enabling generic cdefs.h from tree])
        CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
@@ -128,7 +128,7 @@ AC_FUNC_MMAP
 AC_TYPE_SIGNAL
 AC_FUNC_UTIME_NULL
 AC_FUNC_WAIT3
-AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp)
+AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp strchr memcpy)
 AC_FUNC_SETPGRP
 
 dnl --------------------------------------------------------------------------
@@ -153,25 +153,15 @@ AC_ARG_ENABLE(afs,
        fi
 )
 
-AC_ARG_WITH(config-dir,
-       [  --with-config-dir=DIR   obsolete - use --pkgconfdir],
-               sysconfdir="$withval",
-               if test "x$prefix" = "xNONE"; then
-                       sysconfdir="$ac_default_prefix/etc"
-               else
-                       sysconfdir="${prefix}/etc"
-               fi
-)
-
 AC_ARG_WITH(pkgconfdir,
        [  --with-pkgconfdir=DIR   package specific configuration in DIR
-                          [default=SYSCONF/netatalk]],
+                          [[SYSCONF/netatalk]]],
                PKGCONFDIR="$withval",
                PKGCONFDIR="${sysconfdir}/netatalk"
 )
 
 AC_ARG_WITH(cracklib,
-       [  --with-cracklib=dict    enable/set location of cracklib dictionary],
+       [  --with-cracklib=DICT    enable/set location of cracklib dictionary],
        if test "x$withval" != "xno" ; then
                cracklib="$withval"
                AC_CHECK_LIB(crack, main,
@@ -239,109 +229,99 @@ dnl Don't use DB3 unless it's needed
 db3_required=no
 
 dnl Check for CNID DB support
+AC_MSG_CHECKING([whether CNID support should be enabled])
 AC_ARG_ENABLE(cnid-db,
-       [  --enable-cnid-db   use persistent cnid database per volume (EXPERIMENTAL) ],
-       if test "x$enableval" = "xyes"; then
-               dnl Now we need DB3
-               db3_required="yes"
-
-               dnl Note that we don't AC_DEFINE(CNID_DB, 1) here...
-               dnl we have to check for the library first.
-               dnl AC_MSG_RESULT([db3 check enabled])
-       fi
+       [  --enable-cnid-db        use persistent cnid database per volume (EXPERIMENTAL) ],
+       [
+               if test "x$enableval" = "xyes"; then
+                       dnl Now we need DB3
+                       db3_required="yes"
+                       AC_DEFINE(CNID_DB)
+                       AC_MSG_RESULT([yes])
+               else
+                       AC_MSG_RESULT([no])
+               fi
+       ],[AC_MSG_RESULT([no])]
 )
 
 dnl Check for Berkeley DB3 library
-AC_ARG_WITH(db3,
-       [  --with-db3=PATH         specify path to Berkeley DB3 installation],
-       if test "x$withval" != "xno"; then
-               trydb3dir="$withval"
-       fi
-)
-
-db3_found=no
-for db3dir in "" $trydb3dir /usr /usr /usr/local ; do
-       if test -f "$db3dir/include/db3/db.h" ; then
-               LDFLAGS="$LDFLAGS -L$db3dir/lib -L$db3dir"
-               CFLAGS="$CFLAGS -I$db3dir/include"
-
-               dnl If we require DB3, die if we don't have it
-               if test "x$db3_required" != "xno"; then
-                       AC_CHECK_LIB(db, main,
-                               dnl AC_MSG_RESULT([enabling db3 support])
-                               db3_found=yes
-                               dnl -- also enable CNID DB when this is found
-                               AC_DEFINE(CNID_DB, 1)
-                               AC_MSG_RESULT([using persistent cnid database per volume])
-                               LIBS="$LIBS -ldb",
-                               dnl Not Found
-                               AC_MSG_ERROR([Berkeley DB3 library not found!])
-                       )
-               fi
-               break
-       fi
-done
-
-dnl Die if the library is required, but not found
-if test "x$db3_required" != "xno"; then
-       if test "x$db3_found" = "xno"; then
-               dnl Not Found
-               AC_MSG_ERROR([Berkeley DB3 library not found!])
-       fi
+if test "x$db3_required" = "xyes"; then
+       AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
 fi
 
+dnl Determine DID scheme
+AC_MSG_CHECKING([for DID scheme to use])
 AC_ARG_WITH(did,
-       [  --with-did=[scheme]     set DID scheme (last,mtab)],
-       if test "x$withval" != "xno" ; then
-               if test "$withval" = "last"; then
-                       AC_DEFINE(USE_LASTDID, 1)
-                       AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
-               fi
-               if test "$withval" = "mtab"; then
-                       AC_DEFINE(DID_MTAB, 1)
-                       AC_MSG_RESULT([enabling mtab-based DID creation support])
-               fi
-       fi
-)
+       [  --with-did=SCHEME       set DID scheme (last,mtab)],
+       [ did_scheme="$withval" ],
+       [ did_scheme="last" ]
+)
+
+if test "x$did_scheme" = "xlast"; then
+       AC_DEFINE(USE_LASTDID, 1)
+       AC_MSG_RESULT([last])
+elif test "x$did_scheme" = "xmtab"; then
+       AC_DEFINE(DID_MTAB, 1)
+       AC_MSG_RESULT([mtab-based DID creation support])
+elif test "x$did_scheme" != "xno"; then
+       AC_MSG_RESULT([default])
+else
+       AC_MSG_ERROR([unknown DID scheme])
+fi
 
 msg_dir=""
 AC_ARG_WITH(message-dir,
-       [  --with-msg-dir=path     path to message files [default=$ac_prefix_default/etc/msg]],
+       [  --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
                msg_dir="$withval"
                if test x"$msg_dir" = "x"; then
                        msg_dir="${PKGCONFDIR}/msg"
                fi
                AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
-                       [path to message dir [default=$ac_prefix_default/etc/msg]])
+                       [path to message dir [[PKGCONF/msg]]])
                SERVERTEXT="$msg_dir"
                AC_SUBST(SERVERTEXT)
 )
 
-AC_CHECK_LIB(pam, pam_start,
-       AC_DEFINE(USE_PAM, 1)
-       LIBS="$LIBS -lpam"
-       compile_pam=yes
+AC_ARG_ENABLE(srvloc,
+       [  --enable-srvloc         turn on Server Location Protocol support (EXPERIMENTAL)],
+       srvloc=$enableval,
+       srvloc=no
 )
 
-AC_ARG_WITH(pam,
-       [  --without-pam           disable password authentication modules support],
-       compile_pam=no
-       use_pam_so=no
-       AC_DEFINE(USE_PAM, 0)
-       AC_MSG_RESULT([disabling pam modules support])
-)
-if test "x$compile_pam" = "xyes"; then
-       use_pam_so=yes
-       AC_MSG_RESULT([enabling pam modules support])
+dnl Conditional for optional server location protocol support (used by OS X)
+AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
+if test "x$srvloc" != "xno"; then
+    for slpdir in "" $srvloc /usr /usr/local ; do
+               if test -f "$slpdir/include/slp.h" ; then
+                       LIBS="$LIBS -L$slpdir/lib -lslp"
+                       CFLAGS="$CFLAGS -I$slpdir/include"
+               AC_CHECK_LIB(slp,SLPOpen)
+               AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
+               AC_DEFINE(USE_SRVLOC, 1)
+                       break
+               fi
+       done
 fi
 
-shadowpw=no
+# Check for PAM libs
+AC_PATH_PAM([
+       PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
+       AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
+       use_pam_so=yes
+       compile_pam=yes
+       AC_DEFINE(USE_PAM)
+])
+
+AC_MSG_CHECKING([whether shadow support should be enabled])
 AC_ARG_WITH(shadow,
        [  --with-shadow           enable shadow password support],
-       AC_MSG_RESULT([enabling shadow password support])
-       AC_DEFINE(SHADOWPW)
-       shadowpw=yes
+       [shadowpw="$withval"],
+       [shadowpw=no]
 )
+if test "x$shadowpw" = "xyes"; then
+       AC_DEFINE(SHADOWPW)
+fi
+AC_MSG_RESULT([$shadowpw])
 
 AC_ARG_ENABLE(shell-check,
        [  --disable-shell-check   disable checking for a valid shell],
@@ -351,11 +331,16 @@ AC_ARG_ENABLE(shell-check,
        fi
 )
 
+AC_MSG_CHECKING([whether flock locks should be enabled])
 AC_ARG_WITH(flock-locks,
        [  --with-flock-locks      enable flock locks support],
-       AC_MSG_RESULT([enabling flock locks])
-       AC_DEFINE(USE_FLOCK_LOCKS)
+       [flock_locks="$withval"],
+       [flock_locks="no"]
 )
+if test "x$flock_locks" = "xyes"; then
+       AC_DEFINE(USE_FLOCK_LOCKS)
+fi
+AC_MSG_RESULT([$flock_locks])
 
 AC_ARG_WITH(tcp-wrappers,
        [  --with-tcp-wrappers     enable TCP wrappers support],
@@ -391,17 +376,17 @@ AC_ARG_ENABLE(cobalt,
 )
 
 dnl ----- timelord compilation (disabled by default)
+AC_MSG_CHECKING([whether timelord should be compiled])
 compile_timelord=no
 AC_ARG_ENABLE(timelord,
        [  --enable-timelord       enable compilation of timelord server],
-       if test "$enableval" = "yes"; then
-               compile_timelord=yes
-       fi
-       AC_MSG_RESULT([enabling timelord compilation])
+       [compile_timelord="$enableval"],
+       [compile_timelord="no"]
 )
+AC_MSG_RESULT([$compile_timelord])
 
 AC_ARG_WITH(uams-path,
-       [  --with-uams-path=path   path to UAMs [default=PKGCONF/uams]],
+       [  --with-uams-path=PATH   path to UAMs [[PKGCONF/uams]]],
        uams_path="$withval",
        uams_path="${PKGCONFDIR}/uams"
 )
@@ -427,7 +412,7 @@ dnl --------------------------------------------------------------------------
 dnl post-FHS substitutions, etc
 dnl --------------------------------------------------------------------------
 
-***** UAMS_PATH
+dnl ***** UAMS_PATH
 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
        [path to UAMs [default=PKGCONF/uams]])
 UAMS_PATH="${uams_path}"
@@ -436,8 +421,12 @@ AC_SUBST(UAMS_PATH)
 dnl --------------------------------------------------------------------------
 dnl drop in includes for top level directory structures here...
 dnl --------------------------------------------------------------------------
-LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/"
-CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
+
+dnl Note: $(top_srcdir)/include should be added before all other includes
+dnl       so that includes from that directory a preferred to includes from
+dnl       /usr/include or similar places.
+LIBS="$LIBS -L\$(top_srcdir)/libatalk"
+CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
 
 dnl --------------------------------------------------------------------------
 dnl specific configuration comes in here:
@@ -453,6 +442,7 @@ case "$host_os" in
        *irix*)                         this_os=irix ;;
        *linux*)                        this_os=linux ;;
        *osx*)                          this_os=macosx ;;
+       *darwin*)                       this_os=macosx ;;
        *netbsd*)                       this_os=netbsd ;;
        *openbsd*)                      this_os=openbsd ;;
        *osf*)                          this_os=tru64 ;;
@@ -485,8 +475,6 @@ if test x"$this_os" = "xfreebsd"; then
        AC_DEFINE(BSD4_4)
        AC_DEFINE(SENDFILE_FLAVOR_BSD)
 
-       dnl ----- Set -shared flag
-       LDSHAREDFLAGS="-shared"
        AC_DEFINE(NO_CRYPT_H, 1)
 fi
 
@@ -509,9 +497,6 @@ dnl ----- Linux specific -----
 if test x"$this_os" = "xlinux"; then 
        AC_MSG_RESULT([ * Linux specific configuration])
 
-       dnl ----- Set -shared flag
-       LDSHAREDFLAGS="-shared"
-
        dnl ----- check if we need the quotactl wrapper
        AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
        AC_CHECK_FUNC(quotactl,,
@@ -555,9 +540,6 @@ if test x"$this_os" = "xmacosx"; then
        AC_DEFINE(HAVE_2ARG_DBTOB)
        dnl AC_DEFINE(NO_DLFCN_H)
        AC_DEFINE(MACOSX_SERVER)
-
-       dnl ----- Set -shared flag
-       LDSHAREDFLAGS="-shared"
 fi
 
 dnl ----- NetBSD specific -----
@@ -568,14 +550,8 @@ if test x"$this_os" = "xnetbsd"; then
        CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
        need_dash_r=yes 
 
-       dnl ----- Set -shared flag
-       LDSHAREDFLAGS="-shared"
-
        dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
        AC_DEFINE(UAM_DHX, 1)
-       AC_DEFINE(UAM_RNDNUM, 1)
-       compile_dhx=yes
-       compile_ssl=yes
        AC_DEFINE(NO_CRYPT_H, 1)
 fi
 
@@ -585,14 +561,8 @@ if test x"$this_os" = "xopenbsd"; then
        AC_DEFINE(BSD4_4)
        AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
 
-       dnl ----- Set -shared flag
-       LDSHAREDFLAGS="-Bforcearchive -shared"
-
        dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
        AC_DEFINE(UAM_DHX, 1)
-       AC_DEFINE(UAM_RNDNUM, 1)
-       compile_dhx=yes
-       compile_ssl=yes
        AC_DEFINE(NO_CRYPT_H, 1)
 fi
 
@@ -606,9 +576,6 @@ if test x"$this_os" = "xsolaris"; then
        CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
        need_dash_r=yes
 
-       dnl ----- Set -shared flag
-       LDSHAREDFLAGS="-G"
-
        AC_MSG_RESULT([enabling Solaris kernel module build])
        solaris_module=yes
 fi
@@ -624,48 +591,12 @@ if test x"$this_os" = "xtru64"; then
        AC_DEFINE(TRU64)
        AC_CHECK_LIB(security,set_auth_parameters)
        CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
-       LDSHAREDFLAGS="-shared -expect_unresolved \*"
        need_dash_r=no
        sysv_style=tru64
-
-       dnl ----- Set -shared flag
-       LDSHAREDFLAGS="-shared"
 fi
 
-dnl -- look for openssl  
-AC_ARG_WITH(ssl-dir,
-       [  --with-ssl-dir=PATH     specify path to openssl installation (must contain
-                          lib and include dirs) ],
-       [
-               if test "x$withval" != "xno"; then
-                       tryssldir=$withval
-               fi
-       ]
-)
-
-for ssldir in "" $tryssldir /usr /usr/local/openssl /usr/lib/openssl/ /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl /usr/local/ssl ; do
-       if test -f "$ssldir/include/openssl/cast.h" ; then
-               LDFLAGS="$LDFLAGS -L$ssldir/lib -L$ssldir"
-               CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
-               if test "$need_dash_r" = "yes"; then
-                       LIBS="$LIBS -R$ssldir/lib -R$ssldir"
-               fi
-
-               dnl Check for the crypto library:
-               AC_CHECK_LIB(crypto, main)
-               dnl LIBS="$LIBS -lcrypto"
-               dnl Check for "DES" library (for SSLeay, not openssl):
-               AC_CHECK_LIB(des, main)
-
-               AC_DEFINE(OPENSSL_DHX,  1)
-               AC_DEFINE(UAM_DHX,      1)
-               AC_DEFINE(UAM_RNDNUM,   1)
-               compile_dhx=yes
-               compile_ssl=yes
-               AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
-               break
-       fi
-done
+dnl -- look for openssl
+AC_PATH_SSL
 
 dnl --------------------- check for building PGP UAM module
 
@@ -683,7 +614,7 @@ AC_ARG_ENABLE(pgp-uam,
 dnl --------------------- check for building Kerberos v4 UAM module
 
 AC_ARG_ENABLE(krb4-uam,
-       [  --enable-krb4-uam      enable build of Kerberos v4 UAM module],
+       [  --enable-krb4-uam       enable build of Kerberos v4 UAM module],
        if test "$enableval" = "yes"; then
                AC_DEFINE(UAM_KRB4, 1)
                compile_kerberos=yes
@@ -692,41 +623,26 @@ AC_ARG_ENABLE(krb4-uam,
 )
 dnl --------------------- overwrite the config files . . . or not.
 
-files="AppleVolumes.default AppleVolumes.system atalkd.conf netatalk.conf netatalk.pamd papd.conf afpd.conf"
-
+AC_MSG_CHECKING([whether configuration files should be overwritten])
 AC_ARG_ENABLE(overwrite,
-       [  --enable-overwrite      Overwrite configuration files
-                                  default=PKGCONFDIR],
-       [ 
-       OVERWRITE="$files"
-       AC_MSG_RESULT([Overwrite configuration files])
-       ],
-       
-       [       
-       for f in $files ; do
-               if test -f "${PKGCONFDIR}/$f" ; 
-               then :;
-               else OVERWRITE="${OVERWRITE} $f";
-               fi
-       done
-       AC_MSG_RESULT([Don't overwrite existing configuration files])
-       ]       
+       [  --enable-overwrite      overwrite configuration files during installation],
+       [OVERWRITE_CONFIG="${enable_overwrite}"],
+       [OVERWRITE_CONFIG="no"]
 )
+AC_MSG_RESULT([$OVERWRITE_CONFIG])
 
 dnl --------------------- last minute substitutions
 
-
 AC_SUBST(LIBS)
 AC_SUBST(AFPD_LIBS)
 AC_SUBST(PAPD_LIBS)
 AC_SUBST(CFLAGS)
-AC_SUBST(LDSHAREDFLAGS)
 AC_SUBST(PKGCONFDIR)
-AC_SUBST(OVERWRITE)
+AC_SUBST(OVERWRITE_CONFIG)
 
 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
-AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
+AM_CONDITIONAL(USE_DHX, test x$compile_ssl = 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$compile_pam = xyes)
@@ -784,6 +700,7 @@ AC_OUTPUT([Makefile
        libatalk/nbp/Makefile
        libatalk/netddp/Makefile
        libatalk/util/Makefile
+       macros/Makefile
        man/Makefile
        man/man1/Makefile
        man/man3/Makefile