1 dnl $Id: configure.in,v 1.157 2002-04-29 06:23:57 morgana Exp $
2 dnl configure.in for netatalk
4 AC_INIT(bin/adv1tov2/adv1tov2.c)
6 NETATALK_VERSION=`cat 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 dnl Checks for header files.
80 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)
81 AC_CHECK_HEADER(sys/cdefs.h,,
82 AC_MSG_RESULT([enabling generic cdefs.h from tree])
83 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
86 dnl Checks for typedefs, structures, and compiler characteristics.
98 dnl Checks for library functions.
100 AC_PROG_GCC_TRADITIONAL
107 AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp strchr memcpy)
110 dnl --------------------------------------------------------------------------
111 dnl specific configuration comes in here:
112 dnl --------------------------------------------------------------------------
114 AC_DEFINE(ADMIN_GRP, 1)
116 AC_ARG_WITH(admin-group,
117 [ --disable-admin-group disable admin group],
118 if test "$enableval" = "no"; then
119 AC_DEFINE(ADMIN_GRP, 0)
120 AC_MSG_RESULT([disabling administrative group support])
129 [ --with-logfile=PATH path for file used by logger [/var/log/netatalk.log]
130 use --without-logfile to disable logger],
131 if test "$withval" = "no"; then
132 AC_DEFINE(DISABLE_LOGGER, 1)
133 AC_MSG_RESULT([logger disabled])
134 elif test "$withval" != "yes"; then
135 AC_DEFINE_UNQUOTED(LOGFILEPATH, $withval)
136 AC_MSG_RESULT([logfile set to $withval])
138 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
139 AC_MSG_RESULT([logfile set to default])
141 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
142 AC_MSG_RESULT([logfile set to default])
145 AC_ARG_WITH(cracklib,
146 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
147 if test "x$withval" != "xno" ; then
149 AC_CHECK_LIB(crack, main,
150 AC_DEFINE(USE_CRACKLIB)
152 AC_MSG_RESULT([enabling cracklib support])
153 if test "$cracklib" = "yes"; then
154 cracklib="/usr/lib/cracklib_dict"
156 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
157 [path to cracklib dictionary])
158 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
159 AC_MSG_ERROR([cracklib not found!])
165 [ --disable-ddp disable DDP],
166 if test "$enableval" = "no"; then
168 AC_MSG_RESULT([disabling DDP])
173 [ --enable-debug enable debug code],
174 if test "$enableval" != "no"; then
175 if test "$enableval" = "yes"; then
178 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
180 AC_MSG_RESULT([enabling debugging code])
185 dnl ----------- A NOTE ABOUT DROPKLUDGE
186 dnl The trouble with this fix is that if you know what the file is called, it
187 dnl can be read from the Unix side. That's okay for most academic institutions
188 dnl since the students don't have telnet access to the Mac servers. There is
189 dnl currently no one working on further development/fixes of DROPKLUDGE.
192 AC_ARG_ENABLE(dropkludge,
193 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
194 if test "$enableval" = "yes"; then
195 AC_DEFINE(DROPKLUDGE, 1)
196 AC_MSG_RESULT([enabling experimental dropbox support])
200 AC_ARG_ENABLE(force-uidgid,
201 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
202 if test "$enableval" = "yes"; then
203 AC_DEFINE(FORCE_UIDGID, 1)
204 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
208 dnl Don't use DB3 unless it's needed
212 dnl Determine DID scheme
213 AC_MSG_CHECKING([for DID scheme to use])
215 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
216 [ did_scheme="$withval" ],
217 [ did_scheme="last" ]
220 if test "x$did_scheme" = "xlast"; then
221 AC_DEFINE(USE_LASTDID, 1)
222 AC_MSG_RESULT([last])
223 elif test "x$did_scheme" = "xhash"; then
224 AC_MSG_RESULT([device/inode-based hashing])
225 elif test "x$did_scheme" = "xmtab"; then
226 AC_DEFINE(DID_MTAB, 1)
227 AC_MSG_RESULT([mtab-based DID creation support])
228 elif test "x$did_scheme" = "xcnid"; then
230 AC_DEFINE(CNID_DB, 1)
231 AC_MSG_RESULT([enabling build with CNID DB support])
233 AC_MSG_ERROR([unknown DID scheme])
235 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
237 dnl Check for Berkeley DB3 library
238 if test "x$db3_required" = "xyes"; then
239 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
242 dnl Check for quota support
245 dnl Check for optional server location protocol support (used by MacOS X)
248 dnl Check for PAM libs
250 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
251 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
257 AC_MSG_CHECKING([whether shadow support should be enabled])
259 [ --with-shadow enable shadow password support],
260 [shadowpw="$withval"],
263 if test "x$shadowpw" = "xyes"; then
266 AC_MSG_RESULT([$shadowpw])
268 AC_ARG_ENABLE(shell-check,
269 [ --disable-shell-check disable checking for a valid shell],
270 if test "$enableval" = "no"; then
271 AC_DEFINE(DISABLE_SHELLCHECK, 1)
272 AC_MSG_RESULT([disabling valid shell check])
276 AC_MSG_CHECKING([whether flock locks should be enabled])
277 AC_ARG_WITH(flock-locks,
278 [ --with-flock-locks enable flock locks support],
279 [flock_locks="$withval"],
282 if test "x$flock_locks" = "xyes"; then
283 AC_DEFINE(USE_FLOCK_LOCKS)
285 AC_MSG_RESULT([$flock_locks])
287 AC_ARG_WITH(tcp-wrappers,
288 [ --with-tcp-wrappers enable TCP wrappers support],
289 AC_CHECK_LIB(wrap, tcpd_warn,
291 AFPD_LIBS="$AFPD_LIBS -lwrap"
292 AC_MSG_RESULT([enabling TCP wrappers support])
296 AC_ARG_ENABLE(redhat,
297 [ --enable-redhat use redhat-style sysv configuration ],
298 if test "$enableval" = "yes"; then
301 AC_MSG_RESULT([enabling redhat-style sysv support])
305 [ --enable-suse use suse-style sysv configuration ],
306 if test "$enableval" = "yes"; then
309 AC_MSG_RESULT([enabling suse-style sysv support])
312 AC_ARG_ENABLE(cobalt,
313 [ --enable-cobalt use cobalt-style sysv configuration ],
314 if test "$enableval" = "yes"; then
317 AC_MSG_RESULT([enabling cobalt-style sysv support])
320 AC_ARG_ENABLE(netbsd,
321 [ --enable-netbsd use NetBSD-style rc.d configuration ],
322 if test "x$enableval" = "xyes"; then
325 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
328 dnl ----- timelord compilation (disabled by default)
329 AC_MSG_CHECKING([whether timelord should be compiled])
331 AC_ARG_ENABLE(timelord,
332 [ --enable-timelord enable compilation of timelord server],
333 [compile_timelord="$enableval"],
334 [compile_timelord="no"]
336 AC_MSG_RESULT([$compile_timelord])
338 AC_ARG_WITH(uams-path,
339 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
340 uams_path="$withval",
341 uams_path="${PKGCONFDIR}/uams"
344 dnl --------------------------------------------------------------------------
345 dnl FHS stuff has to be done last because it overrides other defaults
346 dnl --------------------------------------------------------------------------
349 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
350 if test "$enableval" = "yes"; then
351 uams_path="/usr/lib/netatalk"
353 PKGCONFDIR=${sysconfdir}/netatalk
355 mandir="/usr/share/man"
356 AC_DEFINE(FHS_COMPATIBILITY)
358 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
361 dnl --------------------------------------------------------------------------
362 dnl post-FHS substitutions, etc
363 dnl --------------------------------------------------------------------------
366 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
367 [path to UAMs [default=PKGCONF/uams]])
368 UAMS_PATH="${uams_path}"
371 dnl --------------------------------------------------------------------------
372 dnl drop in includes for top level directory structures here...
373 dnl --------------------------------------------------------------------------
375 dnl Note: $(top_srcdir)/include should be added before all other includes
376 dnl so that includes from that directory a preferred to includes from
377 dnl /usr/include or similar places.
378 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
379 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
381 dnl --------------------------------------------------------------------------
382 dnl specific configuration comes in here:
383 dnl --------------------------------------------------------------------------
385 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
387 dnl --------------------- determine operating system from "target"
389 *aix*) this_os=aix ;;
390 *freebsd*) this_os=freebsd ;;
391 *hpux11*) this_os=hpux11 ;;
392 *irix*) this_os=irix ;;
393 *linux*) this_os=linux ;;
394 *osx*) this_os=macosx ;;
395 *darwin*) this_os=macosx ;;
396 *netbsd*) this_os=netbsd ;;
397 *openbsd*) this_os=openbsd ;;
398 *osf*) this_os=tru64 ;;
399 *solaris*) this_os=solaris ;;
403 i386|i486|i586|i686|k7) this_cpu=x86 ;;
404 alpha) this_cpu=alpha ;;
405 mips) this_cpu=mips ;;
406 powerpc|ppc) this_cpu=ppc ;;
409 dnl --------------------- operating system specific flags (port from sys/*)
411 dnl ----- AIX specific -----
412 if test x"$this_os" = "xaix"; then
413 AC_MSG_RESULT([ * AIX specific configuration])
414 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
416 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
417 dnl compilation environment. It's enough to get things defined
418 dnl right in endian.h provided that long long is supported, though.
419 AC_DEFINE(HAVE_32BIT_LONGS)
422 dnl ----- FreeBSD specific -----
423 if test x"$this_os" = "xfreebsd"; then
424 AC_MSG_RESULT([ * FreeBSD specific configuration])
426 AC_DEFINE(SENDFILE_FLAVOR_BSD)
428 AC_DEFINE(NO_CRYPT_H, 1)
431 dnl ----- HP-UX 11 specific -----
432 if test x"$this_os" = "xhpux11"; then
433 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
435 AC_DEFINE(_ISOC9X_SOURCE)
436 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
439 dnl ----- IRIX specific -----
440 if test x"$this_os" = "xirix"; then
441 AC_MSG_RESULT([ * IRIX specific configuration])
443 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
446 dnl ----- Linux specific -----
447 if test x"$this_os" = "xlinux"; then
448 AC_MSG_RESULT([ * Linux specific configuration])
450 dnl ----- check if we need the quotactl wrapper
451 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
452 AC_CHECK_FUNC(quotactl,,
453 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
454 AC_MSG_RESULT([enabling quotactl wrapper])
457 dnl ----- as far as I can tell, dbtob always does the wrong thing
458 dnl ----- on every single version of linux I've ever played with.
459 dnl ----- see etc/afpd/quota.c
460 AC_DEFINE(HAVE_BROKEN_DBTOB)
462 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
463 dnl ----- check if version is newer than 2.2.x
465 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
466 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
467 if [ $majorvers -ge 2 ]; then
468 if [ $minorvers -ge 2 ]; then
470 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
471 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
473 AC_MSG_RESULT([ * found Linux 2.0.x ])
477 dnl ----- Linux/alpha specific -----
478 if test x"$this_cpu" = "xalpha"; then
479 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
480 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
485 dnl ----- Mac OSX specific -----
486 if test x"$this_os" = "xmacosx"; then
487 AC_MSG_RESULT([ * Mac OSX specific configuration])
489 AC_DEFINE(HAVE_BROKEN_CPP)
490 AC_DEFINE(HAVE_2ARG_DBTOB)
491 dnl AC_DEFINE(NO_DLFCN_H)
492 AC_DEFINE(MACOSX_SERVER)
495 dnl ----- NetBSD specific -----
496 if test x"$this_os" = "xnetbsd"; then
497 AC_MSG_RESULT([ * NetBSD specific configuration])
499 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
500 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
501 # If this test is true, it's not an ELF box.
502 # This REALLY should be a configure test.
503 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
505 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
508 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
509 AC_DEFINE(UAM_DHX, 1)
510 AC_DEFINE(NO_CRYPT_H, 1)
513 dnl ----- OpenBSD specific -----
514 if test x"$this_os" = "xopenbsd"; then
515 AC_MSG_RESULT([ * OpenBSD specific configuration])
517 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
519 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
520 AC_DEFINE(UAM_DHX, 1)
521 AC_DEFINE(NO_CRYPT_H, 1)
524 dnl ----- Solaris specific -----
525 if test x"$this_os" = "xsolaris"; then
526 AC_MSG_RESULT([ * Solaris specific configuration])
528 AC_DEFINE(_ISOC9X_SOURCE)
529 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
531 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
534 AC_MSG_RESULT([enabling Solaris kernel module build])
538 dnl ----- Tru64 specific -----
539 if test x"$this_os" = "xtru64"; then
540 AC_MSG_RESULT([ * Tru64 specific configuration])
542 AC_DEFINE(HAVE_64BIT_LONGS)
543 dnl AC_DEFINE(USE_MOUNT_H)
544 AC_DEFINE(USE_OLD_RQUOTA)
545 dnl AC_DEFINE(USE_UFS_QUOTA_H)
547 AC_CHECK_LIB(security,set_auth_parameters)
548 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
553 dnl -- look for openssl
556 dnl --------------------- check for building PGP UAM module
558 AC_ARG_ENABLE(pgp-uam,
559 [ --enable-pgp-uam enable build of PGP UAM module],
560 if test "$enableval" = "yes"; then
561 if test "$compile_ssl" = "yes"; then
562 AC_DEFINE(UAM_PGP, 1)
564 AC_MSG_RESULT([enabling build with PGP UAM module])
569 dnl --------------------- check for building Kerberos v4 UAM module
571 AC_ARG_ENABLE(krb4-uam,
572 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
573 if test "$enableval" = "yes"; then
574 AC_DEFINE(UAM_KRB4, 1)
576 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
579 dnl --------------------- overwrite the config files . . . or not.
581 AC_MSG_CHECKING([whether configuration files should be overwritten])
582 AC_ARG_ENABLE(overwrite,
583 [ --enable-overwrite overwrite configuration files during installation],
584 [OVERWRITE_CONFIG="${enable_overwrite}"],
585 [OVERWRITE_CONFIG="no"]
587 AC_MSG_RESULT([$OVERWRITE_CONFIG])
589 dnl --------------------- last minute substitutions
595 AC_SUBST(OVERWRITE_CONFIG)
597 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
598 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
599 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
600 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
601 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
602 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
603 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
604 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
605 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
606 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
607 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
608 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
609 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
610 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
612 dnl --------------------- generate files
616 bin/adv1tov2/Makefile
619 bin/afppasswd/Makefile
622 bin/getzones/Makefile
623 bin/megatron/Makefile
629 contrib/macusers/Makefile
630 contrib/macusers/macusers
633 contrib/printing/Makefile
634 contrib/shell_utils/Makefile
635 contrib/shell_utils/afpd-mtab.pl
636 contrib/shell_utils/apple_cp
637 contrib/shell_utils/apple_mv
638 contrib/shell_utils/apple_rm
639 contrib/shell_utils/cleanappledouble.pl
640 contrib/shell_utils/netatalkshorternamelinks.pl
641 contrib/timelord/Makefile
643 distrib/config/Makefile
644 distrib/config/netatalk-config
645 distrib/initscripts/Makefile
650 etc/afpd/nls/Makefile
653 etc/uams/uams_krb4/Makefile
657 include/atalk/Makefile
659 libatalk/adouble/Makefile
660 libatalk/asp/Makefile
661 libatalk/atp/Makefile
662 libatalk/cnid/Makefile
663 libatalk/compat/Makefile
664 libatalk/dsi/Makefile
665 libatalk/nbp/Makefile
666 libatalk/netddp/Makefile
667 libatalk/util/Makefile
677 sys/generic/sys/Makefile
678 sys/netatalk/Makefile
680 sys/netbsd/netatalk/Makefile
682 sys/solaris/Makefile.kernel
686 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]