]> arthur.barton.de Git - netatalk.git/blobdiff - configure.in
Remove checks for individual libraries (probably legacy stuff). Help text
[netatalk.git] / configure.in
index d78c17ceaaaa7e72a6e7164d0d8955fdffef09c5..1ad13d4df753f53470f927c00af0a93a2b55b0d5 100644 (file)
@@ -1,19 +1,19 @@
-dnl $Id: configure.in,v 1.114 2001-10-11 19:10:15 jmarcus Exp $
+dnl $Id: configure.in,v 1.197 2003-12-15 06:03:33 srittau Exp $
 dnl configure.in for netatalk
 
-AC_INIT(bin/adv1tov2/adv1tov2.c)
+AC_INIT(etc/afpd/main.c)
 
-NETATALK_VERSION=`cat VERSION`
+NETATALK_VERSION=`cat $srcdir/VERSION`
 AC_SUBST(NETATALK_VERSION)
 
 AC_CANONICAL_SYSTEM
 AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION})
 AM_CONFIG_HEADER(config.h)
 
-dnl Reset locations to proper places
-AC_PREFIX_DEFAULT(/usr/local)
-
+dnl
 dnl Checks for programs.
+dnl
+
 AC_PROG_AWK
 AC_PROG_CC
 AC_PROG_INSTALL
@@ -21,93 +21,39 @@ AC_PROG_LN_S
 AC_PROG_MAKE_SET
 AC_LIBTOOL_DLOPEN
 AM_PROG_LIBTOOL
