1 dnl $Id: configure.in,v 1.130 2001-11-23 22:45:23 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(pkgconfdir,
157 [ --with-pkgconfdir=DIR package specific configuration in DIR
158 [[SYSCONF/netatalk]]],
159 PKGCONFDIR="$withval",
160 PKGCONFDIR="${sysconfdir}/netatalk"
163 AC_ARG_WITH(cracklib,
164 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
165 if test "x$withval" != "xno" ; then
167 AC_CHECK_LIB(crack, main,
168 AC_DEFINE(USE_CRACKLIB)
170 AC_MSG_RESULT([enabling cracklib support])
171 if test "$cracklib" = "yes"; then
172 cracklib="/usr/lib/cracklib_dict"
174 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
175 [path to cracklib dictionary])
176 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
177 AC_MSG_ERROR([cracklib not found!])
183 [ --disable-ddp disable DDP],
184 if test "$enableval" = "no"; then
186 AC_MSG_RESULT([disabling DDP])
191 [ --enable-debug enable debug code],
192 if test "$enableval" != "no"; then
193 if test "$enableval" = "yes"; then
196 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
198 AC_MSG_RESULT([enabling debugging code])
205 dnl ----------- A NOTE ABOUT DROPKLUDGE
206 dnl The trouble with this fix is that if you know what the file is called, it
207 dnl can be read from the Unix side. That's okay for most academic institutions
208 dnl since the students don't have telnet access to the Mac servers. There is
209 dnl currently no one working on further development/fixes of DROPKLUDGE.
212 AC_ARG_ENABLE(dropkludge,
213 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
214 if test "$enableval" = "yes"; then
215 AC_DEFINE(DROPKLUDGE, 1)
216 AC_MSG_RESULT([enabling experimental dropbox support])
220 AC_ARG_ENABLE(force-uidgid,
221 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
222 if test "$enableval" = "yes"; then
223 AC_DEFINE(FORCE_UIDGID, 1)
224 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
228 dnl Don't use DB3 unless it's needed
231 dnl Check for CNID DB support
232 AC_MSG_CHECKING([whether CNID support should be enabled])
233 AC_ARG_ENABLE(cnid-db,
234 [ --enable-cnid-db use persistent cnid database per volume (EXPERIMENTAL) ],
236 if test "x$enableval" = "xyes"; then
244 ],[AC_MSG_RESULT([no])]
247 dnl Check for Berkeley DB3 library
248 if test "x$db3_required" = "xyes"; then
249 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
253 [ --with-did=SCHEME set DID scheme (last,mtab)],
254 if test "x$withval" != "xno" ; then
255 if test "$withval" = "last"; then
256 AC_DEFINE(USE_LASTDID, 1)
257 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
259 if test "$withval" = "mtab"; then
260 AC_DEFINE(DID_MTAB, 1)
261 AC_MSG_RESULT([enabling mtab-based DID creation support])
267 AC_ARG_WITH(message-dir,
268 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
270 if test x"$msg_dir" = "x"; then
271 msg_dir="${PKGCONFDIR}/msg"
273 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
274 [path to message dir [[PKGCONF/msg]]])
275 SERVERTEXT="$msg_dir"
279 AC_ARG_ENABLE(srvloc,
280 [ --enable-srvloc turn on Server Location Protocol support (EXPERIMENTAL)],
285 dnl Conditional for optional server location protocol support (used by OS X)
286 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
287 if test "x$srvloc" != "xno"; then
288 for slpdir in "" $srvloc /usr /usr/local ; do
289 if test -f "$slpdir/include/slp.h" ; then
290 LIBS="$LIBS -L$slpdir/lib -lslp"
291 CFLAGS="$CFLAGS -I$slpdir/include"
292 AC_CHECK_LIB(slp,SLPOpen)
293 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
294 AC_DEFINE(USE_SRVLOC, 1)
301 AC_MSG_CHECKING([if we should even bother with PAM])
303 [ --with-pam enable PAM support],
304 [PAM_MSG="$withval"],
307 AC_MSG_RESULT($PAM_MSG)
311 if test "x$PAM_MSG" = "xyes"; then
312 if test "x$ac_cv_header_security_pam_appl_h" = "xyes" ; then
314 AC_CHECK_LIB(pam, pam_set_item,
315 [PAPD_LIBS="$PAPD_LIBS -lpam"; AFPD_LIBS="$AFPD_LIBS -lpam"; use_pam_so=yes; compile_pam=yes; AC_DEFINE(USE_PAM)],
316 [use_pam_so=no; compile_pam=no]
324 AC_MSG_CHECKING([whether shadow support should be enabled])
326 [ --with-shadow enable shadow password support],
327 [shadowpw="$withval"],
330 if test "x$shadowpw" = "xyes"; then
333 AC_MSG_RESULT([$shadowpw])
335 AC_ARG_ENABLE(shell-check,
336 [ --disable-shell-check disable checking for a valid shell],
337 if test "$enableval" = "no"; then
338 AC_DEFINE(DISABLE_SHELLCHECK, 1)
339 AC_MSG_RESULT([disabling valid shell check])
343 AC_MSG_CHECKING([whether flock locks should be enabled])
344 AC_ARG_WITH(flock-locks,
345 [ --with-flock-locks enable flock locks support],
346 [flock_locks="$withval"],
349 if test "x$flock_locks" = "xyes"; then
350 AC_DEFINE(USE_FLOCK_LOCKS)
352 AC_MSG_RESULT([$flock_locks])
354 AC_ARG_WITH(tcp-wrappers,
355 [ --with-tcp-wrappers enable TCP wrappers support],
356 AC_CHECK_LIB(wrap, tcpd_warn,
358 AFPD_LIBS="$AFPD_LIBS -lwrap"
359 AC_MSG_RESULT([enabling TCP wrappers support])
363 AC_ARG_ENABLE(redhat,
364 [ --enable-redhat use redhat-style sysv configuration ],
365 if test "$enableval" = "yes"; then
368 AC_MSG_RESULT([enabling redhat-style sysv support])
372 [ --enable-suse use suse-style sysv configuration ],
373 if test "$enableval" = "yes"; then
376 AC_MSG_RESULT([enabling suse-style sysv support])
379 AC_ARG_ENABLE(cobalt,
380 [ --enable-cobalt use cobalt-style sysv configuration ],
381 if test "$enableval" = "yes"; then
384 AC_MSG_RESULT([enabling cobalt-style sysv support])
387 dnl ----- timelord compilation (disabled by default)
388 AC_MSG_CHECKING([whether timelord should be compiled])
390 AC_ARG_ENABLE(timelord,
391 [ --enable-timelord enable compilation of timelord server],
392 [compile_timelord="$enableval"],
393 [compile_timelord="no"]
395 AC_MSG_RESULT([$compile_timelord])
397 AC_ARG_WITH(uams-path,
398 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
399 uams_path="$withval",
400 uams_path="${PKGCONFDIR}/uams"
403 dnl --------------------------------------------------------------------------
404 dnl FHS stuff has to be done last because it overrides other defaults
405 dnl --------------------------------------------------------------------------
408 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
409 if test "$enableval" = "yes"; then
410 uams_path="/usr/lib/netatalk"
412 PKGCONFDIR=${sysconfdir}/netatalk
414 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
415 AC_DEFINE(FHS_COMPATIBILITY)
417 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
420 dnl --------------------------------------------------------------------------
421 dnl post-FHS substitutions, etc
422 dnl --------------------------------------------------------------------------
425 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
426 [path to UAMs [default=PKGCONF/uams]])
427 UAMS_PATH="${uams_path}"
430 dnl --------------------------------------------------------------------------
431 dnl drop in includes for top level directory structures here...
432 dnl --------------------------------------------------------------------------
434 dnl Note: $(top_srcdir)/include should be added before all other includes
435 dnl so that includes from that directory a preferred to includes from
436 dnl /usr/include or similar places.
437 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
438 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
440 dnl --------------------------------------------------------------------------
441 dnl specific configuration comes in here:
442 dnl --------------------------------------------------------------------------
444 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
446 dnl --------------------- determine operating system from "target"
448 *aix*) this_os=aix ;;
449 *freebsd*) this_os=freebsd ;;
450 *hpux11*) this_os=hpux11 ;;
451 *irix*) this_os=irix ;;
452 *linux*) this_os=linux ;;
453 *osx*) this_os=macosx ;;
454 *netbsd*) this_os=netbsd ;;
455 *openbsd*) this_os=openbsd ;;
456 *osf*) this_os=tru64 ;;
457 *solaris*) this_os=solaris ;;
461 i386|i486|i586|i686|k7) this_cpu=x86 ;;
462 alpha) this_cpu=alpha ;;
463 mips) this_cpu=mips ;;
464 powerpc|ppc) this_cpu=ppc ;;
467 dnl --------------------- operating system specific flags (port from sys/*)
469 dnl ----- AIX specific -----
470 if test x"$this_os" = "xaix"; then
471 AC_MSG_RESULT([ * AIX specific configuration])
472 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
474 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
475 dnl compilation environment. It's enough to get things defined
476 dnl right in endian.h provided that long long is supported, though.
477 AC_DEFINE(HAVE_32BIT_LONGS)
480 dnl ----- FreeBSD specific -----
481 if test x"$this_os" = "xfreebsd"; then
482 AC_MSG_RESULT([ * FreeBSD specific configuration])
484 AC_DEFINE(SENDFILE_FLAVOR_BSD)
486 AC_DEFINE(NO_CRYPT_H, 1)
489 dnl ----- HP-UX 11 specific -----
490 if test x"$this_os" = "xhpux11"; then
491 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
493 AC_DEFINE(_ISOC9X_SOURCE)
494 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
497 dnl ----- IRIX specific -----
498 if test x"$this_os" = "xirix"; then
499 AC_MSG_RESULT([ * IRIX specific configuration])
501 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
504 dnl ----- Linux specific -----
505 if test x"$this_os" = "xlinux"; then
506 AC_MSG_RESULT([ * Linux specific configuration])
508 dnl ----- check if we need the quotactl wrapper
509 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
510 AC_CHECK_FUNC(quotactl,,
511 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
512 AC_MSG_RESULT([enabling quotactl wrapper])
515 dnl ----- as far as I can tell, dbtob always does the wrong thing
516 dnl ----- on every single version of linux I've ever played with.
517 dnl ----- see etc/afpd/quota.c
518 AC_DEFINE(HAVE_BROKEN_DBTOB)
520 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
521 dnl ----- check if version is newer than 2.2.x
523 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
524 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
525 if [ $majorvers -ge 2 ]; then
526 if [ $minorvers -ge 2 ]; then
528 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
529 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
531 AC_MSG_RESULT([ * found Linux 2.0.x ])
535 dnl ----- Linux/alpha specific -----
536 if test x"$this_cpu" = "xalpha"; then
537 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
538 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
543 dnl ----- Mac OSX specific -----
544 if test x"$this_os" = "xmacosx"; then
545 AC_MSG_RESULT([ * Mac OSX specific configuration])
547 AC_DEFINE(HAVE_BROKEN_CPP)
548 AC_DEFINE(HAVE_2ARG_DBTOB)
549 dnl AC_DEFINE(NO_DLFCN_H)
550 AC_DEFINE(MACOSX_SERVER)
553 dnl ----- NetBSD specific -----
554 if test x"$this_os" = "xnetbsd"; then
555 AC_MSG_RESULT([ * NetBSD specific configuration])
557 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
558 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
561 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
562 AC_DEFINE(UAM_DHX, 1)
563 AC_DEFINE(NO_CRYPT_H, 1)
566 dnl ----- OpenBSD specific -----
567 if test x"$this_os" = "xopenbsd"; then
568 AC_MSG_RESULT([ * OpenBSD specific configuration])
570 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
572 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
573 AC_DEFINE(UAM_DHX, 1)
574 AC_DEFINE(NO_CRYPT_H, 1)
577 dnl ----- Solaris specific -----
578 if test x"$this_os" = "xsolaris"; then
579 AC_MSG_RESULT([ * Solaris specific configuration])
581 AC_DEFINE(_ISOC9X_SOURCE)
582 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
584 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
587 AC_MSG_RESULT([enabling Solaris kernel module build])
591 dnl ----- Tru64 specific -----
592 if test x"$this_os" = "xtru64"; then
593 AC_MSG_RESULT([ * Tru64 specific configuration])
595 AC_DEFINE(HAVE_64BIT_LONGS)
596 dnl AC_DEFINE(USE_MOUNT_H)
597 AC_DEFINE(USE_OLD_RQUOTA)
598 dnl AC_DEFINE(USE_UFS_QUOTA_H)
600 AC_CHECK_LIB(security,set_auth_parameters)
601 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
606 dnl -- look for openssl
609 dnl --------------------- check for building PGP UAM module
611 AC_ARG_ENABLE(pgp-uam,
612 [ --enable-pgp-uam enable build of PGP UAM module],
613 if test "$enableval" = "yes"; then
614 if test "$compile_ssl" = "yes"; then
615 AC_DEFINE(UAM_PGP, 1)
617 AC_MSG_RESULT([enabling build with PGP UAM module])
622 dnl --------------------- check for building Kerberos v4 UAM module
624 AC_ARG_ENABLE(krb4-uam,
625 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
626 if test "$enableval" = "yes"; then
627 AC_DEFINE(UAM_KRB4, 1)
629 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
632 dnl --------------------- overwrite the config files . . . or not.
634 AC_MSG_CHECKING([whether configuration files should be overwritten])
635 AC_ARG_ENABLE(overwrite,
636 [ --enable-overwrite overwrite configuration files during installation],
637 [OVERWRITE_CONFIG="${enable_overwrite}"],
638 [OVERWRITE_CONFIG="no"]
640 AC_MSG_RESULT([$OVERWRITE_CONFIG])
642 dnl --------------------- last minute substitutions
649 AC_SUBST(OVERWRITE_CONFIG)
651 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
652 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
653 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
654 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
655 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
656 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
657 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
658 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
659 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
660 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
661 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
662 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
663 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
665 dnl --------------------- generate files
669 bin/adv1tov2/Makefile
672 bin/afppasswd/Makefile
673 bin/getzones/Makefile
674 bin/megatron/Makefile
680 contrib/macusers/Makefile
682 contrib/printing/Makefile
683 contrib/shell_utils/Makefile
684 contrib/timelord/Makefile
686 distrib/config/Makefile
687 distrib/config/netatalk-config
688 distrib/initscripts/Makefile
693 etc/afpd/nls/Makefile
696 etc/uams/uams_krb4/Makefile
700 include/atalk/Makefile
702 libatalk/adouble/Makefile
703 libatalk/asp/Makefile
704 libatalk/atp/Makefile
705 libatalk/cnid/Makefile
706 libatalk/compat/Makefile
707 libatalk/dsi/Makefile
708 libatalk/nbp/Makefile
709 libatalk/netddp/Makefile
710 libatalk/util/Makefile
720 sys/generic/sys/Makefile
721 sys/netatalk/Makefile
723 sys/netbsd/netatalk/Makefile
728 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]