1 dnl $Id: configure.in,v 1.126 2001-11-16 15:44:31 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 Reset locations to proper places
14 AC_PREFIX_DEFAULT(/usr/local)
16 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 -lcom_err:
40 AC_CHECK_LIB(com_err, main)
41 dnl Replace `main' with a function in -lcrypt:
42 AC_CHECK_LIB(crypt, main)
43 dnl Replace `main' with a function in -ld:
45 dnl Replace `main' with a function in -ldl:
46 AC_CHECK_LIB(dl, main)
47 dnl Replace `main' with a function in -lkauth:
48 AC_CHECK_LIB(kauth, main)
49 dnl Replace `main' with a function in -lkrb:
50 AC_CHECK_LIB(krb, main)
51 dnl Replace `main' with a function in -llwp:
52 AC_CHECK_LIB(lwp, main)
53 dnl Replace `main' with a function in -ln:
55 dnl Replace `main' with a function in -lnsl:
56 AC_CHECK_LIB(nsl, main)
57 dnl Replace `main' with a function in -lprot:
58 AC_CHECK_LIB(prot, main)
59 dnl Replace `main' with a function in -lresolv:
60 AC_CHECK_LIB(resolv, main)
61 dnl Replace `main' with a function in -lrpcsvc:
62 AC_CHECK_LIB(rpcsvc, main)
63 dnl Replace `main' with a function in -lrx:
64 AC_CHECK_LIB(rx, main)
65 dnl Replace `main' with a function in -lrxkad:
66 AC_CHECK_LIB(rxkad, main)
67 dnl Replace `main' with a function in -lsocket:
68 AC_CHECK_LIB(socket, main)
69 dnl Replace `main' with a function in -lsys:
70 AC_CHECK_LIB(sys, main)
71 dnl Replace `main' with a function in -lubik:
72 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 dnl Checks for header files.
86 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 security/pam_appl.h)
87 AC_CHECK_HEADER(sys/cdefs.h,,
88 AC_MSG_RESULT([enabling generic cdefs.h from tree])
89 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
92 # Allow user to specify flags
94 [ --with-cflags specify additional flags to pass to compiler],
96 if test "x$withval" != "xno" ; then
97 CFLAGS="$CFLAGS $withval"
102 [ --with-libs specify additional libraries to link with],
104 if test "x$withval" != "xno" ; then
105 LIBS="$LIBS $withval"
110 dnl Checks for typedefs, structures, and compiler characteristics.
122 dnl Checks for library functions.
124 AC_PROG_GCC_TRADITIONAL
131 AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp strchr memcpy)
134 dnl --------------------------------------------------------------------------
135 dnl specific configuration comes in here:
136 dnl --------------------------------------------------------------------------
138 AC_DEFINE(ADMIN_GRP, 1)
140 AC_ARG_WITH(admin-group,
141 [ --disable-admin-group disable admin group],
142 if test "$enableval" = "no"; then
143 AC_DEFINE(ADMIN_GRP, 0)
144 AC_MSG_RESULT([disabling administrative group support])
149 [ --enable-afs enable AFS support],
150 if test "$enableval" = "yes"; then
152 AC_MSG_RESULT([enabling AFS support])
156 AC_ARG_WITH(config-dir,
157 [ --with-config-dir=DIR obsolete - use --with-pkgconfdir],
158 sysconfdir="$withval",
159 if test "x$prefix" = "xNONE"; then
160 sysconfdir="$ac_default_prefix/etc"
162 sysconfdir="${prefix}/etc"
166 AC_ARG_WITH(pkgconfdir,
167 [ --with-pkgconfdir=DIR package specific configuration in DIR
168 [[SYSCONF/netatalk]]],
169 PKGCONFDIR="$withval",
170 PKGCONFDIR="${sysconfdir}/netatalk"
173 AC_ARG_WITH(cracklib,
174 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
175 if test "x$withval" != "xno" ; then
177 AC_CHECK_LIB(crack, main,
178 AC_DEFINE(USE_CRACKLIB)
180 AC_MSG_RESULT([enabling cracklib support])
181 if test "$cracklib" = "yes"; then
182 cracklib="/usr/lib/cracklib_dict"
184 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
185 [path to cracklib dictionary])
186 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
187 AC_MSG_ERROR([cracklib not found!])
193 [ --disable-ddp disable DDP],
194 if test "$enableval" = "no"; then
196 AC_MSG_RESULT([disabling DDP])
201 [ --enable-debug enable debug code],
202 if test "$enableval" != "no"; then
203 if test "$enableval" = "yes"; then
206 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
208 AC_MSG_RESULT([enabling debugging code])
215 dnl ----------- A NOTE ABOUT DROPKLUDGE
216 dnl The trouble with this fix is that if you know what the file is called, it
217 dnl can be read from the Unix side. That's okay for most academic institutions
218 dnl since the students don't have telnet access to the Mac servers. There is
219 dnl currently no one working on further development/fixes of DROPKLUDGE.
222 AC_ARG_ENABLE(dropkludge,
223 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
224 if test "$enableval" = "yes"; then
225 AC_DEFINE(DROPKLUDGE, 1)
226 AC_MSG_RESULT([enabling experimental dropbox support])
230 AC_ARG_ENABLE(force-uidgid,
231 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
232 if test "$enableval" = "yes"; then
233 AC_DEFINE(FORCE_UIDGID, 1)
234 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
238 dnl Don't use DB3 unless it's needed
241 dnl Check for CNID DB support
242 AC_MSG_CHECKING([whether CNID support should be enabled])
243 AC_ARG_ENABLE(cnid-db,
244 [ --enable-cnid-db use persistent cnid database per volume (EXPERIMENTAL) ],
246 if test "x$enableval" = "xyes"; then
254 ],[AC_MSG_RESULT([no])]
257 dnl Check for Berkeley DB3 library
258 if test "x$db3_required" = "xyes"; then
259 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
261 CFLAGS="$CFLAGS $DB3_CFLAGS"
262 LIBS="$LIBS $DB3_LIBS"
265 [ --with-did=SCHEME set DID scheme (last,mtab)],
266 if test "x$withval" != "xno" ; then
267 if test "$withval" = "last"; then
268 AC_DEFINE(USE_LASTDID, 1)
269 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
271 if test "$withval" = "mtab"; then
272 AC_DEFINE(DID_MTAB, 1)
273 AC_MSG_RESULT([enabling mtab-based DID creation support])
279 AC_ARG_WITH(message-dir,
280 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
282 if test x"$msg_dir" = "x"; then
283 msg_dir="${PKGCONFDIR}/msg"
285 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
286 [path to message dir [[PKGCONF/msg]]])
287 SERVERTEXT="$msg_dir"
291 AC_ARG_ENABLE(srvloc,
292 [ --enable-srvloc turn on Server Location Protocol support (EXPERIMENTAL)],
297 dnl Conditional for optional server location protocol support (used by OS X)
298 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
299 if test "x$srvloc" != "xno"; then
300 for slpdir in "" $srvloc /usr /usr/local ; do
301 if test -f "$slpdir/include/slp.h" ; then
302 LIBS="$LIBS -L$slpdir/lib -lslp"
303 CFLAGS="$CFLAGS -I$slpdir/include"
304 AC_CHECK_LIB(slp,SLPOpen)
305 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
306 AC_DEFINE(USE_SRVLOC, 1)
313 AC_MSG_CHECKING([if we should even bother with PAM])
315 [ --with-pam enable PAM support],
316 [PAM_MSG="$withval"],
319 AC_MSG_RESULT($PAM_MSG)
323 if test "x$PAM_MSG" = "xyes"; then
324 if test "x$ac_cv_header_security_pam_appl_h" = "xyes" ; then
326 AC_CHECK_LIB(pam, pam_set_item,
327 [PAPD_LIBS="$PAPD_LIBS -lpam"; AFPD_LIBS="$AFPD_LIBS -lpam"; use_pam_so=yes; compile_pam=yes; AC_DEFINE(USE_PAM)],
328 [use_pam_so=no; compile_pam=no]
336 AC_MSG_CHECKING([whether shadow support should be enabled])
338 [ --with-shadow enable shadow password support],
339 [shadowpw="$withval"],
342 if test "x$shadowpw" = "xyes"; then
345 AC_MSG_RESULT([$shadowpw])
347 AC_ARG_ENABLE(shell-check,
348 [ --disable-shell-check disable checking for a valid shell],
349 if test "$enableval" = "no"; then
350 AC_DEFINE(DISABLE_SHELLCHECK, 1)
351 AC_MSG_RESULT([disabling valid shell check])
355 AC_MSG_CHECKING([whether flock locks should be enabled])
356 AC_ARG_WITH(flock-locks,
357 [ --with-flock-locks enable flock locks support],
358 [flock_locks="$withval"],
361 if test "x$flock_locks" = "xyes"; then
362 AC_DEFINE(USE_FLOCK_LOCKS)
364 AC_MSG_RESULT([$flock_locks])
366 AC_ARG_WITH(tcp-wrappers,
367 [ --with-tcp-wrappers enable TCP wrappers support],
368 AC_CHECK_LIB(wrap, tcpd_warn,
370 AFPD_LIBS="$AFPD_LIBS -lwrap"
371 AC_MSG_RESULT([enabling TCP wrappers support])
375 AC_ARG_ENABLE(redhat,
376 [ --enable-redhat use redhat-style sysv configuration ],
377 if test "$enableval" = "yes"; then
380 AC_MSG_RESULT([enabling redhat-style sysv support])
384 [ --enable-suse use suse-style sysv configuration ],
385 if test "$enableval" = "yes"; then
388 AC_MSG_RESULT([enabling suse-style sysv support])
391 AC_ARG_ENABLE(cobalt,
392 [ --enable-cobalt use cobalt-style sysv configuration ],
393 if test "$enableval" = "yes"; then
396 AC_MSG_RESULT([enabling cobalt-style sysv support])
399 dnl ----- timelord compilation (disabled by default)
400 AC_MSG_CHECKING([whether timelord should be compiled])
402 AC_ARG_ENABLE(timelord,
403 [ --enable-timelord enable compilation of timelord server],
404 [compile_timelord="$enableval"],
405 [compile_timelord="no"]
407 AC_MSG_RESULT([$compile_timelord])
409 AC_ARG_WITH(uams-path,
410 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
411 uams_path="$withval",
412 uams_path="${PKGCONFDIR}/uams"
415 dnl --------------------------------------------------------------------------
416 dnl FHS stuff has to be done last because it overrides other defaults
417 dnl --------------------------------------------------------------------------
420 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
421 if test "$enableval" = "yes"; then
422 uams_path="/usr/lib/netatalk"
424 PKGCONFDIR=${sysconfdir}/netatalk
426 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
427 AC_DEFINE(FHS_COMPATIBILITY)
429 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
432 dnl --------------------------------------------------------------------------
433 dnl post-FHS substitutions, etc
434 dnl --------------------------------------------------------------------------
437 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
438 [path to UAMs [default=PKGCONF/uams]])
439 UAMS_PATH="${uams_path}"
442 dnl --------------------------------------------------------------------------
443 dnl drop in includes for top level directory structures here...
444 dnl --------------------------------------------------------------------------
446 dnl Note: $(top_srcdir)/include should be added before all other includes
447 dnl so that includes from that directory a preferred to includes from
448 dnl /usr/include or similar places.
449 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
450 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
452 dnl --------------------------------------------------------------------------
453 dnl specific configuration comes in here:
454 dnl --------------------------------------------------------------------------
456 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
458 dnl --------------------- determine operating system from "target"
460 *aix*) this_os=aix ;;
461 *freebsd*) this_os=freebsd ;;
462 *hpux11*) this_os=hpux11 ;;
463 *irix*) this_os=irix ;;
464 *linux*) this_os=linux ;;
465 *osx*) this_os=macosx ;;
466 *netbsd*) this_os=netbsd ;;
467 *openbsd*) this_os=openbsd ;;
468 *osf*) this_os=tru64 ;;
469 *solaris*) this_os=solaris ;;
473 i386|i486|i586|i686|k7) this_cpu=x86 ;;
474 alpha) this_cpu=alpha ;;
475 mips) this_cpu=mips ;;
476 powerpc|ppc) this_cpu=ppc ;;
479 dnl --------------------- operating system specific flags (port from sys/*)
481 dnl ----- AIX specific -----
482 if test x"$this_os" = "xaix"; then
483 AC_MSG_RESULT([ * AIX specific configuration])
484 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
486 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
487 dnl compilation environment. It's enough to get things defined
488 dnl right in endian.h provided that long long is supported, though.
489 AC_DEFINE(HAVE_32BIT_LONGS)
492 dnl ----- FreeBSD specific -----
493 if test x"$this_os" = "xfreebsd"; then
494 AC_MSG_RESULT([ * FreeBSD specific configuration])
496 AC_DEFINE(SENDFILE_FLAVOR_BSD)
498 AC_DEFINE(NO_CRYPT_H, 1)
501 dnl ----- HP-UX 11 specific -----
502 if test x"$this_os" = "xhpux11"; then
503 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
505 AC_DEFINE(_ISOC9X_SOURCE)
506 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
509 dnl ----- IRIX specific -----
510 if test x"$this_os" = "xirix"; then
511 AC_MSG_RESULT([ * IRIX specific configuration])
513 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
516 dnl ----- Linux specific -----
517 if test x"$this_os" = "xlinux"; then
518 AC_MSG_RESULT([ * Linux specific configuration])
520 dnl ----- check if we need the quotactl wrapper
521 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
522 AC_CHECK_FUNC(quotactl,,
523 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
524 AC_MSG_RESULT([enabling quotactl wrapper])
527 dnl ----- as far as I can tell, dbtob always does the wrong thing
528 dnl ----- on every single version of linux I've ever played with.
529 dnl ----- see etc/afpd/quota.c
530 AC_DEFINE(HAVE_BROKEN_DBTOB)
532 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
533 dnl ----- check if version is newer than 2.2.x
535 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
536 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
537 if [ $majorvers -ge 2 ]; then
538 if [ $minorvers -ge 2 ]; then
540 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
541 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
543 AC_MSG_RESULT([ * found Linux 2.0.x ])
547 dnl ----- Linux/alpha specific -----
548 if test x"$this_cpu" = "xalpha"; then
549 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
550 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
555 dnl ----- Mac OSX specific -----
556 if test x"$this_os" = "xmacosx"; then
557 AC_MSG_RESULT([ * Mac OSX specific configuration])
559 AC_DEFINE(HAVE_BROKEN_CPP)
560 AC_DEFINE(HAVE_2ARG_DBTOB)
561 dnl AC_DEFINE(NO_DLFCN_H)
562 AC_DEFINE(MACOSX_SERVER)
565 dnl ----- NetBSD specific -----
566 if test x"$this_os" = "xnetbsd"; then
567 AC_MSG_RESULT([ * NetBSD specific configuration])
569 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
570 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
573 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
574 AC_DEFINE(UAM_DHX, 1)
575 AC_DEFINE(NO_CRYPT_H, 1)
578 dnl ----- OpenBSD specific -----
579 if test x"$this_os" = "xopenbsd"; then
580 AC_MSG_RESULT([ * OpenBSD specific configuration])
582 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
584 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
585 AC_DEFINE(UAM_DHX, 1)
586 AC_DEFINE(NO_CRYPT_H, 1)
589 dnl ----- Solaris specific -----
590 if test x"$this_os" = "xsolaris"; then
591 AC_MSG_RESULT([ * Solaris specific configuration])
593 AC_DEFINE(_ISOC9X_SOURCE)
594 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
596 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
599 AC_MSG_RESULT([enabling Solaris kernel module build])
603 dnl ----- Tru64 specific -----
604 if test x"$this_os" = "xtru64"; then
605 AC_MSG_RESULT([ * Tru64 specific configuration])
607 AC_DEFINE(HAVE_64BIT_LONGS)
608 dnl AC_DEFINE(USE_MOUNT_H)
609 AC_DEFINE(USE_OLD_RQUOTA)
610 dnl AC_DEFINE(USE_UFS_QUOTA_H)
612 AC_CHECK_LIB(security,set_auth_parameters)
613 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
618 dnl -- look for openssl
621 dnl --------------------- check for building PGP UAM module
623 AC_ARG_ENABLE(pgp-uam,
624 [ --enable-pgp-uam enable build of PGP UAM module],
625 if test "$enableval" = "yes"; then
626 if test "$compile_ssl" = "yes"; then
627 AC_DEFINE(UAM_PGP, 1)
629 AC_MSG_RESULT([enabling build with PGP UAM module])
634 dnl --------------------- check for building Kerberos v4 UAM module
636 AC_ARG_ENABLE(krb4-uam,
637 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
638 if test "$enableval" = "yes"; then
639 AC_DEFINE(UAM_KRB4, 1)
641 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
644 dnl --------------------- overwrite the config files . . . or not.
646 AC_MSG_CHECKING([whether configuration files should be overwritten])
647 AC_ARG_ENABLE(overwrite,
648 [ --enable-overwrite overwrite configuration files during installation],
649 [OVERWRITE_CONFIG="${enable_overwrite}"],
650 [OVERWRITE_CONFIG="no"]
652 AC_MSG_RESULT([$OVERWRITE_CONFIG])
654 dnl --------------------- last minute substitutions
661 AC_SUBST(OVERWRITE_CONFIG)
663 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
664 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
665 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
666 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
667 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
668 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
669 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
670 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
671 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
672 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
673 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
674 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
675 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
677 dnl --------------------- generate files
681 bin/adv1tov2/Makefile
684 bin/afppasswd/Makefile
685 bin/getzones/Makefile
686 bin/megatron/Makefile
692 contrib/macusers/Makefile
694 contrib/printing/Makefile
695 contrib/shell_utils/Makefile
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
740 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]