1 dnl $Id: configure.in,v 1.179.2.3.2.36 2004-08-24 17:33:22 bfernhomberg Exp $
2 dnl configure.in for netatalk
4 AC_INIT(etc/afpd/main.c)
6 NETATALK_VERSION=`cat $srcdir/VERSION`
7 AC_SUBST(NETATALK_VERSION)
10 AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION})
11 AM_CONFIG_HEADER(config.h)
13 dnl Checks for programs.
25 dnl *********************************************************************
26 dnl FIXME! FIXME! These should be selectable properly, and should produce
27 dnl the proper flags and defines...
28 dnl *********************************************************************
30 ############################################
31 # we need dlopen/dlclose/dlsym/dlerror for PAM, the password database plugins and the plugin loading code
32 #AC_SEARCH_LIBS(dlopen, [dl])
33 # dlopen/dlclose/dlsym/dlerror will be checked again later and defines will be set then
35 dnl Checks for libraries.
36 dnl Replace `main' with a function in -labs:
37 dnl AC_CHECK_LIB(abs, main)
38 dnl Replace `main' with a function in -laudit:
39 dnl AC_CHECK_LIB(audit, main)
40 dnl Replace `main' with a function in -lauth:
41 dnl AC_CHECK_LIB(auth, main)
42 dnl Replace `main' with a function in -lcmd:
43 dnl AC_CHECK_LIB(cmd, main)
44 dnl Replace `main' with a function in -lcrypt:
45 dnl AC_CHECK_LIB(crypt, main)
46 dnl Replace `main' with a function in -ld:
47 dnl AC_CHECK_LIB(d, main)
48 dnl Replace `main' with a function in -ldl:
49 AC_CHECK_LIB(dl, dlopen)
50 dnl Replace `main' with a function in -lkauth:
51 dnl AC_CHECK_LIB(kauth, main)
52 dnl Replace `main' with a function in -lkrb:
53 dnl AC_CHECK_LIB(krb, main)
54 dnl Replace `main' with a function in -llwp:
55 dnl AC_CHECK_LIB(lwp, main)
56 dnl Replace `main' with a function in -ln:
57 dnl AC_CHECK_LIB(n, main)
58 dnl Replace `main' with a function in -lnsl:
59 AC_CHECK_LIB(nsl, main)
60 dnl Replace `main' with a function in -lprot:
61 dnl AC_CHECK_LIB(prot, main)
62 dnl Replace `main' with a function in -lrx:
63 dnl AC_CHECK_LIB(rx, main)
64 dnl Replace `main' with a function in -lrxkad:
65 dnl AC_CHECK_LIB(rxkad, main)
66 dnl Replace `main' with a function in -lsocket:
67 AC_CHECK_LIB(socket, socket)
68 dnl Replace `main' with a function in -lsys:
69 dnl AC_CHECK_LIB(sys, main)
70 dnl Replace `main' with a function in -lubik:
71 dnl AC_CHECK_LIB(ubik, main)
75 # Check presence of some functions
77 # Check for XPG4 access() function
78 # Be sure to test before adding AFS libs in LIBS path as AFS lib
79 # has such a function that works only on AFS filesystems.
80 AC_CHECK_FUNCS(access)
82 AC_CHECK_FUNCS(pread pwrite)
84 dnl Checks for header files.
88 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)
89 AC_CHECK_HEADER(sys/cdefs.h,,
90 AC_MSG_RESULT([enabling generic cdefs.h from tree])
91 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
93 AC_CHECK_HEADERS([sys/mount.h], , ,
94 [#ifdef HAVE_SYS_PARAM_H
95 #include <sys/param.h>
99 AC_CHECK_HEADERS(langinfo.h locale.h sys/filio.h)
101 dnl Checks for typedefs, structures, and compiler characteristics.
113 dnl --------------------------------------------------------------------------
114 dnl check if dlsym needs to add an underscore, uses libtool macros
115 dnl --------------------------------------------------------------------------
117 AC_CHECK_FUNCS(dlopen dlsym dlclose)
119 if test x"$libltdl_cv_need_uscore" = xyes; then
120 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
124 dnl Checks for library functions.
126 AC_PROG_GCC_TRADITIONAL
133 AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul setpgrp strchr memcpy)
135 AC_CHECK_FUNCS(backtrace_symbols)
136 AC_CHECK_FUNCS(setlocale nl_langinfo)
137 AC_CHECK_FUNCS(waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
138 AC_CHECK_FUNCS(strlcpy strlcat)
139 AC_CHECK_FUNCS(setlinebuf)
140 AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include <time.h>])
143 dnl Checks for (v)snprintf
144 NETATALK_SNPRINTF_CHECK
146 dnl --------------------------------------------------------------------------
147 dnl 64bit platform check
148 dnl --------------------------------------------------------------------------
150 AC_MSG_CHECKING([whether to check for 64bit libraries])
151 dnl Determine libdir name
154 # Test if the compiler is 64bit
155 echo 'int i;' > conftest.$ac_ext
156 atalk_cv_cc_64bit_output=no
157 if AC_TRY_EVAL(ac_compile); then
158 case `/usr/bin/file conftest.$ac_objext` in
160 atalk_cv_cc_64bit_output=yes
169 dnl FIXME: Do we need something like this for Solaris 64bit?
172 case $host_cpu:$atalk_cv_cc_64bit_output in
173 powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes)
174 atalk_libname="lib64"
183 dnl --------------------------------------------------------------------------
184 dnl specific configuration comes in here:
185 dnl --------------------------------------------------------------------------
187 AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled])
189 netatalk_cv_admin_group=yes
190 AC_MSG_CHECKING([for administrative group support])
191 AC_ARG_WITH(admin-group,
192 [ --disable-admin-group disable admin group],[
193 if test "$enableval" = "no"; then
194 AC_DEFINE(ADMIN_GRP, 0, [Define if the admin group should be enabled])
198 netatalk_cv_admin_group=no
208 AC_MSG_CHECKING([for logfile path])
210 [ --with-logfile=PATH path for file used by logger [/var/log/netatalk.log]
211 use --without-logfile to disable logger],[
212 if test x"$withval" = x"no"; then
213 AC_DEFINE(DISABLE_LOGGER, 1, [Define if the logger should not be used])
214 AC_MSG_RESULT([syslog])
215 elif test "$withval" != "yes"; then
216 AC_DEFINE_UNQUOTED(LOGFILEPATH, "$withval", [Path to the log file])
217 AC_MSG_RESULT([$withval])
219 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log", [Path to the log file])
220 AC_MSG_RESULT([/var/log/netatalk.log])
222 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log", [Path to the log file])
223 AC_MSG_RESULT([/var/log/netatalk.log])
228 netatalk_cv_with_cracklib=no
229 AC_ARG_WITH(cracklib,
230 [ --with-cracklib=DICT enable/set location of cracklib dictionary],[
231 if test "x$withval" != "xno" ; then
233 AC_CHECK_LIB(crack, main, [
234 AC_DEFINE(USE_CRACKLIB, 1, [Define if cracklib should be used])
236 if test "$cracklib" = "yes"; then
237 cracklib="/usr/$atalk_libname/cracklib_dict"
239 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
240 [path to cracklib dictionary])
241 AC_MSG_RESULT([setting cracklib dictionary to $cracklib])
242 netatalk_cv_with_cracklib=yes
244 AC_MSG_ERROR([cracklib not found!])
250 AC_MSG_CHECKING([for cracklib support])
251 AC_MSG_RESULT([$netatalk_cv_with_cracklib])
253 netatalk_cv_ddp_enabled=yes
254 AC_MSG_CHECKING([whether to enable DDP])
256 [ --disable-ddp disable DDP],[
257 if test "$enableval" = "no"; then
258 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
260 netatalk_cv_ddp_enabled=no
269 AC_MSG_CHECKING([whether to enable debug code])
270 AC_ARG_ENABLE(debug1,
271 [ --enable-debug1 enable debug code],[
272 if test "$enableval" != "no"; then
273 if test "$enableval" = "yes"; then
274 AC_DEFINE(DEBUG1, 1, [Define if debugging information should be included])
276 AC_DEFINE_UNQUOTED(DEBUG1, $enableval, [Define if debugging information should be included])
287 AC_MSG_CHECKING([whether to enable verbose debug code])
289 [ --enable-debug enable verbose debug code],[
290 if test "$enableval" != "no"; then
291 if test "$enableval" = "yes"; then
292 AC_DEFINE(DEBUG, 1, [Define if verbose debugging information should be included])
294 AC_DEFINE_UNQUOTED(DEBUG, $enableval, [Define if verbose debugging information should be included])
307 AC_MSG_CHECKING([whether AFP 3.x calls should be enabled])
309 [ --disable-afp3 disable AFP 3.x calls],
311 if test x"$enableval" != x"no"; then
324 if test x"$afp3" = x"yes"; then
326 AC_DEFINE(AFP3x, 1, [Define to enable AFP 3.x support])
328 if test x"$afp3set" = x"yes"; then
329 AC_MSG_ERROR([AFP 3.x support requires Large File Support.])
331 AC_MSG_WARN([AFP 3.x support requires Large File Support. AFP3.x support disabled])
339 dnl ----------- A NOTE ABOUT DROPKLUDGE
340 dnl The trouble with this fix is that if you know what the file is called, it
341 dnl can be read from the Unix side. That's okay for most academic institutions
342 dnl since the students don't have telnet access to the Mac servers. There is
343 dnl currently no one working on further development/fixes of DROPKLUDGE.
346 netatalk_cv_dropkludge=no
347 AC_MSG_CHECKING([whether to enable experimental dropbox support])
348 AC_ARG_ENABLE(dropkludge,
349 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],[
350 if test "$enableval" = "yes"; then
351 AC_DEFINE(DROPKLUDGE, 1, [Define if you want to use the experimental dropkludge support])
353 netatalk_cv_dropkludge=yes
362 netatalk_cv_force_uidgid=no
363 AC_MSG_CHECKING([whether to enable forcing of uid/gid per volume])
364 AC_ARG_ENABLE(force-uidgid,
365 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],[
366 if test "$enableval" = "yes"; then
367 AC_DEFINE(FORCE_UIDGID, 1, [Define if you want forcing of uid/gid per volume])
368 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
370 netatalk_cv_force_uidgid=yes
379 dnl Check for CNID database backends
381 AC_NETATALK_CNID([bdb_required=yes],[bdb_required=no])
383 dnl Check for Berkeley DB library
384 if test "x$bdb_required" = "xyes"; then
387 AC_MSG_RESULT([Make sure you have the required Berkeley DB libraries AND headers installed.])
388 AC_MSG_RESULT([You can download the latest version from http://www.sleepycat.com.])
389 AC_MSG_RESULT([If you have installed BDB in a non standard location use the])
390 AC_MSG_RESULT([--with-bdb=/path/to/bdb configure option and make sure])
391 AC_MSG_RESULT([your linker is configured to check for libraries there.])
392 AC_MSG_ERROR([Berkeley DB library required but not found!])
396 dnl Check for quota support
399 dnl Check for optional server location protocol support (used by MacOS X)
402 dnl Check for PAM libs
403 netatalk_cv_use_pam=no
407 netatalk_cv_use_pam=yes
408 AC_DEFINE(USE_PAM, 1, [Define to enable PAM support])
411 netatalk_cv_use_shadowpw=no
413 [ --with-shadow enable shadow password support [[auto]]],
414 [netatalk_cv_use_shadowpw="$withval"],
415 [netatalk_cv_use_shadowpw=auto]
418 if test "x$netatalk_cv_use_shadowpw" != "xno"; then
419 AC_CHECK_HEADER([shadow.h])
420 if test x"$ac_cv_header_shadow_h" = x"yes"; then
421 netatalk_cv_use_shadowpw=yes
422 AC_DEFINE(SHADOWPW, 1, [Define if shadow passwords should be used])
424 if test "x$shadowpw" = "xyes"; then
425 AC_MSG_ERROR([shadow support not available])
427 netatalk_cv_use_shadowpw=no
432 AC_MSG_CHECKING([whether shadow support should be enabled])
433 if test "x$netatalk_cv_use_shadowpw" = "xyes"; then
441 netatalk_cv_use_shellcheck=yes
442 AC_MSG_CHECKING([whether checking for a valid shell should be enabled])
443 AC_ARG_ENABLE(shell-check,
444 [ --disable-shell-check disable checking for a valid shell],[
445 if test "$enableval" = "no"; then
446 AC_DEFINE(DISABLE_SHELLCHECK, 1, [Define if shell check should be disabled])
448 netatalk_cv_use_shellcheck=no
457 NETATALK_TCP_WRAPPERS
459 AC_MSG_CHECKING([whether system (fcntl) locking should be disabled])
460 AC_ARG_ENABLE(locking,
461 [ --disable-locking disable system locking],[
462 if test "$enableval" = "no"; then
463 AC_DEFINE(DISABLE_LOCKING, 1, [Define if system (fcntl) locking should be disabled])
476 AC_ARG_ENABLE(redhat,
477 [ --enable-redhat use redhat-style sysv configuration ],[
478 if test "$enableval" = "yes"; then
481 AC_MSG_RESULT([enabling redhat-style sysv support])
486 [ --enable-suse use suse-style sysv configuration ],[
487 if test "$enableval" = "yes"; then
490 AC_MSG_RESULT([enabling suse-style sysv support])
494 AC_ARG_ENABLE(gentoo,
495 [ --enable-gentoo use gentoo-style sysv configuration ],[
496 if test "$enableval" = "yes"; then
499 AC_MSG_RESULT([enabling gentoo-style sysv support])
503 AC_ARG_ENABLE(cobalt,
504 [ --enable-cobalt use cobalt-style sysv configuration ],
505 if test "$enableval" = "yes"; then
508 AC_MSG_RESULT([enabling cobalt-style sysv support])
511 AC_ARG_ENABLE(netbsd,
512 [ --enable-netbsd use NetBSD-style rc.d configuration ],
513 if test "x$enableval" = "xyes"; then
516 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
519 dnl ----- timelord compilation (disabled by default)
520 AC_MSG_CHECKING([whether timelord should be compiled])
522 AC_ARG_ENABLE(timelord,
523 [ --enable-timelord enable compilation of timelord server],
524 [compile_timelord="$enableval"],
525 [compile_timelord="no"]
527 AC_MSG_RESULT([$compile_timelord])
529 dnl ----- a2boot compilation (disabled by default)
530 AC_MSG_CHECKING([whether a2boot should be compiled])
532 AC_ARG_ENABLE(a2boot,
533 [ --enable-a2boot enable compilation of Apple2 boot server],
534 [compile_a2boot="$enableval"],
535 [compile_a2boot="no"]
537 AC_MSG_RESULT([$compile_a2boot])
539 AC_ARG_WITH(uams-path,
540 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],[
543 uams_path="${PKGCONFDIR}/uams"
549 dnl --------------------------------------------------------------------------
550 dnl FHS stuff has to be done last because it overrides other defaults
551 dnl --------------------------------------------------------------------------
553 AC_MSG_CHECKING([whether to use Filesystem Hierarchy Standard (FHS) compatibility])
555 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],[
556 if test "$enableval" = "yes"; then
557 uams_path="${libdir}/netatalk"
559 PKGCONFDIR=${sysconfdir}/netatalk
560 SERVERTEXT="${PKGCONFDIR}/msg"
562 mandir="/usr/share/man"
563 AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
573 dnl --------------------------------------------------------------------------
574 dnl post-FHS substitutions, etc
575 dnl --------------------------------------------------------------------------
578 dnl AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
579 dnl [path to UAMs [default=PKGCONF/uams]])
580 UAMS_PATH="${uams_path}"
583 dnl --------------------------------------------------------------------------
584 dnl drop in includes for top level directory structures here...
585 dnl --------------------------------------------------------------------------
587 dnl Note: $(top_srcdir)/include should be added before all other includes
588 dnl so that includes from that directory a preferred to includes from
589 dnl /usr/include or similar places.
590 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
591 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
593 dnl --------------------------------------------------------------------------
594 dnl specific configuration comes in here:
595 dnl --------------------------------------------------------------------------
597 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
599 dnl --------------------- determine operating system from "target"
601 *aix*) this_os=aix ;;
602 *freebsd*) this_os=freebsd ;;
603 *hpux11*) this_os=hpux11 ;;
604 *irix*) this_os=irix ;;
605 *linux*) this_os=linux ;;
606 *osx*) this_os=macosx ;;
607 *darwin*) this_os=macosx ;;
608 *netbsd*) this_os=netbsd ;;
609 *openbsd*) this_os=openbsd ;;
610 *osf*) this_os=tru64 ;;
611 *solaris*) this_os=solaris ;;
615 i386|i486|i586|i686|k7) this_cpu=x86 ;;
616 alpha) this_cpu=alpha ;;
617 mips) this_cpu=mips ;;
618 powerpc|ppc) this_cpu=ppc ;;
621 dnl --------------------- operating system specific flags (port from sys/*)
623 dnl ----- AIX specific -----
624 if test x"$this_os" = "xaix"; then
625 AC_MSG_RESULT([ * AIX specific configuration])
626 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
628 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
629 dnl compilation environment. It's enough to get things defined
630 dnl right in endian.h provided that long long is supported, though.
631 AC_DEFINE(HAVE_32BIT_LONGS, 1, [Define if the data type long has 32 bit])
634 dnl ----- FreeBSD specific -----
635 if test x"$this_os" = "xfreebsd"; then
636 AC_MSG_RESULT([ * FreeBSD specific configuration])
637 AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
638 AC_DEFINE(FREEBSD, 1, [Define if OS is FreeBSD])
639 AC_DEFINE(SENDFILE_FLAVOR_BSD, 1, [Define if the sendfile() function uses BSD semantics])
642 dnl ----- HP-UX 11 specific -----
643 if test x"$this_os" = "xhpux11"; then
644 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
646 AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
647 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
650 dnl ----- IRIX specific -----
651 if test x"$this_os" = "xirix"; then
652 AC_MSG_RESULT([ * IRIX specific configuration])
654 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
657 dnl ----- Linux specific -----
658 if test x"$this_os" = "xlinux"; then
659 AC_MSG_RESULT([ * Linux specific configuration])
661 dnl ----- kernel 2.6 changed struct at_addr to atalk_addr
662 AC_MSG_CHECKING([for struct atalk_addr])
663 dnl AC_COMPILE_IFELSE([
665 #include <sys/socket.h>
666 #include <asm/types.h>
667 #include <linux/atalk.h>
671 struct atalk_addr foo;
676 ac_have_atalk_addr=yes
682 if test "x$ac_have_atalk_addr" = "xyes"; then
683 AC_DEFINE(HAVE_ATALK_ADDR, 1, [set if struct at_addr is called atalk_addr])
686 dnl ----- check if we need the quotactl wrapper
687 # AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
688 # AC_CHECK_FUNC(quotactl,,
689 # AC_DEFINE(NEED_QUOTACTL_WRAPPER, 1, [Define if the quotactl wrapper is needed])
690 # AC_MSG_RESULT([enabling quotactl wrapper])
693 # For quotas on Linux XFS filesystems
694 AC_CHECK_HEADERS(linux/xqm.h linux/xfs_fs.h)
695 AC_CHECK_HEADERS(xfs/libxfs.h xfs/xqm.h xfs/xfs_fs.h)
697 AC_CHECK_HEADERS(linux/dqblk_xfs.h)
700 dnl ----- as far as I can tell, dbtob always does the wrong thing
701 dnl ----- on every single version of linux I've ever played with.
702 dnl ----- see etc/afpd/quota.c
703 AC_DEFINE(HAVE_BROKEN_DBTOB, 1, [Define if dbtob is broken])
705 netatalk_cv_linux_sendfile=no
706 dnl disable this for now, code doesn't use sendfile anyway
707 dnl AC_ARG_ENABLE(sendfile,
708 dnl [ --enable-sendfile use sendfile syscall default (no) ],[
709 dnl if test "$enableval" = "yes"; then
710 dnl netatalk_cv_linux_sendfile=yes
712 dnl AC_MSG_RESULT([enabling sendfile syscall])
716 if test x"$netatalk_cv_linux_sendfile" = "xyes"; then
717 AC_CACHE_CHECK([for linux sendfile support],netatalk_cv_HAVE_SENDFILE,[
718 AC_TRY_LINK([#include <sys/sendfile.h>],
723 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
725 netatalk_cv_HAVE_SENDFILE=yes,netatalk_cv_HAVE_SENDFILE=no)])
727 # Try and cope with broken Linux sendfile....
728 AC_CACHE_CHECK([for broken linux sendfile support],netatalk_cv_HAVE_BROKEN_LINUX_SENDFILE,[
730 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
731 #undef _FILE_OFFSET_BITS
733 #include <sys/sendfile.h>],
738 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
740 netatalk_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,netatalk_cv_HAVE_BROKEN_LINUX_SENDFILE=no,netatalk_cv_HAVE_BROKEN_SENDFILE=cross)])
742 if test x"$netatalk_cv_HAVE_SENDFILE" = x"yes"; then
743 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
744 AC_DEFINE(SENDFILE_FLAVOR_LINUX,1,[Whether linux sendfile() API is available])
745 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
746 elif test x"$netatalk_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
747 AC_DEFINE(SENDFILE_FLAVOR_LINUX,1,[Whether linux sendfile() API is available])
748 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
749 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
751 netatalk_cv_linux_sendfile=no
756 dnl ----- Linux/alpha specific -----
757 if test x"$this_cpu" = "xalpha"; then
758 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
759 AC_DEFINE(HAVE_GCC_MEMCPY_BUG, 1, [Define if memcpy is buggy])
766 dnl ----- Mac OSX specific -----
767 if test x"$this_os" = "xmacosx"; then
768 AC_MSG_RESULT([ * Mac OSX specific configuration])
769 AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
770 AC_DEFINE(HAVE_2ARG_DBTOB, 1, [Define if dbtob takes two arguments])
771 dnl AC_DEFINE(NO_DLFCN_H)
772 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
773 AC_DEFINE(NO_QUOTA_SUPPORT, 1, [Define if Quota support should be disabled])
774 AC_DEFINE(MACOSX_SERVER, 1, [Define if compiling for MacOS X Server])
777 dnl ----- NetBSD specific -----
778 if test x"$this_os" = "xnetbsd"; then
779 AC_MSG_RESULT([ * NetBSD specific configuration])
780 AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
781 AC_DEFINE(NETBSD, 1, [Define if OS is FreeBSD])
782 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
785 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
786 AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
789 dnl ----- OpenBSD specific -----
790 if test x"$this_os" = "xopenbsd"; then
791 AC_MSG_RESULT([ * OpenBSD specific configuration])
792 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
793 AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
796 dnl ----- Solaris specific -----
797 if test x"$this_os" = "xsolaris"; then
798 AC_MSG_RESULT([ * Solaris specific configuration])
799 AC_DEFINE(__svr4__, 1, [Solaris compatibility macro])
800 AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
801 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
802 AC_DEFINE(SOLARIS, 1, [Solaris compatibility macro])
803 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
808 AC_MSG_CHECKING([if we can build Solaris kernel module])
809 if test -x /usr/ccs/bin/ld; then
812 AC_MSG_RESULT([$solaris_module])
814 COMPILE_64BIT_KMODULE=no
817 COMPILE_KERNEL_GCC=no
819 if test "$solaris_module" = "yes"; then
820 dnl Solaris kernel module stuff
821 AC_MSG_CHECKING([if we have to build a 64bit kernel module])
823 # check for isainfo, if not found it has to be a 32 bit kernel (<=2.6)
824 if test -x /usr/bin/isainfo; then
825 # check for 64 bit platform
826 if isainfo -kv | grep '^64-bit'; then
827 COMPILE_64BIT_KMODULE=yes
831 AC_MSG_RESULT([$COMPILE_64BIT_KMODULE])
833 if test "${GCC}" = yes; then
834 COMPILE_KERNEL_GCC=yes
835 if test "$COMPILE_64BIT_KMODULE" = yes; then
837 AC_MSG_CHECKING([if we can build a 64bit kernel module])
839 case `$CC --version 2>/dev/null` in
841 COMPILE_64BIT_KMODULE=no
842 COMPILE_KERNEL_GCC=no
847 #KLDFLAGS="-melf64_sparc"
851 AC_MSG_RESULT([$COMPILE_64BIT_KMODULE])
857 KCFLAGS="$KCFLAGS -D_KERNEL -Wall -Wstrict-prototypes"
859 if test "$COMPILE_64BIT_KMODULE" = yes; then
860 # use Sun CC (for a 64-bit kernel, uncomment " -xarch=v9 -xregs=no%appl ")
861 KCFLAGS="-xarch=v9 -xregs=no%appl"
867 KCFLAGS="-D_KERNEL $KCFLAGS -mno-app-regs -munaligned-doubles -fpcc-struct-return"
870 AC_CACHE_CHECK([for timeout_id_t],netatalk_cv_HAVE_TIMEOUT_ID_T,[
872 #include <sys/stream.h>
873 #include <sys/ddi.h>],
877 netatalk_cv_HAVE_TIMEOUT_ID_T=yes,netatalk_cv_HAVE_TIMEOUT_ID_T=no,netatalk_cv_HAVE_TIMEOUT_ID_T=cross)])
879 AC_DEFINE(HAVE_TIMEOUT_ID_T, test x"$netatalk_cv_HAVE_TIMEOUT_ID" = x"yes", [define for timeout_id_t])
882 AC_SUBST(COMPILE_KERNEL_GCC)
883 AC_SUBST(COMPILE_64BIT_KMODULE)
888 dnl ----- Tru64 specific -----
889 if test x"$this_os" = "xtru64"; then
890 AC_MSG_RESULT([ * Tru64 specific configuration])
891 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
892 AC_DEFINE(HAVE_64BIT_LONGS, 1, [Define if the data type long has 64 bit])
893 dnl AC_DEFINE(USE_MOUNT_H)
894 AC_DEFINE(USE_OLD_RQUOTA, 1, [Define to use old rquota])
895 dnl AC_DEFINE(USE_UFS_QUOTA_H)
896 AC_DEFINE(TRU64, 1, [Define on Tru64 platforms])
897 AC_DEFINE(_OSF_SOURCE, 1, [Define if the *passwd UAMs should be used])
898 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Define for Berkeley DB 4])
899 AC_CHECK_LIB(security,set_auth_parameters)
900 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
905 dnl -- look for openssl
908 dnl -- check for crypt
911 dnl --------------------- check for building PGP UAM module
913 AC_MSG_CHECKING([whether the PGP UAM should be build])
914 AC_ARG_ENABLE(pgp-uam,
915 [ --enable-pgp-uam enable build of PGP UAM module],[
916 if test "$enableval" = "yes"; then
917 if test "$compile_ssl" = "yes"; then
918 AC_DEFINE(UAM_PGP, 1, [Define if the PGP UAM module should be compiled])
930 dnl --------------------- check for building Kerberos v4 UAM module
932 AC_MSG_CHECKING([whether the Kerberos IV UAM should be build])
933 AC_ARG_ENABLE(krb4-uam,
934 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],[
935 if test "$enableval" = "yes"; then
936 AC_DEFINE(UAM_KRB4, 1, [Define if the Kerberos 4 UAM module should be compiled])
947 dnl --------------------- check for building Kerberos V UAM module
949 netatalk_cv_build_krb5_uam=no
950 AC_ARG_ENABLE(krbV-uam,
951 [ --enable-krbV-uam enable build of Kerberos V UAM module],
953 if test x"$enableval" = x"yes"; then
954 NETATALK_GSSAPI_CHECK([
955 netatalk_cv_build_krb5_uam=yes
957 AC_MSG_ERROR([need GSSAPI to build Kerberos V UAM])
964 AC_MSG_CHECKING([whether Kerberos V UAM should be build])
965 if test x"$netatalk_cv_build_krb5_uam" = x"yes"; then
970 AM_CONDITIONAL(USE_GSSAPI, test x"$netatalk_cv_build_krb5_uam" = x"yes")
972 dnl --------------------- overwrite the config files . . . or not.
974 AC_MSG_CHECKING([whether configuration files should be overwritten])
975 AC_ARG_ENABLE(overwrite,
976 [ --enable-overwrite overwrite configuration files during installation],
977 [OVERWRITE_CONFIG="${enable_overwrite}"],
978 [OVERWRITE_CONFIG="no"]
980 AC_MSG_RESULT([$OVERWRITE_CONFIG])
982 dnl --------------------- last minute substitutions
986 AC_SUBST(OVERWRITE_CONFIG)
988 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
989 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
990 AM_CONDITIONAL(COMPILE_A2BOOT, test x$compile_a2boot = xyes)
991 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
992 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
993 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
994 AM_CONDITIONAL(USE_PAM, test x$netatalk_cv_install_pam = xyes)
995 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
996 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
997 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
998 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
999 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
1000 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
1001 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
1002 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
1003 AM_CONDITIONAL(USE_SOLARIS, test x$sysv_style = xsolaris)
1004 AM_CONDITIONAL(USE_GENTOO, test x$sysv_style = xgentoo)
1005 AM_CONDITIONAL(USE_UNDEF, test x$sysv_style = x)
1007 dnl --------------------- generate files
1011 bin/adv1tov2/Makefile
1014 bin/afppasswd/Makefile
1017 bin/cnid/cnid2_create
1018 bin/getzones/Makefile
1019 bin/megatron/Makefile
1022 bin/psorder/Makefile
1023 bin/uniconv/Makefile
1026 contrib/macusers/Makefile
1027 contrib/macusers/macusers
1030 contrib/printing/Makefile
1031 contrib/shell_utils/Makefile
1032 contrib/shell_utils/afpd-mtab.pl
1033 contrib/shell_utils/apple_cp
1034 contrib/shell_utils/apple_mv
1035 contrib/shell_utils/apple_rm
1036 contrib/shell_utils/asip-status.pl
1037 contrib/shell_utils/cleanappledouble.pl
1038 contrib/shell_utils/netatalkshorternamelinks.pl
1039 contrib/timelord/Makefile
1040 contrib/a2boot/Makefile
1042 distrib/config/Makefile
1043 distrib/config/netatalk-config
1044 distrib/initscripts/Makefile
1050 etc/cnid_dbd/Makefile
1052 etc/uams/uams_krb4/Makefile
1056 include/atalk/Makefile
1058 libatalk/adouble/Makefile
1059 libatalk/asp/Makefile
1060 libatalk/atp/Makefile
1061 libatalk/cnid/Makefile
1062 libatalk/cnid/db3/Makefile
1063 libatalk/cnid/cdb/Makefile
1064 libatalk/cnid/last/Makefile
1065 libatalk/cnid/mtab/Makefile
1066 libatalk/cnid/dbd/Makefile
1067 libatalk/cnid/hash/Makefile
1068 libatalk/cnid/tdb/Makefile
1069 libatalk/compat/Makefile
1070 libatalk/dsi/Makefile
1071 libatalk/nbp/Makefile
1072 libatalk/netddp/Makefile
1073 libatalk/util/Makefile
1074 libatalk/tdb/Makefile
1075 libatalk/unicode/Makefile
1076 libatalk/unicode/charsets/Makefile
1085 sys/generic/Makefile
1086 sys/generic/sys/Makefile
1087 sys/netatalk/Makefile
1089 sys/netbsd/netatalk/Makefile
1090 sys/solaris/Makefile
1094 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
1097 AC_NETATALK_LIBS_SUMMARY
1098 AC_NETATALK_CONFIG_SUMMARY