1 dnl $Id: configure.in,v 1.128 2001-11-20 19:06:46 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"]
161 AC_ARG_WITH(pkgconfdir,
162 [ --with-pkgconfdir=DIR package specific configuration in DIR
163 [[SYSCONF/netatalk]]],
164 PKGCONFDIR="$withval",
165 PKGCONFDIR="${sysconfdir}/netatalk"
168 AC_ARG_WITH(cracklib,
169 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
170 if test "x$withval" != "xno" ; then
172 AC_CHECK_LIB(crack, main,
173 AC_DEFINE(USE_CRACKLIB)
175 AC_MSG_RESULT([enabling cracklib support])
176 if test "$cracklib" = "yes"; then
177 cracklib="/usr/lib/cracklib_dict"
179 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
180 [path to cracklib dictionary])
181 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
182 AC_MSG_ERROR([cracklib not found!])
188 [ --disable-ddp disable DDP],
189 if test "$enableval" = "no"; then
191 AC_MSG_RESULT([disabling DDP])
196 [ --enable-debug enable debug code],
197 if test "$enableval" != "no"; then
198 if test "$enableval" = "yes"; then
201 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
203 AC_MSG_RESULT([enabling debugging code])
210 dnl ----------- A NOTE ABOUT DROPKLUDGE
211 dnl The trouble with this fix is that if you know what the file is called, it
212 dnl can be read from the Unix side. That's okay for most academic institutions
213 dnl since the students don't have telnet access to the Mac servers. There is
214 dnl currently no one working on further development/fixes of DROPKLUDGE.
217 AC_ARG_ENABLE(dropkludge,
218 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
219 if test "$enableval" = "yes"; then
220 AC_DEFINE(DROPKLUDGE, 1)
221 AC_MSG_RESULT([enabling experimental dropbox support])
225 AC_ARG_ENABLE(force-uidgid,
226 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
227 if test "$enableval" = "yes"; then
228 AC_DEFINE(FORCE_UIDGID, 1)
229 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
233 dnl Don't use DB3 unless it's needed
236 dnl Check for CNID DB support
237 AC_MSG_CHECKING([whether CNID support should be enabled])
238 AC_ARG_ENABLE(cnid-db,
239 [ --enable-cnid-db use persistent cnid database per volume (EXPERIMENTAL) ],
241 if test "x$enableval" = "xyes"; then
249 ],[AC_MSG_RESULT([no])]
252 dnl Check for Berkeley DB3 library
253 if test "x$db3_required" = "xyes"; then
254 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
256 CFLAGS="$CFLAGS $DB3_CFLAGS"
257 LIBS="$LIBS $DB3_LIBS"
260 [ --with-did=SCHEME set DID scheme (last,mtab)],
261 if test "x$withval" != "xno" ; then
262 if test "$withval" = "last"; then
263 AC_DEFINE(USE_LASTDID, 1)
264 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
266 if test "$withval" = "mtab"; then
267 AC_DEFINE(DID_MTAB, 1)
268 AC_MSG_RESULT([enabling mtab-based DID creation support])
274 AC_ARG_WITH(message-dir,
275 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
277 if test x"$msg_dir" = "x"; then
278 msg_dir="${PKGCONFDIR}/msg"
280 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
281 [path to message dir [[PKGCONF/msg]]])
282 SERVERTEXT="$msg_dir"
286 AC_ARG_ENABLE(srvloc,
287 [ --enable-srvloc turn on Server Location Protocol support (EXPERIMENTAL)],
292 dnl Conditional for optional server location protocol support (used by OS X)
293 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
294 if test "x$srvloc" != "xno"; then
295 for slpdir in "" $srvloc /usr /usr/local ; do
296 if test -f "$slpdir/include/slp.h" ; then
297 LIBS="$LIBS -L$slpdir/lib -lslp"
298 CFLAGS="$CFLAGS -I$slpdir/include"
299 AC_CHECK_LIB(slp,SLPOpen)
300 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
301 AC_DEFINE(USE_SRVLOC, 1)
308 AC_MSG_CHECKING([if we should even bother with PAM])
310 [ --with-pam enable PAM support],
311 [PAM_MSG="$withval"],
314 AC_MSG_RESULT($PAM_MSG)
318 if test "x$PAM_MSG" = "xyes"; then
319 if test "x$ac_cv_header_security_pam_appl_h" = "xyes" ; then
321 AC_CHECK_LIB(pam, pam_set_item,
322 [PAPD_LIBS="$PAPD_LIBS -lpam"; AFPD_LIBS="$AFPD_LIBS -lpam"; use_pam_so=yes; compile_pam=yes; AC_DEFINE(USE_PAM)],
323 [use_pam_so=no; compile_pam=no]
331 AC_MSG_CHECKING([whether shadow support should be enabled])
333 [ --with-shadow enable shadow password support],
334 [shadowpw="$withval"],
337 if test "x$shadowpw" = "xyes"; then
340 AC_MSG_RESULT([$shadowpw])
342 AC_ARG_ENABLE(shell-check,
343 [ --disable-shell-check disable checking for a valid shell],
344 if test "$enableval" = "no"; then
345 AC_DEFINE(DISABLE_SHELLCHECK, 1)
346 AC_MSG_RESULT([disabling valid shell check])
350 AC_MSG_CHECKING([whether flock locks should be enabled])
351 AC_ARG_WITH(flock-locks,
352 [ --with-flock-locks enable flock locks support],
353 [flock_locks="$withval"],
356 if test "x$flock_locks" = "xyes"; then
357 AC_DEFINE(USE_FLOCK_LOCKS)
359 AC_MSG_RESULT([$flock_locks])
361 AC_ARG_WITH(tcp-wrappers,
362 [ --with-tcp-wrappers enable TCP wrappers support],
363 AC_CHECK_LIB(wrap, tcpd_warn,
365 AFPD_LIBS="$AFPD_LIBS -lwrap"
366 AC_MSG_RESULT([enabling TCP wrappers support])
370 AC_ARG_ENABLE(redhat,
371 [ --enable-redhat use redhat-style sysv configuration ],
372 if test "$enableval" = "yes"; then
375 AC_MSG_RESULT([enabling redhat-style sysv support])
379 [ --enable-suse use suse-style sysv configuration ],
380 if test "$enableval" = "yes"; then
383 AC_MSG_RESULT([enabling suse-style sysv support])
386 AC_ARG_ENABLE(cobalt,
387 [ --enable-cobalt use cobalt-style sysv configuration ],
388 if test "$enableval" = "yes"; then
391 AC_MSG_RESULT([enabling cobalt-style sysv support])
394 dnl ----- timelord compilation (disabled by default)
395 AC_MSG_CHECKING([whether timelord should be compiled])
397 AC_ARG_ENABLE(timelord,
398 [ --enable-timelord enable compilation of timelord server],
399 [compile_timelord="$enableval"],
400 [compile_timelord="no"]
402 AC_MSG_RESULT([$compile_timelord])
404 AC_ARG_WITH(uams-path,
405 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
406 uams_path="$withval",
407 uams_path="${PKGCONFDIR}/uams"
410 dnl --------------------------------------------------------------------------
411 dnl FHS stuff has to be done last because it overrides other defaults
412 dnl --------------------------------------------------------------------------
415 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
416 if test "$enableval" = "yes"; then
417 uams_path="/usr/lib/netatalk"
419 PKGCONFDIR=${sysconfdir}/netatalk
421 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
422 AC_DEFINE(FHS_COMPATIBILITY)
424 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
427 dnl --------------------------------------------------------------------------
428 dnl post-FHS substitutions, etc
429 dnl --------------------------------------------------------------------------
432 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
433 [path to UAMs [default=PKGCONF/uams]])
434 UAMS_PATH="${uams_path}"
437 dnl --------------------------------------------------------------------------
438 dnl drop in includes for top level directory structures here...
439 dnl --------------------------------------------------------------------------
441 dnl Note: $(top_srcdir)/include should be added before all other includes
442 dnl so that includes from that directory a preferred to includes from
443 dnl /usr/include or similar places.
444 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
445 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
447 dnl --------------------------------------------------------------------------
448 dnl specific configuration comes in here:
449 dnl --------------------------------------------------------------------------
451 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
453 dnl --------------------- determine operating system from "target"
455 *aix*) this_os=aix ;;
456 *freebsd*) this_os=freebsd ;;
457 *hpux11*) this_os=hpux11 ;;
458 *irix*) this_os=irix ;;
459 *linux*) this_os=linux ;;
460 *osx*) this_os=macosx ;;
461 *netbsd*) this_os=netbsd ;;
462 *openbsd*) this_os=openbsd ;;
463 *osf*) this_os=tru64 ;;
464 *solaris*) this_os=solaris ;;
468 i386|i486|i586|i686|k7) this_cpu=x86 ;;
469 alpha) this_cpu=alpha ;;
470 mips) this_cpu=mips ;;
471 powerpc|ppc) this_cpu=ppc ;;
474 dnl --------------------- operating system specific flags (port from sys/*)
476 dnl ----- AIX specific -----
477 if test x"$this_os" = "xaix"; then
478 AC_MSG_RESULT([ * AIX specific configuration])
479 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
481 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
482 dnl compilation environment. It's enough to get things defined
483 dnl right in endian.h provided that long long is supported, though.
484 AC_DEFINE(HAVE_32BIT_LONGS)
487 dnl ----- FreeBSD specific -----
488 if test x"$this_os" = "xfreebsd"; then
489 AC_MSG_RESULT([ * FreeBSD specific configuration])
491 AC_DEFINE(SENDFILE_FLAVOR_BSD)
493 AC_DEFINE(NO_CRYPT_H, 1)
496 dnl ----- HP-UX 11 specific -----
497 if test x"$this_os" = "xhpux11"; then
498 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
500 AC_DEFINE(_ISOC9X_SOURCE)
501 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
504 dnl ----- IRIX specific -----
505 if test x"$this_os" = "xirix"; then
506 AC_MSG_RESULT([ * IRIX specific configuration])
508 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
511 dnl ----- Linux specific -----
512 if test x"$this_os" = "xlinux"; then
513 AC_MSG_RESULT([ * Linux specific configuration])
515 dnl ----- check if we need the quotactl wrapper
516 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
517 AC_CHECK_FUNC(quotactl,,
518 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
519 AC_MSG_RESULT([enabling quotactl wrapper])
522 dnl ----- as far as I can tell, dbtob always does the wrong thing
523 dnl ----- on every single version of linux I've ever played with.
524 dnl ----- see etc/afpd/quota.c
525 AC_DEFINE(HAVE_BROKEN_DBTOB)
527 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
528 dnl ----- check if version is newer than 2.2.x
530 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
531 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
532 if [ $majorvers -ge 2 ]; then
533 if [ $minorvers -ge 2 ]; then
535 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
536 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
538 AC_MSG_RESULT([ * found Linux 2.0.x ])
542 dnl ----- Linux/alpha specific -----
543 if test x"$this_cpu" = "xalpha"; then
544 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
545 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
550 dnl ----- Mac OSX specific -----
551 if test x"$this_os" = "xmacosx"; then
552 AC_MSG_RESULT([ * Mac OSX specific configuration])
554 AC_DEFINE(HAVE_BROKEN_CPP)
555 AC_DEFINE(HAVE_2ARG_DBTOB)
556 dnl AC_DEFINE(NO_DLFCN_H)
557 AC_DEFINE(MACOSX_SERVER)
560 dnl ----- NetBSD specific -----
561 if test x"$this_os" = "xnetbsd"; then
562 AC_MSG_RESULT([ * NetBSD specific configuration])
564 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
565 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
568 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
569 AC_DEFINE(UAM_DHX, 1)
570 AC_DEFINE(NO_CRYPT_H, 1)
573 dnl ----- OpenBSD specific -----
574 if test x"$this_os" = "xopenbsd"; then
575 AC_MSG_RESULT([ * OpenBSD specific configuration])
577 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
579 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
580 AC_DEFINE(UAM_DHX, 1)
581 AC_DEFINE(NO_CRYPT_H, 1)
584 dnl ----- Solaris specific -----
585 if test x"$this_os" = "xsolaris"; then
586 AC_MSG_RESULT([ * Solaris specific configuration])
588 AC_DEFINE(_ISOC9X_SOURCE)
589 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
591 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
594 AC_MSG_RESULT([enabling Solaris kernel module build])
598 dnl ----- Tru64 specific -----
599 if test x"$this_os" = "xtru64"; then
600 AC_MSG_RESULT([ * Tru64 specific configuration])
602 AC_DEFINE(HAVE_64BIT_LONGS)
603 dnl AC_DEFINE(USE_MOUNT_H)
604 AC_DEFINE(USE_OLD_RQUOTA)
605 dnl AC_DEFINE(USE_UFS_QUOTA_H)
607 AC_CHECK_LIB(security,set_auth_parameters)
608 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
613 dnl -- look for openssl
616 dnl --------------------- check for building PGP UAM module
618 AC_ARG_ENABLE(pgp-uam,
619 [ --enable-pgp-uam enable build of PGP UAM module],
620 if test "$enableval" = "yes"; then
621 if test "$compile_ssl" = "yes"; then
622 AC_DEFINE(UAM_PGP, 1)
624 AC_MSG_RESULT([enabling build with PGP UAM module])
629 dnl --------------------- check for building Kerberos v4 UAM module
631 AC_ARG_ENABLE(krb4-uam,
632 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
633 if test "$enableval" = "yes"; then
634 AC_DEFINE(UAM_KRB4, 1)
636 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
639 dnl --------------------- overwrite the config files . . . or not.
641 AC_MSG_CHECKING([whether configuration files should be overwritten])
642 AC_ARG_ENABLE(overwrite,
643 [ --enable-overwrite overwrite configuration files during installation],
644 [OVERWRITE_CONFIG="${enable_overwrite}"],
645 [OVERWRITE_CONFIG="no"]
647 AC_MSG_RESULT([$OVERWRITE_CONFIG])
649 dnl --------------------- last minute substitutions
656 AC_SUBST(OVERWRITE_CONFIG)
658 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
659 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
660 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
661 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
662 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
663 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
664 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
665 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
666 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
667 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
668 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
669 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
670 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
672 dnl --------------------- generate files
676 bin/adv1tov2/Makefile
679 bin/afppasswd/Makefile
680 bin/getzones/Makefile
681 bin/megatron/Makefile
687 contrib/macusers/Makefile
689 contrib/printing/Makefile
690 contrib/shell_utils/Makefile
691 contrib/timelord/Makefile
693 distrib/config/Makefile
694 distrib/config/netatalk-config
695 distrib/initscripts/Makefile
700 etc/afpd/nls/Makefile
703 etc/uams/uams_krb4/Makefile
707 include/atalk/Makefile
709 libatalk/adouble/Makefile
710 libatalk/asp/Makefile
711 libatalk/atp/Makefile
712 libatalk/cnid/Makefile
713 libatalk/compat/Makefile
714 libatalk/dsi/Makefile
715 libatalk/nbp/Makefile
716 libatalk/netddp/Makefile
717 libatalk/util/Makefile
727 sys/generic/sys/Makefile
728 sys/netatalk/Makefile
730 sys/netbsd/netatalk/Makefile
735 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]