dnl $Id: configure.in,v 1.179.2.3.2.7 2003-10-17 00:01:10 didg Exp $ dnl configure.in for netatalk AC_INIT(bin/adv1tov2/adv1tov2.c) NETATALK_VERSION=`cat $srcdir/VERSION` AC_SUBST(NETATALK_VERSION) AC_CANONICAL_SYSTEM AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION}) AM_CONFIG_HEADER(config.h) dnl Checks for programs. AC_PROG_AWK AC_PROG_CC AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_LIBTOOL_DLOPEN AM_PROG_LIBTOOL AC_PROG_PERL AC_PROG_GREP AC_PROG_PS dnl ********************************************************************* dnl FIXME! FIXME! These should be selectable properly, and should produce dnl the proper flags and defines... dnl ********************************************************************* ############################################ # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code #AC_SEARCH_LIBS(dlopen, [dl]) # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then dnl Checks for libraries. dnl Replace `main' with a function in -labs: dnl AC_CHECK_LIB(abs, main) dnl Replace `main' with a function in -laudit: dnl AC_CHECK_LIB(audit, main) dnl Replace `main' with a function in -lauth: dnl AC_CHECK_LIB(auth, main) dnl Replace `main' with a function in -lcmd: dnl AC_CHECK_LIB(cmd, main) dnl Replace `main' with a function in -lcrypt: dnl AC_CHECK_LIB(crypt, main) dnl Replace `main' with a function in -ld: dnl AC_CHECK_LIB(d, main) dnl Replace `main' with a function in -ldl: AC_CHECK_LIB(dl, dlopen) dnl Replace `main' with a function in -lkauth: dnl AC_CHECK_LIB(kauth, main) dnl Replace `main' with a function in -lkrb: dnl AC_CHECK_LIB(krb, main) dnl Replace `main' with a function in -llwp: dnl AC_CHECK_LIB(lwp, main) dnl Replace `main' with a function in -ln: dnl AC_CHECK_LIB(n, main) dnl Replace `main' with a function in -lnsl: AC_CHECK_LIB(nsl, socket) dnl Replace `main' with a function in -lprot: dnl AC_CHECK_LIB(prot, main) dnl Replace `main' with a function in -lrx: dnl AC_CHECK_LIB(rx, main) dnl Replace `main' with a function in -lrxkad: dnl AC_CHECK_LIB(rxkad, main) dnl Replace `main' with a function in -lsocket: AC_CHECK_LIB(socket, socket) dnl Replace `main' with a function in -lsys: dnl AC_CHECK_LIB(sys, main) dnl Replace `main' with a function in -lubik: dnl AC_CHECK_LIB(ubik, main) AC_MSG_RESULT([ LIBS = $LIBS]) # # 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) # AC_CHECK_FUNCS(pread pwrite) 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 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) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST AC_TYPE_UID_T AC_C_INLINE AC_TYPE_MODE_T AC_TYPE_OFF_T AC_TYPE_PID_T AC_TYPE_SIZE_T AC_STRUCT_ST_RDEV AC_HEADER_TIME AC_STRUCT_TM dnl Checks for library functions. AC_TYPE_GETGROUPS AC_PROG_GCC_TRADITIONAL AC_FUNC_MEMCMP AC_HEADER_MAJOR 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(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) dnl Checks for (v)snprintf NETATALK_SNPRINTF_CHECK AC_MSG_RESULT([ LIBS = $LIBS]) dnl -------------------------------------------------------------------------- dnl specific configuration comes in here: dnl -------------------------------------------------------------------------- AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled]) AC_ARG_WITH(admin-group, [ --disable-admin-group disable admin group], if test "$enableval" = "no"; then AC_DEFINE(ADMIN_GRP, 0, [Define if the admin group should be enabled]) AC_MSG_RESULT([disabling administrative group support]) fi ) NETATALK_AFS_CHECK NETATALK_CONFIG_DIRS 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 "$withval" = "no"; then AC_DEFINE(DISABLE_LOGGER, 1, [Define if the logger should not be used]) AC_MSG_RESULT([logger disabled]) elif test "$withval" != "yes"; then AC_DEFINE_UNQUOTED(LOGFILEPATH, "$withval", [Path to the log file]) AC_MSG_RESULT([logfile set to $withval]) else AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log", [Path to the log file]) AC_MSG_RESULT([logfile set to default]) fi, AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log", [Path to the log file]) AC_MSG_RESULT([logfile set to default]) ) AC_ARG_WITH(cracklib, [ --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, 1, [Define if cracklib should be used]) 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, [ --disable-ddp disable DDP], if test "$enableval" = "no"; then AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled]) AC_MSG_RESULT([disabling DDP]) fi ) AC_ARG_ENABLE(debug1, [ --enable-debug1 enable debug code], if test "$enableval" != "no"; then if test "$enableval" = "yes"; then AC_DEFINE(DEBUG1, 1, [Define if debugging information should be included]) else AC_DEFINE_UNQUOTED(DEBUG1, $enableval, [Define if debugging information should be included]) fi AC_MSG_RESULT([enabling debugging code]) fi ) AC_ARG_ENABLE(debug, [ --enable-debug enable verbose debug code], if test "$enableval" != "no"; then if test "$enableval" = "yes"; then AC_DEFINE(DEBUG, 1, [Define if verbose debugging information should be included]) else AC_DEFINE_UNQUOTED(DEBUG, $enableval, [Define if verbose debugging information should be included]) fi AC_MSG_RESULT([enabling verbose debugging code]) fi ) 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 NETATALK_GSSAPI_CHECK 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, [Define if you want to use the experimental dropkludge support]) 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, [Define if you want forcing of uid/gid per volume]) AC_MSG_RESULT([enabling forcing of uid/gid per volume]) fi ) dnl Don't use BDB unless it's needed bdb_required=no compiled_backends="" dnl Determine whether or not to use DB3 Concurrent Data Store AC_MSG_CHECKING([whether or not to use DB3 Concurrent Data Store]) AC_ARG_WITH(cnid-cdb-backend, [ --with-cnid-cdb-backend enable CNID with Concurrent DB3 Data Store], if test x"$withval" = x"no"; then use_cdb_backend=no else use_cdb_backend=yes compiled_backends="$compiled_backends cdb" fi ,use_cdb_backend=yes ) if test $use_cdb_backend = yes; then AC_MSG_RESULT([yes]) AC_DEFINE(CNID_BACKEND_CDB, 1, [Define if CNID Concurrent DB3 backend should be compiled.]) DEFAULT_CNID_SCHEME=cdb bdb_required=yes else AC_MSG_RESULT([no]) fi dnl Determine whether or not to use Database Daemon CNID backend AC_MSG_CHECKING([whether or not to use Database Daemon CNID backend]) AC_ARG_WITH(cnid-dbd-backend, [ --with-cnid-dbd-backend enable CNID with Database Daemon Data Store], if test x"$withval" = x"no"; then AC_MSG_RESULT([no]) use_dbd_backend=no else use_dbd_backend=yes AC_MSG_RESULT([yes]) fi ,use_dbd_backend=no AC_MSG_RESULT([no]) ) dnl Determine whether or not to use with transaction support in Database Daemon AC_MSG_CHECKING([whether or not to use Database Daemon with transaction support]) AC_ARG_WITH(cnid-dbd-txn, [ --with-cnid-dbd-txn enable transaction support for dbd backend], if test x"$withval" = x"no"; then AC_MSG_RESULT([no]) use_dbd_txn=no else use_dbd_txn=yes AC_MSG_RESULT([yes]) fi ,use_dbd_txn=no AC_MSG_RESULT([no]) ) if test $use_dbd_txn = yes; then use_dbd_backend=yes AC_DEFINE(CNID_BACKEND_DBD_TXN, 1, [Define if CNID Database Daemon backend has transaction support]) else if test x"$use_dbd_backend" = x; then use_dbd_backend=no fi fi if test $use_dbd_backend = yes; then compiled_backends="$compiled_backends dbd" AC_DEFINE(CNID_BACKEND_DBD, 1, [Define if CNID Database Daemon backend should be compiled.]) if test x"$DEFAULT_CNID_SCHEME" = x; then DEFAULT_CNID_SCHEME=dbd fi bdb_required=yes fi AM_CONDITIONAL(BUILD_DBD_DAEMON, test x"$use_dbd_backend" = x"yes") dnl Determine whether or not to use DB3 transactional data store AC_MSG_CHECKING([whether or not to use DB3 transactional DB store]) AC_ARG_WITH(cnid-db3-backend, [ --with-cnid-db3-backend enable CNID with transactional DB3 Data Store], if test x"$withval" = x"no"; then use_db3_backend=no else use_db3_backend=yes $compiled_backends="$compile_backends db3" fi ,use_db3_backend=no ) if test $use_db3_backend = yes; then AC_MSG_RESULT([yes]) AC_DEFINE(CNID_BACKEND_DB3, 1, [Define if CNID transactional DB3 backend should be compiled.]) if test x"$DEFAULT_CNID_SCHEME" = x; then DEFAULT_CNID_SCHEME=db3 fi bdb_required=yes else AC_MSG_RESULT([no]) fi dnl Determine whether or not to use LAST DID scheme AC_MSG_CHECKING([whether or not to use LAST DID scheme]) AC_ARG_WITH(cnid-last-backend, [ --with-cnid-last-backend enable LAST CNID scheme], if test x"$withval" = x"no"; then use_last_backend=no else use_last_backend=yes compiled_backends="$compiled_backends last" fi ,use_last_backend=no ) if test $use_last_backend = yes; then AC_MSG_RESULT([yes]) AC_DEFINE(CNID_BACKEND_LAST, 1, [Define if CNID LAST scheme backend should be compiled.]) if test x"$DEFAULT_CNID_SCHEME" = x; then DEFAULT_CNID_SCHEME=last fi else AC_MSG_RESULT([no]) fi dnl Determine whether or not to use HASH DID scheme AC_MSG_CHECKING([whether or not to use HASH DID scheme]) AC_ARG_WITH(cnid-hash-backend, [ --with-cnid-hash-backend enable HASH CNID scheme], if test x"$withval" = x"no"; then use_hash_backend=no else use_hash_backend=yes compiled_backends="$compiled_backends hash" fi ,use_hash_backend=no ) if test $use_hash_backend = yes; then AC_MSG_RESULT([yes]) AC_DEFINE(CNID_BACKEND_HASH, 1, [Define if CNID HASH scheme backend should be compiled.]) if test x"$DEFAULT_CNID_SCHEME" = x; then DEFAULT_CNID_SCHEME=hash fi else AC_MSG_RESULT([no]) fi dnl Determine whether or not to use TDB DID scheme AC_MSG_CHECKING([whether or not to use TDB DID scheme]) AC_ARG_WITH(cnid-tdb-backend, [ --with-cnid-tdb-backend enable DID CNID scheme], if test x"$withval" = x"no"; then use_tdb_backend=no else use_tdb_backend=yes compiled_backends="$compiled_backends tdb" fi ,use_tdb_backend=no ) if test $use_tdb_backend = yes; then AC_MSG_RESULT([yes]) AC_DEFINE(CNID_BACKEND_TDB, 1, [Define if CNID TDB scheme backend should be compiled.]) if test x"$DEFAULT_TDB_SCHEME" = x; then DEFAULT_CNID_SCHEME=tdb fi else AC_MSG_RESULT([no]) fi dnl Determine whether or not to use MTAB DID scheme AC_MSG_CHECKING([whether or not to use MTAB DID scheme]) AC_ARG_WITH(cnid-mtab-backend, [ --with-cnid-mtab-backend enable MTAB CNID scheme], if test x"$withval" = x"no"; then use_mtab_backend=no else use_mtab_backend=yes compiled_backends="$compiled_backends mtab" fi ,use_mtab_backend=no ) if test $use_mtab_backend = yes; then AC_MSG_RESULT([yes]) AC_DEFINE(CNID_BACKEND_MTAB, 1, [Define if CNID MTAB scheme backend should be compiled.]) if test x"$DEFAULT_CNID_SCHEME" = x; then DEFAULT_CNID_SCHEME=mtab fi else AC_MSG_RESULT([no]) fi dnl Set default DID scheme AC_MSG_CHECKING([default DID scheme]) AC_ARG_WITH(cnid-default-backend, [ --with-cnid-default-backend=val set default DID scheme], if test x"$withval" = x; then AC_MSG_RESULT([ignored]) else DEFAULT_CNID_SCHEME=$withval AC_MSG_RESULT($DEFAULT_CNID_SCHEME) fi ,AC_MSG_RESULT($DEFAULT_CNID_SCHEME) ) if test x"$DEFAULT_CNID_SCHEME" = x; then AC_MSG_ERROR([No DID schemes compiled in ]) fi AC_MSG_CHECKING([whether default CNID scheme has been activated]) found_scheme=no for scheme in $compiled_backends ; do if test "$scheme" = $DEFAULT_CNID_SCHEME ; then found_scheme=yes fi done if test x"$found_scheme" = x"no"; then AC_MSG_RESULT([no]) AC_MSG_ERROR([Specified default CNID scheme $DEFAULT_CNID_SCHEME was not selected for compilation]) else AC_MSG_RESULT([yes]) fi AC_DEFINE_UNQUOTED(DEFAULT_CNID_SCHEME, "$DEFAULT_CNID_SCHEME", [Default CNID scheme to be used]) AC_SUBST(DEFAULT_CNID_SCHEME) AC_SUBST(compiled_backends) dnl Check for Berkeley DB library if test "x$bdb_required" = "xyes"; then AC_PATH_BDB(, [AC_MSG_ERROR([Berkeley DB library not found!])]) fi dnl Check for quota support AC_CHECK_QUOTA dnl Check for optional server location protocol support (used by MacOS X) NETATALK_SRVLOC AC_MSG_RESULT([ LIBS = $LIBS]) dnl 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, 1, [Define to enable PAM support]) ]) AC_MSG_CHECKING([whether shadow support should be enabled]) AC_ARG_WITH(shadow, [ --with-shadow enable shadow password support], [shadowpw="$withval"], [shadowpw=no] ) if test "x$shadowpw" = "xyes"; then 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, [Define if shell check should be disabled]) AC_MSG_RESULT([disabling valid shell check]) fi ) #AC_ARG_WITH(tcp-wrappers, # [ --with-tcp-wrappers enable TCP wrappers support],[ # AC_CHECK_HEADERS(tcpd.h) # AC_CHECK_LIB(wrap, tcpd_warn, # AC_DEFINE(TCPWRAP, 1, [Define if TCP wrappers should be used]) # 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 ], 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]) ) 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 ----- 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]) 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_a2boot]) AC_ARG_WITH(uams-path, [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]], uams_path="$withval", uams_path="${PKGCONFDIR}/uams" ) 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="${libdir}/netatalk" sysconfdir="/etc" PKGCONFDIR=${sysconfdir}/netatalk SERVERTEXT="${PKGCONFDIR}/msg" use_pam_so=yes 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]) ) 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 -------------------------------------------------------------------------- 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: 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 "$host_os" in *aix*) this_os=aix ;; *freebsd*) this_os=freebsd ;; *hpux11*) this_os=hpux11 ;; *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 ;; *solaris*) this_os=solaris ;; esac 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 ;; 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, 1, [Define if the gmtoff member of struct tm is not available]) 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, 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, 1, [BSD compatiblity macro]) AC_DEFINE(SENDFILE_FLAVOR_BSD, 1, [Define if the sendfile() function uses BSD semantics]) 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, 1, [Compatibility macro]) AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available]) fi dnl ----- IRIX specific ----- if test x"$this_os" = "xirix"; then AC_MSG_RESULT([ * IRIX specific configuration]) AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available]) fi dnl ----- Linux specific ----- if test x"$this_os" = "xlinux"; then AC_MSG_RESULT([ * Linux specific configuration]) 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, 1, [Define if the quotactl wrapper is needed]) # AC_MSG_RESULT([enabling quotactl wrapper]) # ) # For quotas on Linux XFS filesystems AC_CHECK_HEADERS(linux/xqm.h linux/xfs_fs.h) AC_CHECK_HEADERS(xfs/libxfs.h xfs/xqm.h xfs/xfs_fs.h) # For linux > 2.5.56 AC_CHECK_HEADERS(linux/dqblk_xfs.h) 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, 1, [Define if dbtob is broken]) linux_sendfile=no AC_ARG_ENABLE(sendfile, [ --enable-sendfile use sendfile syscall default (no) ], if test "$enableval" = "yes"; then linux_sendfile=yes fi AC_MSG_RESULT([enabling sendfile syscall]) ) if test x"$linux_sendfile" = "xyes"; then AC_CACHE_CHECK([for linux sendfile support],netatalk_cv_HAVE_SENDFILE,[ AC_TRY_LINK([#include ], [\ int tofd, fromfd; off_t offset; size_t total; ssize_t nwritten = sendfile(tofd, fromfd, &offset, total); ], netatalk_cv_HAVE_SENDFILE=yes,netatalk_cv_HAVE_SENDFILE=no)]) # Try and cope with broken Linux sendfile.... AC_CACHE_CHECK([for broken linux sendfile support],samba_cv_HAVE_BROKEN_LINUX_SENDFILE,[ AC_TRY_LINK([\ #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64) #undef _FILE_OFFSET_BITS #endif #include ], [\ int tofd, fromfd; off_t offset; size_t total; ssize_t nwritten = sendfile(tofd, fromfd, &offset, total); ], netatalk_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,netatalk_cv_HAVE_BROKEN_LINUX_SENDFILE=no)]) if test x"$netatalk_cv_HAVE_SENDFILE" = x"yes"; then AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available]) AC_DEFINE(SENDFILE_FLAVOR_LINUX,1,[Whether linux sendfile() API is available]) AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used]) elif test x"$netatalk_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then AC_DEFINE(SENDFILE_FLAVOR_LINUX,1,[Whether linux sendfile() API is available]) AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken]) AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used]) else AC_MSG_RESULT(no); 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, 1, [Define if memcpy is buggy]) 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, 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, 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, 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 ----- NetBSD does not have crypt.h, uses unistd.h ----- 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, 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]) 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__, 1, [Solaris compatibility macro]) AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro]) AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available]) AC_DEFINE(SOLARIS, 1, [Solaris compatibility macro]) CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS" need_dash_r=yes 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, 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, 1, [Define to use old rquota]) dnl AC_DEFINE(USE_UFS_QUOTA_H) AC_DEFINE(TRU64, 1, [Define on Tru64 platforms]) AC_CHECK_LIB(security,set_auth_parameters) CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS" need_dash_r=no sysv_style=tru64 fi dnl -- look for openssl AC_MSG_RESULT([ LIBS = $LIBS]) 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, [Define if the PGP UAM module should be compiled]) 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, [Define if the Kerberos 4 UAM module should be compiled]) 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 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(OVERWRITE_CONFIG) AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes) AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = 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) AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64) dnl --------------------- generate files AC_OUTPUT([Makefile bin/Makefile bin/adv1tov2/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 bin/pap/Makefile bin/psorder/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/netatalkshorternamelinks.pl contrib/timelord/Makefile contrib/a2boot/Makefile distrib/Makefile distrib/config/Makefile distrib/config/netatalk-config distrib/initscripts/Makefile distrib/m4/Makefile doc/Makefile etc/Makefile etc/afpd/Makefile etc/atalkd/Makefile etc/cnid_dbd/Makefile etc/uams/Makefile etc/uams/uams_krb4/Makefile etc/papd/Makefile etc/psf/Makefile include/Makefile include/atalk/Makefile libatalk/Makefile libatalk/adouble/Makefile libatalk/asp/Makefile libatalk/atp/Makefile libatalk/cnid/Makefile libatalk/cnid/db3/Makefile libatalk/cnid/cdb/Makefile libatalk/cnid/last/Makefile libatalk/cnid/mtab/Makefile libatalk/cnid/dbd/Makefile libatalk/cnid/hash/Makefile libatalk/cnid/tdb/Makefile libatalk/compat/Makefile libatalk/dsi/Makefile libatalk/nbp/Makefile libatalk/netddp/Makefile libatalk/util/Makefile libatalk/tdb/Makefile libatalk/unicode/Makefile libatalk/unicode/charsets/Makefile macros/Makefile man/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/solaris/Makefile.kernel sys/sunos/Makefile sys/ultrix/Makefile ], [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*] ) ################################################# # Display summary of libraries detected AC_MSG_RESULT([Using libraries:]) AC_MSG_RESULT([ LIBS = $LIBS]) AC_MSG_RESULT([ SSL_LIBS = $SSL_LIBS]) AC_MSG_RESULT([ GSSAPI_LIBS = $GSSAPI_LIBS]) AC_MSG_RESULT([ BDB_LIBS = $BDB_LIBS]) AC_MSG_RESULT([ AFPD_LIBS= $AFPD_LIBS]) AC_MSG_RESULT([ PAPD_LIBS= $PAPD_LIBS]) AC_MSG_RESULT([ CFLAGS = $CFLAGS])