X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=configure.in;h=09cabdadf380b6485aacdcc2d5b81e521220e1c7;hb=5f9514a68e0a1ede9b50609c34aecdacec3a66d5;hp=0ee5cf6a433fbdd5c36efdac5fa1abd55854c130;hpb=86549131028a387141594854bfb762d6ab1d09c4;p=netatalk.git diff --git a/configure.in b/configure.in index 0ee5cf6a..09cabdad 100644 --- a/configure.in +++ b/configure.in @@ -1,5 +1,65 @@ +dnl $Id: configure.in,v 1.119 2001-10-27 13:07:16 srittau Exp $ dnl configure.in for netatalk +dnl Check for SSL +AC_DEFUN([AC_PATH_SSL], [ + 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 + ] + ) + + SSL_CFLAGS="" + SSL_LIBS="" + compile_ssl=no + + if test "$tryssl" = "yes"; then + AC_MSG_CHECKING([for SSL]) + 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 + SSL_CFLAGS="$SSL_CFLAGS -I$ssldir/include -I$ssldir/include/openssl" + SSL_LIBS="$SSL_LIBS -L$ssldir/lib -L$ssldir -lcrypto" + if test "$need_dash_r" = "yes"; then + SSL_LIBS="$SSL_LIBS -R$ssldir/lib -R$ssldir" + fi + AC_MSG_RESULT([$ssldir (enabling RANDNUM and DHX support)]) + + dnl Check for the crypto library: + AC_CHECK_LIB(crypto, main) + dnl Check for "DES" library (for SSLeay, not openssl): + AC_CHECK_LIB(des, main) + + dnl FIXME: do that temporarily + 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 + + AC_DEFINE(OPENSSL_DHX, 1) + AC_DEFINE(UAM_DHX, 1) + compile_ssl=yes + break + fi + done + if test "x$compile_ssl" = "xno"; then + AC_MSG_RESULT([no]) + fi + fi + AC_SUBST(SSL_CFLAGS) + AC_SUBST(SSL_LIBS) +]) + + + AC_INIT(bin/adv1tov2/adv1tov2.c) NETATALK_VERSION=`cat VERSION` @@ -10,7 +70,7 @@ AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION}) AM_CONFIG_HEADER(config.h) dnl Reset locations to proper places -AC_PREFIX_DEFAULT(/usr) +AC_PREFIX_DEFAULT(/usr/local) dnl Checks for programs. AC_PROG_AWK @@ -18,7 +78,8 @@ AC_PROG_CC AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET -AC_PROG_LIBTOOL +AC_LIBTOOL_DLOPEN +AM_PROG_LIBTOOL dnl ********************************************************************* dnl FIXME! FIXME! These should be selectable properly, and should produce @@ -38,14 +99,8 @@ 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 -lcrypto: -AC_CHECK_LIB(crypto, main) dnl Replace `main' with a function in -ld: AC_CHECK_LIB(d, main) -dnl Replace `main' with a function in -ldb: -AC_CHECK_LIB(db, main) -dnl Replace `main' with a function in -ldes: -AC_CHECK_LIB(des, main) dnl Replace `main' with a function in -ldl: AC_CHECK_LIB(dl, main) dnl Replace `main' with a function in -lkauth: @@ -75,18 +130,40 @@ 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_CHECK_FUNCS(access) + dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_HEADER_SYS_WAIT -AC_CHECK_HEADERS(fcntl.h limits.h strings.h sys/file.h sys/ioctl.h sys/time.h syslog.h unistd.h) - -dnl --- check for openssl headers ... if so, add proper flags -AC_CHECK_HEADER(openssl/cast.h, - AC_DEFINE(OPENSSL_DHX, 1) - AC_DEFINE(UAM_DHX, 1) - AC_MSG_RESULT([including openssl libraries]) - compile_dhx=yes +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_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 Checks for typedefs, structures, and compiler characteristics. @@ -110,54 +187,65 @@ 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 strstr strtoul) +AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp strchr memcpy) +AC_FUNC_SETPGRP dnl -------------------------------------------------------------------------- dnl specific configuration comes in here: dnl -------------------------------------------------------------------------- +AC_DEFINE(ADMIN_GRP, 1) + AC_ARG_WITH(admin-group, - [ --with-admin-group=grp enable and set administrative group], - admin_grp="$withval" - AC_DEFINE_UNQUOTED(ADMIN_GRP, "$admin_grp") - AC_MSG_RESULT([enabling administrative group "$admin_grp"]), + [ --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_ARG_WITH(auth-printing-dir, - [ --with-auth-printing-dir=path - path to authenticated printing directory], - cap_dir="$withval" - AC_DEFINE_UNQUOTED(CAPDIR, "$cap_dir") - AC_DEFINE(USE_CAP) - AC_MSG_RESULT([enabling authenticated printing support]), +AC_ARG_WITH(config-dir, + [ --with-config-dir=DIR obsolete - use --with-pkgconfdir], + sysconfdir="$withval", + if test "x$prefix" = "xNONE"; then + sysconfdir="$ac_default_prefix/etc" + else + sysconfdir="${prefix}/etc" + fi ) -AC_ARG_WITH(config-dir, - [ --with-config-dir=path path to config files [default=/etc/atalk]], - config_dir="$withval", - config_dir="/etc/atalk" +AC_ARG_WITH(pkgconfdir, + [ --with-pkgconfdir=DIR package specific configuration in DIR + [[SYSCONF/netatalk]]], + PKGCONFDIR="$withval", + PKGCONFDIR="${sysconfdir}/netatalk" ) -AC_DEFINE_UNQUOTED(CONFIG_DIR, "$config_dir", - [path to config dir [default=/etc/atalk]]) -CONFIG_DIR="$config_dir" -AC_SUBST(CONFIG_DIR) -AC_MSG_RESULT([setting configuration files location to $CONFIG_DIR]), AC_ARG_WITH(cracklib, - [ --with-cracklib=dict enable/set location of cracklib dictionary], - cracklib="$withval" - AC_CHECK_LIB(crack, main, - AC_DEFINE(USE_CRACKLIB) - LIBS="$LIBS -lcrack" - AC_MSG_RESULT([enabling cracklib support]) - if test "$cracklib" = "yes"; then - cracklib="/usr/lib/cracklib_dict" - fi - AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib", - [path to cracklib dictionary]) - AC_MSG_RESULT([setting cracklib dictionary to $cracklib]), - AC_MSG_ERROR([cracklib not found!]) - ) + [ --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) + LIBS="$LIBS -lcrack" + AC_MSG_RESULT([enabling cracklib support]) + if test "$cracklib" = "yes"; then + cracklib="/usr/lib/cracklib_dict" + fi + AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib", + [path to cracklib dictionary]) + AC_MSG_RESULT([setting cracklib dictionary to $cracklib]), + AC_MSG_ERROR([cracklib not found!]) + ) + fi ) AC_ARG_ENABLE(ddp, @@ -170,115 +258,402 @@ AC_ARG_ENABLE(ddp, AC_ARG_ENABLE(debug, [ --enable-debug enable debug code], - AC_DEFINE(DEBUG, 1) - AC_MSG_RESULT([enabling debugging code]), - AC_DEFINE(DEBUG, 0) + if test "$enableval" != "no"; then + if test "$enableval" = "yes"; then + AC_DEFINE(DEBUG, 1) + else + AC_DEFINE_UNQUOTED(DEBUG, $enableval) + fi + AC_MSG_RESULT([enabling debugging code]) + else + AC_DEFINE(DEBUG, 0) + fi +) + + +dnl ----------- A NOTE ABOUT DROPKLUDGE +dnl The trouble with this fix is that if you know what the file is called, it +dnl can be read from the Unix side. That's okay for most academic institutions +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_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]) + fi +) + +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) ], + 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 +) + +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 "$trydb3dir/include" /usr/local/BerkeleyDB.3.3/include /usr/include/db3 /usr/local/include/db3 ; do + if test -f "$db3dir/db.h" ; then + db3libdir="`echo $db3dir | sed 's/include\/db3$/lib/'`" + db3libdir="`echo $db3libdir | sed 's/include$/lib/'`" + LDFLAGS="$LDFLAGS -L$db3libdir" + CFLAGS="$CFLAGS -I$db3dir" + + 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 +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 + fi ) msg_dir="" AC_ARG_WITH(message-dir, - [ --with-msg-dir=path path to message files [default=/etc/atalk/msg]], + [ --with-msg-dir=PATH path to message files [[PKGCONF/msg]]], msg_dir="$withval" if test x"$msg_dir" = "x"; then - msg_dir="$CONFIG_DIR/msg" + msg_dir="${PKGCONFDIR}/msg" fi AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir", - [path to message dir [default=$CONFIG_DIR/msg]]) + [path to message dir [[PKGCONF/msg]]]) SERVERTEXT="$msg_dir" AC_SUBST(SERVERTEXT) ) +AC_ARG_ENABLE(srvloc, + [ --enable-srvloc turn on Server Location Protocol support (EXPERIMENTAL)], + srvloc=$enableval, + srvloc=no +) + +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 + +# Check for PAM libs +AC_MSG_CHECKING([whether PAM support should be enabled]) AC_ARG_WITH(pam, - [ --with-pam enable password authentication modules support], - AC_CHECK_LIB(pam, main, - AC_DEFINE(USE_PAM) - LIBS="$LIBS -lpam" - AC_MSG_RESULT([enabling pam modules support]) - ) + [ --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 +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]) + [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], + if test "$enableval" = "no"; then + AC_DEFINE(DISABLE_SHELLCHECK, 1) + 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], - 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], - AC_CHECK_LIB(wrap, main, + AC_CHECK_LIB(wrap, tcpd_warn, AC_DEFINE(TCPWRAP) - LIBS="$LIBS -lwrap" + AFPD_LIBS="$AFPD_LIBS -lwrap" AC_MSG_RESULT([enabling TCP wrappers support]) ) ) +AC_ARG_ENABLE(redhat, + [ --enable-redhat use redhat-style sysv configuration ], + if test "$enableval" = "yes"; then + sysv_style=redhat + fi + AC_MSG_RESULT([enabling redhat-style sysv support]) +) + +AC_ARG_ENABLE(suse, + [ --enable-suse use suse-style sysv configuration ], + if test "$enableval" = "yes"; then + sysv_style=suse + fi + AC_MSG_RESULT([enabling suse-style sysv support]) +) + +AC_ARG_ENABLE(cobalt, + [ --enable-cobalt use cobalt-style sysv configuration ], + if test "$enableval" = "yes"; then + sysv_style=cobalt + fi + 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_MSG_RESULT([$compile_timelord]) + AC_ARG_WITH(uams-path, - [ --with-uams-path=path path to UAMs [default=/etc/atalk/uams]], + [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]], uams_path="$withval", - uams_path="/etc/atalk/uams" + uams_path="${PKGCONFDIR}/uams" ) -AC_DEFINE_UNQUOTED(UAMS_PATH, "$uams_path", - [path to UAMs [default=/etc/atalk/uams]]) -UAMS_PATH="$uams_path" + +dnl -------------------------------------------------------------------------- +dnl FHS stuff has to be done last because it overrides other defaults +dnl -------------------------------------------------------------------------- + +AC_ARG_ENABLE(fhs, + [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility], + if test "$enableval" = "yes"; then + uams_path="/usr/lib/netatalk" + sysconfdir="/etc" + PKGCONFDIR=${sysconfdir}/netatalk + use_pam_so=yes + dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT... + AC_DEFINE(FHS_COMPATIBILITY) + fi + AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility]) +) + +dnl -------------------------------------------------------------------------- +dnl post-FHS substitutions, etc +dnl -------------------------------------------------------------------------- + +dnl ***** UAMS_PATH +AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}", + [path to UAMs [default=PKGCONF/uams]]) +UAMS_PATH="${uams_path}" AC_SUBST(UAMS_PATH) dnl -------------------------------------------------------------------------- dnl drop in includes for top level directory structures here... dnl -------------------------------------------------------------------------- -LIBS="$LIBS -L\$(top_srcdir)/libatalk/" +LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/" CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys" dnl -------------------------------------------------------------------------- dnl specific configuration comes in here: dnl -------------------------------------------------------------------------- +dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu + dnl --------------------- determine operating system from "target" -case "$ac_cv_target_os" in +case "$host_os" in + *aix*) this_os=aix ;; *freebsd*) this_os=freebsd ;; + *hpux11*) this_os=hpux11 ;; + *irix*) this_os=irix ;; *linux*) this_os=linux ;; - *openbsd*) this_os=openbsd ;; + *osx*) this_os=macosx ;; *netbsd*) this_os=netbsd ;; + *openbsd*) this_os=openbsd ;; + *osf*) this_os=tru64 ;; *solaris*) this_os=solaris ;; esac -case "$ac_cv_target_cpu" in +case "$host_cpu" in i386|i486|i586|i686|k7) this_cpu=x86 ;; - alpha) this_cpu=alpha ;; - mips) this_cpu=mips ;; - powerpc|ppc) this_cpu=ppc ;; + alpha) this_cpu=alpha ;; + mips) this_cpu=mips ;; + powerpc|ppc) this_cpu=ppc ;; esac 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) +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) + + dnl ----- Set -shared flag + LDSHAREDFLAGS="-shared" + AC_DEFINE(NO_CRYPT_H, 1) +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) fi dnl ----- Linux specific ----- if test x"$this_os" = "xlinux"; then AC_MSG_RESULT([ * Linux specific configuration]) - AC_DEFINE(SENDFILE_FLAVOR_LINUX) + + dnl ----- Set -shared flag + LDSHAREDFLAGS="-shared" dnl ----- check if we need the quotactl wrapper - AC_CHECK_HEADER(sys/quota.h,, - AC_MSG_RESULT([enabling 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 ----- 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) + + dnl --- added by Yoshinobu Ishizaki (2001.03.13) --- + dnl ----- check if version is newer than 2.2.x + changequote(<<,>>) + majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`" + minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`" + if [ $majorvers -ge 2 ]; then + if [ $minorvers -ge 2 ]; then + changequote([,]) + AC_MSG_RESULT([ * found Linux 2.2.x or higher]) + AC_DEFINE(SENDFILE_FLAVOR_LINUX) + else + AC_MSG_RESULT([ * found Linux 2.0.x ]) + fi + fi + 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) fi + need_dash_r=no +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) + dnl AC_DEFINE(NO_DLFCN_H) + AC_DEFINE(MACOSX_SERVER) + + dnl ----- Set -shared flag + LDSHAREDFLAGS="-shared" fi dnl ----- NetBSD specific ----- @@ -287,12 +662,28 @@ if test x"$this_os" = "xnetbsd"; then AC_DEFINE(BSD4_4) AC_DEFINE(DLSYM_PREPEND_UNDERSCORE) 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(NO_CRYPT_H, 1) 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" + + dnl ----- OpenBSD does not have crypt.h, uses unistd.h ----- + AC_DEFINE(UAM_DHX, 1) + AC_DEFINE(NO_CRYPT_H, 1) fi dnl ----- Solaris specific ----- @@ -302,14 +693,94 @@ if test x"$this_os" = "xsolaris"; then AC_DEFINE(_ISOC9X_SOURCE) AC_DEFINE(NO_STRUCT_TM_GMTOFF) AC_DEFINE(SOLARIS) + 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 + +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) + dnl AC_DEFINE(USE_MOUNT_H) + AC_DEFINE(USE_OLD_RQUOTA) + dnl AC_DEFINE(USE_UFS_QUOTA_H) + 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_PATH_SSL + +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 --------------------- check for building Kerberos v4 UAM module + +AC_ARG_ENABLE(krb4-uam, + [ --enable-krb4-uam enable build of Kerberos v4 UAM module], + if test "$enableval" = "yes"; then + AC_DEFINE(UAM_KRB4, 1) + compile_kerberos=yes + AC_MSG_RESULT([enabling build with Kerberos v4 UAM module]) + fi +) +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], + [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) -AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes) +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_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_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) dnl --------------------- generate files @@ -326,6 +797,7 @@ AC_OUTPUT([Makefile bin/psorder/Makefile config/Makefile contrib/Makefile + contrib/macusers/Makefile contrib/nu/Makefile contrib/printing/Makefile contrib/shell_utils/Makefile @@ -334,13 +806,14 @@ AC_OUTPUT([Makefile distrib/config/Makefile distrib/config/netatalk-config distrib/initscripts/Makefile - distrib/initscripts/rc.atalk.redhat distrib/m4/Makefile + doc/Makefile etc/Makefile etc/afpd/Makefile etc/afpd/nls/Makefile etc/atalkd/Makefile etc/uams/Makefile + etc/uams/uams_krb4/Makefile etc/papd/Makefile etc/psf/Makefile include/Makefile @@ -349,6 +822,7 @@ AC_OUTPUT([Makefile libatalk/adouble/Makefile libatalk/asp/Makefile libatalk/atp/Makefile + libatalk/cnid/Makefile libatalk/compat/Makefile libatalk/dsi/Makefile libatalk/nbp/Makefile @@ -358,9 +832,17 @@ AC_OUTPUT([Makefile man/man1/Makefile man/man3/Makefile man/man4/Makefile + man/man5/Makefile man/man8/Makefile sys/Makefile + sys/generic/Makefile + sys/generic/sys/Makefile sys/netatalk/Makefile + sys/netbsd/Makefile + sys/netbsd/netatalk/Makefile + sys/solaris/Makefile + sys/sunos/Makefile + sys/ultrix/Makefile ], [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*] )