1 dnl $Id: configure.in,v 1.171 2002-11-14 17:21:23 srittau Exp $
2 dnl configure.in for netatalk
4 AC_INIT(bin/adv1tov2/adv1tov2.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 dnl Checks for libraries.
31 dnl Replace `main' with a function in -labs:
32 AC_CHECK_LIB(abs, main)
33 dnl Replace `main' with a function in -laudit:
34 AC_CHECK_LIB(audit, main)
35 dnl Replace `main' with a function in -lauth:
36 AC_CHECK_LIB(auth, main)
37 dnl Replace `main' with a function in -lcmd:
38 AC_CHECK_LIB(cmd, main)
39 dnl Replace `main' with a function in -lcrypt:
40 AC_CHECK_LIB(crypt, main)
41 dnl Replace `main' with a function in -ld:
43 dnl Replace `main' with a function in -ldl:
44 AC_CHECK_LIB(dl, main)
45 dnl Replace `main' with a function in -lkauth:
46 AC_CHECK_LIB(kauth, main)
47 dnl Replace `main' with a function in -lkrb:
48 AC_CHECK_LIB(krb, main)
49 dnl Replace `main' with a function in -llwp:
50 AC_CHECK_LIB(lwp, main)
51 dnl Replace `main' with a function in -ln:
53 dnl Replace `main' with a function in -lnsl:
54 AC_CHECK_LIB(nsl, main)
55 dnl Replace `main' with a function in -lprot:
56 AC_CHECK_LIB(prot, main)
57 dnl Replace `main' with a function in -lrx:
58 AC_CHECK_LIB(rx, main)
59 dnl Replace `main' with a function in -lrxkad:
60 AC_CHECK_LIB(rxkad, main)
61 dnl Replace `main' with a function in -lsocket:
62 AC_CHECK_LIB(socket, main)
63 dnl Replace `main' with a function in -lsys:
64 AC_CHECK_LIB(sys, main)
65 dnl Replace `main' with a function in -lubik:
66 AC_CHECK_LIB(ubik, main)
69 # Check presence of some functions
71 # Check for XPG4 access() function
72 # Be sure to test before adding AFS libs in LIBS path as AFS lib
73 # has such a function that works only on AFS filesystems.
74 AC_CHECK_FUNCS(access)
76 AC_CHECK_FUNCS(pread pwrite)
78 dnl Checks for header files.
82 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)
83 AC_CHECK_HEADER(sys/cdefs.h,,
84 AC_MSG_RESULT([enabling generic cdefs.h from tree])
85 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
88 dnl Checks for typedefs, structures, and compiler characteristics.
100 dnl Checks for library functions.
102 AC_PROG_GCC_TRADITIONAL
109 AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul setpgrp strchr memcpy)
112 dnl Checks for (v)snprintf
113 NETATALK_SNPRINTF_CHECK
115 dnl --------------------------------------------------------------------------
116 dnl specific configuration comes in here:
117 dnl --------------------------------------------------------------------------
119 AC_DEFINE(ADMIN_GRP, 1)
121 AC_ARG_WITH(admin-group,
122 [ --disable-admin-group disable admin group],
123 if test "$enableval" = "no"; then
124 AC_DEFINE(ADMIN_GRP, 0)
125 AC_MSG_RESULT([disabling administrative group support])
134 [ --with-logfile=PATH path for file used by logger [/var/log/netatalk.log]
135 use --without-logfile to disable logger],
136 if test "$withval" = "no"; then
137 AC_DEFINE(DISABLE_LOGGER, 1)
138 AC_MSG_RESULT([logger disabled])
139 elif test "$withval" != "yes"; then
140 AC_DEFINE_UNQUOTED(LOGFILEPATH, "$withval")
141 AC_MSG_RESULT([logfile set to $withval])
143 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
144 AC_MSG_RESULT([logfile set to default])
146 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
147 AC_MSG_RESULT([logfile set to default])
150 AC_ARG_WITH(cracklib,
151 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
152 if test "x$withval" != "xno" ; then
154 AC_CHECK_LIB(crack, main,
155 AC_DEFINE(USE_CRACKLIB)
157 AC_MSG_RESULT([enabling cracklib support])
158 if test "$cracklib" = "yes"; then
159 cracklib="/usr/lib/cracklib_dict"
161 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
162 [path to cracklib dictionary])
163 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
164 AC_MSG_ERROR([cracklib not found!])
170 [ --disable-ddp disable DDP],
171 if test "$enableval" = "no"; then
173 AC_MSG_RESULT([disabling DDP])
178 [ --enable-debug enable debug code],
179 if test "$enableval" != "no"; then
180 if test "$enableval" = "yes"; then
183 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
185 AC_MSG_RESULT([enabling debugging code])
191 [ --enable-afp3 enable AFP 3.x calls],
192 if test "$enableval" = "yes"; then
195 AC_MSG_RESULT([enabling AFP 3.x calls])
199 if test "$afp3" = "yes"; then
204 dnl ----------- A NOTE ABOUT DROPKLUDGE
205 dnl The trouble with this fix is that if you know what the file is called, it
206 dnl can be read from the Unix side. That's okay for most academic institutions
207 dnl since the students don't have telnet access to the Mac servers. There is
208 dnl currently no one working on further development/fixes of DROPKLUDGE.
211 AC_ARG_ENABLE(dropkludge,
212 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
213 if test "$enableval" = "yes"; then
214 AC_DEFINE(DROPKLUDGE, 1)
215 AC_MSG_RESULT([enabling experimental dropbox support])
219 AC_ARG_ENABLE(force-uidgid,
220 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
221 if test "$enableval" = "yes"; then
222 AC_DEFINE(FORCE_UIDGID, 1)
223 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
227 dnl Don't use DB3 unless it's needed
230 dnl Determine DID scheme
231 AC_MSG_CHECKING([for DID scheme to use])
233 [ --with-did=SCHEME set DID scheme (cnid,last)],
234 [ did_scheme="$withval" ],
235 [ did_scheme="cnid" ]
238 if test "x$did_scheme" = "xlast"; then
239 AC_DEFINE(USE_LASTDID, 1)
240 AC_MSG_RESULT([last])
241 elif test "x$did_scheme" = "xcnid"; then
243 AC_DEFINE(CNID_DB, 1)
244 AC_MSG_RESULT([enabling build with CNID DB support])
246 AC_MSG_ERROR([unknown DID scheme])
248 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
250 dnl Determine whether or not to use filename mangling
251 AC_MSG_CHECKING([whether or not to use filename mangling])
252 AC_ARG_WITH(mangling,
253 [ --with-mangling enable filename mangling],
254 if test "$withval" = "yes"; then
255 if test "x$did_scheme" != "xcnid"; then
256 AC_MSG_ERROR([DID scheme must be CNID to use filename mangling])
258 AC_DEFINE(FILE_MANGLING, 1)
264 , AC_MSG_RESULT([no])
267 if test "$did_scheme" = "cnid"; then
273 dnl Determine whether or not to use CDB or transactional DB store
274 AC_MSG_CHECKING([whether or not to use CNID with Concurrent Data Store])
276 [ --with-cdb enable CNID with Concurrent Data Store],
277 if test "$withval" = "no"; then
278 if test "x$did_scheme" != "xcnid"; then
280 AC_MSG_ERROR([DID scheme must be CNID to use CDB])
289 , AC_MSG_RESULT([yes])
292 if test "$USE_CDB" = "yes"; then
293 AC_DEFINE(CNID_DB_CDB, 1)
296 dnl Check for Berkeley DB3 library
297 if test "x$db3_required" = "xyes"; then
298 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
301 dnl Check for quota support
304 dnl Check for optional server location protocol support (used by MacOS X)
307 dnl Check for PAM libs
309 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
310 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
316 AC_MSG_CHECKING([whether shadow support should be enabled])
318 [ --with-shadow enable shadow password support],
319 [shadowpw="$withval"],
322 if test "x$shadowpw" = "xyes"; then
325 AC_MSG_RESULT([$shadowpw])
327 AC_ARG_ENABLE(shell-check,
328 [ --disable-shell-check disable checking for a valid shell],
329 if test "$enableval" = "no"; then
330 AC_DEFINE(DISABLE_SHELLCHECK, 1)
331 AC_MSG_RESULT([disabling valid shell check])
335 AC_ARG_WITH(tcp-wrappers,
336 [ --with-tcp-wrappers enable TCP wrappers support],
337 AC_CHECK_LIB(wrap, tcpd_warn,
339 AFPD_LIBS="$AFPD_LIBS -lwrap"
340 AC_MSG_RESULT([enabling TCP wrappers support])
344 AC_ARG_ENABLE(redhat,
345 [ --enable-redhat use redhat-style sysv configuration ],
346 if test "$enableval" = "yes"; then
349 AC_MSG_RESULT([enabling redhat-style sysv support])
353 [ --enable-suse use suse-style sysv configuration ],
354 if test "$enableval" = "yes"; then
357 AC_MSG_RESULT([enabling suse-style sysv support])
360 AC_ARG_ENABLE(cobalt,
361 [ --enable-cobalt use cobalt-style sysv configuration ],
362 if test "$enableval" = "yes"; then
365 AC_MSG_RESULT([enabling cobalt-style sysv support])
368 AC_ARG_ENABLE(netbsd,
369 [ --enable-netbsd use NetBSD-style rc.d configuration ],
370 if test "x$enableval" = "xyes"; then
373 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
376 dnl ----- timelord compilation (disabled by default)
377 AC_MSG_CHECKING([whether timelord should be compiled])
379 AC_ARG_ENABLE(timelord,
380 [ --enable-timelord enable compilation of timelord server],
381 [compile_timelord="$enableval"],
382 [compile_timelord="no"]
384 AC_MSG_RESULT([$compile_timelord])
386 AC_ARG_WITH(uams-path,
387 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
388 uams_path="$withval",
389 uams_path="${PKGCONFDIR}/uams"
392 AC_ARG_WITH(catsearch,
393 [ --with-catsearch enable fpCatSearch functionality (experimental)],
394 if test "$withval" = "yes"; then
395 AC_DEFINE(WITH_CATSEARCH, 1)
399 dnl --------------------------------------------------------------------------
400 dnl FHS stuff has to be done last because it overrides other defaults
401 dnl --------------------------------------------------------------------------
404 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
405 if test "$enableval" = "yes"; then
406 uams_path="/usr/lib/netatalk"
408 PKGCONFDIR=${sysconfdir}/netatalk
410 mandir="/usr/share/man"
411 AC_DEFINE(FHS_COMPATIBILITY)
413 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
416 dnl --------------------------------------------------------------------------
417 dnl post-FHS substitutions, etc
418 dnl --------------------------------------------------------------------------
421 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
422 [path to UAMs [default=PKGCONF/uams]])
423 UAMS_PATH="${uams_path}"
426 dnl --------------------------------------------------------------------------
427 dnl drop in includes for top level directory structures here...
428 dnl --------------------------------------------------------------------------
430 dnl Note: $(top_srcdir)/include should be added before all other includes
431 dnl so that includes from that directory a preferred to includes from
432 dnl /usr/include or similar places.
433 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
434 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
436 dnl --------------------------------------------------------------------------
437 dnl specific configuration comes in here:
438 dnl --------------------------------------------------------------------------
440 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
442 dnl --------------------- determine operating system from "target"
444 *aix*) this_os=aix ;;
445 *freebsd*) this_os=freebsd ;;
446 *hpux11*) this_os=hpux11 ;;
447 *irix*) this_os=irix ;;
448 *linux*) this_os=linux ;;
449 *osx*) this_os=macosx ;;
450 *darwin*) this_os=macosx ;;
451 *netbsd*) this_os=netbsd ;;
452 *openbsd*) this_os=openbsd ;;
453 *osf*) this_os=tru64 ;;
454 *solaris*) this_os=solaris ;;
458 i386|i486|i586|i686|k7) this_cpu=x86 ;;
459 alpha) this_cpu=alpha ;;
460 mips) this_cpu=mips ;;
461 powerpc|ppc) this_cpu=ppc ;;
464 dnl --------------------- operating system specific flags (port from sys/*)
466 dnl ----- AIX specific -----
467 if test x"$this_os" = "xaix"; then
468 AC_MSG_RESULT([ * AIX specific configuration])
469 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
471 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
472 dnl compilation environment. It's enough to get things defined
473 dnl right in endian.h provided that long long is supported, though.
474 AC_DEFINE(HAVE_32BIT_LONGS)
477 dnl ----- FreeBSD specific -----
478 if test x"$this_os" = "xfreebsd"; then
479 AC_MSG_RESULT([ * FreeBSD specific configuration])
481 AC_DEFINE(SENDFILE_FLAVOR_BSD)
483 AC_DEFINE(NO_CRYPT_H, 1)
486 dnl ----- HP-UX 11 specific -----
487 if test x"$this_os" = "xhpux11"; then
488 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
490 AC_DEFINE(_ISOC9X_SOURCE)
491 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
494 dnl ----- IRIX specific -----
495 if test x"$this_os" = "xirix"; then
496 AC_MSG_RESULT([ * IRIX specific configuration])
498 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
501 dnl ----- Linux specific -----
502 if test x"$this_os" = "xlinux"; then
503 AC_MSG_RESULT([ * Linux specific configuration])
505 dnl ----- check if we need the quotactl wrapper
506 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
507 AC_CHECK_FUNC(quotactl,,
508 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
509 AC_MSG_RESULT([enabling quotactl wrapper])
512 dnl ----- as far as I can tell, dbtob always does the wrong thing
513 dnl ----- on every single version of linux I've ever played with.
514 dnl ----- see etc/afpd/quota.c
515 AC_DEFINE(HAVE_BROKEN_DBTOB)
517 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
518 dnl ----- check if version is newer than 2.2.x
520 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
521 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
522 if [ $majorvers -ge 2 ]; then
523 if [ $minorvers -ge 2 ]; then
525 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
526 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
528 AC_MSG_RESULT([ * found Linux 2.0.x ])
532 dnl ----- Linux/alpha specific -----
533 if test x"$this_cpu" = "xalpha"; then
534 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
535 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
540 dnl ----- Mac OSX specific -----
541 if test x"$this_os" = "xmacosx"; then
542 AC_MSG_RESULT([ * Mac OSX specific configuration])
544 AC_DEFINE(HAVE_BROKEN_CPP)
545 AC_DEFINE(HAVE_2ARG_DBTOB)
546 dnl AC_DEFINE(NO_DLFCN_H)
547 AC_DEFINE(MACOSX_SERVER)
550 dnl ----- NetBSD specific -----
551 if test x"$this_os" = "xnetbsd"; then
552 AC_MSG_RESULT([ * NetBSD specific configuration])
554 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
555 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
556 # If this test is true, it's not an ELF box.
557 # This REALLY should be a configure test.
558 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
560 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
563 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
564 AC_DEFINE(UAM_DHX, 1)
565 AC_DEFINE(NO_CRYPT_H, 1)
568 dnl ----- OpenBSD specific -----
569 if test x"$this_os" = "xopenbsd"; then
570 AC_MSG_RESULT([ * OpenBSD specific configuration])
572 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
574 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
575 AC_DEFINE(UAM_DHX, 1)
576 AC_DEFINE(NO_CRYPT_H, 1)
579 dnl ----- Solaris specific -----
580 if test x"$this_os" = "xsolaris"; then
581 AC_MSG_RESULT([ * Solaris specific configuration])
583 AC_DEFINE(_ISOC9X_SOURCE)
584 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
586 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
589 AC_MSG_RESULT([enabling Solaris kernel module build])
593 dnl ----- Tru64 specific -----
594 if test x"$this_os" = "xtru64"; then
595 AC_MSG_RESULT([ * Tru64 specific configuration])
597 AC_DEFINE(HAVE_64BIT_LONGS)
598 dnl AC_DEFINE(USE_MOUNT_H)
599 AC_DEFINE(USE_OLD_RQUOTA)
600 dnl AC_DEFINE(USE_UFS_QUOTA_H)
602 AC_CHECK_LIB(security,set_auth_parameters)
603 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
608 dnl -- look for openssl
611 dnl --------------------- check for building PGP UAM module
613 AC_ARG_ENABLE(pgp-uam,
614 [ --enable-pgp-uam enable build of PGP UAM module],
615 if test "$enableval" = "yes"; then
616 if test "$compile_ssl" = "yes"; then
617 AC_DEFINE(UAM_PGP, 1)
619 AC_MSG_RESULT([enabling build with PGP UAM module])
624 dnl --------------------- check for building Kerberos v4 UAM module
626 AC_ARG_ENABLE(krb4-uam,
627 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
628 if test "$enableval" = "yes"; then
629 AC_DEFINE(UAM_KRB4, 1)
631 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
634 dnl --------------------- overwrite the config files . . . or not.
636 AC_MSG_CHECKING([whether configuration files should be overwritten])
637 AC_ARG_ENABLE(overwrite,
638 [ --enable-overwrite overwrite configuration files during installation],
639 [OVERWRITE_CONFIG="${enable_overwrite}"],
640 [OVERWRITE_CONFIG="no"]
642 AC_MSG_RESULT([$OVERWRITE_CONFIG])
644 dnl --------------------- last minute substitutions
650 AC_SUBST(OVERWRITE_CONFIG)
652 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
653 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
654 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
655 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
656 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
657 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
658 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
659 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
660 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
661 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
662 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
663 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
664 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
665 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
667 dnl --------------------- generate files
671 bin/adv1tov2/Makefile
674 bin/afppasswd/Makefile
677 bin/getzones/Makefile
678 bin/megatron/Makefile
684 contrib/macusers/Makefile
685 contrib/macusers/macusers
688 contrib/printing/Makefile
689 contrib/shell_utils/Makefile
690 contrib/shell_utils/afpd-mtab.pl
691 contrib/shell_utils/apple_cp
692 contrib/shell_utils/apple_mv
693 contrib/shell_utils/apple_rm
694 contrib/shell_utils/cleanappledouble.pl
695 contrib/shell_utils/netatalkshorternamelinks.pl
696 contrib/timelord/Makefile
698 distrib/config/Makefile
699 distrib/config/netatalk-config
700 distrib/initscripts/Makefile
705 etc/afpd/nls/Makefile
708 etc/uams/uams_krb4/Makefile
712 include/atalk/Makefile
714 libatalk/adouble/Makefile
715 libatalk/asp/Makefile
716 libatalk/atp/Makefile
717 libatalk/cnid/Makefile
718 libatalk/compat/Makefile
719 libatalk/dsi/Makefile
720 libatalk/nbp/Makefile
721 libatalk/netddp/Makefile
722 libatalk/util/Makefile
732 sys/generic/sys/Makefile
733 sys/netatalk/Makefile
735 sys/netbsd/netatalk/Makefile
737 sys/solaris/Makefile.kernel
741 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]