1 dnl $Id: configure.in,v 1.156 2002-02-13 16:48:10 srittau 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
246 AC_ARG_WITH(message-dir,
247 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
249 if test x"$msg_dir" = "x"; then
250 msg_dir="${PKGCONFDIR}/msg"
252 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
253 [path to message dir [[PKGCONF/msg]]])
254 SERVERTEXT="$msg_dir"
258 dnl Check for optional server location protocol support (used by MacOS X)
261 dnl Check for PAM libs
263 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
264 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
270 AC_MSG_CHECKING([whether shadow support should be enabled])
272 [ --with-shadow enable shadow password support],
273 [shadowpw="$withval"],
276 if test "x$shadowpw" = "xyes"; then
279 AC_MSG_RESULT([$shadowpw])
281 AC_ARG_ENABLE(shell-check,
282 [ --disable-shell-check disable checking for a valid shell],
283 if test "$enableval" = "no"; then
284 AC_DEFINE(DISABLE_SHELLCHECK, 1)
285 AC_MSG_RESULT([disabling valid shell check])
289 AC_MSG_CHECKING([whether flock locks should be enabled])
290 AC_ARG_WITH(flock-locks,
291 [ --with-flock-locks enable flock locks support],
292 [flock_locks="$withval"],
295 if test "x$flock_locks" = "xyes"; then
296 AC_DEFINE(USE_FLOCK_LOCKS)
298 AC_MSG_RESULT([$flock_locks])
300 AC_ARG_WITH(tcp-wrappers,
301 [ --with-tcp-wrappers enable TCP wrappers support],
302 AC_CHECK_LIB(wrap, tcpd_warn,
304 AFPD_LIBS="$AFPD_LIBS -lwrap"
305 AC_MSG_RESULT([enabling TCP wrappers support])
309 AC_ARG_ENABLE(redhat,
310 [ --enable-redhat use redhat-style sysv configuration ],
311 if test "$enableval" = "yes"; then
314 AC_MSG_RESULT([enabling redhat-style sysv support])
318 [ --enable-suse use suse-style sysv configuration ],
319 if test "$enableval" = "yes"; then
322 AC_MSG_RESULT([enabling suse-style sysv support])
325 AC_ARG_ENABLE(cobalt,
326 [ --enable-cobalt use cobalt-style sysv configuration ],
327 if test "$enableval" = "yes"; then
330 AC_MSG_RESULT([enabling cobalt-style sysv support])
333 AC_ARG_ENABLE(netbsd,
334 [ --enable-netbsd use NetBSD-style rc.d configuration ],
335 if test "x$enableval" = "xyes"; then
338 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
341 dnl ----- timelord compilation (disabled by default)
342 AC_MSG_CHECKING([whether timelord should be compiled])
344 AC_ARG_ENABLE(timelord,
345 [ --enable-timelord enable compilation of timelord server],
346 [compile_timelord="$enableval"],
347 [compile_timelord="no"]
349 AC_MSG_RESULT([$compile_timelord])
351 AC_ARG_WITH(uams-path,
352 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
353 uams_path="$withval",
354 uams_path="${PKGCONFDIR}/uams"
357 dnl --------------------------------------------------------------------------
358 dnl FHS stuff has to be done last because it overrides other defaults
359 dnl --------------------------------------------------------------------------
362 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
363 if test "$enableval" = "yes"; then
364 uams_path="/usr/lib/netatalk"
366 PKGCONFDIR=${sysconfdir}/netatalk
368 mandir="/usr/share/man"
369 AC_DEFINE(FHS_COMPATIBILITY)
371 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
374 dnl --------------------------------------------------------------------------
375 dnl post-FHS substitutions, etc
376 dnl --------------------------------------------------------------------------
379 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
380 [path to UAMs [default=PKGCONF/uams]])
381 UAMS_PATH="${uams_path}"
384 dnl --------------------------------------------------------------------------
385 dnl drop in includes for top level directory structures here...
386 dnl --------------------------------------------------------------------------
388 dnl Note: $(top_srcdir)/include should be added before all other includes
389 dnl so that includes from that directory a preferred to includes from
390 dnl /usr/include or similar places.
391 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
392 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
394 dnl --------------------------------------------------------------------------
395 dnl specific configuration comes in here:
396 dnl --------------------------------------------------------------------------
398 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
400 dnl --------------------- determine operating system from "target"
402 *aix*) this_os=aix ;;
403 *freebsd*) this_os=freebsd ;;
404 *hpux11*) this_os=hpux11 ;;
405 *irix*) this_os=irix ;;
406 *linux*) this_os=linux ;;
407 *osx*) this_os=macosx ;;
408 *darwin*) this_os=macosx ;;
409 *netbsd*) this_os=netbsd ;;
410 *openbsd*) this_os=openbsd ;;
411 *osf*) this_os=tru64 ;;
412 *solaris*) this_os=solaris ;;
416 i386|i486|i586|i686|k7) this_cpu=x86 ;;
417 alpha) this_cpu=alpha ;;
418 mips) this_cpu=mips ;;
419 powerpc|ppc) this_cpu=ppc ;;
422 dnl --------------------- operating system specific flags (port from sys/*)
424 dnl ----- AIX specific -----
425 if test x"$this_os" = "xaix"; then
426 AC_MSG_RESULT([ * AIX specific configuration])
427 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
429 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
430 dnl compilation environment. It's enough to get things defined
431 dnl right in endian.h provided that long long is supported, though.
432 AC_DEFINE(HAVE_32BIT_LONGS)
435 dnl ----- FreeBSD specific -----
436 if test x"$this_os" = "xfreebsd"; then
437 AC_MSG_RESULT([ * FreeBSD specific configuration])
439 AC_DEFINE(SENDFILE_FLAVOR_BSD)
441 AC_DEFINE(NO_CRYPT_H, 1)
444 dnl ----- HP-UX 11 specific -----
445 if test x"$this_os" = "xhpux11"; then
446 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
448 AC_DEFINE(_ISOC9X_SOURCE)
449 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
452 dnl ----- IRIX specific -----
453 if test x"$this_os" = "xirix"; then
454 AC_MSG_RESULT([ * IRIX specific configuration])
456 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
459 dnl ----- Linux specific -----
460 if test x"$this_os" = "xlinux"; then
461 AC_MSG_RESULT([ * Linux specific configuration])
463 dnl ----- check if we need the quotactl wrapper
464 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
465 AC_CHECK_FUNC(quotactl,,
466 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
467 AC_MSG_RESULT([enabling quotactl wrapper])
470 dnl ----- as far as I can tell, dbtob always does the wrong thing
471 dnl ----- on every single version of linux I've ever played with.
472 dnl ----- see etc/afpd/quota.c
473 AC_DEFINE(HAVE_BROKEN_DBTOB)
475 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
476 dnl ----- check if version is newer than 2.2.x
478 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
479 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
480 if [ $majorvers -ge 2 ]; then
481 if [ $minorvers -ge 2 ]; then
483 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
484 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
486 AC_MSG_RESULT([ * found Linux 2.0.x ])
490 dnl ----- Linux/alpha specific -----
491 if test x"$this_cpu" = "xalpha"; then
492 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
493 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
498 dnl ----- Mac OSX specific -----
499 if test x"$this_os" = "xmacosx"; then
500 AC_MSG_RESULT([ * Mac OSX specific configuration])
502 AC_DEFINE(HAVE_BROKEN_CPP)
503 AC_DEFINE(HAVE_2ARG_DBTOB)
504 dnl AC_DEFINE(NO_DLFCN_H)
505 AC_DEFINE(MACOSX_SERVER)
508 dnl ----- NetBSD specific -----
509 if test x"$this_os" = "xnetbsd"; then
510 AC_MSG_RESULT([ * NetBSD specific configuration])
512 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
513 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
514 # If this test is true, it's not an ELF box.
515 # This REALLY should be a configure test.
516 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
518 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
521 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
522 AC_DEFINE(UAM_DHX, 1)
523 AC_DEFINE(NO_CRYPT_H, 1)
526 dnl ----- OpenBSD specific -----
527 if test x"$this_os" = "xopenbsd"; then
528 AC_MSG_RESULT([ * OpenBSD specific configuration])
530 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
532 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
533 AC_DEFINE(UAM_DHX, 1)
534 AC_DEFINE(NO_CRYPT_H, 1)
537 dnl ----- Solaris specific -----
538 if test x"$this_os" = "xsolaris"; then
539 AC_MSG_RESULT([ * Solaris specific configuration])
541 AC_DEFINE(_ISOC9X_SOURCE)
542 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
544 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
547 AC_MSG_RESULT([enabling Solaris kernel module build])
551 dnl ----- Tru64 specific -----
552 if test x"$this_os" = "xtru64"; then
553 AC_MSG_RESULT([ * Tru64 specific configuration])
555 AC_DEFINE(HAVE_64BIT_LONGS)
556 dnl AC_DEFINE(USE_MOUNT_H)
557 AC_DEFINE(USE_OLD_RQUOTA)
558 dnl AC_DEFINE(USE_UFS_QUOTA_H)
560 AC_CHECK_LIB(security,set_auth_parameters)
561 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
566 dnl -- look for openssl
569 dnl --------------------- check for building PGP UAM module
571 AC_ARG_ENABLE(pgp-uam,
572 [ --enable-pgp-uam enable build of PGP UAM module],
573 if test "$enableval" = "yes"; then
574 if test "$compile_ssl" = "yes"; then
575 AC_DEFINE(UAM_PGP, 1)
577 AC_MSG_RESULT([enabling build with PGP UAM module])
582 dnl --------------------- check for building Kerberos v4 UAM module
584 AC_ARG_ENABLE(krb4-uam,
585 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
586 if test "$enableval" = "yes"; then
587 AC_DEFINE(UAM_KRB4, 1)
589 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
592 dnl --------------------- overwrite the config files . . . or not.
594 AC_MSG_CHECKING([whether configuration files should be overwritten])
595 AC_ARG_ENABLE(overwrite,
596 [ --enable-overwrite overwrite configuration files during installation],
597 [OVERWRITE_CONFIG="${enable_overwrite}"],
598 [OVERWRITE_CONFIG="no"]
600 AC_MSG_RESULT([$OVERWRITE_CONFIG])
602 dnl --------------------- last minute substitutions
608 AC_SUBST(OVERWRITE_CONFIG)
610 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
611 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
612 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
613 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
614 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
615 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
616 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
617 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
618 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
619 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
620 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
621 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
622 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
623 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
625 dnl --------------------- generate files
629 bin/adv1tov2/Makefile
632 bin/afppasswd/Makefile
635 bin/getzones/Makefile
636 bin/megatron/Makefile
642 contrib/macusers/Makefile
643 contrib/macusers/macusers
646 contrib/printing/Makefile
647 contrib/shell_utils/Makefile
648 contrib/shell_utils/afpd-mtab.pl
649 contrib/shell_utils/apple_cp
650 contrib/shell_utils/apple_mv
651 contrib/shell_utils/apple_rm
652 contrib/shell_utils/cleanappledouble.pl
653 contrib/shell_utils/netatalkshorternamelinks.pl
654 contrib/timelord/Makefile
656 distrib/config/Makefile
657 distrib/config/netatalk-config
658 distrib/initscripts/Makefile
663 etc/afpd/nls/Makefile
666 etc/uams/uams_krb4/Makefile
670 include/atalk/Makefile
672 libatalk/adouble/Makefile
673 libatalk/asp/Makefile
674 libatalk/atp/Makefile
675 libatalk/cnid/Makefile
676 libatalk/compat/Makefile
677 libatalk/dsi/Makefile
678 libatalk/nbp/Makefile
679 libatalk/netddp/Makefile
680 libatalk/util/Makefile
690 sys/generic/sys/Makefile
691 sys/netatalk/Makefile
693 sys/netbsd/netatalk/Makefile
695 sys/solaris/Makefile.kernel
699 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]