1 dnl configure.in for netatalk
3 AC_INIT(etc/afpd/main.c)
5 NETATALK_VERSION=`cat $srcdir/VERSION`
6 AC_SUBST(NETATALK_VERSION)
9 AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION})
10 AM_CONFIG_HEADER(config.h)
12 dnl Checks for programs.
27 dnl Checks for header files.
31 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 langinfo.h locale.h sys/filio.h)
32 AC_CHECK_HEADER(sys/cdefs.h,,
33 AC_MSG_RESULT([enabling generic cdefs.h from tree])
34 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
36 AC_CHECK_HEADERS([sys/mount.h], , ,
37 [#ifdef HAVE_SYS_PARAM_H
38 #include <sys/param.h>
42 dnl Checks for typedefs, structures, and compiler characteristics.
54 dnl --------------------------------------------------------------------------
55 dnl check if dlsym needs to add an underscore, uses libtool macros
56 dnl --------------------------------------------------------------------------
58 AC_CHECK_FUNCS(dlopen dlsym dlclose)
60 if test x"$libltdl_cv_need_uscore" = xyes; then
61 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
64 dnl Checks for library functions.
66 AC_PROG_GCC_TRADITIONAL
73 AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul strchr memcpy)
74 AC_CHECK_FUNCS(backtrace_symbols setlocale nl_langinfo strlcpy strlcat setlinebuf dirfd pselect access pread pwrite)
75 AC_CHECK_FUNCS(waitpid getcwd strdup strndup strnlen strtoul strerror chown fchown chmod fchmod chroot link mknod mknod64)
76 AC_CHECK_FUNC(renameat, AC_DEFINE([_ATFILE_SOURCE], 1, AT file source))
77 AC_CHECK_MEMBERS(struct tm.tm_gmtoff,,, [#include <time.h>])
79 AC_CHECK_FUNC(gethostbyname,,[AC_CHECK_LIB(nsl,gethostbyname)])
80 AC_CHECK_FUNC(connect,,[AC_CHECK_LIB(socket,connect)])
81 dnl search for necessary libs for libpthread stuff
82 AC_SEARCH_LIBS(pthread_sigmask, pthread,,
83 [AC_MSG_ERROR([cannot find pthread_sigmask in libc or libpthread])])
84 if test x"$ac_cv_search_pthread_sigmask" != x"none required" ; then
85 PTHREAD_LIBS=$ac_cv_search_pthread_sigmask
87 AC_SUBST(PTHREAD_LIBS)
90 dnl Checks for (v)snprintf
91 NETATALK_SNPRINTF_CHECK
93 dnl --------------------------------------------------------------------------
94 dnl 64bit platform check
95 dnl --------------------------------------------------------------------------
97 AC_MSG_CHECKING([whether to check for 64bit libraries])
98 dnl Determine libdir name
101 # Test if the compiler is 64bit
102 echo 'int i;' > conftest.$ac_ext
103 atalk_cv_cc_64bit_output=no
104 if AC_TRY_EVAL(ac_compile); then
105 case `/usr/bin/file conftest.$ac_objext` in
107 atalk_cv_cc_64bit_output=yes
116 dnl FIXME: Do we need something like this for Solaris 64bit?
119 case $host_cpu:$atalk_cv_cc_64bit_output in
120 powerpc64:yes | s390x:yes | sparc64:yes | x86_64:yes)
121 atalk_libname="lib64"
130 dnl --------------------------------------------------------------------------
131 dnl specific configuration comes in here:
132 dnl --------------------------------------------------------------------------
135 netatalk_cv_admin_group=yes
136 AC_MSG_CHECKING([for administrative group support])
137 AC_ARG_ENABLE(admin-group,
138 [ --disable-admin-group disable admin group],[
139 if test x"$enableval" = x"no"; then
140 AC_DEFINE(ADMIN_GRP, 0, [Define if the admin group should be enabled])
141 netatalk_cv_admin_group=no
144 AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled])
147 AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled])
156 netatalk_cv_with_cracklib=no
157 AC_ARG_WITH(cracklib,
158 [ --with-cracklib=DICT enable/set location of cracklib dictionary],[
159 if test "x$withval" != "xno" ; then
161 AC_CHECK_LIB(crack, main, [
162 AC_DEFINE(USE_CRACKLIB, 1, [Define if cracklib should be used])
164 if test "$cracklib" = "yes"; then
165 cracklib="/usr/$atalk_libname/cracklib_dict"
167 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
168 [path to cracklib dictionary])
169 AC_MSG_RESULT([setting cracklib dictionary to $cracklib])
170 netatalk_cv_with_cracklib=yes
172 AC_MSG_ERROR([cracklib not found!])
178 AC_MSG_CHECKING([for cracklib support])
179 AC_MSG_RESULT([$netatalk_cv_with_cracklib])
181 netatalk_cv_ddp_enabled=no
182 AC_MSG_CHECKING([whether to enable DDP])
184 [ --enable-ddp enable DDP (AppleTalk)],[
185 if test "$enableval" = "yes"; then
187 netatalk_cv_ddp_enabled=yes
190 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
194 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
198 AC_MSG_CHECKING([whether to enable debug code])
199 AC_ARG_ENABLE(debug1,
200 [ --enable-debug1 enable debug code],[
201 if test "$enableval" != "no"; then
202 if test "$enableval" = "yes"; then
203 AC_DEFINE(DEBUG1, 1, [Define if debugging information should be included])
205 AC_DEFINE_UNQUOTED(DEBUG1, $enableval, [Define if debugging information should be included])
216 AC_MSG_CHECKING([whether to enable verbose debug code])
218 [ --enable-debug enable verbose debug code],[
219 if test "$enableval" != "no"; then
220 if test "$enableval" = "yes"; then
221 AC_DEFINE(DEBUG, 1, [Define if verbose debugging information should be included])
223 AC_DEFINE_UNQUOTED(DEBUG, $enableval, [Define if verbose debugging information should be included])
228 AC_DEFINE(NDEBUG, 1, [Disable assertions])
232 AC_DEFINE(NDEBUG, 1, [Disable assertions])
236 AC_MSG_CHECKING([whether to enable debugging with debuggers])
237 AC_ARG_ENABLE(debugging,
238 [ --enable-debugging disable SIGALRM timers and DSI tickles (eg for debugging with gdb/dbx/...)],[
239 if test "$enableval" != "no"; then
240 if test "$enableval" = "yes"; then
241 AC_DEFINE(DEBUGGING, 1, [Define if you want to disable SIGALRM timers and DSI tickles])
243 AC_DEFINE_UNQUOTED(DEBUGGING, $enableval, [Define if you want to disable SIGALRM timers and DSI tickles])
257 AC_MSG_CHECKING([whether AFP 3.x calls should be enabled])
259 [ --disable-afp3 disable AFP 3.x calls],
261 if test x"$enableval" != x"no"; then
274 if test x"$afp3" = x"yes"; then
276 AC_DEFINE(AFP3x, 1, [Define to enable AFP 3.x support])
278 if test x"$afp3set" = x"yes"; then
279 AC_MSG_ERROR([AFP 3.x support requires Large File Support.])
281 AC_MSG_WARN([AFP 3.x support requires Large File Support. AFP3.x support disabled])
289 dnl ----------- A NOTE ABOUT DROPKLUDGE
290 dnl The trouble with this fix is that if you know what the file is called, it
291 dnl can be read from the Unix side. That's okay for most academic institutions
292 dnl since the students don't have telnet access to the Mac servers. There is
293 dnl currently no one working on further development/fixes of DROPKLUDGE.
296 netatalk_cv_dropkludge=no
297 AC_MSG_CHECKING([whether to enable experimental dropbox support])
298 AC_ARG_ENABLE(dropkludge,
299 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],[
300 if test "$enableval" = "yes"; then
301 AC_DEFINE(DROPKLUDGE, 1, [Define if you want to use the experimental dropkludge support])
303 netatalk_cv_dropkludge=yes
312 netatalk_cv_force_uidgid=no
313 AC_MSG_CHECKING([whether to enable forcing of uid/gid per volume])
314 AC_ARG_ENABLE(force-uidgid,
315 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],[
316 if test "$enableval" = "yes"; then
317 AC_DEFINE(FORCE_UIDGID, 1, [Define if you want forcing of uid/gid per volume])
318 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
320 netatalk_cv_force_uidgid=yes
329 dnl Check for CNID database backends
331 AC_NETATALK_CNID([bdb_required=yes],[bdb_required=no])
333 dnl Check for quota support
336 dnl Check for optional server location protocol support (used by MacOS X)
339 dnl Check for optional Zeroconf support
342 dnl Check for PAM libs
343 netatalk_cv_use_pam=no
347 netatalk_cv_use_pam=yes
348 AC_DEFINE(USE_PAM, 1, [Define to enable PAM support])
351 netatalk_cv_use_shadowpw=no
353 [ --with-shadow enable shadow password support [[auto]]],
354 [netatalk_cv_use_shadowpw="$withval"],
355 [netatalk_cv_use_shadowpw=auto]
358 if test "x$netatalk_cv_use_shadowpw" != "xno"; then
359 AC_CHECK_HEADER([shadow.h])
360 if test x"$ac_cv_header_shadow_h" = x"yes"; then
361 netatalk_cv_use_shadowpw=yes
362 AC_DEFINE(SHADOWPW, 1, [Define if shadow passwords should be used])
364 if test "x$shadowpw" = "xyes"; then
365 AC_MSG_ERROR([shadow support not available])
367 netatalk_cv_use_shadowpw=no
372 AC_MSG_CHECKING([whether shadow support should be enabled])
373 if test "x$netatalk_cv_use_shadowpw" = "xyes"; then
381 netatalk_cv_use_shellcheck=yes
382 AC_MSG_CHECKING([whether checking for a valid shell should be enabled])
383 AC_ARG_ENABLE(shell-check,
384 [ --disable-shell-check disable checking for a valid shell],[
385 if test "$enableval" = "no"; then
386 AC_DEFINE(DISABLE_SHELLCHECK, 1, [Define if shell check should be disabled])
388 netatalk_cv_use_shellcheck=no
397 NETATALK_TCP_WRAPPERS
399 AC_MSG_CHECKING([whether system (fcntl) locking should be disabled])
400 AC_ARG_ENABLE(locking,
401 [ --disable-locking disable system locking],[
402 if test "$enableval" = "no"; then
403 AC_DEFINE(DISABLE_LOCKING, 1, [Define if system (fcntl) locking should be disabled])
416 AC_ARG_ENABLE(redhat,
417 [ --enable-redhat use redhat-style sysv configuration ],[
418 if test "$enableval" = "yes"; then
421 AC_MSG_RESULT([enabling redhat-style sysv support])
426 [ --enable-suse use suse-style sysv configuration ],[
427 if test "$enableval" = "yes"; then
430 AC_MSG_RESULT([enabling suse-style sysv support])
434 AC_ARG_ENABLE(gentoo,
435 [ --enable-gentoo use gentoo-style sysv configuration ],[
436 if test "$enableval" = "yes"; then
439 AC_MSG_RESULT([enabling gentoo-style sysv support])
443 AC_ARG_ENABLE(cobalt,
444 [ --enable-cobalt use cobalt-style sysv configuration ],
445 if test "$enableval" = "yes"; then
448 AC_MSG_RESULT([enabling cobalt-style sysv support])
451 AC_ARG_ENABLE(netbsd,
452 [ --enable-netbsd use NetBSD-style rc.d configuration ],
453 if test "x$enableval" = "xyes"; then
456 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
459 AC_ARG_ENABLE(debian,
460 [ --enable-debian use debian-style sysv configuration ],[
461 if test "$enableval" = "yes"; then
464 AC_MSG_RESULT([enabling debian-style sysv support])
468 dnl ----- timelord compilation (disabled by default)
469 AC_MSG_CHECKING([whether timelord should be compiled])
471 AC_ARG_ENABLE(timelord,
472 [ --enable-timelord enable compilation of timelord server],
473 [compile_timelord="$enableval"],
474 [compile_timelord="no"]
476 AC_MSG_RESULT([$compile_timelord])
478 dnl ----- a2boot compilation (disabled by default)
479 AC_MSG_CHECKING([whether a2boot should be compiled])
481 AC_ARG_ENABLE(a2boot,
482 [ --enable-a2boot enable compilation of Apple2 boot server],
483 [compile_a2boot="$enableval"],
484 [compile_a2boot="no"]
486 AC_MSG_RESULT([$compile_a2boot])
488 AC_ARG_WITH(uams-path,
489 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],[
492 uams_path="${PKGCONFDIR}/uams"
498 dnl check if we can use attribute unused (gcc only) from ethereal
499 AC_MSG_CHECKING(to see if we can add '__attribute__((unused))' to CFLAGS)
500 if test x$GCC != x ; then
501 CFLAGS="-D_U_=\"__attribute__((unused))\" $CFLAGS"
504 CFLAGS="-D_U_=\"\" $CFLAGS"
508 dnl --------------------------------------------------------------------------
509 dnl FHS stuff has to be done last because it overrides other defaults
510 dnl --------------------------------------------------------------------------
512 AC_MSG_CHECKING([whether to use Filesystem Hierarchy Standard (FHS) compatibility])
514 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],[
515 if test "$enableval" = "yes"; then
516 uams_path="${libdir}/netatalk"
518 PKGCONFDIR=${sysconfdir}/netatalk
519 SERVERTEXT="${PKGCONFDIR}/msg"
521 mandir="/usr/share/man"
522 AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
532 dnl --------------------------------------------------------------------------
533 dnl post-FHS substitutions, etc
534 dnl --------------------------------------------------------------------------
537 dnl AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
538 dnl [path to UAMs [default=PKGCONF/uams]])
539 UAMS_PATH="${uams_path}"
542 dnl --------------------------------------------------------------------------
543 dnl drop in includes for top level directory structures here...
544 dnl --------------------------------------------------------------------------
546 dnl Note: $(top_srcdir)/include should be added before all other includes
547 dnl so that includes from that directory a preferred to includes from
548 dnl /usr/include or similar places.
549 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
550 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
552 AC_DEFINE(OPEN_NOFOLLOW_ERRNO, ELOOP, errno returned by open with O_NOFOLLOW)
554 dnl --------------------------------------------------------------------------
555 dnl specific configuration comes in here:
556 dnl --------------------------------------------------------------------------
558 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
560 dnl --------------------- determine operating system from "target"
562 *aix*) this_os=aix ;;
563 *freebsd*) this_os=freebsd ;;
564 *hpux11*) this_os=hpux11 ;;
565 *irix*) this_os=irix ;;
566 *linux*) this_os=linux ;;
567 *osx*) this_os=macosx ;;
568 *darwin*) this_os=macosx ;;
569 *netbsd*) this_os=netbsd ;;
570 *openbsd*) this_os=openbsd ;;
571 *osf*) this_os=tru64 ;;
572 *solaris*) this_os=solaris ;;
576 i386|i486|i586|i686|k7) this_cpu=x86 ;;
577 alpha) this_cpu=alpha ;;
578 mips) this_cpu=mips ;;
579 powerpc|ppc) this_cpu=ppc ;;
582 dnl --------------------- GNU source
584 linux) AC_DEFINE(_GNU_SOURCE, 1, [Whether to use GNU libc extensions])
588 dnl --------------------- operating system specific flags (port from sys/*)
590 dnl ----- AIX specific -----
591 if test x"$this_os" = "xaix"; then
592 AC_MSG_RESULT([ * AIX specific configuration])
593 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
595 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
596 dnl compilation environment. It's enough to get things defined
597 dnl right in endian.h provided that long long is supported, though.
598 AC_DEFINE(HAVE_32BIT_LONGS, 1, [Define if the data type long has 32 bit])
601 dnl ----- FreeBSD specific -----
602 if test x"$this_os" = "xfreebsd"; then
603 AC_MSG_RESULT([ * FreeBSD specific configuration])
604 AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
605 AC_DEFINE(FREEBSD, 1, [Define if OS is FreeBSD])
606 AC_DEFINE(SENDFILE_FLAVOR_BSD, 1, [Define if the sendfile() function uses BSD semantics])
607 AC_DEFINE(OPEN_NOFOLLOW_ERRNO, EMLINK, errno returned by open with O_NOFOLLOW)
610 dnl ----- HP-UX 11 specific -----
611 if test x"$this_os" = "xhpux11"; then
612 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
614 AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
615 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
618 dnl ----- IRIX specific -----
619 if test x"$this_os" = "xirix"; then
620 AC_MSG_RESULT([ * IRIX specific configuration])
622 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
625 dnl ----- Linux specific -----
626 if test x"$this_os" = "xlinux"; then
627 AC_MSG_RESULT([ * Linux specific configuration])
629 dnl ----- kernel 2.6 changed struct at_addr to atalk_addr
630 AC_MSG_CHECKING([for struct atalk_addr])
631 dnl AC_COMPILE_IFELSE([
633 #include <sys/socket.h>
634 #include <asm/types.h>
635 #include <linux/atalk.h>
637 struct atalk_addr foo;
640 ac_have_atalk_addr=yes
646 if test "x$ac_have_atalk_addr" = "xyes"; then
647 AC_DEFINE(HAVE_ATALK_ADDR, 1, [set if struct at_addr is called atalk_addr])
650 dnl ----- check if we need the quotactl wrapper
651 # AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
652 # AC_CHECK_FUNC(quotactl,,
653 # AC_DEFINE(NEED_QUOTACTL_WRAPPER, 1, [Define if the quotactl wrapper is needed])
654 # AC_MSG_RESULT([enabling quotactl wrapper])
657 # For quotas on Linux XFS filesystems
660 AC_CHECK_HEADERS(linux/dqblk_xfs.h,,
661 [AC_CHECK_HEADERS(linux/xqm.h linux/xfs_fs.h)
662 AC_CHECK_HEADERS(xfs/libxfs.h xfs/xqm.h xfs/xfs_fs.h)]
666 dnl ----- as far as I can tell, dbtob always does the wrong thing
667 dnl ----- on every single version of linux I've ever played with.
668 dnl ----- see etc/afpd/quota.c
669 AC_DEFINE(HAVE_BROKEN_DBTOB, 1, [Define if dbtob is broken])
671 netatalk_cv_linux_sendfile=yes
672 AC_MSG_CHECKING([use sendfile syscall])
673 AC_ARG_ENABLE(sendfile,
674 [ --disable-sendfile disable linux sendfile syscall],[
675 if test x"$enableval" = x"no"; then
676 netatalk_cv_linux_sendfile=no
688 if test x"$netatalk_cv_linux_sendfile" = "xyes"; then
689 AC_CACHE_CHECK([for linux sendfile support],netatalk_cv_HAVE_SENDFILE,[
690 AC_TRY_LINK([#include <sys/sendfile.h>],
695 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
697 netatalk_cv_HAVE_SENDFILE=yes,netatalk_cv_HAVE_SENDFILE=no)])
699 # Try and cope with broken Linux sendfile....
700 AC_CACHE_CHECK([for broken linux sendfile support],netatalk_cv_HAVE_BROKEN_LINUX_SENDFILE,[
702 #if defined(_FILE_OFFSET_BITS) && (_FILE_OFFSET_BITS == 64)
703 #undef _FILE_OFFSET_BITS
705 #include <sys/sendfile.h>],
710 ssize_t nwritten = sendfile(tofd, fromfd, &offset, total);
712 netatalk_cv_HAVE_BROKEN_LINUX_SENDFILE=yes,netatalk_cv_HAVE_BROKEN_LINUX_SENDFILE=no,netatalk_cv_HAVE_BROKEN_SENDFILE=cross)])
714 if test x"$netatalk_cv_HAVE_SENDFILE" = x"yes"; then
715 AC_DEFINE(HAVE_SENDFILE,1,[Whether sendfile() is available])
716 AC_DEFINE(SENDFILE_FLAVOR_LINUX,1,[Whether linux sendfile() API is available])
717 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile() should be used])
718 elif test x"$netatalk_cv_HAVE_BROKEN_LINUX_SENDFILE" = x"yes"; then
719 AC_DEFINE(SENDFILE_FLAVOR_LINUX,1,[Whether linux sendfile() API is available])
720 AC_DEFINE(LINUX_BROKEN_SENDFILE_API,1,[Whether (linux) sendfile() is broken])
721 AC_DEFINE(WITH_SENDFILE,1,[Whether sendfile should be used])
723 netatalk_cv_linux_sendfile=no
728 dnl ----- Linux/alpha specific -----
729 if test x"$this_cpu" = "xalpha"; then
730 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
731 AC_DEFINE(HAVE_GCC_MEMCPY_BUG, 1, [Define if memcpy is buggy])
738 dnl ----- Mac OSX specific -----
739 if test x"$this_os" = "xmacosx"; then
740 AC_MSG_RESULT([ * Mac OSX specific configuration])
741 AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
742 AC_DEFINE(HAVE_2ARG_DBTOB, 1, [Define if dbtob takes two arguments])
743 dnl AC_DEFINE(NO_DLFCN_H)
744 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
745 AC_DEFINE(NO_QUOTA_SUPPORT, 1, [Define if Quota support should be disabled])
746 AC_DEFINE(MACOSX_SERVER, 1, [Define if compiling for MacOS X Server])
749 dnl ----- NetBSD specific -----
750 if test x"$this_os" = "xnetbsd"; then
751 AC_MSG_RESULT([ * NetBSD specific configuration])
752 AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
753 AC_DEFINE(NETBSD, 1, [Define if OS is NetBSD])
754 AC_DEFINE(OPEN_NOFOLLOW_ERRNO, EFTYPE, errno returned by open with O_NOFOLLOW)
756 CFLAGS="-I\$(top_srcdir)/sys/netbsd $CFLAGS"
759 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
760 AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
763 dnl ----- OpenBSD specific -----
764 if test x"$this_os" = "xopenbsd"; then
765 AC_MSG_RESULT([ * OpenBSD specific configuration])
766 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
767 AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
770 dnl ----- Solaris specific -----
771 if test x"$this_os" = "xsolaris"; then
772 AC_MSG_RESULT([ * Solaris specific configuration])
773 AC_DEFINE(__svr4__, 1, [Solaris compatibility macro])
774 AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
775 AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
776 AC_DEFINE(SOLARIS, 1, [Solaris compatibility macro])
777 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
782 AC_MSG_CHECKING([if we can build Solaris kernel module])
783 if test -x /usr/ccs/bin/ld && test x$netatalk_cv_ddp_enabled = yes ; then
786 AC_MSG_RESULT([$solaris_module])
788 COMPILE_64BIT_KMODULE=no
791 COMPILE_KERNEL_GCC=no
793 if test "$solaris_module" = "yes"; then
794 dnl Solaris kernel module stuff
795 AC_MSG_CHECKING([if we have to build a 64bit kernel module])
797 # check for isainfo, if not found it has to be a 32 bit kernel (<=2.6)
798 if test -x /usr/bin/isainfo; then
799 # check for 64 bit platform
800 if isainfo -kv | grep '^64-bit'; then
801 COMPILE_64BIT_KMODULE=yes
805 AC_MSG_RESULT([$COMPILE_64BIT_KMODULE])
807 if test "${GCC}" = yes; then
808 COMPILE_KERNEL_GCC=yes
809 if test "$COMPILE_64BIT_KMODULE" = yes; then
811 AC_MSG_CHECKING([if we can build a 64bit kernel module])
813 case `$CC --version 2>/dev/null` in
815 COMPILE_64BIT_KMODULE=no
816 COMPILE_KERNEL_GCC=no
821 #KLDFLAGS="-melf64_sparc"
825 AC_MSG_RESULT([$COMPILE_64BIT_KMODULE])
831 KCFLAGS="$KCFLAGS -D_KERNEL -Wall -Wstrict-prototypes"
833 if test "$COMPILE_64BIT_KMODULE" = yes; then
834 # use Sun CC (for a 64-bit kernel, uncomment " -xarch=v9 -xregs=no%appl ")
835 KCFLAGS="-xarch=v9 -xregs=no%appl"
841 KCFLAGS="-D_KERNEL $KCFLAGS -mno-app-regs -munaligned-doubles -fpcc-struct-return"
844 AC_CACHE_CHECK([for timeout_id_t],netatalk_cv_HAVE_TIMEOUT_ID_T,[
846 #include <sys/stream.h>
847 #include <sys/ddi.h>],
851 netatalk_cv_HAVE_TIMEOUT_ID_T=yes,netatalk_cv_HAVE_TIMEOUT_ID_T=no,netatalk_cv_HAVE_TIMEOUT_ID_T=cross)])
853 AC_DEFINE(HAVE_TIMEOUT_ID_T, test x"$netatalk_cv_HAVE_TIMEOUT_ID" = x"yes", [define for timeout_id_t])
856 AC_SUBST(COMPILE_KERNEL_GCC)
857 AC_SUBST(COMPILE_64BIT_KMODULE)
862 dnl ----- Tru64 specific -----
863 if test x"$this_os" = "xtru64"; then
864 AC_MSG_RESULT([ * Tru64 specific configuration])
865 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
866 AC_DEFINE(HAVE_64BIT_LONGS, 1, [Define if the data type long has 64 bit])
867 dnl AC_DEFINE(USE_MOUNT_H)
868 AC_DEFINE(USE_OLD_RQUOTA, 1, [Define to use old rquota])
869 dnl AC_DEFINE(USE_UFS_QUOTA_H)
870 AC_DEFINE(TRU64, 1, [Define on Tru64 platforms])
871 AC_DEFINE(_OSF_SOURCE, 1, [Define if the *passwd UAMs should be used])
872 AC_DEFINE(_XOPEN_SOURCE_EXTENDED, 1, [Define for Berkeley DB 4])
873 AC_CHECK_LIB(security,set_auth_parameters)
874 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
879 dnl -- check for libgcrypt, if found enables DHX UAM
880 AM_PATH_LIBGCRYPT([1:1.2.3],[neta_cv_compile_dhx2=yes
881 neta_cv_have_libgcrypt=yes
882 AC_MSG_NOTICE([Enabling DHX2 UAM])
883 AC_DEFINE(HAVE_LIBGCRYPT, 1, [Define if the DHX2 modules should be built with libgcrypt])
884 AC_DEFINE(UAM_DHX2, 1, [Define if the DHX2 UAM modules should be compiled])
887 dnl -- look for openssl, if found enables DHX UAM and Randnum UAM
890 dnl Check for Berkeley DB library
891 if test "x$bdb_required" = "xyes"; then
894 AC_MSG_RESULT([Make sure you have the required Berkeley DB libraries AND headers installed.])
895 AC_MSG_RESULT([You can download the latest version from http://www.sleepycat.com.])
896 AC_MSG_RESULT([If you have installed BDB in a non standard location use the])
897 AC_MSG_RESULT([--with-bdb=/path/to/bdb configure option and make sure])
898 AC_MSG_RESULT([your linker is configured to check for libraries there.])
899 AC_MSG_ERROR([Berkeley DB library required but not found!])
903 dnl -- check for crypt
906 dnl --------------------- check for building PGP UAM module
908 AC_MSG_CHECKING([whether the PGP UAM should be build])
909 AC_ARG_ENABLE(pgp-uam,
910 [ --enable-pgp-uam enable build of PGP UAM module],[
911 if test "$enableval" = "yes"; then
912 if test "x$neta_cv_have_openssl" = "xyes"; then
913 AC_DEFINE(UAM_PGP, 1, [Define if the PGP UAM module should be compiled])
925 dnl --------------------- check for building Kerberos v4 UAM module
927 AC_MSG_CHECKING([whether the Kerberos IV UAM should be build])
928 AC_ARG_ENABLE(krb4-uam,
929 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],[
930 if test "$enableval" = "yes"; then
931 AC_DEFINE(UAM_KRB4, 1, [Define if the Kerberos 4 UAM module should be compiled])
942 dnl --------------------- check for building Kerberos V UAM module
944 netatalk_cv_build_krb5_uam=no
945 AC_ARG_ENABLE(krbV-uam,
946 [ --enable-krbV-uam enable build of Kerberos V UAM module],
948 if test x"$enableval" = x"yes"; then
949 NETATALK_GSSAPI_CHECK([
950 netatalk_cv_build_krb5_uam=yes
952 AC_MSG_ERROR([need GSSAPI to build Kerberos V UAM])
959 AC_MSG_CHECKING([whether Kerberos V UAM should be build])
960 if test x"$netatalk_cv_build_krb5_uam" = x"yes"; then
965 AM_CONDITIONAL(USE_GSSAPI, test x"$netatalk_cv_build_krb5_uam" = x"yes")
967 dnl --------------------- overwrite the config files . . . or not.
969 AC_MSG_CHECKING([whether configuration files should be overwritten])
970 AC_ARG_ENABLE(overwrite,
971 [ --enable-overwrite overwrite configuration files during installation],
972 [OVERWRITE_CONFIG="${enable_overwrite}"],
973 [OVERWRITE_CONFIG="no"]
975 AC_MSG_RESULT([$OVERWRITE_CONFIG])
977 dnl --------------------- check for ACL support
978 AC_MSG_CHECKING(whether to support ACLs)
980 [AS_HELP_STRING([--with-acls],
981 [Include ACL support (default=auto)])],
984 with_acl_support="$withval"
987 with_acl_support=auto
990 [with_acl_support=auto])
991 AC_MSG_RESULT($with_acl_support)
993 if test x"$with_acl_support" = x"no"; then
994 AC_MSG_RESULT(Disabling ACL support)
995 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support should be built in])
998 AC_MSG_NOTICE([ACL support requires LDAP support, checking whether that's available])
999 AC_CHECK_HEADER([ldap.h],,
1000 [AC_MSG_ERROR([ACL Support prerequisite LDAP client headers not found.])
1001 with_acl_support=no])
1003 AC_CHECK_LIB(ldap, ldap_init,,
1004 [AC_MSG_ERROR([ACL Support prerequisite LDAP client libs not found.])
1005 with_acl_support=no])
1008 if test x"$with_acl_support" = x"yes" ; then
1009 AC_MSG_NOTICE(checking whether ACL support is available:)
1012 AC_MSG_NOTICE(Using UnixWare ACLs)
1013 AC_DEFINE(HAVE_UNIXWARE_ACLS,1,[Whether UnixWare ACLs are available])
1016 AC_MSG_NOTICE(Using solaris ACLs)
1017 AC_DEFINE(HAVE_SOLARIS_ACLS,1,[Whether solaris ACLs are available])
1018 ACL_LIBS="$ACL_LIBS -lsec"
1021 AC_MSG_NOTICE(Using HPUX ACLs)
1022 AC_DEFINE(HAVE_HPUX_ACLS,1,[Whether HPUX ACLs are available])
1025 AC_MSG_NOTICE(Using IRIX ACLs)
1026 AC_DEFINE(HAVE_IRIX_ACLS,1,[Whether IRIX ACLs are available])
1029 AC_MSG_NOTICE(Using AIX ACLs)
1030 AC_DEFINE(HAVE_AIX_ACLS,1,[Whether AIX ACLs are available])
1033 AC_MSG_NOTICE(Using Tru64 ACLs)
1034 AC_DEFINE(HAVE_TRU64_ACLS,1,[Whether Tru64 ACLs are available])
1035 ACL_LIBS="$ACL_LIBS -lpacl"
1038 AC_MSG_NOTICE(ACLs on Darwin currently not supported)
1039 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
1042 AC_CHECK_LIB(acl,acl_get_file,[ACL_LIBS="$ACL_LIBS -lacl"])
1045 AC_CHECK_LIB(attr,getxattr,[ACL_LIBS="$ACL_LIBS -lattr"])
1048 AC_CACHE_CHECK([for POSIX ACL support],netatalk_cv_HAVE_POSIX_ACLS,[
1050 LIBS="$LIBS $ACL_LIBS"
1052 #include <sys/types.h>
1053 #include <sys/acl.h>
1057 acl_entry_t *entry_p;
1058 return acl_get_entry(acl, entry_id, entry_p);
1060 [netatalk_cv_HAVE_POSIX_ACLS=yes],
1061 [netatalk_cv_HAVE_POSIX_ACLS=no
1062 with_acl_support=no])
1065 if test x"$netatalk_cv_HAVE_POSIX_ACLS" = x"yes"; then
1066 AC_MSG_NOTICE(Using POSIX ACLs)
1067 AC_DEFINE(HAVE_POSIX_ACLS,1,[Whether POSIX ACLs are available])
1068 AC_CACHE_CHECK([for acl_get_perm_np],netatalk_cv_HAVE_ACL_GET_PERM_NP,[
1070 LIBS="$LIBS $ACL_LIBS"
1072 #include <sys/types.h>
1073 #include <sys/acl.h>
1075 acl_permset_t permset_d;
1077 return acl_get_perm_np(permset_d, perm);
1079 [samba_cv_HAVE_ACL_GET_PERM_NP=yes],
1080 [samba_cv_HAVE_ACL_GET_PERM_NP=no])
1083 if test x"netatalk_cv_HAVE_ACL_GET_PERM_NP" = x"yes"; then
1084 AC_DEFINE(HAVE_ACL_GET_PERM_NP,1,[Whether acl_get_perm_np() is available])
1087 AC_MSG_NOTICE(ACL support is not avaliable)
1088 AC_DEFINE(HAVE_NO_ACLS,1,[Whether no ACLs support is available])
1094 if test x"$with_acl_support" = x"yes" ; then
1095 AC_DEFINE(HAVE_ACLS,1,[Whether ACLs support is available])
1099 dnl --------------------- check for Extended Attributes support
1101 neta_cv_eas_sys_found=no
1102 neta_cv_eas_sys_not_found=no
1104 AC_CHECK_HEADERS(sys/attributes.h attr/xattr.h sys/xattr.h sys/extattr.h sys/uio.h sys/ea.h)
1109 AC_SEARCH_LIBS(getproplist, [proplist])
1110 AC_CHECK_FUNCS([getproplist fgetproplist setproplist fsetproplist],
1111 [neta_cv_eas_sys_found=yes],
1112 [neta_cv_eas_sys_not_found=yes])
1113 AC_CHECK_FUNCS([delproplist fdelproplist add_proplist_entry get_proplist_entry],,
1114 [neta_cv_eas_sys_not_found=yes])
1115 AC_CHECK_FUNCS([sizeof_proplist_entry],,
1116 [neta_cv_eas_sys_not_found=yes])
1120 AC_CHECK_FUNCS([attropen],
1121 [neta_cv_eas_sys_found=yes],
1122 [neta_cv_eas_sys_not_found=yes])
1126 AC_CHECK_FUNCS([extattr_delete_fd extattr_delete_file extattr_delete_link],
1127 [neta_cv_eas_sys_found=yes],
1128 [neta_cv_eas_sys_not_found=yes])
1129 AC_CHECK_FUNCS([extattr_get_fd extattr_get_file extattr_get_link],,
1130 [neta_cv_eas_sys_not_found=yes])
1131 AC_CHECK_FUNCS([extattr_list_fd extattr_list_file extattr_list_link],,
1132 [neta_cv_eas_sys_not_found=yes])
1133 AC_CHECK_FUNCS([extattr_set_fd extattr_set_file extattr_set_link],,
1134 [neta_cv_eas_sys_not_found=yes])
1137 *freebsd4* | *dragonfly* )
1138 AC_DEFINE(BROKEN_EXTATTR, 1, [Does extattr API work])
1142 AC_SEARCH_LIBS(getxattr, [attr])
1144 if test "x$neta_cv_eas_sys_found" != "xyes" ; then
1145 AC_CHECK_FUNCS([getxattr lgetxattr fgetxattr listxattr llistxattr],
1146 [neta_cv_eas_sys_found=yes],
1147 [neta_cv_eas_sys_not_found=yes])
1148 AC_CHECK_FUNCS([flistxattr removexattr lremovexattr fremovexattr],,
1149 [neta_cv_eas_sys_not_found=yes])
1150 AC_CHECK_FUNCS([setxattr lsetxattr fsetxattr],,
1151 [neta_cv_eas_sys_not_found=yes])
1154 if test "x$neta_cv_eas_sys_found" != "xyes" ; then
1155 AC_CHECK_FUNCS([getea fgetea lgetea listea flistea llistea],
1156 [neta_cv_eas_sys_found=yes],
1157 [neta_cv_eas_sys_not_found=yes])
1158 AC_CHECK_FUNCS([removeea fremoveea lremoveea setea fsetea lsetea],,
1159 [neta_cv_eas_sys_not_found=yes])
1162 if test "x$neta_cv_eas_sys_found" != "xyes" ; then
1163 AC_CHECK_FUNCS([attr_get attr_list attr_set attr_remove],,
1164 [neta_cv_eas_sys_not_found=yes])
1165 AC_CHECK_FUNCS([attr_getf attr_listf attr_setf attr_removef],,
1166 [neta_cv_eas_sys_not_found=yes])
1171 # Do xattr functions take additional options like on Darwin?
1172 if test x"$ac_cv_func_getxattr" = x"yes" ; then
1173 AC_CACHE_CHECK([whether xattr interface takes additional options], smb_attr_cv_xattr_add_opt, [
1175 LIBS="$LIBS $ACL_LIBS"
1177 #include <sys/types.h>
1178 #if HAVE_ATTR_XATTR_H
1179 #include <attr/xattr.h>
1180 #elif HAVE_SYS_XATTR_H
1181 #include <sys/xattr.h>
1184 getxattr(0, 0, 0, 0, 0, 0);
1186 [smb_attr_cv_xattr_add_opt=yes],
1187 [smb_attr_cv_xattr_add_opt=no;LIBS=$old_LIBS])
1189 if test x"$smb_attr_cv_xattr_add_opt" = x"yes"; then
1190 AC_DEFINE(XATTR_ADD_OPT, 1, [xattr functions have additional options])
1194 if test "x$neta_cv_eas_sys_found" = "xyes" ; then
1195 if test "x$neta_cv_eas_sys_not_found" != "xyes" ; then
1196 neta_cv_eas="$neta_cv_eas | sys"
1200 dnl --------------------- Check if realpath() takes NULL
1201 AC_CACHE_CHECK([if the realpath function allows a NULL argument],
1202 neta_cv_REALPATH_TAKES_NULL, [
1208 void exit_on_core(int ignored) {
1214 signal(SIGSEGV, exit_on_core);
1215 newpath = realpath("/tmp", NULL);
1216 exit((newpath != NULL) ? 0 : 1);
1218 neta_cv_REALPATH_TAKES_NULL=yes,
1219 neta_cv_REALPATH_TAKES_NULL=no,
1220 neta_cv_REALPATH_TAKES_NULL=cross
1225 if test x"$neta_cv_REALPATH_TAKES_NULL" = x"yes"; then
1226 AC_DEFINE(REALPATH_TAKES_NULL,1,[Whether the realpath function allows NULL])
1229 dnl --------------------- Netatalk Webmin
1232 dnl --------------------- Check for libuuid which is required for TimeMachine
1233 AC_SEARCH_LIBS([uuid_generate],
1235 AC_MSG_ERROR([missing library libuuid required for TimeMachine]))
1236 AC_CHECK_HEADER([uuid/uuid.h],
1237 AC_DEFINE([HAVE_UUID], 1, [have libuuid]),
1238 AC_MSG_ERROR([missing header <uuid/uuid.> from libuuid required for TimeMachine]))
1240 dnl --------------------- last minute substitutions
1244 AC_SUBST(OVERWRITE_CONFIG)
1246 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
1247 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
1248 AM_CONDITIONAL(COMPILE_A2BOOT, test x$compile_a2boot = xyes)
1249 AM_CONDITIONAL(HAVE_LIBGCRYPT, test x$neta_cv_have_libgcrypt = xyes)
1250 AM_CONDITIONAL(HAVE_OPENSSL, test x$neta_cv_have_openssl = xyes)
1251 AM_CONDITIONAL(HAVE_ACLS, test x"$with_acl_support" = x"yes")
1252 AM_CONDITIONAL(USE_DHX, test x$neta_cv_compile_dhx = xyes)
1253 AM_CONDITIONAL(USE_DHX2, test x$neta_cv_compile_dhx2 = xyes)
1254 AM_CONDITIONAL(USE_RANDNUM, test x$neta_cv_have_openssl = xyes)
1255 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
1256 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
1257 AM_CONDITIONAL(USE_PAM, test x$netatalk_cv_install_pam = xyes)
1258 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
1259 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
1260 AM_CONDITIONAL(DEFAULT_HOOK, test x$neta_cv_have_libgcrypt != xyes && test x$neta_cv_have_openssl != xyes)
1261 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
1262 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
1263 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
1264 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
1265 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
1266 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
1267 AM_CONDITIONAL(USE_SOLARIS, test x$sysv_style = xsolaris)
1268 AM_CONDITIONAL(USE_GENTOO, test x$sysv_style = xgentoo)
1269 AM_CONDITIONAL(USE_DEBIAN, test x$sysv_style = xdebian)
1270 AM_CONDITIONAL(USE_UNDEF, test x$sysv_style = x)
1271 AM_CONDITIONAL(USE_BDB, test x$bdb_required = xyes)
1272 AM_CONDITIONAL(USE_APPLETALK, test x$netatalk_cv_ddp_enabled = xyes)
1274 dnl --------------------- generate files
1279 bin/adv1tov2/Makefile
1281 bin/afppasswd/Makefile
1283 bin/cnid/cnid2_create
1284 bin/getzones/Makefile
1285 bin/megatron/Makefile
1289 bin/psorder/Makefile
1290 bin/uniconv/Makefile
1294 contrib/macusers/Makefile
1295 contrib/macusers/macusers
1296 contrib/printing/Makefile
1297 contrib/shell_utils/Makefile
1298 contrib/shell_utils/afpd-mtab.pl
1299 contrib/shell_utils/apple_dump
1300 contrib/shell_utils/asip-status.pl
1301 contrib/timelord/Makefile
1302 contrib/a2boot/Makefile
1304 distrib/config/Makefile
1305 distrib/config/netatalk-config
1306 distrib/initscripts/Makefile
1312 etc/cnid_dbd/Makefile
1314 etc/uams/uams_krb4/Makefile
1318 include/atalk/Makefile
1320 libatalk/acl/Makefile
1321 libatalk/adouble/Makefile
1322 libatalk/asp/Makefile
1323 libatalk/atp/Makefile
1324 libatalk/bstring/Makefile
1325 libatalk/cnid/Makefile
1326 libatalk/cnid/cdb/Makefile
1327 libatalk/cnid/last/Makefile
1328 libatalk/cnid/dbd/Makefile
1329 libatalk/cnid/tdb/Makefile
1330 libatalk/compat/Makefile
1331 libatalk/dsi/Makefile
1332 libatalk/nbp/Makefile
1333 libatalk/netddp/Makefile
1334 libatalk/util/Makefile
1335 libatalk/tdb/Makefile
1336 libatalk/unicode/Makefile
1337 libatalk/unicode/charsets/Makefile
1338 libatalk/vfs/Makefile
1347 sys/generic/Makefile
1348 sys/generic/sys/Makefile
1349 sys/netatalk/Makefile
1351 sys/netbsd/netatalk/Makefile
1352 sys/solaris/Makefile
1358 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
1361 AC_NETATALK_LIBS_SUMMARY
1362 AC_NETATALK_CONFIG_SUMMARY