1 dnl $Id: configure.in,v 1.162 2002-08-30 03:12:45 jmarcus Exp $
2 dnl configure.in for netatalk
4 AC_INIT(bin/adv1tov2/adv1tov2.c)
6 NETATALK_VERSION=`cat $srcdir/VERSION`
7 AC_SUBST(NETATALK_VERSION)
10 AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION})
11 AM_CONFIG_HEADER(config.h)
13 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 -lcrypt:
40 AC_CHECK_LIB(crypt, main)
41 dnl Replace `main' with a function in -ld:
43 dnl Replace `main' with a function in -ldl:
44 AC_CHECK_LIB(dl, main)
45 dnl Replace `main' with a function in -lkauth:
46 AC_CHECK_LIB(kauth, main)
47 dnl Replace `main' with a function in -lkrb:
48 AC_CHECK_LIB(krb, main)
49 dnl Replace `main' with a function in -llwp:
50 AC_CHECK_LIB(lwp, main)
51 dnl Replace `main' with a function in -ln:
53 dnl Replace `main' with a function in -lnsl:
54 AC_CHECK_LIB(nsl, main)
55 dnl Replace `main' with a function in -lprot:
56 AC_CHECK_LIB(prot, main)
57 dnl Replace `main' with a function in -lrx:
58 AC_CHECK_LIB(rx, main)
59 dnl Replace `main' with a function in -lrxkad:
60 AC_CHECK_LIB(rxkad, main)
61 dnl Replace `main' with a function in -lsocket:
62 AC_CHECK_LIB(socket, main)
63 dnl Replace `main' with a function in -lsys:
64 AC_CHECK_LIB(sys, main)
65 dnl Replace `main' with a function in -lubik:
66 AC_CHECK_LIB(ubik, main)
69 # Check presence of some functions
71 # Check for XPG4 access() function
72 # Be sure to test before adding AFS libs in LIBS path as AFS lib
73 # has such a function that works only on AFS filesystems.
74 AC_CHECK_FUNCS(access)
76 dnl Checks for header files.
80 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)
81 AC_CHECK_HEADER(sys/cdefs.h,,
82 AC_MSG_RESULT([enabling generic cdefs.h from tree])
83 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
86 dnl Checks for typedefs, structures, and compiler characteristics.
98 dnl Checks for library functions.
100 AC_PROG_GCC_TRADITIONAL
107 AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp strchr memcpy)
110 dnl --------------------------------------------------------------------------
111 dnl specific configuration comes in here:
112 dnl --------------------------------------------------------------------------
114 AC_DEFINE(ADMIN_GRP, 1)
116 AC_ARG_WITH(admin-group,
117 [ --disable-admin-group disable admin group],
118 if test "$enableval" = "no"; then
119 AC_DEFINE(ADMIN_GRP, 0)
120 AC_MSG_RESULT([disabling administrative group support])
129 [ --with-logfile=PATH path for file used by logger [/var/log/netatalk.log]
130 use --without-logfile to disable logger],
131 if test "$withval" = "no"; then
132 AC_DEFINE(DISABLE_LOGGER, 1)
133 AC_MSG_RESULT([logger disabled])
134 elif test "$withval" != "yes"; then
135 AC_DEFINE_UNQUOTED(LOGFILEPATH, "$withval")
136 AC_MSG_RESULT([logfile set to $withval])
138 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
139 AC_MSG_RESULT([logfile set to default])
141 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
142 AC_MSG_RESULT([logfile set to default])
145 AC_ARG_WITH(cracklib,
146 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
147 if test "x$withval" != "xno" ; then
149 AC_CHECK_LIB(crack, main,
150 AC_DEFINE(USE_CRACKLIB)
152 AC_MSG_RESULT([enabling cracklib support])
153 if test "$cracklib" = "yes"; then
154 cracklib="/usr/lib/cracklib_dict"
156 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
157 [path to cracklib dictionary])
158 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
159 AC_MSG_ERROR([cracklib not found!])
165 [ --disable-ddp disable DDP],
166 if test "$enableval" = "no"; then
168 AC_MSG_RESULT([disabling DDP])
173 [ --enable-debug enable debug code],
174 if test "$enableval" != "no"; then
175 if test "$enableval" = "yes"; then
178 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
180 AC_MSG_RESULT([enabling debugging code])
185 dnl ----------- A NOTE ABOUT DROPKLUDGE
186 dnl The trouble with this fix is that if you know what the file is called, it
187 dnl can be read from the Unix side. That's okay for most academic institutions
188 dnl since the students don't have telnet access to the Mac servers. There is
189 dnl currently no one working on further development/fixes of DROPKLUDGE.
192 AC_ARG_ENABLE(dropkludge,
193 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
194 if test "$enableval" = "yes"; then
195 AC_DEFINE(DROPKLUDGE, 1)
196 AC_MSG_RESULT([enabling experimental dropbox support])
200 AC_ARG_ENABLE(force-uidgid,
201 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
202 if test "$enableval" = "yes"; then
203 AC_DEFINE(FORCE_UIDGID, 1)
204 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
208 dnl Don't use DB3 unless it's needed
211 dnl Determine DID scheme
212 AC_MSG_CHECKING([for DID scheme to use])
214 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
215 [ did_scheme="$withval" ],
216 [ did_scheme="last" ]
219 if test "x$did_scheme" = "xlast"; then
220 AC_DEFINE(USE_LASTDID, 1)
221 AC_MSG_RESULT([last])
222 elif test "x$did_scheme" = "xhash"; then
223 AC_MSG_RESULT([device/inode-based hashing])
224 elif test "x$did_scheme" = "xmtab"; then
225 AC_DEFINE(DID_MTAB, 1)
226 AC_MSG_RESULT([mtab-based DID creation support])
227 elif test "x$did_scheme" = "xcnid"; then
229 AC_DEFINE(CNID_DB, 1)
230 AC_MSG_RESULT([enabling build with CNID DB support])
232 AC_MSG_ERROR([unknown DID scheme])
234 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
236 dnl Determine whether or not to use filename mangling
237 AC_MSG_CHECKING([whether or not to use filename mangling])
238 AC_ARG_WITH(mangling,
239 [ --with-mangling enable filename mangling],
240 if test "$withval" = "yes"; then
241 if test "x$did_scheme" != "xcnid"; then
242 AC_MSG_ERROR([DID scheme must be CNID to use filename mangling])
244 AC_DEFINE(FILE_MANGLING, 1)
250 , AC_MSG_RESULT([no])
253 dnl Determine whether or not to use CDB or transactional DB store
254 AC_MSG_CHECKING([whether or not to use CNID with Concurrent Data Store])
256 [ --with-cdb enable CNID with Concurrent Data Store],
257 if test "$withval" = "yes"; then
258 if test "x$did_scheme" != "xcnid"; then
259 AC_MSG_ERROR([DID scheme must be CNID to use CDB])
261 AC_DEFINE(CNID_DB_CDB, 1)
267 , AC_MSG_RESULT([no])
270 dnl Check for Berkeley DB3 library
271 if test "x$db3_required" = "xyes"; then
272 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
275 dnl Check for quota support
278 dnl Check for optional server location protocol support (used by MacOS X)
281 dnl Check for PAM libs
283 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
284 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
290 AC_MSG_CHECKING([whether shadow support should be enabled])
292 [ --with-shadow enable shadow password support],
293 [shadowpw="$withval"],
296 if test "x$shadowpw" = "xyes"; then
299 AC_MSG_RESULT([$shadowpw])
301 AC_ARG_ENABLE(shell-check,
302 [ --disable-shell-check disable checking for a valid shell],
303 if test "$enableval" = "no"; then
304 AC_DEFINE(DISABLE_SHELLCHECK, 1)
305 AC_MSG_RESULT([disabling valid shell check])
309 AC_MSG_CHECKING([whether flock locks should be enabled])
310 AC_ARG_WITH(flock-locks,
311 [ --with-flock-locks enable flock locks support],
312 [flock_locks="$withval"],
315 if test "x$flock_locks" = "xyes"; then
316 AC_DEFINE(USE_FLOCK_LOCKS)
318 AC_MSG_RESULT([$flock_locks])
320 AC_ARG_WITH(tcp-wrappers,
321 [ --with-tcp-wrappers enable TCP wrappers support],
322 AC_CHECK_LIB(wrap, tcpd_warn,
324 AFPD_LIBS="$AFPD_LIBS -lwrap"
325 AC_MSG_RESULT([enabling TCP wrappers support])
329 AC_ARG_ENABLE(redhat,
330 [ --enable-redhat use redhat-style sysv configuration ],
331 if test "$enableval" = "yes"; then
334 AC_MSG_RESULT([enabling redhat-style sysv support])
338 [ --enable-suse use suse-style sysv configuration ],
339 if test "$enableval" = "yes"; then
342 AC_MSG_RESULT([enabling suse-style sysv support])
345 AC_ARG_ENABLE(cobalt,
346 [ --enable-cobalt use cobalt-style sysv configuration ],
347 if test "$enableval" = "yes"; then
350 AC_MSG_RESULT([enabling cobalt-style sysv support])
353 AC_ARG_ENABLE(netbsd,
354 [ --enable-netbsd use NetBSD-style rc.d configuration ],
355 if test "x$enableval" = "xyes"; then
358 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
361 dnl ----- timelord compilation (disabled by default)
362 AC_MSG_CHECKING([whether timelord should be compiled])
364 AC_ARG_ENABLE(timelord,
365 [ --enable-timelord enable compilation of timelord server],
366 [compile_timelord="$enableval"],
367 [compile_timelord="no"]
369 AC_MSG_RESULT([$compile_timelord])
371 AC_ARG_WITH(uams-path,
372 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
373 uams_path="$withval",
374 uams_path="${PKGCONFDIR}/uams"
377 AC_ARG_WITH(catsearch,
378 [ --with-catsearch enable fpCatSearch functionality (experimental)])
379 if test "$withval" = "yes"; then
380 AC_DEFINE(WITH_CATSEARCH, 1)
383 dnl --------------------------------------------------------------------------
384 dnl FHS stuff has to be done last because it overrides other defaults
385 dnl --------------------------------------------------------------------------
388 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
389 if test "$enableval" = "yes"; then
390 uams_path="/usr/lib/netatalk"
392 PKGCONFDIR=${sysconfdir}/netatalk
394 mandir="/usr/share/man"
395 AC_DEFINE(FHS_COMPATIBILITY)
397 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
400 dnl --------------------------------------------------------------------------
401 dnl post-FHS substitutions, etc
402 dnl --------------------------------------------------------------------------
405 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
406 [path to UAMs [default=PKGCONF/uams]])
407 UAMS_PATH="${uams_path}"
410 dnl --------------------------------------------------------------------------
411 dnl drop in includes for top level directory structures here...
412 dnl --------------------------------------------------------------------------
414 dnl Note: $(top_srcdir)/include should be added before all other includes
415 dnl so that includes from that directory a preferred to includes from
416 dnl /usr/include or similar places.
417 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
418 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
420 dnl --------------------------------------------------------------------------
421 dnl specific configuration comes in here:
422 dnl --------------------------------------------------------------------------
424 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
426 dnl --------------------- determine operating system from "target"
428 *aix*) this_os=aix ;;
429 *freebsd*) this_os=freebsd ;;
430 *hpux11*) this_os=hpux11 ;;
431 *irix*) this_os=irix ;;
432 *linux*) this_os=linux ;;
433 *osx*) this_os=macosx ;;
434 *darwin*) this_os=macosx ;;
435 *netbsd*) this_os=netbsd ;;
436 *openbsd*) this_os=openbsd ;;
437 *osf*) this_os=tru64 ;;
438 *solaris*) this_os=solaris ;;
442 i386|i486|i586|i686|k7) this_cpu=x86 ;;
443 alpha) this_cpu=alpha ;;
444 mips) this_cpu=mips ;;
445 powerpc|ppc) this_cpu=ppc ;;
448 dnl --------------------- operating system specific flags (port from sys/*)
450 dnl ----- AIX specific -----
451 if test x"$this_os" = "xaix"; then
452 AC_MSG_RESULT([ * AIX specific configuration])
453 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
455 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
456 dnl compilation environment. It's enough to get things defined
457 dnl right in endian.h provided that long long is supported, though.
458 AC_DEFINE(HAVE_32BIT_LONGS)
461 dnl ----- FreeBSD specific -----
462 if test x"$this_os" = "xfreebsd"; then
463 AC_MSG_RESULT([ * FreeBSD specific configuration])
465 AC_DEFINE(SENDFILE_FLAVOR_BSD)
467 AC_DEFINE(NO_CRYPT_H, 1)
470 dnl ----- HP-UX 11 specific -----
471 if test x"$this_os" = "xhpux11"; then
472 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
474 AC_DEFINE(_ISOC9X_SOURCE)
475 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
478 dnl ----- IRIX specific -----
479 if test x"$this_os" = "xirix"; then
480 AC_MSG_RESULT([ * IRIX specific configuration])
482 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
485 dnl ----- Linux specific -----
486 if test x"$this_os" = "xlinux"; then
487 AC_MSG_RESULT([ * Linux specific configuration])
489 dnl ----- check if we need the quotactl wrapper
490 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
491 AC_CHECK_FUNC(quotactl,,
492 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
493 AC_MSG_RESULT([enabling quotactl wrapper])
496 dnl ----- as far as I can tell, dbtob always does the wrong thing
497 dnl ----- on every single version of linux I've ever played with.
498 dnl ----- see etc/afpd/quota.c
499 AC_DEFINE(HAVE_BROKEN_DBTOB)
501 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
502 dnl ----- check if version is newer than 2.2.x
504 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
505 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
506 if [ $majorvers -ge 2 ]; then
507 if [ $minorvers -ge 2 ]; then
509 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
510 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
512 AC_MSG_RESULT([ * found Linux 2.0.x ])
516 dnl ----- Linux/alpha specific -----
517 if test x"$this_cpu" = "xalpha"; then
518 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
519 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
524 dnl ----- Mac OSX specific -----
525 if test x"$this_os" = "xmacosx"; then
526 AC_MSG_RESULT([ * Mac OSX specific configuration])
528 AC_DEFINE(HAVE_BROKEN_CPP)
529 AC_DEFINE(HAVE_2ARG_DBTOB)
530 dnl AC_DEFINE(NO_DLFCN_H)
531 AC_DEFINE(MACOSX_SERVER)
534 dnl ----- NetBSD specific -----
535 if test x"$this_os" = "xnetbsd"; then
536 AC_MSG_RESULT([ * NetBSD specific configuration])
538 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
539 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
540 # If this test is true, it's not an ELF box.
541 # This REALLY should be a configure test.
542 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
544 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
547 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
548 AC_DEFINE(UAM_DHX, 1)
549 AC_DEFINE(NO_CRYPT_H, 1)
552 dnl ----- OpenBSD specific -----
553 if test x"$this_os" = "xopenbsd"; then
554 AC_MSG_RESULT([ * OpenBSD specific configuration])
556 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
558 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
559 AC_DEFINE(UAM_DHX, 1)
560 AC_DEFINE(NO_CRYPT_H, 1)
563 dnl ----- Solaris specific -----
564 if test x"$this_os" = "xsolaris"; then
565 AC_MSG_RESULT([ * Solaris specific configuration])
567 AC_DEFINE(_ISOC9X_SOURCE)
568 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
570 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
573 AC_MSG_RESULT([enabling Solaris kernel module build])
577 dnl ----- Tru64 specific -----
578 if test x"$this_os" = "xtru64"; then
579 AC_MSG_RESULT([ * Tru64 specific configuration])
581 AC_DEFINE(HAVE_64BIT_LONGS)
582 dnl AC_DEFINE(USE_MOUNT_H)
583 AC_DEFINE(USE_OLD_RQUOTA)
584 dnl AC_DEFINE(USE_UFS_QUOTA_H)
586 AC_CHECK_LIB(security,set_auth_parameters)
587 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
592 dnl -- look for openssl
595 dnl --------------------- check for building PGP UAM module
597 AC_ARG_ENABLE(pgp-uam,
598 [ --enable-pgp-uam enable build of PGP UAM module],
599 if test "$enableval" = "yes"; then
600 if test "$compile_ssl" = "yes"; then
601 AC_DEFINE(UAM_PGP, 1)
603 AC_MSG_RESULT([enabling build with PGP UAM module])
608 dnl --------------------- check for building Kerberos v4 UAM module
610 AC_ARG_ENABLE(krb4-uam,
611 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
612 if test "$enableval" = "yes"; then
613 AC_DEFINE(UAM_KRB4, 1)
615 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
618 dnl --------------------- overwrite the config files . . . or not.
620 AC_MSG_CHECKING([whether configuration files should be overwritten])
621 AC_ARG_ENABLE(overwrite,
622 [ --enable-overwrite overwrite configuration files during installation],
623 [OVERWRITE_CONFIG="${enable_overwrite}"],
624 [OVERWRITE_CONFIG="no"]
626 AC_MSG_RESULT([$OVERWRITE_CONFIG])
628 dnl --------------------- last minute substitutions
634 AC_SUBST(OVERWRITE_CONFIG)
636 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
637 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
638 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
639 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
640 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
641 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
642 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
643 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
644 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
645 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
646 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
647 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
648 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
649 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
651 dnl --------------------- generate files
655 bin/adv1tov2/Makefile
658 bin/afppasswd/Makefile
661 bin/getzones/Makefile
662 bin/megatron/Makefile
668 contrib/macusers/Makefile
669 contrib/macusers/macusers
672 contrib/printing/Makefile
673 contrib/shell_utils/Makefile
674 contrib/shell_utils/afpd-mtab.pl
675 contrib/shell_utils/apple_cp
676 contrib/shell_utils/apple_mv
677 contrib/shell_utils/apple_rm
678 contrib/shell_utils/cleanappledouble.pl
679 contrib/shell_utils/netatalkshorternamelinks.pl
680 contrib/timelord/Makefile
682 distrib/config/Makefile
683 distrib/config/netatalk-config
684 distrib/initscripts/Makefile
689 etc/afpd/nls/Makefile
692 etc/uams/uams_krb4/Makefile
696 include/atalk/Makefile
698 libatalk/adouble/Makefile
699 libatalk/asp/Makefile
700 libatalk/atp/Makefile
701 libatalk/cnid/Makefile
702 libatalk/compat/Makefile
703 libatalk/dsi/Makefile
704 libatalk/nbp/Makefile
705 libatalk/netddp/Makefile
706 libatalk/util/Makefile
716 sys/generic/sys/Makefile
717 sys/netatalk/Makefile
719 sys/netbsd/netatalk/Makefile
721 sys/solaris/Makefile.kernel
725 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]