1 dnl $Id: configure.in,v 1.125 2001-11-14 21:42:00 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 --------------------------------------------------------------------------
445 LIBS="$LIBS -L\$(top_srcdir)/libatalk/"
446 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
448 dnl --------------------------------------------------------------------------
449 dnl specific configuration comes in here:
450 dnl --------------------------------------------------------------------------
452 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
454 dnl --------------------- determine operating system from "target"
456 *aix*) this_os=aix ;;
457 *freebsd*) this_os=freebsd ;;
458 *hpux11*) this_os=hpux11 ;;
459 *irix*) this_os=irix ;;
460 *linux*) this_os=linux ;;
461 *osx*) this_os=macosx ;;
462 *netbsd*) this_os=netbsd ;;
463 *openbsd*) this_os=openbsd ;;
464 *osf*) this_os=tru64 ;;
465 *solaris*) this_os=solaris ;;
469 i386|i486|i586|i686|k7) this_cpu=x86 ;;
470 alpha) this_cpu=alpha ;;
471 mips) this_cpu=mips ;;
472 powerpc|ppc) this_cpu=ppc ;;
475 dnl --------------------- operating system specific flags (port from sys/*)
477 dnl ----- AIX specific -----
478 if test x"$this_os" = "xaix"; then
479 AC_MSG_RESULT([ * AIX specific configuration])
480 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
482 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
483 dnl compilation environment. It's enough to get things defined
484 dnl right in endian.h provided that long long is supported, though.
485 AC_DEFINE(HAVE_32BIT_LONGS)
488 dnl ----- FreeBSD specific -----
489 if test x"$this_os" = "xfreebsd"; then
490 AC_MSG_RESULT([ * FreeBSD specific configuration])
492 AC_DEFINE(SENDFILE_FLAVOR_BSD)
494 AC_DEFINE(NO_CRYPT_H, 1)
497 dnl ----- HP-UX 11 specific -----
498 if test x"$this_os" = "xhpux11"; then
499 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
501 AC_DEFINE(_ISOC9X_SOURCE)
502 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
505 dnl ----- IRIX specific -----
506 if test x"$this_os" = "xirix"; then
507 AC_MSG_RESULT([ * IRIX specific configuration])
509 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
512 dnl ----- Linux specific -----
513 if test x"$this_os" = "xlinux"; then
514 AC_MSG_RESULT([ * Linux specific configuration])
516 dnl ----- check if we need the quotactl wrapper
517 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
518 AC_CHECK_FUNC(quotactl,,
519 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
520 AC_MSG_RESULT([enabling quotactl wrapper])
523 dnl ----- as far as I can tell, dbtob always does the wrong thing
524 dnl ----- on every single version of linux I've ever played with.
525 dnl ----- see etc/afpd/quota.c
526 AC_DEFINE(HAVE_BROKEN_DBTOB)
528 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
529 dnl ----- check if version is newer than 2.2.x
531 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
532 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
533 if [ $majorvers -ge 2 ]; then
534 if [ $minorvers -ge 2 ]; then
536 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
537 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
539 AC_MSG_RESULT([ * found Linux 2.0.x ])
543 dnl ----- Linux/alpha specific -----
544 if test x"$this_cpu" = "xalpha"; then
545 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
546 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
551 dnl ----- Mac OSX specific -----
552 if test x"$this_os" = "xmacosx"; then
553 AC_MSG_RESULT([ * Mac OSX specific configuration])
555 AC_DEFINE(HAVE_BROKEN_CPP)
556 AC_DEFINE(HAVE_2ARG_DBTOB)
557 dnl AC_DEFINE(NO_DLFCN_H)
558 AC_DEFINE(MACOSX_SERVER)
561 dnl ----- NetBSD specific -----
562 if test x"$this_os" = "xnetbsd"; then
563 AC_MSG_RESULT([ * NetBSD specific configuration])
565 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
566 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
569 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
570 AC_DEFINE(UAM_DHX, 1)
571 AC_DEFINE(NO_CRYPT_H, 1)
574 dnl ----- OpenBSD specific -----
575 if test x"$this_os" = "xopenbsd"; then
576 AC_MSG_RESULT([ * OpenBSD specific configuration])
578 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
580 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
581 AC_DEFINE(UAM_DHX, 1)
582 AC_DEFINE(NO_CRYPT_H, 1)
585 dnl ----- Solaris specific -----
586 if test x"$this_os" = "xsolaris"; then
587 AC_MSG_RESULT([ * Solaris specific configuration])
589 AC_DEFINE(_ISOC9X_SOURCE)
590 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
592 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
595 AC_MSG_RESULT([enabling Solaris kernel module build])
599 dnl ----- Tru64 specific -----
600 if test x"$this_os" = "xtru64"; then
601 AC_MSG_RESULT([ * Tru64 specific configuration])
603 AC_DEFINE(HAVE_64BIT_LONGS)
604 dnl AC_DEFINE(USE_MOUNT_H)
605 AC_DEFINE(USE_OLD_RQUOTA)
606 dnl AC_DEFINE(USE_UFS_QUOTA_H)
608 AC_CHECK_LIB(security,set_auth_parameters)
609 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
614 dnl -- look for openssl
617 dnl --------------------- check for building PGP UAM module
619 AC_ARG_ENABLE(pgp-uam,
620 [ --enable-pgp-uam enable build of PGP UAM module],
621 if test "$enableval" = "yes"; then
622 if test "$compile_ssl" = "yes"; then
623 AC_DEFINE(UAM_PGP, 1)
625 AC_MSG_RESULT([enabling build with PGP UAM module])
630 dnl --------------------- check for building Kerberos v4 UAM module
632 AC_ARG_ENABLE(krb4-uam,
633 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
634 if test "$enableval" = "yes"; then
635 AC_DEFINE(UAM_KRB4, 1)
637 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
640 dnl --------------------- overwrite the config files . . . or not.
642 AC_MSG_CHECKING([whether configuration files should be overwritten])
643 AC_ARG_ENABLE(overwrite,
644 [ --enable-overwrite overwrite configuration files during installation],
645 [OVERWRITE_CONFIG="${enable_overwrite}"],
646 [OVERWRITE_CONFIG="no"]
648 AC_MSG_RESULT([$OVERWRITE_CONFIG])
650 dnl --------------------- last minute substitutions
657 AC_SUBST(OVERWRITE_CONFIG)
659 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
660 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
661 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
662 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
663 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
664 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
665 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
666 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
667 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
668 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
669 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
670 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
671 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
673 dnl --------------------- generate files
677 bin/adv1tov2/Makefile
680 bin/afppasswd/Makefile
681 bin/getzones/Makefile
682 bin/megatron/Makefile
688 contrib/macusers/Makefile
690 contrib/printing/Makefile
691 contrib/shell_utils/Makefile
692 contrib/timelord/Makefile
694 distrib/config/Makefile
695 distrib/config/netatalk-config
696 distrib/initscripts/Makefile
701 etc/afpd/nls/Makefile
704 etc/uams/uams_krb4/Makefile
708 include/atalk/Makefile
710 libatalk/adouble/Makefile
711 libatalk/asp/Makefile
712 libatalk/atp/Makefile
713 libatalk/cnid/Makefile
714 libatalk/compat/Makefile
715 libatalk/dsi/Makefile
716 libatalk/nbp/Makefile
717 libatalk/netddp/Makefile
718 libatalk/util/Makefile
728 sys/generic/sys/Makefile
729 sys/netatalk/Makefile
731 sys/netbsd/netatalk/Makefile
736 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]