X-Git-Url: https://arthur.barton.de/cgi-bin/gitweb.cgi?p=netatalk.git;a=blobdiff_plain;f=configure.in;h=825e763663652341c893962d9d1b1852626e1dd5;hp=0b957de8ecac98a1c89262a3bf666273189cd4b1;hb=b684c667e321c2b6bd5f949dc751ded276e11020;hpb=2c77de423b7ca79a1c68f737f7a0e14416457c85 diff --git a/configure.in b/configure.in index 0b957de8..825e7636 100644 --- a/configure.in +++ b/configure.in @@ -1,7 +1,7 @@ -dnl $Id: configure.in,v 1.184 2003-06-08 14:52:37 srittau Exp $ +dnl $Id: configure.in,v 1.233 2009-11-27 21:15:48 franklahm Exp $ dnl configure.in for netatalk -AC_INIT(bin/adv1tov2/adv1tov2.c) +AC_INIT(etc/afpd/main.c) NETATALK_VERSION=`cat $srcdir/VERSION` AC_SUBST(NETATALK_VERSION) @@ -13,59 +13,67 @@ AM_CONFIG_HEADER(config.h) dnl Checks for programs. AC_PROG_AWK AC_PROG_CC +AC_PROG_CC_C99 AC_PROG_INSTALL AC_PROG_LN_S AC_PROG_MAKE_SET AC_LIBTOOL_DLOPEN -AM_PROG_LIBTOOL +AC_PROG_LIBTOOL AC_PROG_PERL AC_PROG_GREP AC_PROG_PS -AC_PROG_DVIPS -AC_PROG_TROFF2PS + +AM_PROG_CC_C_O 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: -AC_CHECK_LIB(abs, main) +dnl AC_CHECK_LIB(abs, main) dnl Replace `main' with a function in -laudit: -AC_CHECK_LIB(audit, main) +dnl AC_CHECK_LIB(audit, main) dnl Replace `main' with a function in -lauth: -AC_CHECK_LIB(auth, main) +dnl AC_CHECK_LIB(auth, main) dnl Replace `main' with a function in -lcmd: -AC_CHECK_LIB(cmd, main) +dnl AC_CHECK_LIB(cmd, main) dnl Replace `main' with a function in -lcrypt: -AC_CHECK_LIB(crypt, main) +dnl AC_CHECK_LIB(crypt, main) dnl Replace `main' with a function in -ld: -AC_CHECK_LIB(d, main) +dnl AC_CHECK_LIB(d, main) dnl Replace `main' with a function in -ldl: -AC_CHECK_LIB(dl, main) +dnl AC_CHECK_LIB(dl, dlopen) dnl Replace `main' with a function in -lkauth: -AC_CHECK_LIB(kauth, main) +dnl AC_CHECK_LIB(kauth, main) dnl Replace `main' with a function in -lkrb: -AC_CHECK_LIB(krb, main) +dnl AC_CHECK_LIB(krb, main) dnl Replace `main' with a function in -llwp: -AC_CHECK_LIB(lwp, main) +dnl 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 AC_CHECK_LIB(n, main) + +dnl not the right stuff but should be enough for now +AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)]) +AC_CHECK_FUNC(connect,,[AC_CHECK_LIB(socket,connect)]) + dnl Replace `main' with a function in -lprot: -AC_CHECK_LIB(prot, main) +dnl AC_CHECK_LIB(prot, main) dnl Replace `main' with a function in -lrx: -AC_CHECK_LIB(rx, main) +dnl 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 AC_CHECK_LIB(rxkad, main) dnl Replace `main' with a function in -lsys: -AC_CHECK_LIB(sys, main) +dnl AC_CHECK_LIB(sys, main) dnl Replace `main' with a function in -lubik: -AC_CHECK_LIB(ubik, main) +dnl AC_CHECK_LIB(ubik, main) + # # Check presence of some functions @@ -81,11 +89,18 @@ dnl Checks for header files. AC_HEADER_DIRENT AC_HEADER_STDC AC_HEADER_SYS_WAIT -AC_CHECK_HEADERS(fcntl.h limits.h stdint.h strings.h sys/fcntl.h sys/file.h sys/ioctl.h sys/time.h sys/mnttab.h sys/statvfs.h sys/stat.h sys/vfs.h mntent.h syslog.h unistd.h termios.h sys/termios.h netdb.h sgtty.h ufs/quota.h mount.h sys/mount.h statfs.h sys/types.h dlfcn.h errno.h sys/errno.h) +AC_CHECK_HEADERS(fcntl.h limits.h stdint.h strings.h time.h sys/param.h sys/fcntl.h sys/file.h sys/ioctl.h sys/time.h sys/mnttab.h sys/statvfs.h sys/stat.h sys/vfs.h mntent.h syslog.h unistd.h termios.h sys/termios.h netdb.h sgtty.h ufs/quota.h mount.h statfs.h sys/types.h dlfcn.h errno.h sys/errno.h sys/uio.h) AC_CHECK_HEADER(sys/cdefs.h,, AC_MSG_RESULT([enabling generic cdefs.h from tree]) CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS" ) +AC_CHECK_HEADERS([sys/mount.h], , , +[#ifdef HAVE_SYS_PARAM_H +#include +#endif +]) + +AC_CHECK_HEADERS(langinfo.h locale.h sys/filio.h) dnl Checks for typedefs, structures, and compiler characteristics. AC_C_CONST @@ -99,6 +114,17 @@ AC_STRUCT_ST_RDEV AC_HEADER_TIME AC_STRUCT_TM +dnl -------------------------------------------------------------------------- +dnl check if dlsym needs to add an underscore, uses libtool macros +dnl -------------------------------------------------------------------------- +AC_LTDL_DLLIB +AC_CHECK_FUNCS(dlopen dlsym dlclose) +AC_LTDL_DLSYM_USCORE +if test x"$libltdl_cv_need_uscore" = xyes; then + AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro]) +fi + + dnl Checks for library functions. AC_TYPE_GETGROUPS AC_PROG_GCC_TRADITIONAL @@ -108,27 +134,71 @@ AC_FUNC_MMAP AC_TYPE_SIGNAL AC_FUNC_UTIME_NULL AC_FUNC_WAIT3 -AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul setpgrp strchr memcpy) -AC_FUNC_SETPGRP +AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul strchr memcpy) +AC_CHECK_FUNCS(backtrace_symbols setlocale nl_langinfo) +AC_CHECK_FUNCS(waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64) +AC_CHECK_FUNCS(strlcpy strlcat setlinebuf gethostid dirfd) +AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include ]) +AC_CACHE_SAVE dnl Checks for (v)snprintf NETATALK_SNPRINTF_CHECK +dnl -------------------------------------------------------------------------- +dnl 64bit platform check +dnl -------------------------------------------------------------------------- + +AC_MSG_CHECKING([whether to check for 64bit libraries]) +dnl Determine libdir name +case $host in +*-*-linux*) + # Test if the compiler is 64bit + echo 'int i;' > conftest.$ac_ext + atalk_cv_cc_64bit_output=no + if AC_TRY_EVAL(ac_compile); then + case `/usr/bin/file conftest.$ac_objext` in + *"ELF 64"*) + atalk_cv_cc_64bit_output=yes + ;; + esac + fi + rm -rf conftest* + ;; +esac + +dnl +dnl FIXME: Do we need something like this for Solaris 64bit? +dnl + +case $host_cpu:$atalk_cv_cc_64bit_output in +powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes) + atalk_libname="lib64" + AC_MSG_RESULT([yes]) + ;; +*:*) + atalk_libname="lib" + AC_MSG_RESULT([no]) + ;; +esac + dnl -------------------------------------------------------------------------- dnl specific configuration comes in here: dnl -------------------------------------------------------------------------- -AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled]) +netatalk_cv_admin_group=yes AC_MSG_CHECKING([for administrative group support]) -AC_ARG_WITH(admin-group, - [ --disable-admin-group disable admin group], [ - if test "$enableval" = "no"; then +AC_ARG_ENABLE(admin-group, + [ --disable-admin-group disable admin group],[ + if test x"$enableval" = x"no"; then AC_DEFINE(ADMIN_GRP, 0, [Define if the admin group should be enabled]) + netatalk_cv_admin_group=no AC_MSG_RESULT([no]) else + AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled]) AC_MSG_RESULT([yes]) - fi], [ + fi],[ + AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled]) AC_MSG_RESULT([yes]) ] ) @@ -137,91 +207,135 @@ NETATALK_AFS_CHECK 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]) - ] -) - +netatalk_cv_with_cracklib=no 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_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" + cracklib="/usr/$atalk_libname/cracklib_dict" fi AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib", [path to cracklib dictionary]) - AC_MSG_RESULT([setting cracklib dictionary to $cracklib]), + AC_MSG_RESULT([setting cracklib dictionary to $cracklib]) + netatalk_cv_with_cracklib=yes + ],[ AC_MSG_ERROR([cracklib not found!]) + ] ) fi + ] ) +AC_MSG_CHECKING([for cracklib support]) +AC_MSG_RESULT([$netatalk_cv_with_cracklib]) +netatalk_cv_ddp_enabled=yes AC_MSG_CHECKING([whether to enable DDP]) AC_ARG_ENABLE(ddp, - [ --disable-ddp disable DDP], [ - if test "x$enableval" = "xno"; then + [ --disable-ddp disable DDP],[ + if test "$enableval" = "no"; then AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled]) AC_MSG_RESULT([no]) + netatalk_cv_ddp_enabled=no else AC_MSG_RESULT([yes]) fi - ], [ + ],[ AC_MSG_RESULT([yes]) ] ) -AC_MSG_CHECKING([whether to enable debugging code]) +AC_MSG_CHECKING([whether to enable debug code]) +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([yes]) + else + AC_MSG_RESULT([no]) + fi + ],[ + AC_MSG_RESULT([no]) + ] +) + +AC_MSG_CHECKING([whether to enable verbose debug code]) AC_ARG_ENABLE(debug, - [ --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]) + [ --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 debugging information should be included]) + AC_DEFINE_UNQUOTED(DEBUG, $enableval, [Define if verbose debugging information should be included]) fi AC_MSG_RESULT([yes]) else AC_MSG_RESULT([no]) fi - ], [ + ],[ + AC_MSG_RESULT([no]) + ] +) + +AC_MSG_CHECKING([whether to enable debugging with debuggers]) +AC_ARG_ENABLE(debugging, + [ --enable-debugging disable SIGALRM timers and DSI tickles (eg for debugging with gdb/dbx/...)],[ + if test "$enableval" != "no"; then + if test "$enableval" = "yes"; then + AC_DEFINE(DEBUGGING, 1, [Define if you want to disable SIGALRM timers and DSI tickles]) + else + AC_DEFINE_UNQUOTED(DEBUGGING, $enableval, [Define if you want to disable SIGALRM timers and DSI tickles]) + fi + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ],[ AC_MSG_RESULT([no]) ] ) + afp3=no +afp3set=no +AC_MSG_CHECKING([whether AFP 3.x calls should be enabled]) AC_ARG_ENABLE(afp3, - [ --enable-afp3 enable AFP 3.x calls], - if test "$enableval" = "yes"; then + [ --disable-afp3 disable AFP 3.x calls], + [ + if test x"$enableval" != x"no"; then + afp3set=yes afp3=yes - AC_DEFINE(AFP3x, 1, [Define to enable AFP 3.x support]) - AC_MSG_RESULT([enabling AFP 3.x calls]) - fi + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + ],[ + AC_MSG_RESULT([yes]) + afp3=yes + ] ) -if test "$afp3" = "yes"; then - AM_ICONV - AC_SYS_LARGEFILE +if test x"$afp3" = x"yes"; then + AC_SYS_LARGEFILE([ + AC_DEFINE(AFP3x, 1, [Define to enable AFP 3.x support]) + ],[ + if test x"$afp3set" = x"yes"; then + AC_MSG_ERROR([AFP 3.x support requires Large File Support.]) + else + AC_MSG_WARN([AFP 3.x support requires Large File Support. AFP3.x support disabled]) + afp3=no + fi + ]) fi +AC_CHECK_ICONV dnl ----------- A NOTE ABOUT DROPKLUDGE dnl The trouble with this fix is that if you know what the file is called, it @@ -230,85 +344,42 @@ 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 ----------- +netatalk_cv_dropkludge=no AC_MSG_CHECKING([whether to enable experimental dropbox support]) AC_ARG_ENABLE(dropkludge, - [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ], [ - if test "x$enableval" = "xyes"; then + [ --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([yes]) + netatalk_cv_dropkludge=yes else AC_MSG_RESULT([no]) fi - ], [AC_MSG_RESULT([no])] + ],[ + AC_MSG_RESULT([no]) + ] ) +netatalk_cv_force_uidgid=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 "x$enableval" = "xyes"; then + [ --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]) AC_MSG_RESULT([yes]) + netatalk_cv_force_uidgid=yes else AC_MSG_RESULT([no]) fi - ], [AC_MSG_RESULT([no])] -) - -NETATALK_ARG_DID - -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 - ], [ - 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 + ],[ + AC_MSG_RESULT([no]) ] ) -if test "$did_scheme" = "cnid"; then - USE_CDB="yes" -else - USE_CDB="no" -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]) -) - -if test "$USE_CDB" = "yes"; then - AC_DEFINE(CNID_DB_CDB, 1, [Define if CNID should be used with Concurrent Data Store]) -fi +dnl Check for CNID database backends +bdb_required=no +AC_NETATALK_CNID([bdb_required=yes],[bdb_required=no]) dnl Check for quota support AC_CHECK_QUOTA @@ -317,55 +388,104 @@ dnl Check for optional server location protocol support (used by MacOS X) NETATALK_SRVLOC dnl Check for PAM libs +netatalk_cv_use_pam=no AC_PATH_PAM([ use_pam_so=yes compile_pam=yes + netatalk_cv_use_pam=yes AC_DEFINE(USE_PAM, 1, [Define to enable PAM support]) ]) -AC_MSG_CHECKING([whether shadow support should be enabled]) +netatalk_cv_use_shadowpw=no AC_ARG_WITH(shadow, - [ --with-shadow enable shadow password support], - [shadowpw="$withval"], - [shadowpw=no] + [ --with-shadow enable shadow password support [[auto]]], + [netatalk_cv_use_shadowpw="$withval"], + [netatalk_cv_use_shadowpw=auto] ) -if test "x$shadowpw" = "xyes"; then + +if test "x$netatalk_cv_use_shadowpw" != "xno"; then + AC_CHECK_HEADER([shadow.h]) + if test x"$ac_cv_header_shadow_h" = x"yes"; then + netatalk_cv_use_shadowpw=yes AC_DEFINE(SHADOWPW, 1, [Define if shadow passwords should be used]) + else + if test "x$shadowpw" = "xyes"; then + AC_MSG_ERROR([shadow support not available]) + else + netatalk_cv_use_shadowpw=no + fi + fi fi -AC_MSG_RESULT([$shadowpw]) +AC_MSG_CHECKING([whether shadow support should be enabled]) +if test "x$netatalk_cv_use_shadowpw" = "xyes"; then + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi + + + +netatalk_cv_use_shellcheck=yes +AC_MSG_CHECKING([whether checking for a valid shell should be enabled]) AC_ARG_ENABLE(shell-check, - [ --disable-shell-check disable checking for a valid shell], + [ --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]) + AC_MSG_RESULT([no]) + netatalk_cv_use_shellcheck=no + else + AC_MSG_RESULT([yes]) fi + ],[ + AC_MSG_RESULT([yes]) + ] ) -AC_ARG_WITH(tcp-wrappers, - [ --with-tcp-wrappers enable TCP wrappers support], - AC_CHECK_LIB(wrap, tcpd_warn, - AC_DEFINE(TCPWRAP, 1, [Define if TCP wrappers should be used]) - WRAP_LIBS="-lwrap" - AC_MSG_RESULT([enabling TCP wrappers support]) - ) +NETATALK_TCP_WRAPPERS + +AC_MSG_CHECKING([whether system (fcntl) locking should be disabled]) +AC_ARG_ENABLE(locking, + [ --disable-locking disable system locking],[ + if test "$enableval" = "no"; then + AC_DEFINE(DISABLE_LOCKING, 1, [Define if system (fcntl) locking should be disabled]) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) + fi + + ],[ + AC_MSG_RESULT([no]) + ] + ) -AC_SUBST(WRAP_LIBS) + AC_ARG_ENABLE(redhat, - [ --enable-redhat use redhat-style sysv configuration ], + [ --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 ], + [ --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(gentoo, + [ --enable-gentoo use gentoo-style sysv configuration ],[ + if test "$enableval" = "yes"; then + sysv_style=gentoo + fi + AC_MSG_RESULT([enabling gentoo-style sysv support]) + ] ) AC_ARG_ENABLE(cobalt, @@ -384,6 +504,15 @@ AC_ARG_ENABLE(netbsd, AC_MSG_RESULT([enabling NetBSD-style rc.d support]) ) +AC_ARG_ENABLE(debian, + [ --enable-debian use debian-style sysv configuration ],[ + if test "$enableval" = "yes"; then + sysv_style=debian + fi + AC_MSG_RESULT([enabling debian-style sysv support]) + ] +) + dnl ----- timelord compilation (disabled by default) AC_MSG_CHECKING([whether timelord should be compiled]) compile_timelord=no @@ -398,35 +527,54 @@ 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], + [ --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" + [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],[ + uams_path="$withval" + ],[ + uams_path="${PKGCONFDIR}/uams" + ] ) +NETATALK_AC_CUPS + +dnl check if we can use attribute unused (gcc only) from ethereal +AC_MSG_CHECKING(to see if we can add '__attribute__((unused))' to CFLAGS) +if test x$GCC != x ; then + CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS" + AC_MSG_RESULT(yes) +else + CFLAGS="-D_U_=\"\" $CFLAGS" + AC_MSG_RESULT(no) +fi + dnl -------------------------------------------------------------------------- dnl FHS stuff has to be done last because it overrides other defaults dnl -------------------------------------------------------------------------- +AC_MSG_CHECKING([whether to use Filesystem Hierarchy Standard (FHS) compatibility]) AC_ARG_ENABLE(fhs, - [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility], + [ --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" - NLSDIR="${PKGCONFDIR}/nls" use_pam_so=yes mandir="/usr/share/man" AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS]) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) fi - AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility]) + ],[ + AC_MSG_RESULT([no]) + ] ) dnl -------------------------------------------------------------------------- @@ -434,8 +582,8 @@ dnl post-FHS substitutions, etc dnl -------------------------------------------------------------------------- dnl ***** UAMS_PATH -AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}", - [path to UAMs [default=PKGCONF/uams]]) +dnl AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}", +dnl [path to UAMs [default=PKGCONF/uams]]) UAMS_PATH="${uams_path}" AC_SUBST(UAMS_PATH) @@ -477,6 +625,12 @@ case "$host_cpu" in powerpc|ppc) this_cpu=ppc ;; esac +dnl --------------------- GNU source +case "$this_os" in + linux) AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions]) + ;; +esac + dnl --------------------- operating system specific flags (port from sys/*) dnl ----- AIX specific ----- @@ -494,9 +648,8 @@ dnl ----- FreeBSD specific ----- if test x"$this_os" = "xfreebsd"; then AC_MSG_RESULT([ * FreeBSD specific configuration]) AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro]) + AC_DEFINE(FREEBSD, 1, [Define if OS is FreeBSD]) AC_DEFINE(SENDFILE_FLAVOR_BSD, 1, [Define if the sendfile() function uses BSD semantics]) - - AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist]) fi dnl ----- HP-UX 11 specific ----- @@ -517,32 +670,104 @@ fi dnl ----- Linux specific ----- if test x"$this_os" = "xlinux"; then AC_MSG_RESULT([ * Linux specific configuration]) + + dnl ----- kernel 2.6 changed struct at_addr to atalk_addr + AC_MSG_CHECKING([for struct atalk_addr]) +dnl AC_COMPILE_IFELSE([ + AC_TRY_COMPILE([ +#include +#include +#include + + struct atalk_addr foo; +], +[ ], [ + 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 ----- 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]) +# 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 + + # For linux > 2.5.56 + AC_CHECK_HEADERS(linux/dqblk_xfs.h,, + [AC_CHECK_HEADERS(linux/xqm.h linux/xfs_fs.h) + AC_CHECK_HEADERS(xfs/libxfs.h xfs/xqm.h xfs/xfs_fs.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]) - 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, 1, [Define if the sendfile() function uses Linux semantics]) + netatalk_cv_linux_sendfile=yes + AC_MSG_CHECKING([use sendfile syscall]) + AC_ARG_ENABLE(sendfile, + [ --disable-sendfile disable linux sendfile syscall],[ + if test x"$enableval" = x"no"; then + netatalk_cv_linux_sendfile=no + AC_MSG_RESULT([no]) else - AC_MSG_RESULT([ * found Linux 2.0.x ]) - fi + AC_MSG_RESULT([yes]) + + fi + ],[ + AC_MSG_RESULT([yes]) + ] + + ) + + if test x"$netatalk_cv_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],netatalk_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,netatalk_cv_HAVE_BROKEN_SENDFILE=cross)]) + + 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 + netatalk_cv_linux_sendfile=no + AC_MSG_RESULT(no); + fi fi dnl ----- Linux/alpha specific ----- @@ -551,15 +776,18 @@ if test x"$this_os" = "xlinux"; then 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(NO_DDP, 1, [Define if DDP should be disabled]) + AC_DEFINE(NO_QUOTA_SUPPORT, 1, [Define if Quota support should be disabled]) AC_DEFINE(MACOSX_SERVER, 1, [Define if compiling for MacOS X Server]) fi @@ -567,29 +795,19 @@ dnl ----- NetBSD specific ----- if test x"$this_os" = "xnetbsd"; then AC_MSG_RESULT([ * NetBSD specific configuration]) AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro]) - if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then - # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE. - # If this test is true, it's not an ELF box. - # This REALLY should be a configure test. - AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro]) - fi + AC_DEFINE(NETBSD, 1, [Define if OS is FreeBSD]) CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS" need_dash_r=yes 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 ----- @@ -601,9 +819,87 @@ if test x"$this_os" = "xsolaris"; then AC_DEFINE(SOLARIS, 1, [Solaris compatibility macro]) CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS" need_dash_r=yes + sysv_style=solaris - AC_MSG_RESULT([enabling Solaris kernel module build]) - solaris_module=yes + solaris_module=no + AC_MSG_CHECKING([if we can build Solaris kernel module]) + if test -x /usr/ccs/bin/ld; then + solaris_module=yes + fi + AC_MSG_RESULT([$solaris_module]) + + COMPILE_64BIT_KMODULE=no + KCFLAGS="" + KLDFLAGS="" + COMPILE_KERNEL_GCC=no + + if test "$solaris_module" = "yes"; then + dnl Solaris kernel module stuff + AC_MSG_CHECKING([if we have to build a 64bit kernel module]) + + # check for isainfo, if not found it has to be a 32 bit kernel (<=2.6) + if test -x /usr/bin/isainfo; then + # check for 64 bit platform + if isainfo -kv | grep '^64-bit'; then + COMPILE_64BIT_KMODULE=yes + fi + fi + + AC_MSG_RESULT([$COMPILE_64BIT_KMODULE]) + + if test "${GCC}" = yes; then + COMPILE_KERNEL_GCC=yes + if test "$COMPILE_64BIT_KMODULE" = yes; then + + AC_MSG_CHECKING([if we can build a 64bit kernel module]) + + case `$CC --version 2>/dev/null` in + [[12]].* | 3.0.*) + COMPILE_64BIT_KMODULE=no + COMPILE_KERNEL_GCC=no + solaris_module=no;; + *) + # use for 64 bit + KCFLAGS="-m64" + #KLDFLAGS="-melf64_sparc" + KLDFLAGS="-64";; + esac + + AC_MSG_RESULT([$COMPILE_64BIT_KMODULE]) + + else + KCFLAGS="" + KLDFLAGS="" + fi + KCFLAGS="$KCFLAGS -D_KERNEL -Wall -Wstrict-prototypes" + else + if test "$COMPILE_64BIT_KMODULE" = yes; then + # use Sun CC (for a 64-bit kernel, uncomment " -xarch=v9 -xregs=no%appl ") + KCFLAGS="-xarch=v9 -xregs=no%appl" + KLDFLAGS="-64" + else + KCFLAGS="" + KLDFLAGS="" + fi + KCFLAGS="-D_KERNEL $KCFLAGS -mno-app-regs -munaligned-doubles -fpcc-struct-return" + fi + + AC_CACHE_CHECK([for timeout_id_t],netatalk_cv_HAVE_TIMEOUT_ID_T,[ + AC_TRY_LINK([\ +#include +#include ], +[\ +timeout_id_t dummy; +], +netatalk_cv_HAVE_TIMEOUT_ID_T=yes,netatalk_cv_HAVE_TIMEOUT_ID_T=no,netatalk_cv_HAVE_TIMEOUT_ID_T=cross)]) + + AC_DEFINE(HAVE_TIMEOUT_ID_T, test x"$netatalk_cv_HAVE_TIMEOUT_ID" = x"yes", [define for timeout_id_t]) + fi + + AC_SUBST(COMPILE_KERNEL_GCC) + AC_SUBST(COMPILE_64BIT_KMODULE) + AC_SUBST(KCFLAGS) + AC_SUBST(KLDFLAGS) fi dnl ----- Tru64 specific ----- @@ -615,38 +911,102 @@ if test x"$this_os" = "xtru64"; then 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_DEFINE(_OSF_SOURCE, 1, [Define if the *passwd UAMs should be used]) + AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Define for Berkeley DB 4]) 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 +dnl -- check for libgcrypt, if found enables DHX UAM +AM_PATH_LIBGCRYPT([1:1.2.3],[neta_cv_compile_dhx2=yes + neta_cv_have_libgcrypt=yes + AC_MSG_NOTICE([Enabling DHX2 UAM]) + AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if the DHX2 modules should be built with libgcrypt]) + AC_DEFINE(UAM_DHX2, 1, [Define if the DHX2 UAM modules should be compiled]) + ]) + +dnl -- look for openssl, if found enables DHX UAM and Randnum UAM AC_PATH_SSL +dnl Check for Berkeley DB library +if test "x$bdb_required" = "xyes"; then + AC_PATH_BDB(, [ + AC_MSG_RESULT([]) + AC_MSG_RESULT([Make sure you have the required Berkeley DB libraries AND headers installed.]) + AC_MSG_RESULT([You can download the latest version from http://www.sleepycat.com.]) + AC_MSG_RESULT([If you have installed BDB in a non standard location use the]) + AC_MSG_RESULT([--with-bdb=/path/to/bdb configure option and make sure]) + AC_MSG_RESULT([your linker is configured to check for libraries there.]) + AC_MSG_ERROR([Berkeley DB library required but not found!]) + ]) +fi + +dnl -- check for crypt +AC_CRYPT + dnl --------------------- check for building PGP UAM module +AC_MSG_CHECKING([whether the PGP UAM should be build]) AC_ARG_ENABLE(pgp-uam, - [ --enable-pgp-uam enable build of PGP UAM module], + [ --enable-pgp-uam enable build of PGP UAM module],[ if test "$enableval" = "yes"; then - if test "$compile_ssl" = "yes"; then + if test "x$neta_cv_have_openssl" = "xyes"; 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]) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) fi fi + ],[ + AC_MSG_RESULT([no]) + ] ) dnl --------------------- check for building Kerberos v4 UAM module +AC_MSG_CHECKING([whether the Kerberos IV UAM should be build]) 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, [Define if the Kerberos 4 UAM module should be compiled]) compile_kerberos=yes - AC_MSG_RESULT([enabling build with Kerberos v4 UAM module]) + AC_MSG_RESULT([yes]) + else + AC_MSG_RESULT([no]) fi + ],[ + AC_MSG_RESULT([no]) + ] ) + +dnl --------------------- check for building Kerberos V UAM module + +netatalk_cv_build_krb5_uam=no +AC_ARG_ENABLE(krbV-uam, + [ --enable-krbV-uam enable build of Kerberos V UAM module], + [ + if test x"$enableval" = x"yes"; then + NETATALK_GSSAPI_CHECK([ + netatalk_cv_build_krb5_uam=yes + ],[ + AC_MSG_ERROR([need GSSAPI to build Kerberos V UAM]) + ]) + fi + ] + +) + +AC_MSG_CHECKING([whether Kerberos V UAM should be build]) +if test x"$netatalk_cv_build_krb5_uam" = x"yes"; then + AC_MSG_RESULT([yes]) +else + AC_MSG_RESULT([no]) +fi +AM_CONDITIONAL(USE_GSSAPI, test x"$netatalk_cv_build_krb5_uam" = x"yes") + dnl --------------------- overwrite the config files . . . or not. AC_MSG_CHECKING([whether configuration files should be overwritten]) @@ -657,6 +1017,144 @@ AC_ARG_ENABLE(overwrite, ) AC_MSG_RESULT([$OVERWRITE_CONFIG]) +dnl --------------------- check for ACL support +neta_cv_nfsv4acl="no" +AC_MSG_CHECKING([if NFSv4 ACL Support should be enabled]) +AC_ARG_ENABLE(nfsv4acls, + [ --enable-nfsv4acls enable NFSv4 ACL Support],[ + if test x"$enableval" = x"yes"; then + AC_MSG_RESULT([yes]) + neta_cv_nfsv4acl="yes" + else + AC_MSG_RESULT([no]) + fi],[ + AC_MSG_RESULT([no]) + ] +) +if test x$neta_cv_nfsv4acl = xyes; then + AC_CHECK_HEADER([ldap.h],,[ + AC_MSG_ERROR([ACL Support need the LDAP client headers not found.]) + neta_cv_nfsv4acl=no + ] + ) + AC_CHECK_LIB(ldap,ldap_init,neta_cv_nfsv4acl=yes,neta_cv_nfsv4acl=no) +fi +if test x$neta_cv_nfsv4acl = xyes; then + AC_CHECK_HEADER([sys/acl.h],[ + AC_DEFINE([HAVE_NFSv4_ACLS], 1, [Enable ACL code]) + AC_MSG_NOTICE([Enabling ACL support]) + ], + neta_cv_nfsv4acl=no + ) +fi +if test x$neta_cv_nfsv4acl = xyes; then + LIBATALK_ACLS="acl/libacl.la" +else + LIBATALK_ACLS="" +fi +AC_SUBST(LIBATALK_ACLS) + +dnl --------------------- check for Extended Attributes support +neta_cv_eas="files" +neta_cv_eas_sys_found=no +neta_cv_eas_sys_not_found=no + +AC_CHECK_HEADERS(sys/attributes.h attr/xattr.h sys/xattr.h sys/extattr.h sys/uio.h sys/ea.h) + +case "$this_os" in + + *osf*) + AC_SEARCH_LIBS(getproplist, [proplist]) + AC_CHECK_FUNCS([getproplist fgetproplist setproplist fsetproplist], + [neta_cv_eas_sys_found=yes], + [neta_cv_eas_sys_not_found=yes]) + AC_CHECK_FUNCS([delproplist fdelproplist add_proplist_entry get_proplist_entry],, + [neta_cv_eas_sys_not_found=yes]) + AC_CHECK_FUNCS([sizeof_proplist_entry],, + [neta_cv_eas_sys_not_found=yes]) + ;; + + *solaris*) + AC_CHECK_FUNCS([attropen], + [neta_cv_eas_sys_found=yes], + [neta_cv_eas_sys_not_found=yes]) + ;; + + *) + AC_SEARCH_LIBS(getxattr, [attr]) + + if test "x$neta_cv_eas_sys_found" != "xyes" ; then + AC_CHECK_FUNCS([getxattr lgetxattr fgetxattr listxattr llistxattr], + [neta_cv_eas_sys_found=yes], + [neta_cv_eas_sys_not_found=yes]) + AC_CHECK_FUNCS([flistxattr removexattr lremovexattr fremovexattr],, + [neta_cv_eas_sys_not_found=yes]) + AC_CHECK_FUNCS([setxattr lsetxattr fsetxattr],, + [neta_cv_eas_sys_not_found=yes]) + fi + + if test "x$neta_cv_eas_sys_found" != "xyes" ; then + AC_CHECK_FUNCS([getea fgetea lgetea listea flistea llistea], + [neta_cv_eas_sys_found=yes], + [neta_cv_eas_sys_not_found=yes]) + AC_CHECK_FUNCS([removeea fremoveea lremoveea setea fsetea lsetea],, + [neta_cv_eas_sys_not_found=yes]) + fi + + if test "x$neta_cv_eas_sys_found" != "xyes" ; then + AC_CHECK_FUNCS([attr_get attr_list attr_set attr_remove],, + [neta_cv_eas_sys_not_found=yes]) + AC_CHECK_FUNCS([attr_getf attr_listf attr_setf attr_removef],, + [neta_cv_eas_sys_not_found=yes]) + fi + ;; +esac + +# Do xattr functions take additional options like on Darwin? +if test x"$ac_cv_func_getxattr" = x"yes" ; then + AC_CACHE_CHECK([whether xattr interface takes additional options], smb_attr_cv_xattr_add_opt, [ + old_LIBS=$LIBS + LIBS="$LIBS $ACL_LIBS" + AC_TRY_COMPILE([ + #include + #if HAVE_ATTR_XATTR_H + #include + #elif HAVE_SYS_XATTR_H + #include + #endif + ],[ + getxattr(0, 0, 0, 0, 0, 0); + ], + [smb_attr_cv_xattr_add_opt=yes], + [smb_attr_cv_xattr_add_opt=no;LIBS=$old_LIBS]) + ]) + if test x"$smb_attr_cv_xattr_add_opt" = x"yes"; then + AC_DEFINE(XATTR_ADD_OPT, 1, [xattr functions have additional options]) + fi +fi + +# Check if we have extattr +case "$this_os" in + *freebsd4* | *dragonfly* ) + AC_DEFINE(BROKEN_EXTATTR, 1, [Does extattr API work]) + ;; + *) + AC_CHECK_FUNCS(extattr_delete_fd extattr_delete_file extattr_delete_link) + AC_CHECK_FUNCS(extattr_get_fd extattr_get_file extattr_get_link) + AC_CHECK_FUNCS(extattr_list_fd extattr_list_file extattr_list_link) + AC_CHECK_FUNCS(extattr_set_fd extattr_set_file extattr_set_link) + ;; +esac + +if test "x$neta_cv_eas_sys_found" = "xyes" ; then + if test "x$neta_cv_eas_sys_not_found" != "xyes" ; then + neta_cv_eas="$neta_cv_eas | native" + fi +fi + +dnl --------------------- Netatalk Webmin +NETATALK_WEBMIN + dnl --------------------- last minute substitutions AC_SUBST(LIBS) @@ -666,18 +1164,29 @@ 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(HAVE_LIBGCRYPT, test x$neta_cv_have_libgcrypt = xyes) +AM_CONDITIONAL(HAVE_OPENSSL, test x$neta_cv_have_openssl = xyes) +AM_CONDITIONAL(USE_NFSv4_ACLS, test x$neta_cv_nfsv4acl = xyes) +AM_CONDITIONAL(USE_DHX, test x$neta_cv_compile_dhx = xyes) +AM_CONDITIONAL(USE_DHX2, test x$neta_cv_compile_dhx2 = xyes) +AM_CONDITIONAL(USE_RANDNUM, test x$neta_cv_have_openssl = 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(USE_PAM, test x$netatalk_cv_install_pam = xyes) AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes) AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes) +AM_CONDITIONAL(DEFAULT_HOOK, test x$neta_cv_have_libgcrypt != xyes && test x$neta_cv_have_openssl != 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) +AM_CONDITIONAL(USE_SOLARIS, test x$sysv_style = xsolaris) +AM_CONDITIONAL(USE_GENTOO, test x$sysv_style = xgentoo) +AM_CONDITIONAL(USE_DEBIAN, test x$sysv_style = xdebian) +AM_CONDITIONAL(USE_UNDEF, test x$sysv_style = x) +AM_CONDITIONAL(USE_BDB, test x$bdb_required = xyes) dnl --------------------- generate files @@ -688,13 +1197,16 @@ AC_OUTPUT([Makefile bin/afile/Makefile bin/afppasswd/Makefile bin/cnid/Makefile - bin/cnid/cnid_maint + bin/cnid/cnid2_create bin/getzones/Makefile bin/megatron/Makefile + bin/misc/Makefile bin/nbp/Makefile bin/pap/Makefile bin/psorder/Makefile + bin/uniconv/Makefile config/Makefile + config/pam/Makefile contrib/Makefile contrib/macusers/Makefile contrib/macusers/macusers @@ -706,9 +1218,7 @@ AC_OUTPUT([Makefile 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/shell_utils/asip-status.pl contrib/timelord/Makefile contrib/a2boot/Makefile distrib/Makefile @@ -719,25 +1229,35 @@ AC_OUTPUT([Makefile doc/Makefile etc/Makefile etc/afpd/Makefile - etc/afpd/nls/Makefile etc/atalkd/Makefile + etc/cnid_dbd/Makefile etc/uams/Makefile etc/uams/uams_krb4/Makefile etc/papd/Makefile etc/psf/Makefile - etc/psf/etc2ps.sh include/Makefile include/atalk/Makefile libatalk/Makefile + libatalk/acl/Makefile libatalk/adouble/Makefile libatalk/asp/Makefile libatalk/atp/Makefile libatalk/cnid/Makefile + libatalk/cnid/cdb/Makefile + libatalk/cnid/last/Makefile + libatalk/cnid/mtab/Makefile + libatalk/cnid/dbd/Makefile + libatalk/cnid/tdb/Makefile libatalk/compat/Makefile libatalk/dsi/Makefile libatalk/nbp/Makefile libatalk/netddp/Makefile libatalk/util/Makefile + libatalk/util/test/Makefile + libatalk/tdb/Makefile + libatalk/unicode/Makefile + libatalk/unicode/charsets/Makefile + libatalk/vfs/Makefile macros/Makefile man/Makefile man/man1/Makefile @@ -752,10 +1272,11 @@ AC_OUTPUT([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_*] ) +AC_NETATALK_LIBS_SUMMARY +AC_NETATALK_CONFIG_SUMMARY