1 dnl $Id: configure.in,v 1.126.2.21 2002-08-30 16:59:25 jmarcus 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 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 Checks for (v)snprintf
111 NETATALK_SNPRINTF_CHECK
113 dnl --------------------------------------------------------------------------
114 dnl specific configuration comes in here:
115 dnl --------------------------------------------------------------------------
117 AC_DEFINE(ADMIN_GRP, 1)
119 AC_ARG_WITH(admin-group,
120 [ --disable-admin-group disable admin group],
121 if test "$enableval" = "no"; then
122 AC_DEFINE(ADMIN_GRP, 0)
123 AC_MSG_RESULT([disabling administrative group support])
131 AC_ARG_WITH(cracklib,
132 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
133 if test "x$withval" != "xno" ; then
135 AC_CHECK_LIB(crack, main,
136 AC_DEFINE(USE_CRACKLIB)
138 AC_MSG_RESULT([enabling cracklib support])
139 if test "$cracklib" = "yes"; then
140 cracklib="/usr/lib/cracklib_dict"
142 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
143 [path to cracklib dictionary])
144 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
145 AC_MSG_ERROR([cracklib not found!])
151 [ --disable-ddp disable DDP],
152 if test "$enableval" = "no"; then
154 AC_MSG_RESULT([disabling DDP])
159 [ --enable-debug enable debug code],
160 if test "$enableval" != "no"; then
161 if test "$enableval" = "yes"; then
164 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
166 AC_MSG_RESULT([enabling debugging code])
171 dnl ----------- A NOTE ABOUT DROPKLUDGE
172 dnl The trouble with this fix is that if you know what the file is called, it
173 dnl can be read from the Unix side. That's okay for most academic institutions
174 dnl since the students don't have telnet access to the Mac servers. There is
175 dnl currently no one working on further development/fixes of DROPKLUDGE.
178 AC_ARG_ENABLE(dropkludge,
179 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
180 if test "$enableval" = "yes"; then
181 AC_DEFINE(DROPKLUDGE, 1)
182 AC_MSG_RESULT([enabling experimental dropbox support])
186 AC_ARG_ENABLE(force-uidgid,
187 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
188 if test "$enableval" = "yes"; then
189 AC_DEFINE(FORCE_UIDGID, 1)
190 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
194 dnl Don't use DB3 unless it's needed
198 dnl Determine DID scheme
199 AC_MSG_CHECKING([for DID scheme to use])
201 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
202 [ did_scheme="$withval" ],
203 [ did_scheme="last" ]
206 if test "x$did_scheme" = "xlast"; then
207 AC_DEFINE(USE_LASTDID, 1)
208 AC_MSG_RESULT([last])
209 elif test "x$did_scheme" = "xhash"; then
210 AC_MSG_RESULT([device/inode-based hashing])
211 elif test "x$did_scheme" = "xmtab"; then
212 AC_DEFINE(DID_MTAB, 1)
213 AC_MSG_RESULT([mtab-based DID creation support])
214 elif test "x$did_scheme" = "xcnid"; then
216 AC_DEFINE(CNID_DB, 1)
217 AC_MSG_RESULT([enabling build with CNID DB support])
219 AC_MSG_ERROR([unknown DID scheme])
221 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
223 dnl Check for Berkeley DB3 library
224 if test "x$db3_required" = "xyes"; then
225 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
228 dnl Check for quota support
232 AC_ARG_WITH(message-dir,
233 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
235 if test x"$msg_dir" = "x"; then
236 msg_dir="${PKGCONFDIR}/msg"
238 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
239 [path to message dir [[PKGCONF/msg]]])
240 SERVERTEXT="$msg_dir"
244 dnl Check for optional server location protocol support (used by MacOS X)
247 dnl Check for PAM libs
249 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
250 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
256 AC_MSG_CHECKING([whether shadow support should be enabled])
258 [ --with-shadow enable shadow password support],
259 [shadowpw="$withval"],
262 if test "x$shadowpw" = "xyes"; then
265 AC_MSG_RESULT([$shadowpw])
267 AC_ARG_ENABLE(shell-check,
268 [ --disable-shell-check disable checking for a valid shell],
269 if test "$enableval" = "no"; then
270 AC_DEFINE(DISABLE_SHELLCHECK, 1)
271 AC_MSG_RESULT([disabling valid shell check])
275 AC_MSG_CHECKING([whether flock locks should be enabled])
276 AC_ARG_WITH(flock-locks,
277 [ --with-flock-locks enable flock locks support],
278 [flock_locks="$withval"],
281 if test "x$flock_locks" = "xyes"; then
282 AC_DEFINE(USE_FLOCK_LOCKS)
284 AC_MSG_RESULT([$flock_locks])
286 AC_ARG_WITH(tcp-wrappers,
287 [ --with-tcp-wrappers enable TCP wrappers support],
288 AC_CHECK_LIB(wrap, tcpd_warn,
290 AFPD_LIBS="$AFPD_LIBS -lwrap"
291 AC_MSG_RESULT([enabling TCP wrappers support])
295 AC_ARG_ENABLE(redhat,
296 [ --enable-redhat use redhat-style sysv configuration ],
297 if test "$enableval" = "yes"; then
300 AC_MSG_RESULT([enabling redhat-style sysv support])
304 [ --enable-suse use suse-style sysv configuration ],
305 if test "$enableval" = "yes"; then
308 AC_MSG_RESULT([enabling suse-style sysv support])
311 AC_ARG_ENABLE(cobalt,
312 [ --enable-cobalt use cobalt-style sysv configuration ],
313 if test "$enableval" = "yes"; then
316 AC_MSG_RESULT([enabling cobalt-style sysv support])
319 AC_ARG_ENABLE(netbsd,
320 [ --enable-netbsd use NetBSD-style rc.d configuration ],
321 if test "x$enableval" = "xyes"; then
324 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
327 dnl ----- timelord compilation (disabled by default)
328 AC_MSG_CHECKING([whether timelord should be compiled])
330 AC_ARG_ENABLE(timelord,
331 [ --enable-timelord enable compilation of timelord server],
332 [compile_timelord="$enableval"],
333 [compile_timelord="no"]
335 AC_MSG_RESULT([$compile_timelord])
337 AC_ARG_WITH(uams-path,
338 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
339 uams_path="$withval",
340 uams_path="${PKGCONFDIR}/uams"
343 dnl --------------------------------------------------------------------------
344 dnl FHS stuff has to be done last because it overrides other defaults
345 dnl --------------------------------------------------------------------------
348 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
349 if test "$enableval" = "yes"; then
350 uams_path="/usr/lib/netatalk"
352 PKGCONFDIR=${sysconfdir}/netatalk
354 mandir="/usr/share/man"
355 AC_DEFINE(FHS_COMPATIBILITY)
357 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
360 dnl --------------------------------------------------------------------------
361 dnl post-FHS substitutions, etc
362 dnl --------------------------------------------------------------------------
365 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
366 [path to UAMs [default=PKGCONF/uams]])
367 UAMS_PATH="${uams_path}"
370 dnl --------------------------------------------------------------------------
371 dnl drop in includes for top level directory structures here...
372 dnl --------------------------------------------------------------------------
374 dnl Note: $(top_srcdir)/include should be added before all other includes
375 dnl so that includes from that directory a preferred to includes from
376 dnl /usr/include or similar places.
377 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
378 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
380 dnl --------------------------------------------------------------------------
381 dnl specific configuration comes in here:
382 dnl --------------------------------------------------------------------------
384 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
386 dnl --------------------- determine operating system from "target"
388 *aix*) this_os=aix ;;
389 *freebsd*) this_os=freebsd ;;
390 *hpux11*) this_os=hpux11 ;;
391 *irix*) this_os=irix ;;
392 *linux*) this_os=linux ;;
393 *osx*) this_os=macosx ;;
394 *darwin*) this_os=macosx ;;
395 *netbsd*) this_os=netbsd ;;
396 *openbsd*) this_os=openbsd ;;
397 *osf*) this_os=tru64 ;;
398 *solaris*) this_os=solaris ;;
402 i386|i486|i586|i686|k7) this_cpu=x86 ;;
403 alpha) this_cpu=alpha ;;
404 mips) this_cpu=mips ;;
405 powerpc|ppc) this_cpu=ppc ;;
408 dnl --------------------- operating system specific flags (port from sys/*)
410 dnl ----- AIX specific -----
411 if test x"$this_os" = "xaix"; then
412 AC_MSG_RESULT([ * AIX specific configuration])
413 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
415 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
416 dnl compilation environment. It's enough to get things defined
417 dnl right in endian.h provided that long long is supported, though.
418 AC_DEFINE(HAVE_32BIT_LONGS)
421 dnl ----- FreeBSD specific -----
422 if test x"$this_os" = "xfreebsd"; then
423 AC_MSG_RESULT([ * FreeBSD specific configuration])
425 AC_DEFINE(SENDFILE_FLAVOR_BSD)
427 AC_DEFINE(NO_CRYPT_H, 1)
430 dnl ----- HP-UX 11 specific -----
431 if test x"$this_os" = "xhpux11"; then
432 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
434 AC_DEFINE(_ISOC9X_SOURCE)
435 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
438 dnl ----- IRIX specific -----
439 if test x"$this_os" = "xirix"; then
440 AC_MSG_RESULT([ * IRIX specific configuration])
442 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
445 dnl ----- Linux specific -----
446 if test x"$this_os" = "xlinux"; then
447 AC_MSG_RESULT([ * Linux specific configuration])
449 dnl ----- check if we need the quotactl wrapper
450 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
451 AC_CHECK_FUNC(quotactl,,
452 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
453 AC_MSG_RESULT([enabling quotactl wrapper])
456 dnl ----- as far as I can tell, dbtob always does the wrong thing
457 dnl ----- on every single version of linux I've ever played with.
458 dnl ----- see etc/afpd/quota.c
459 AC_DEFINE(HAVE_BROKEN_DBTOB)
461 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
462 dnl ----- check if version is newer than 2.2.x
464 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
465 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
466 if [ $majorvers -ge 2 ]; then
467 if [ $minorvers -ge 2 ]; then
469 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
470 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
472 AC_MSG_RESULT([ * found Linux 2.0.x ])
476 dnl ----- Linux/alpha specific -----
477 if test x"$this_cpu" = "xalpha"; then
478 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
479 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
484 dnl ----- Mac OSX specific -----
485 if test x"$this_os" = "xmacosx"; then
486 AC_MSG_RESULT([ * Mac OSX specific configuration])
488 AC_DEFINE(HAVE_BROKEN_CPP)
489 AC_DEFINE(HAVE_2ARG_DBTOB)
490 dnl AC_DEFINE(NO_DLFCN_H)
491 AC_DEFINE(MACOSX_SERVER)
494 dnl ----- NetBSD specific -----
495 if test x"$this_os" = "xnetbsd"; then
496 AC_MSG_RESULT([ * NetBSD specific configuration])
498 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
499 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
500 # If this test is true, it's not an ELF box.
501 # This REALLY should be a configure test.
502 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
504 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
507 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
508 AC_DEFINE(UAM_DHX, 1)
509 AC_DEFINE(NO_CRYPT_H, 1)
512 dnl ----- OpenBSD specific -----
513 if test x"$this_os" = "xopenbsd"; then
514 AC_MSG_RESULT([ * OpenBSD specific configuration])
516 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
518 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
519 AC_DEFINE(UAM_DHX, 1)
520 AC_DEFINE(NO_CRYPT_H, 1)
523 dnl ----- Solaris specific -----
524 if test x"$this_os" = "xsolaris"; then
525 AC_MSG_RESULT([ * Solaris specific configuration])
527 AC_DEFINE(_ISOC9X_SOURCE)
528 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
530 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
533 AC_MSG_RESULT([enabling Solaris kernel module build])
537 dnl ----- Tru64 specific -----
538 if test x"$this_os" = "xtru64"; then
539 AC_MSG_RESULT([ * Tru64 specific configuration])
541 AC_DEFINE(HAVE_64BIT_LONGS)
542 dnl AC_DEFINE(USE_MOUNT_H)
543 AC_DEFINE(USE_OLD_RQUOTA)
544 dnl AC_DEFINE(USE_UFS_QUOTA_H)
546 AC_CHECK_LIB(security,set_auth_parameters)
547 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
552 dnl -- look for openssl
555 dnl --------------------- check for building PGP UAM module
557 AC_ARG_ENABLE(pgp-uam,
558 [ --enable-pgp-uam enable build of PGP UAM module],
559 if test "$enableval" = "yes"; then
560 if test "$compile_ssl" = "yes"; then
561 AC_DEFINE(UAM_PGP, 1)
563 AC_MSG_RESULT([enabling build with PGP UAM module])
568 dnl --------------------- check for building Kerberos v4 UAM module
570 AC_ARG_ENABLE(krb4-uam,
571 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
572 if test "$enableval" = "yes"; then
573 AC_DEFINE(UAM_KRB4, 1)
575 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
578 dnl --------------------- overwrite the config files . . . or not.
580 AC_MSG_CHECKING([whether configuration files should be overwritten])
581 AC_ARG_ENABLE(overwrite,
582 [ --enable-overwrite overwrite configuration files during installation],
583 [OVERWRITE_CONFIG="${enable_overwrite}"],
584 [OVERWRITE_CONFIG="no"]
586 AC_MSG_RESULT([$OVERWRITE_CONFIG])
588 dnl --------------------- last minute substitutions
594 AC_SUBST(OVERWRITE_CONFIG)
596 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
597 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
598 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
599 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
600 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
601 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
602 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
603 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
604 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
605 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
606 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
607 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
608 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
609 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
611 dnl --------------------- generate files
615 bin/adv1tov2/Makefile
618 bin/afppasswd/Makefile
621 bin/getzones/Makefile
622 bin/megatron/Makefile
628 contrib/macusers/Makefile
629 contrib/macusers/macusers
632 contrib/printing/Makefile
633 contrib/shell_utils/Makefile
634 contrib/shell_utils/afpd-mtab.pl
635 contrib/shell_utils/apple_cp
636 contrib/shell_utils/apple_mv
637 contrib/shell_utils/apple_rm
638 contrib/shell_utils/cleanappledouble.pl
639 contrib/shell_utils/netatalkshorternamelinks.pl
640 contrib/timelord/Makefile
642 distrib/config/Makefile
643 distrib/config/netatalk-config
644 distrib/initscripts/Makefile
649 etc/afpd/nls/Makefile
652 etc/uams/uams_krb4/Makefile
656 include/atalk/Makefile
658 libatalk/adouble/Makefile
659 libatalk/asp/Makefile
660 libatalk/atp/Makefile
661 libatalk/cnid/Makefile
662 libatalk/compat/Makefile
663 libatalk/dsi/Makefile
664 libatalk/nbp/Makefile
665 libatalk/netddp/Makefile
666 libatalk/util/Makefile
676 sys/generic/sys/Makefile
677 sys/netatalk/Makefile
679 sys/netbsd/netatalk/Makefile
681 sys/solaris/Makefile.kernel
685 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]