-
-dnl *********************************************************************
-dnl FIXME! FIXME! These should be selectable properly, and should produce
-dnl the proper flags and defines...
-dnl *********************************************************************
-
-dnl Checks for libraries.
-dnl Replace `main' with a function in -labs:
-AC_CHECK_LIB(abs, main)
-dnl Replace `main' with a function in -laudit:
-AC_CHECK_LIB(audit, main)
-dnl Replace `main' with a function in -lauth:
-AC_CHECK_LIB(auth, main)
-dnl Replace `main' with a function in -lcmd:
-AC_CHECK_LIB(cmd, main)
-dnl Replace `main' with a function in -lcom_err:
-AC_CHECK_LIB(com_err, main)
-dnl Replace `main' with a function in -lcrypt:
-AC_CHECK_LIB(crypt, main)
-dnl Replace `main' with a function in -ld:
-AC_CHECK_LIB(d, main)
-dnl Replace `main' with a function in -ldl:
-AC_CHECK_LIB(dl, main)
-dnl Replace `main' with a function in -lkauth:
-AC_CHECK_LIB(kauth, main)
-dnl Replace `main' with a function in -lkrb:
-AC_CHECK_LIB(krb, main)
-dnl Replace `main' with a function in -llwp:
-AC_CHECK_LIB(lwp, main)
-dnl Replace `main' with a function in -ln:
-AC_CHECK_LIB(n, main)
-dnl Replace `main' with a function in -lnsl:
-AC_CHECK_LIB(nsl, main)
-dnl Replace `main' with a function in -lprot:
-AC_CHECK_LIB(prot, main)
-dnl Replace `main' with a function in -lresolv:
-AC_CHECK_LIB(resolv, main)
-dnl Replace `main' with a function in -lrpcsvc:
-AC_CHECK_LIB(rpcsvc, main)
-dnl Replace `main' with a function in -lrx:
-AC_CHECK_LIB(rx, main)
-dnl Replace `main' with a function in -lrxkad:
-AC_CHECK_LIB(rxkad, main)
-dnl Replace `main' with a function in -lsocket:
-AC_CHECK_LIB(socket, main)
-dnl Replace `main' with a function in -lsys:
-AC_CHECK_LIB(sys, main)
-dnl Replace `main' with a function in -lubik:
-AC_CHECK_LIB(ubik, main)
-
-#
-# Check presence of some functions
-#
-# Check for XPG4 access() function
-# Be sure to test before adding AFS libs in LIBS path as AFS lib
-# has such a function that works only on AFS filesystems.
+AC_PROG_PERL
+AC_PROG_GREP
+AC_PROG_PS
+AC_PROG_DVIPS
+AC_PROG_TROFF2PS
+
+dnl
+dnl Checks for presence of some functions.
+dnl
+
+dnl Check for XPG4 access() function
+dnl Be sure to test before adding AFS libs in LIBS path as AFS lib
+dnl has such a function that works only on AFS filesystems.
 AC_CHECK_FUNCS(access)
+AC_CHECK_FUNCS(pread pwrite)
 
+dnl
 dnl Checks for header files.
+dnl
+
 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 errno.h sys/errno.h security/pam_appl.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 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"
 )
 
-# Allow user to specify flags
-AC_ARG_WITH(cflags,
-       [  --with-cflags           specify additional flags to pass to compiler],
-       [
-               if test "x$withval" != "xno" ; then
-                       CFLAGS="$CFLAGS $withval"
-               fi
-       ]       
-)
-AC_ARG_WITH(libs,
-       [  --with-libs             specify additional libraries to link with],
-       [
-               if test "x$withval" != "xno" ; then
-                       LIBS="$LIBS $withval"
-               fi
-       ]
-)
-
+dnl
 dnl Checks for typedefs, structures, and compiler characteristics.
+dnl
+
 AC_C_CONST
 AC_TYPE_UID_T
 AC_C_INLINE
@@ -118,8 +64,12 @@ AC_TYPE_SIZE_T
 AC_STRUCT_ST_RDEV
 AC_HEADER_TIME
 AC_STRUCT_TM
+AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include <time.h>])
 
+dnl
 dnl Checks for library functions.
+dnl
+
 AC_TYPE_GETGROUPS
 AC_PROG_GCC_TRADITIONAL
 AC_FUNC_MEMCMP
@@ -128,54 +78,63 @@ 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 strchr memcpy)
+AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul setpgrp strchr memcpy)
 AC_FUNC_SETPGRP
 
+dnl
+dnl Checks for (v)snprintf
+dnl
+
+NETATALK_SNPRINTF_CHECK
+
 dnl --------------------------------------------------------------------------
 dnl specific configuration comes in here:
 dnl --------------------------------------------------------------------------
 
-AC_DEFINE(ADMIN_GRP, 1)
+AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled])
 
+AC_MSG_CHECKING([for administrative group support])
 AC_ARG_WITH(admin-group,
-       [  --disable-admin-group   disable admin group],
+       [  --disable-admin-group   disable admin group], [
         if test "$enableval" = "no"; then
-               AC_DEFINE(ADMIN_GRP, 0)
-               AC_MSG_RESULT([disabling administrative group support])
-        fi
- )
-
-AC_ARG_ENABLE(afs,
-       [  --enable-afs            enable AFS support],
-       if test "$enableval" = "yes"; then
-               AC_DEFINE(AFS, 1)
-               AC_MSG_RESULT([enabling AFS support])
-       fi
+               AC_DEFINE(ADMIN_GRP, 0, [Define if the admin group should be enabled])
+               AC_MSG_RESULT([no])
+       else
+               AC_MSG_RESULT([yes])
+        fi], [
+               AC_MSG_RESULT([yes])
+       ]
 )
 
-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
-)
+NETATALK_AFS_CHECK
 
-AC_ARG_WITH(pkgconfdir,
-       [  --with-pkgconfdir=DIR   package specific configuration in DIR
-                          [default=SYSCONF/netatalk]],
-               PKGCONFDIR="$withval",
-               PKGCONFDIR="${sysconfdir}/netatalk"
+NETATALK_CONFIG_DIRS
+
+AC_MSG_CHECKING([for logfile path])
+AC_ARG_WITH(logfile,
+       [  --with-logfile=PATH     path for file used by logger [/var/log/netatalk.log]
+                          use --without-logfile to disable logger], [
+        if test "x$withval" == "xno"; then
+               AC_DEFINE(DISABLE_LOGGER, 1, [Define if the logger should not be used])
+               AC_MSG_RESULT([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_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,
-                       AC_DEFINE(USE_CRACKLIB
+                       AC_DEFINE(USE_CRACKLIB, 1, [Define if cracklib should be used])
                        LIBS="$LIBS -lcrack"
                        AC_MSG_RESULT([enabling cracklib support])
                        if test "$cracklib" = "yes"; then
@@ -189,28 +148,53 @@ AC_ARG_WITH(cracklib,
        fi
 )
 
+AC_MSG_CHECKING([whether to enable DDP])
 AC_ARG_ENABLE(ddp,
-       [  --disable-ddp           disable DDP],
-       if test "$enableval" = "no"; then 
-               AC_DEFINE(NO_DDP, 1)
-               AC_MSG_RESULT([disabling DDP])
+       [  --disable-ddp           disable DDP], [
+       if test "x$enableval" = "xno"; then 
+               AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
+               AC_MSG_RESULT([no])
+       else
+               AC_MSG_RESULT([yes])
        fi
+       ], [
+               AC_MSG_RESULT([yes])
+       ]
 )
 
+AC_MSG_CHECKING([whether to enable debugging code])
 AC_ARG_ENABLE(debug,
-       [  --enable-debug          enable debug code],
-       if test "$enableval" != "no"; then
-               if test "$enableval" = "yes"; then
-                       AC_DEFINE(DEBUG, 1)
+       [  --enable-debug          enable debug code], [
+       if test "x$enableval" != "xno"; then
+               if test "x$enableval" = "xyes"; then
+                       AC_DEFINE(DEBUG, 1, [Define if debugging information should be included])
                else
-                       AC_DEFINE_UNQUOTED(DEBUG, $enableval)
+                       AC_DEFINE_UNQUOTED(DEBUG, $enableval, [Define if debugging information should be included])
                fi 
-               AC_MSG_RESULT([enabling debugging code])
+               AC_MSG_RESULT([yes])
        else
-               AC_DEFINE(DEBUG, 0)
+               AC_MSG_RESULT([no])
+       fi
+       ], [
+               AC_MSG_RESULT([no])
+       ]
+)
+
+afp3=no
+AC_ARG_ENABLE(afp3,
+       [  --enable-afp3           enable AFP 3.x calls],
+       if test "$enableval" = "yes"; then
+               afp3=yes
+               AC_DEFINE(AFP3x, 1, [Define to enable AFP 3.x support])
+               AC_MSG_RESULT([enabling AFP 3.x calls])
        fi
 )
 
+if test "$afp3" = "yes"; then
+       AM_ICONV
+        AC_SYS_LARGEFILE
+fi
+
 
 dnl ----------- A NOTE ABOUT DROPKLUDGE
 dnl The trouble with this fix is that if you know what the file is called, it
@@ -219,148 +203,101 @@ dnl since the students don't have telnet access to the Mac servers.  There is
 dnl currently no one working on further development/fixes of DROPKLUDGE.
 dnl -----------
 
+AC_MSG_CHECKING([whether to enable experimental dropbox support])
 AC_ARG_ENABLE(dropkludge,
-       [  --enable-dropkludge     enable the experimental dropbox fix (INSECURE!) ],
-       if test "$enableval" = "yes"; then 
-               AC_DEFINE(DROPKLUDGE, 1)
-               AC_MSG_RESULT([enabling experimental dropbox support])
+       [  --enable-dropkludge     enable the experimental dropbox fix (INSECURE!) ], [
+       if test "x$enableval" = "xyes"; then 
+               AC_DEFINE(DROPKLUDGE, 1, [Define if you want to use the experimental dropkludge support])
+               AC_MSG_RESULT([yes])
+       else
+               AC_MSG_RESULT([no])
        fi
+       ], [AC_MSG_RESULT([no])]
 )
 
+AC_MSG_CHECKING([whether to enable forcing of uid/gid per volume])
 AC_ARG_ENABLE(force-uidgid,
-       [  --enable-force-uidgid   allow forcing of uid/gid per volume (BROKEN) ],
-       if test "$enableval" = "yes"; then
-               AC_DEFINE(FORCE_UIDGID, 1)
-               AC_MSG_RESULT([enabling forcing of uid/gid per volume])
-       fi
-)
-
-dnl Don't use DB3 unless it's needed
-db3_required=no
-
-dnl Check for CNID DB support
-AC_ARG_ENABLE(cnid-db,
-       [  --enable-cnid-db   use persistent cnid database per volume (EXPERIMENTAL) ],
+       [  --enable-force-uidgid   allow forcing of uid/gid per volume (BROKEN) ], [
        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])
+               AC_DEFINE(FORCE_UIDGID, 1, [Define if you want forcing of uid/gid per volume])
+               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
-)
+NETATALK_ARG_DID
 
-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"
-               CFLAGS="$CFLAGS -I$db3dir/include/db3"
-
-               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!])
-                       )
+dnl Determine whether or not to use filename mangling
+AC_MSG_CHECKING([whether to use filename mangling])
+AC_ARG_WITH(mangling,
+       [  --with-mangling         enable filename mangling],
+       [
+               if test "x$withval" = "xyes"; then
+                       if test "x$did_scheme" != "xcnid"; then
+                               AC_MSG_ERROR([DID scheme must be CNID to use filename mangling])
+                       else
+                               AC_DEFINE(FILE_MANGLING, 1, [Define if file name mangling should be used])
+                               AC_MSG_RESULT([yes])
+                       fi
+               else
+                       AC_MSG_RESULT([no])
                fi
-               break
-       fi
-done
+       ], [
+               if test "x$did_scheme" = "xcnid"; then
+                       AC_DEFINE(FILE_MANGLING, 1, [Define if file name mangling should be used])
+                       AC_MSG_RESULT([yes])
+               else
+                       AC_MSG_RESULT([no])
+               fi
+       ]
+)
 
-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 "$did_scheme" = "cnid"; then
+    USE_CDB="yes"
+else
+    USE_CDB="no"
 fi
 
-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
+dnl Determine whether or not to use CDB or transactional DB store
+AC_MSG_CHECKING([whether to use CNID with Concurrent Data Store])
+AC_ARG_WITH(cdb,
+       [  --with-cdb              enable CNID with Concurrent Data Store],
+       if test "$withval" = "no"; then
+           if test "x$did_scheme" != "xcnid"; then
+               USE_CDB="no"
+               AC_MSG_ERROR([DID scheme must be CNID to use CDB])
+           else
+               USE_CDB="no"
+               AC_MSG_RESULT([no])
+           fi
+       else
+           USE_CDB="yes"
+           AC_MSG_RESULT([yes])
        fi
+       , AC_MSG_RESULT([yes])
 )
 
-msg_dir=""
-AC_ARG_WITH(message-dir,
-       [  --with-msg-dir=path     path to message files [default=$ac_prefix_default/etc/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]])
-               SERVERTEXT="$msg_dir"
-               AC_SUBST(SERVERTEXT)
-)
+if test "$USE_CDB" = "yes"; then
+    AC_DEFINE(CNID_DB_CDB, 1, [Define if CNID should be used with Concurrent Data Store])
+fi
 
-AC_ARG_ENABLE(srvloc,
-       [  --enable-srvloc         Turn on Server Location Protocol support (EXPERIMENTAL)],
-       srvloc=$enableval,
-       srvloc=no
-)
+dnl Check for quota support
+AC_CHECK_QUOTA
 
-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
-                       LDFLAGS="$LDFLAGS -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
+dnl Check for optional server location protocol support (used by MacOS X)
+NETATALK_SRVLOC
 
-# Check for PAM libs
-AC_MSG_CHECKING([whether PAM support should be enabled])
-AC_ARG_WITH(pam,
-    [  --with-pam              Enable PAM support],
-    [PAM_MSG="$withval"],
-    [PAM_MSG="yes"]
-)
-AC_MSG_RESULT($PAM_MSG)
-use_pam_so=yes
-compile_pam=yes
-
-if test "x$PAM_MSG" = "xyes"; then
-       if test "x$ac_cv_header_security_pam_appl_h" = "xyes" ; then
-        
-               AC_CHECK_LIB(pam, pam_set_item, 
-                               [PAPD_LIBS="$PAPD_LIBS -lpam"; AFPD_LIBS="$AFPD_LIBS -lpam"; use_pam_so=yes; compile_pam=yes; AC_DEFINE(USE_PAM)],
-                       [use_pam_so=no; compile_pam=no]
-               )
-       fi
-else
-       use_pam_so=no
-       compile_pam=no
-fi
+dnl Check for gssapi
+NETATALK_GSSAPI_CHECK
+
+dnl Check for PAM libs
+AC_PATH_PAM([
+       use_pam_so=yes
+       compile_pam=yes
+       AC_DEFINE(USE_PAM, 1, [Define to enable PAM support])
+])
 
 AC_MSG_CHECKING([whether shadow support should be enabled])
 AC_ARG_WITH(shadow,
@@ -369,37 +306,19 @@ AC_ARG_WITH(shadow,
        [shadowpw=no]
 )
 if test "x$shadowpw" = "xyes"; then
-       AC_DEFINE(SHADOWPW)
+       AC_DEFINE(SHADOWPW, 1, [Define if shadow passwords should be used])
 fi
 AC_MSG_RESULT([$shadowpw])
 
 AC_ARG_ENABLE(shell-check,
        [  --disable-shell-check   disable checking for a valid shell],
        if test "$enableval" = "no"; then 
-               AC_DEFINE(DISABLE_SHELLCHECK, 1)
+               AC_DEFINE(DISABLE_SHELLCHECK, 1, [Define if shell check should be disabled])
                AC_MSG_RESULT([disabling valid shell check])
        fi
 )
 
-AC_MSG_CHECKING([whether flock locks should be enabled])
-AC_ARG_WITH(flock-locks,
-       [  --with-flock-locks      enable flock locks support],
-       [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],
-       AC_CHECK_LIB(wrap, tcpd_warn,
-               AC_DEFINE(TCPWRAP)
-               AFPD_LIBS="$AFPD_LIBS -lwrap"
-               AC_MSG_RESULT([enabling TCP wrappers support])
-       )
-)
+NETATALK_TCP_WRAPPERS
 
 AC_ARG_ENABLE(redhat,
        [  --enable-redhat         use redhat-style sysv configuration ],
@@ -425,18 +344,26 @@ AC_ARG_ENABLE(cobalt,
        AC_MSG_RESULT([enabling cobalt-style sysv support])
 )
 
-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],
-       [compile_timelord="$enableval"],
-       [compile_timelord="no"]
+AC_ARG_ENABLE(netbsd,
+       [  --enable-netbsd         use NetBSD-style rc.d configuration ],
+       if test "x$enableval" = "xyes"; then
+               sysv_style=netbsd
+       fi
+       AC_MSG_RESULT([enabling NetBSD-style rc.d support])
+)
+
+dnl ----- a2boot compilation (disabled by default)
+AC_MSG_CHECKING([whether a2boot should be compiled])
+compile_a2boot=no
+AC_ARG_ENABLE(a2boot,
+       [  --enable-a2boot         enable compilation of Apple2 boot server],
+       [compile_a2boot="$enableval"],
+       [compile_a2boot="no"]
 )
-AC_MSG_RESULT([$compile_timelord])
+AC_MSG_RESULT([$compile_a2boot])
 
 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"
 )
@@ -448,12 +375,14 @@ dnl --------------------------------------------------------------------------
 AC_ARG_ENABLE(fhs,
        [  --enable-fhs            use Filesystem Hierarchy Standard (FHS) compatibility],
        if test "$enableval" = "yes"; then
-               uams_path="/usr/lib/netatalk"
+               uams_path="${libdir}/netatalk"
                sysconfdir="/etc"
                PKGCONFDIR=${sysconfdir}/netatalk
+               SERVERTEXT="${PKGCONFDIR}/msg"
+               NLSDIR="${PKGCONFDIR}/nls"
                use_pam_so=yes
-               dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
-               AC_DEFINE(FHS_COMPATIBILITY)
+               mandir="/usr/share/man"
+               AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
        fi
        AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
 )
@@ -471,8 +400,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:
@@ -488,6 +421,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 ;;
@@ -506,58 +440,61 @@ dnl --------------------- operating system specific flags (port from sys/*)
 dnl ----- AIX specific -----
 if test x"$this_os" = "xaix"; then
        AC_MSG_RESULT([ * AIX specific configuration])
-       AC_DEFINE(NO_STRUCT_TM_GMTOFF)
 
        dnl This is probably a lie; AIX 4.3 supports a 64-bit long
        dnl compilation environment.  It's enough to get things defined
        dnl right in endian.h provided that long long is supported, though.
-       AC_DEFINE(HAVE_32BIT_LONGS)
+       AC_DEFINE(HAVE_32BIT_LONGS, 1, [Define if the data type long has 32 bit])
 fi
 
 dnl ----- FreeBSD specific -----
 if test x"$this_os" = "xfreebsd"; then 
        AC_MSG_RESULT([ * FreeBSD specific configuration])
-       AC_DEFINE(BSD4_4)
-       AC_DEFINE(SENDFILE_FLAVOR_BSD)
+       AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
+       AC_DEFINE(SENDFILE_FLAVOR_BSD, 1, [Define if the sendfile() function uses BSD semantics])
 
-       dnl ----- Set -shared flag
-       LDSHAREDFLAGS="-shared"
-       AC_DEFINE(NO_CRYPT_H, 1)
+       AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
 fi
 
 dnl ----- HP-UX 11 specific -----
 if test x"$this_os" = "xhpux11"; then
        AC_MSG_RESULT([ * HP-UX 11 specific configuration])
 
-       AC_DEFINE(_ISOC9X_SOURCE)
-       AC_DEFINE(NO_STRUCT_TM_GMTOFF)
-fi
-
-dnl ----- IRIX specific -----
-if test x"$this_os" = "xirix"; then
-       AC_MSG_RESULT([ * IRIX specific configuration])
-
-       AC_DEFINE(NO_STRUCT_TM_GMTOFF)
+       AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
 fi
 
 dnl ----- Linux specific -----
+ac_have_atalk_addr=no
 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,,
-               AC_DEFINE(NEED_QUOTACTL_WRAPPER)
-               AC_MSG_RESULT([enabling quotactl wrapper])
-       )
+       dnl ----- kernel 2.6 changed struct at_addr to atalk_addr
+       AC_MSG_CHECKING([for struct atalk_addr])
+       AC_COMPILE_IFELSE([
+#include <sys/socket.h>
+#include <asm/types.h>
+#include <linux/atalk.h>
+
+int main() {
+       struct atalk_addr foo;
+
+       return 0;
+}
+       ], [
+               ac_have_atalk_addr=yes
+               AC_MSG_RESULT([yes])
+       ], [
+               AC_MSG_RESULT([no])
+       ])
+
+if test "x$ac_have_atalk_addr" = "xyes"; then
+       AC_DEFINE(HAVE_ATALK_ADDR, 1, [set if struct at_addr is called atalk_addr])
+fi
 
        dnl ----- as far as I can tell, dbtob always does the wrong thing
        dnl ----- on every single version of linux I've ever played with.
        dnl ----- see etc/afpd/quota.c
-       AC_DEFINE(HAVE_BROKEN_DBTOB)
+       AC_DEFINE(HAVE_BROKEN_DBTOB, 1, [Define if dbtob is broken])
 
        dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
        dnl ----- check if version is newer than 2.2.x
@@ -568,7 +505,7 @@ if test x"$this_os" = "xlinux"; then
                if [ $minorvers -ge 2 ]; then
                        changequote([,])
                        AC_MSG_RESULT([ * found Linux 2.2.x or higher])
-                       AC_DEFINE(SENDFILE_FLAVOR_LINUX)
+                       AC_DEFINE(SENDFILE_FLAVOR_LINUX, 1, [Define if the sendfile() function uses Linux semantics])
                else
                        AC_MSG_RESULT([ * found Linux 2.0.x ]) 
                fi
@@ -577,7 +514,7 @@ if test x"$this_os" = "xlinux"; then
        dnl ----- Linux/alpha specific -----
        if test x"$this_cpu" = "xalpha"; then 
                AC_MSG_RESULT([enabling gcc memcpy bug workaround])
-               AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
+               AC_DEFINE(HAVE_GCC_MEMCPY_BUG, 1, [Define if memcpy is buggy])
        fi
        need_dash_r=no
 fi
@@ -585,65 +522,51 @@ fi
 dnl ----- Mac OSX specific -----
 if test x"$this_os" = "xmacosx"; then 
        AC_MSG_RESULT([ * Mac OSX specific configuration])
-       AC_DEFINE(BSD4_4)
-       AC_DEFINE(HAVE_BROKEN_CPP)
-       AC_DEFINE(HAVE_2ARG_DBTOB)
+       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(MACOSX_SERVER)
-
-       dnl ----- Set -shared flag
-       LDSHAREDFLAGS="-shared"
+       AC_DEFINE(MACOSX_SERVER, 1, [Define if compiling for MacOS X Server])
 fi
 
 dnl ----- NetBSD specific -----
 if test x"$this_os" = "xnetbsd"; then 
        AC_MSG_RESULT([ * NetBSD specific configuration])
-       AC_DEFINE(BSD4_4)
-       AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
+       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
        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)
+       AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
+       AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
 fi
 
 dnl ----- OpenBSD specific -----
 if test x"$this_os" = "xopenbsd"; then 
        AC_MSG_RESULT([ * OpenBSD specific configuration])
-       AC_DEFINE(BSD4_4)
-       AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
-
-       dnl ----- Set -shared flag
-       LDSHAREDFLAGS="-Bforcearchive -shared"
+       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)
-       AC_DEFINE(UAM_RNDNUM, 1)
-       compile_dhx=yes
-       compile_ssl=yes
-       AC_DEFINE(NO_CRYPT_H, 1)
+       AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
+       AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
 fi
 
 dnl ----- Solaris specific -----
 if test x"$this_os" = "xsolaris"; then 
        AC_MSG_RESULT([ * Solaris specific configuration])
-       AC_DEFINE(__svr4__)
-       AC_DEFINE(_ISOC9X_SOURCE)
-       AC_DEFINE(NO_STRUCT_TM_GMTOFF)
-       AC_DEFINE(SOLARIS)
+       AC_DEFINE(__svr4__, 1, [Solaris compatibility macro])
+       AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
+       AC_DEFINE(SOLARIS, 1, [Solaris compatibility macro])
        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
@@ -651,81 +574,27 @@ fi
 dnl ----- Tru64 specific -----
 if test x"$this_os" = "xtru64"; then 
        AC_MSG_RESULT([ * Tru64 specific configuration])
-       AC_DEFINE(NO_DDP)
-       AC_DEFINE(HAVE_64BIT_LONGS)
+       AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
+       AC_DEFINE(HAVE_64BIT_LONGS, 1, [Define if the data type long has 64 bit])
        dnl AC_DEFINE(USE_MOUNT_H)
-       AC_DEFINE(USE_OLD_RQUOTA)
-       dnl AC_DEFINE(USE_UFS_QUOTA_H)
-       AC_DEFINE(TRU64)
+       AC_DEFINE(USE_OLD_RQUOTA, 1, [Define to use old rquota])
+       AC_DEFINE(TRU64, 1, [Define on Tru64 platforms])
        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
-tryssl=yes
-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
-               else
-                       tryssl=no
-               fi
-       ]
-)
-
-if test "$tryssl" = "yes"; then
-       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
 fi
 
-dnl --------------------- check for building PGP UAM module
-
-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 
-                       AC_DEFINE(UAM_PGP, 1)
-                       compile_pgp=yes
-                       AC_MSG_RESULT([enabling build with PGP UAM module])
-               fi
-       fi
-)
+dnl -- look for OpenSSL and other crypt libraries
+AC_PATH_GCRYPT
+AC_PATH_SSL
 
 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)
+               AC_DEFINE(UAM_KRB4, 1, [Define if the Kerberos 4 UAM module should be compiled])
                compile_kerberos=yes
                AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
        fi
@@ -734,8 +603,7 @@ dnl --------------------- overwrite the config files . . . or not.
 
 AC_MSG_CHECKING([whether configuration files should be overwritten])
 AC_ARG_ENABLE(overwrite,
-       [  --enable-overwrite      Overwrite configuration files
-                                  default=PKGCONFDIR],
+       [  --enable-overwrite      overwrite configuration files during installation],
        [OVERWRITE_CONFIG="${enable_overwrite}"],
        [OVERWRITE_CONFIG="no"]
 )
@@ -744,22 +612,18 @@ 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_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(COMPILE_A2BOOT, test x$compile_a2boot = 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)
 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
-AM_CONDITIONAL(USE_PGP, test x$compile_pgp = 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)
 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
@@ -773,6 +637,8 @@ AC_OUTPUT([Makefile
        bin/aecho/Makefile
        bin/afile/Makefile
        bin/afppasswd/Makefile
+       bin/cnid/Makefile
+       bin/cnid/cnid_maint
        bin/getzones/Makefile
        bin/megatron/Makefile
        bin/nbp/Makefile
@@ -781,10 +647,20 @@ AC_OUTPUT([Makefile
        config/Makefile
        contrib/Makefile
        contrib/macusers/Makefile
+       contrib/macusers/macusers
        contrib/nu/Makefile
+       contrib/nu/nu
        contrib/printing/Makefile
        contrib/shell_utils/Makefile
+       contrib/shell_utils/afpd-mtab.pl
+       contrib/shell_utils/apple_cp
+       contrib/shell_utils/apple_mv
+       contrib/shell_utils/apple_rm
+       contrib/shell_utils/cleanappledouble.pl
+       contrib/shell_utils/lp2pap.sh
+       contrib/shell_utils/netatalkshorternamelinks.pl
        contrib/timelord/Makefile
+       contrib/a2boot/Makefile
        distrib/Makefile
        distrib/config/Makefile
        distrib/config/netatalk-config
@@ -799,6 +675,7 @@ AC_OUTPUT([Makefile
        etc/uams/uams_krb4/Makefile
        etc/papd/Makefile
        etc/psf/Makefile
+       etc/psf/etc2ps.sh
        include/Makefile
        include/atalk/Makefile
        libatalk/Makefile
@@ -811,6 +688,7 @@ AC_OUTPUT([Makefile
        libatalk/nbp/Makefile
        libatalk/netddp/Makefile
        libatalk/util/Makefile
+       macros/Makefile
        man/Makefile
        man/man1/Makefile
        man/man3/Makefile
@@ -824,6 +702,7 @@ AC_OUTPUT([Makefile
        sys/netbsd/Makefile
        sys/netbsd/netatalk/Makefile
        sys/solaris/Makefile
+       sys/solaris/Makefile.kernel
        sys/sunos/Makefile
        sys/ultrix/Makefile
        ],