1 dnl $Id: configure.in,v 1.127 2001-11-20 16:04:23 pooba53 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)
141 [ --prefix=DIR architecture-independant files alternative location],
146 AC_ARG_WITH(admin-group,
147 [ --disable-admin-group disable admin group],
148 if test "$enableval" = "no"; then
149 AC_DEFINE(ADMIN_GRP, 0)
150 AC_MSG_RESULT([disabling administrative group support])
155 [ --enable-afs enable AFS support],
156 if test "$enableval" = "yes"; then
158 AC_MSG_RESULT([enabling AFS support])
162 AC_ARG_WITH(sysconfdir,
163 [ --sysconfdir=DIR system specific configuration files],
164 sysconfdir="$withval",
165 sysconfdir="${ac_prefix_default}/etc"
168 AC_ARG_WITH(pkgconfdir,
169 [ --with-pkgconfdir=DIR package specific configuration in DIR],
170 PKGCONFDIR="$withval",
171 PKGCONFDIR="${ac_prefix_default}/netatalk"
174 AC_ARG_WITH(cracklib,
175 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
176 if test "x$withval" != "xno" ; then
178 AC_CHECK_LIB(crack, main,
179 AC_DEFINE(USE_CRACKLIB)
181 AC_MSG_RESULT([enabling cracklib support])
182 if test "$cracklib" = "yes"; then
183 cracklib="/usr/lib/cracklib_dict"
185 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
186 [path to cracklib dictionary])
187 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
188 AC_MSG_ERROR([cracklib not found!])
194 [ --disable-ddp disable DDP],
195 if test "$enableval" = "no"; then
197 AC_MSG_RESULT([disabling DDP])
202 [ --enable-debug enable debug code],
203 if test "$enableval" != "no"; then
204 if test "$enableval" = "yes"; then
207 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
209 AC_MSG_RESULT([enabling debugging code])
216 dnl ----------- A NOTE ABOUT DROPKLUDGE
217 dnl The trouble with this fix is that if you know what the file is called, it
218 dnl can be read from the Unix side. That's okay for most academic institutions
219 dnl since the students don't have telnet access to the Mac servers. There is
220 dnl currently no one working on further development/fixes of DROPKLUDGE.
223 AC_ARG_ENABLE(dropkludge,
224 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
225 if test "$enableval" = "yes"; then
226 AC_DEFINE(DROPKLUDGE, 1)
227 AC_MSG_RESULT([enabling experimental dropbox support])
231 AC_ARG_ENABLE(force-uidgid,
232 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
233 if test "$enableval" = "yes"; then
234 AC_DEFINE(FORCE_UIDGID, 1)
235 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
239 dnl Don't use DB3 unless it's needed
242 dnl Check for CNID DB support
243 AC_MSG_CHECKING([whether CNID support should be enabled])
244 AC_ARG_ENABLE(cnid-db,
245 [ --enable-cnid-db use persistent cnid database per volume (EXPERIMENTAL) ],
247 if test "x$enableval" = "xyes"; then
255 ],[AC_MSG_RESULT([no])]
258 dnl Check for Berkeley DB3 library
259 if test "x$db3_required" = "xyes"; then
260 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
262 CFLAGS="$CFLAGS $DB3_CFLAGS"
263 LIBS="$LIBS $DB3_LIBS"
266 [ --with-did=SCHEME set DID scheme (last,mtab)],
267 if test "x$withval" != "xno" ; then
268 if test "$withval" = "last"; then
269 AC_DEFINE(USE_LASTDID, 1)
270 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
272 if test "$withval" = "mtab"; then
273 AC_DEFINE(DID_MTAB, 1)
274 AC_MSG_RESULT([enabling mtab-based DID creation support])
280 AC_ARG_WITH(message-dir,
281 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
283 if test x"$msg_dir" = "x"; then
284 msg_dir="${PKGCONFDIR}/msg"
286 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
287 [path to message dir [[PKGCONF/msg]]])
288 SERVERTEXT="$msg_dir"
292 AC_ARG_ENABLE(srvloc,
293 [ --enable-srvloc turn on Server Location Protocol support (EXPERIMENTAL)],
298 dnl Conditional for optional server location protocol support (used by OS X)
299 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
300 if test "x$srvloc" != "xno"; then
301 for slpdir in "" $srvloc /usr /usr/local ; do
302 if test -f "$slpdir/include/slp.h" ; then
303 LIBS="$LIBS -L$slpdir/lib -lslp"
304 CFLAGS="$CFLAGS -I$slpdir/include"
305 AC_CHECK_LIB(slp,SLPOpen)
306 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
307 AC_DEFINE(USE_SRVLOC, 1)
314 AC_MSG_CHECKING([if we should even bother with PAM])
316 [ --with-pam enable PAM support],
317 [PAM_MSG="$withval"],
320 AC_MSG_RESULT($PAM_MSG)
324 if test "x$PAM_MSG" = "xyes"; then
325 if test "x$ac_cv_header_security_pam_appl_h" = "xyes" ; then
327 AC_CHECK_LIB(pam, pam_set_item,
328 [PAPD_LIBS="$PAPD_LIBS -lpam"; AFPD_LIBS="$AFPD_LIBS -lpam"; use_pam_so=yes; compile_pam=yes; AC_DEFINE(USE_PAM)],
329 [use_pam_so=no; compile_pam=no]
337 AC_MSG_CHECKING([whether shadow support should be enabled])
339 [ --with-shadow enable shadow password support],
340 [shadowpw="$withval"],
343 if test "x$shadowpw" = "xyes"; then
346 AC_MSG_RESULT([$shadowpw])
348 AC_ARG_ENABLE(shell-check,
349 [ --disable-shell-check disable checking for a valid shell],
350 if test "$enableval" = "no"; then
351 AC_DEFINE(DISABLE_SHELLCHECK, 1)
352 AC_MSG_RESULT([disabling valid shell check])
356 AC_MSG_CHECKING([whether flock locks should be enabled])
357 AC_ARG_WITH(flock-locks,
358 [ --with-flock-locks enable flock locks support],
359 [flock_locks="$withval"],
362 if test "x$flock_locks" = "xyes"; then
363 AC_DEFINE(USE_FLOCK_LOCKS)
365 AC_MSG_RESULT([$flock_locks])
367 AC_ARG_WITH(tcp-wrappers,
368 [ --with-tcp-wrappers enable TCP wrappers support],
369 AC_CHECK_LIB(wrap, tcpd_warn,
371 AFPD_LIBS="$AFPD_LIBS -lwrap"
372 AC_MSG_RESULT([enabling TCP wrappers support])
376 AC_ARG_ENABLE(redhat,
377 [ --enable-redhat use redhat-style sysv configuration ],
378 if test "$enableval" = "yes"; then
381 AC_MSG_RESULT([enabling redhat-style sysv support])
385 [ --enable-suse use suse-style sysv configuration ],
386 if test "$enableval" = "yes"; then
389 AC_MSG_RESULT([enabling suse-style sysv support])
392 AC_ARG_ENABLE(cobalt,
393 [ --enable-cobalt use cobalt-style sysv configuration ],
394 if test "$enableval" = "yes"; then
397 AC_MSG_RESULT([enabling cobalt-style sysv support])
400 dnl ----- timelord compilation (disabled by default)
401 AC_MSG_CHECKING([whether timelord should be compiled])
403 AC_ARG_ENABLE(timelord,
404 [ --enable-timelord enable compilation of timelord server],
405 [compile_timelord="$enableval"],
406 [compile_timelord="no"]
408 AC_MSG_RESULT([$compile_timelord])
410 AC_ARG_WITH(uams-path,
411 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
412 uams_path="$withval",
413 uams_path="${PKGCONFDIR}/uams"
416 dnl --------------------------------------------------------------------------
417 dnl FHS stuff has to be done last because it overrides other defaults
418 dnl --------------------------------------------------------------------------
421 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
422 if test "$enableval" = "yes"; then
423 uams_path="/usr/lib/netatalk"
425 PKGCONFDIR=${sysconfdir}/netatalk
427 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
428 AC_DEFINE(FHS_COMPATIBILITY)
430 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
433 dnl --------------------------------------------------------------------------
434 dnl post-FHS substitutions, etc
435 dnl --------------------------------------------------------------------------
438 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
439 [path to UAMs [default=PKGCONF/uams]])
440 UAMS_PATH="${uams_path}"
443 dnl --------------------------------------------------------------------------
444 dnl drop in includes for top level directory structures here...
445 dnl --------------------------------------------------------------------------
447 dnl Note: $(top_srcdir)/include should be added before all other includes
448 dnl so that includes from that directory a preferred to includes from
449 dnl /usr/include or similar places.
450 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
451 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
453 dnl --------------------------------------------------------------------------
454 dnl specific configuration comes in here:
455 dnl --------------------------------------------------------------------------
457 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
459 dnl --------------------- determine operating system from "target"
461 *aix*) this_os=aix ;;
462 *freebsd*) this_os=freebsd ;;
463 *hpux11*) this_os=hpux11 ;;
464 *irix*) this_os=irix ;;
465 *linux*) this_os=linux ;;
466 *osx*) this_os=macosx ;;
467 *netbsd*) this_os=netbsd ;;
468 *openbsd*) this_os=openbsd ;;
469 *osf*) this_os=tru64 ;;
470 *solaris*) this_os=solaris ;;
474 i386|i486|i586|i686|k7) this_cpu=x86 ;;
475 alpha) this_cpu=alpha ;;
476 mips) this_cpu=mips ;;
477 powerpc|ppc) this_cpu=ppc ;;
480 dnl --------------------- operating system specific flags (port from sys/*)
482 dnl ----- AIX specific -----
483 if test x"$this_os" = "xaix"; then
484 AC_MSG_RESULT([ * AIX specific configuration])
485 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
487 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
488 dnl compilation environment. It's enough to get things defined
489 dnl right in endian.h provided that long long is supported, though.
490 AC_DEFINE(HAVE_32BIT_LONGS)
493 dnl ----- FreeBSD specific -----
494 if test x"$this_os" = "xfreebsd"; then
495 AC_MSG_RESULT([ * FreeBSD specific configuration])
497 AC_DEFINE(SENDFILE_FLAVOR_BSD)
499 AC_DEFINE(NO_CRYPT_H, 1)
502 dnl ----- HP-UX 11 specific -----
503 if test x"$this_os" = "xhpux11"; then
504 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
506 AC_DEFINE(_ISOC9X_SOURCE)
507 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
510 dnl ----- IRIX specific -----
511 if test x"$this_os" = "xirix"; then
512 AC_MSG_RESULT([ * IRIX specific configuration])
514 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
517 dnl ----- Linux specific -----
518 if test x"$this_os" = "xlinux"; then
519 AC_MSG_RESULT([ * Linux specific configuration])
521 dnl ----- check if we need the quotactl wrapper
522 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
523 AC_CHECK_FUNC(quotactl,,
524 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
525 AC_MSG_RESULT([enabling quotactl wrapper])
528 dnl ----- as far as I can tell, dbtob always does the wrong thing
529 dnl ----- on every single version of linux I've ever played with.
530 dnl ----- see etc/afpd/quota.c
531 AC_DEFINE(HAVE_BROKEN_DBTOB)
533 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
534 dnl ----- check if version is newer than 2.2.x
536 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
537 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
538 if [ $majorvers -ge 2 ]; then
539 if [ $minorvers -ge 2 ]; then
541 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
542 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
544 AC_MSG_RESULT([ * found Linux 2.0.x ])
548 dnl ----- Linux/alpha specific -----
549 if test x"$this_cpu" = "xalpha"; then
550 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
551 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
556 dnl ----- Mac OSX specific -----
557 if test x"$this_os" = "xmacosx"; then
558 AC_MSG_RESULT([ * Mac OSX specific configuration])
560 AC_DEFINE(HAVE_BROKEN_CPP)
561 AC_DEFINE(HAVE_2ARG_DBTOB)
562 dnl AC_DEFINE(NO_DLFCN_H)
563 AC_DEFINE(MACOSX_SERVER)
566 dnl ----- NetBSD specific -----
567 if test x"$this_os" = "xnetbsd"; then
568 AC_MSG_RESULT([ * NetBSD specific configuration])
570 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
571 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
574 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
575 AC_DEFINE(UAM_DHX, 1)
576 AC_DEFINE(NO_CRYPT_H, 1)
579 dnl ----- OpenBSD specific -----
580 if test x"$this_os" = "xopenbsd"; then
581 AC_MSG_RESULT([ * OpenBSD specific configuration])
583 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
585 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
586 AC_DEFINE(UAM_DHX, 1)
587 AC_DEFINE(NO_CRYPT_H, 1)
590 dnl ----- Solaris specific -----
591 if test x"$this_os" = "xsolaris"; then
592 AC_MSG_RESULT([ * Solaris specific configuration])
594 AC_DEFINE(_ISOC9X_SOURCE)
595 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
597 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
600 AC_MSG_RESULT([enabling Solaris kernel module build])
604 dnl ----- Tru64 specific -----
605 if test x"$this_os" = "xtru64"; then
606 AC_MSG_RESULT([ * Tru64 specific configuration])
608 AC_DEFINE(HAVE_64BIT_LONGS)
609 dnl AC_DEFINE(USE_MOUNT_H)
610 AC_DEFINE(USE_OLD_RQUOTA)
611 dnl AC_DEFINE(USE_UFS_QUOTA_H)
613 AC_CHECK_LIB(security,set_auth_parameters)
614 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
619 dnl -- look for openssl
622 dnl --------------------- check for building PGP UAM module
624 AC_ARG_ENABLE(pgp-uam,
625 [ --enable-pgp-uam enable build of PGP UAM module],
626 if test "$enableval" = "yes"; then
627 if test "$compile_ssl" = "yes"; then
628 AC_DEFINE(UAM_PGP, 1)
630 AC_MSG_RESULT([enabling build with PGP UAM module])
635 dnl --------------------- check for building Kerberos v4 UAM module
637 AC_ARG_ENABLE(krb4-uam,
638 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
639 if test "$enableval" = "yes"; then
640 AC_DEFINE(UAM_KRB4, 1)
642 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
645 dnl --------------------- overwrite the config files . . . or not.
647 AC_MSG_CHECKING([whether configuration files should be overwritten])
648 AC_ARG_ENABLE(overwrite,
649 [ --enable-overwrite overwrite configuration files during installation],
650 [OVERWRITE_CONFIG="${enable_overwrite}"],
651 [OVERWRITE_CONFIG="no"]
653 AC_MSG_RESULT([$OVERWRITE_CONFIG])
655 dnl --------------------- last minute substitutions
662 AC_SUBST(OVERWRITE_CONFIG)
664 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
665 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
666 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
667 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
668 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
669 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
670 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
671 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
672 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
673 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
674 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
675 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
676 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
678 dnl --------------------- generate files
682 bin/adv1tov2/Makefile
685 bin/afppasswd/Makefile
686 bin/getzones/Makefile
687 bin/megatron/Makefile
693 contrib/macusers/Makefile
695 contrib/printing/Makefile
696 contrib/shell_utils/Makefile
697 contrib/timelord/Makefile
699 distrib/config/Makefile
700 distrib/config/netatalk-config
701 distrib/initscripts/Makefile
706 etc/afpd/nls/Makefile
709 etc/uams/uams_krb4/Makefile
713 include/atalk/Makefile
715 libatalk/adouble/Makefile
716 libatalk/asp/Makefile
717 libatalk/atp/Makefile
718 libatalk/cnid/Makefile
719 libatalk/compat/Makefile
720 libatalk/dsi/Makefile
721 libatalk/nbp/Makefile
722 libatalk/netddp/Makefile
723 libatalk/util/Makefile
733 sys/generic/sys/Makefile
734 sys/netatalk/Makefile
736 sys/netbsd/netatalk/Makefile
741 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]