1 dnl $Id: configure.in,v 1.161 2002-08-25 13:26:19 rlewczuk 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 dnl Check for Berkeley DB3 library
251 if test "x$db3_required" = "xyes"; then
252 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
255 dnl Check for quota support
258 dnl Check for optional server location protocol support (used by MacOS X)
261 dnl Check for PAM libs
263 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
264 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
270 AC_MSG_CHECKING([whether shadow support should be enabled])
272 [ --with-shadow enable shadow password support],
273 [shadowpw="$withval"],
276 if test "x$shadowpw" = "xyes"; then
279 AC_MSG_RESULT([$shadowpw])
281 AC_ARG_ENABLE(shell-check,
282 [ --disable-shell-check disable checking for a valid shell],
283 if test "$enableval" = "no"; then
284 AC_DEFINE(DISABLE_SHELLCHECK, 1)
285 AC_MSG_RESULT([disabling valid shell check])
289 AC_MSG_CHECKING([whether flock locks should be enabled])
290 AC_ARG_WITH(flock-locks,
291 [ --with-flock-locks enable flock locks support],
292 [flock_locks="$withval"],
295 if test "x$flock_locks" = "xyes"; then
296 AC_DEFINE(USE_FLOCK_LOCKS)
298 AC_MSG_RESULT([$flock_locks])
300 AC_ARG_WITH(tcp-wrappers,
301 [ --with-tcp-wrappers enable TCP wrappers support],
302 AC_CHECK_LIB(wrap, tcpd_warn,
304 AFPD_LIBS="$AFPD_LIBS -lwrap"
305 AC_MSG_RESULT([enabling TCP wrappers support])
309 AC_ARG_ENABLE(redhat,
310 [ --enable-redhat use redhat-style sysv configuration ],
311 if test "$enableval" = "yes"; then
314 AC_MSG_RESULT([enabling redhat-style sysv support])
318 [ --enable-suse use suse-style sysv configuration ],
319 if test "$enableval" = "yes"; then
322 AC_MSG_RESULT([enabling suse-style sysv support])
325 AC_ARG_ENABLE(cobalt,
326 [ --enable-cobalt use cobalt-style sysv configuration ],
327 if test "$enableval" = "yes"; then
330 AC_MSG_RESULT([enabling cobalt-style sysv support])
333 AC_ARG_ENABLE(netbsd,
334 [ --enable-netbsd use NetBSD-style rc.d configuration ],
335 if test "x$enableval" = "xyes"; then
338 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
341 dnl ----- timelord compilation (disabled by default)
342 AC_MSG_CHECKING([whether timelord should be compiled])
344 AC_ARG_ENABLE(timelord,
345 [ --enable-timelord enable compilation of timelord server],
346 [compile_timelord="$enableval"],
347 [compile_timelord="no"]
349 AC_MSG_RESULT([$compile_timelord])
351 AC_ARG_WITH(uams-path,
352 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
353 uams_path="$withval",
354 uams_path="${PKGCONFDIR}/uams"
357 AC_ARG_WITH(catsearch,
358 [ --with-catsearch enable fpCatSearch functionality (experimental)])
359 if test "$withval" = "yes"; then
360 AC_DEFINE(WITH_CATSEARCH, 1)
363 dnl --------------------------------------------------------------------------
364 dnl FHS stuff has to be done last because it overrides other defaults
365 dnl --------------------------------------------------------------------------
368 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
369 if test "$enableval" = "yes"; then
370 uams_path="/usr/lib/netatalk"
372 PKGCONFDIR=${sysconfdir}/netatalk
374 mandir="/usr/share/man"
375 AC_DEFINE(FHS_COMPATIBILITY)
377 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
380 dnl --------------------------------------------------------------------------
381 dnl post-FHS substitutions, etc
382 dnl --------------------------------------------------------------------------
385 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
386 [path to UAMs [default=PKGCONF/uams]])
387 UAMS_PATH="${uams_path}"
390 dnl --------------------------------------------------------------------------
391 dnl drop in includes for top level directory structures here...
392 dnl --------------------------------------------------------------------------
394 dnl Note: $(top_srcdir)/include should be added before all other includes
395 dnl so that includes from that directory a preferred to includes from
396 dnl /usr/include or similar places.
397 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
398 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
400 dnl --------------------------------------------------------------------------
401 dnl specific configuration comes in here:
402 dnl --------------------------------------------------------------------------
404 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
406 dnl --------------------- determine operating system from "target"
408 *aix*) this_os=aix ;;
409 *freebsd*) this_os=freebsd ;;
410 *hpux11*) this_os=hpux11 ;;
411 *irix*) this_os=irix ;;
412 *linux*) this_os=linux ;;
413 *osx*) this_os=macosx ;;
414 *darwin*) this_os=macosx ;;
415 *netbsd*) this_os=netbsd ;;
416 *openbsd*) this_os=openbsd ;;
417 *osf*) this_os=tru64 ;;
418 *solaris*) this_os=solaris ;;
422 i386|i486|i586|i686|k7) this_cpu=x86 ;;
423 alpha) this_cpu=alpha ;;
424 mips) this_cpu=mips ;;
425 powerpc|ppc) this_cpu=ppc ;;
428 dnl --------------------- operating system specific flags (port from sys/*)
430 dnl ----- AIX specific -----
431 if test x"$this_os" = "xaix"; then
432 AC_MSG_RESULT([ * AIX specific configuration])
433 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
435 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
436 dnl compilation environment. It's enough to get things defined
437 dnl right in endian.h provided that long long is supported, though.
438 AC_DEFINE(HAVE_32BIT_LONGS)
441 dnl ----- FreeBSD specific -----
442 if test x"$this_os" = "xfreebsd"; then
443 AC_MSG_RESULT([ * FreeBSD specific configuration])
445 AC_DEFINE(SENDFILE_FLAVOR_BSD)
447 AC_DEFINE(NO_CRYPT_H, 1)
450 dnl ----- HP-UX 11 specific -----
451 if test x"$this_os" = "xhpux11"; then
452 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
454 AC_DEFINE(_ISOC9X_SOURCE)
455 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
458 dnl ----- IRIX specific -----
459 if test x"$this_os" = "xirix"; then
460 AC_MSG_RESULT([ * IRIX specific configuration])
462 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
465 dnl ----- Linux specific -----
466 if test x"$this_os" = "xlinux"; then
467 AC_MSG_RESULT([ * Linux specific configuration])
469 dnl ----- check if we need the quotactl wrapper
470 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
471 AC_CHECK_FUNC(quotactl,,
472 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
473 AC_MSG_RESULT([enabling quotactl wrapper])
476 dnl ----- as far as I can tell, dbtob always does the wrong thing
477 dnl ----- on every single version of linux I've ever played with.
478 dnl ----- see etc/afpd/quota.c
479 AC_DEFINE(HAVE_BROKEN_DBTOB)
481 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
482 dnl ----- check if version is newer than 2.2.x
484 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
485 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
486 if [ $majorvers -ge 2 ]; then
487 if [ $minorvers -ge 2 ]; then
489 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
490 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
492 AC_MSG_RESULT([ * found Linux 2.0.x ])
496 dnl ----- Linux/alpha specific -----
497 if test x"$this_cpu" = "xalpha"; then
498 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
499 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
504 dnl ----- Mac OSX specific -----
505 if test x"$this_os" = "xmacosx"; then
506 AC_MSG_RESULT([ * Mac OSX specific configuration])
508 AC_DEFINE(HAVE_BROKEN_CPP)
509 AC_DEFINE(HAVE_2ARG_DBTOB)
510 dnl AC_DEFINE(NO_DLFCN_H)
511 AC_DEFINE(MACOSX_SERVER)
514 dnl ----- NetBSD specific -----
515 if test x"$this_os" = "xnetbsd"; then
516 AC_MSG_RESULT([ * NetBSD specific configuration])
518 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
519 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
520 # If this test is true, it's not an ELF box.
521 # This REALLY should be a configure test.
522 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
524 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
527 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
528 AC_DEFINE(UAM_DHX, 1)
529 AC_DEFINE(NO_CRYPT_H, 1)
532 dnl ----- OpenBSD specific -----
533 if test x"$this_os" = "xopenbsd"; then
534 AC_MSG_RESULT([ * OpenBSD specific configuration])
536 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
538 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
539 AC_DEFINE(UAM_DHX, 1)
540 AC_DEFINE(NO_CRYPT_H, 1)
543 dnl ----- Solaris specific -----
544 if test x"$this_os" = "xsolaris"; then
545 AC_MSG_RESULT([ * Solaris specific configuration])
547 AC_DEFINE(_ISOC9X_SOURCE)
548 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
550 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
553 AC_MSG_RESULT([enabling Solaris kernel module build])
557 dnl ----- Tru64 specific -----
558 if test x"$this_os" = "xtru64"; then
559 AC_MSG_RESULT([ * Tru64 specific configuration])
561 AC_DEFINE(HAVE_64BIT_LONGS)
562 dnl AC_DEFINE(USE_MOUNT_H)
563 AC_DEFINE(USE_OLD_RQUOTA)
564 dnl AC_DEFINE(USE_UFS_QUOTA_H)
566 AC_CHECK_LIB(security,set_auth_parameters)
567 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
572 dnl -- look for openssl
575 dnl --------------------- check for building PGP UAM module
577 AC_ARG_ENABLE(pgp-uam,
578 [ --enable-pgp-uam enable build of PGP UAM module],
579 if test "$enableval" = "yes"; then
580 if test "$compile_ssl" = "yes"; then
581 AC_DEFINE(UAM_PGP, 1)
583 AC_MSG_RESULT([enabling build with PGP UAM module])
588 dnl --------------------- check for building Kerberos v4 UAM module
590 AC_ARG_ENABLE(krb4-uam,
591 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
592 if test "$enableval" = "yes"; then
593 AC_DEFINE(UAM_KRB4, 1)
595 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
598 dnl --------------------- overwrite the config files . . . or not.
600 AC_MSG_CHECKING([whether configuration files should be overwritten])
601 AC_ARG_ENABLE(overwrite,
602 [ --enable-overwrite overwrite configuration files during installation],
603 [OVERWRITE_CONFIG="${enable_overwrite}"],
604 [OVERWRITE_CONFIG="no"]
606 AC_MSG_RESULT([$OVERWRITE_CONFIG])
608 dnl --------------------- last minute substitutions
614 AC_SUBST(OVERWRITE_CONFIG)
616 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
617 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
618 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
619 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
620 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
621 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
622 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
623 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
624 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
625 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
626 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
627 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
628 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
629 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
631 dnl --------------------- generate files
635 bin/adv1tov2/Makefile
638 bin/afppasswd/Makefile
641 bin/getzones/Makefile
642 bin/megatron/Makefile
648 contrib/macusers/Makefile
649 contrib/macusers/macusers
652 contrib/printing/Makefile
653 contrib/shell_utils/Makefile
654 contrib/shell_utils/afpd-mtab.pl
655 contrib/shell_utils/apple_cp
656 contrib/shell_utils/apple_mv
657 contrib/shell_utils/apple_rm
658 contrib/shell_utils/cleanappledouble.pl
659 contrib/shell_utils/netatalkshorternamelinks.pl
660 contrib/timelord/Makefile
662 distrib/config/Makefile
663 distrib/config/netatalk-config
664 distrib/initscripts/Makefile
669 etc/afpd/nls/Makefile
672 etc/uams/uams_krb4/Makefile
676 include/atalk/Makefile
678 libatalk/adouble/Makefile
679 libatalk/asp/Makefile
680 libatalk/atp/Makefile
681 libatalk/cnid/Makefile
682 libatalk/compat/Makefile
683 libatalk/dsi/Makefile
684 libatalk/nbp/Makefile
685 libatalk/netddp/Makefile
686 libatalk/util/Makefile
696 sys/generic/sys/Makefile
697 sys/netatalk/Makefile
699 sys/netbsd/netatalk/Makefile
701 sys/solaris/Makefile.kernel
705 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]