1 dnl $Id: configure.in,v 1.143 2001-12-16 18:37:20 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 -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])
125 [ --enable-afs enable AFS support],
126 if test "$enableval" = "yes"; then
128 AC_MSG_RESULT([enabling AFS support])
132 AC_ARG_WITH(pkgconfdir,
133 [ --with-pkgconfdir=DIR package specific configuration in DIR
134 [[SYSCONF/netatalk]]],
135 PKGCONFDIR="$withval",
136 PKGCONFDIR="${sysconfdir}/netatalk"
139 AC_ARG_WITH(cracklib,
140 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
141 if test "x$withval" != "xno" ; then
143 AC_CHECK_LIB(crack, main,
144 AC_DEFINE(USE_CRACKLIB)
146 AC_MSG_RESULT([enabling cracklib support])
147 if test "$cracklib" = "yes"; then
148 cracklib="/usr/lib/cracklib_dict"
150 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
151 [path to cracklib dictionary])
152 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
153 AC_MSG_ERROR([cracklib not found!])
159 [ --disable-ddp disable DDP],
160 if test "$enableval" = "no"; then
162 AC_MSG_RESULT([disabling DDP])
167 [ --enable-debug enable debug code],
168 if test "$enableval" != "no"; then
169 if test "$enableval" = "yes"; then
172 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
174 AC_MSG_RESULT([enabling debugging code])
181 dnl ----------- A NOTE ABOUT DROPKLUDGE
182 dnl The trouble with this fix is that if you know what the file is called, it
183 dnl can be read from the Unix side. That's okay for most academic institutions
184 dnl since the students don't have telnet access to the Mac servers. There is
185 dnl currently no one working on further development/fixes of DROPKLUDGE.
188 AC_ARG_ENABLE(dropkludge,
189 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
190 if test "$enableval" = "yes"; then
191 AC_DEFINE(DROPKLUDGE, 1)
192 AC_MSG_RESULT([enabling experimental dropbox support])
196 AC_ARG_ENABLE(force-uidgid,
197 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
198 if test "$enableval" = "yes"; then
199 AC_DEFINE(FORCE_UIDGID, 1)
200 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
204 dnl Don't use DB3 unless it's needed
208 dnl Determine DID scheme
209 AC_MSG_CHECKING([for DID scheme to use])
211 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
212 [ did_scheme="$withval" ],
213 [ did_scheme="last" ]
216 if test "x$did_scheme" = "xlast"; then
217 AC_DEFINE(USE_LASTDID, 1)
218 AC_MSG_RESULT([last])
219 elif test "x$did_scheme" = "xhash"; then
220 AC_MSG_RESULT([device/inode-based hashing])
221 elif test "x$did_scheme" = "xmtab"; then
222 AC_DEFINE(DID_MTAB, 1)
223 AC_MSG_RESULT([mtab-based DID creation support])
224 elif test "x$did_scheme" = "xcnid"; then
226 AC_DEFINE(CNID_DB, 1)
227 AC_MSG_RESULT([enabling build with CNID DB support])
229 AC_MSG_ERROR([unknown DID scheme])
231 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
233 dnl Check for Berkeley DB3 library
234 if test "x$db3_required" = "xyes"; then
235 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
238 dnl Check for quota support
242 AC_ARG_WITH(message-dir,
243 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
245 if test x"$msg_dir" = "x"; then
246 msg_dir="${PKGCONFDIR}/msg"
248 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
249 [path to message dir [[PKGCONF/msg]]])
250 SERVERTEXT="$msg_dir"
254 dnl Check for optional server location protocol support (used by MacOS X)
257 dnl Check for PAM libs
259 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
260 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
266 AC_MSG_CHECKING([whether shadow support should be enabled])
268 [ --with-shadow enable shadow password support],
269 [shadowpw="$withval"],
272 if test "x$shadowpw" = "xyes"; then
275 AC_MSG_RESULT([$shadowpw])
277 AC_ARG_ENABLE(shell-check,
278 [ --disable-shell-check disable checking for a valid shell],
279 if test "$enableval" = "no"; then
280 AC_DEFINE(DISABLE_SHELLCHECK, 1)
281 AC_MSG_RESULT([disabling valid shell check])
285 AC_MSG_CHECKING([whether flock locks should be enabled])
286 AC_ARG_WITH(flock-locks,
287 [ --with-flock-locks enable flock locks support],
288 [flock_locks="$withval"],
291 if test "x$flock_locks" = "xyes"; then
292 AC_DEFINE(USE_FLOCK_LOCKS)
294 AC_MSG_RESULT([$flock_locks])
296 AC_ARG_WITH(tcp-wrappers,
297 [ --with-tcp-wrappers enable TCP wrappers support],
298 AC_CHECK_LIB(wrap, tcpd_warn,
300 AFPD_LIBS="$AFPD_LIBS -lwrap"
301 AC_MSG_RESULT([enabling TCP wrappers support])
305 AC_ARG_ENABLE(redhat,
306 [ --enable-redhat use redhat-style sysv configuration ],
307 if test "$enableval" = "yes"; then
310 AC_MSG_RESULT([enabling redhat-style sysv support])
314 [ --enable-suse use suse-style sysv configuration ],
315 if test "$enableval" = "yes"; then
318 AC_MSG_RESULT([enabling suse-style sysv support])
321 AC_ARG_ENABLE(cobalt,
322 [ --enable-cobalt use cobalt-style sysv configuration ],
323 if test "$enableval" = "yes"; then
326 AC_MSG_RESULT([enabling cobalt-style sysv support])
329 dnl ----- timelord compilation (disabled by default)
330 AC_MSG_CHECKING([whether timelord should be compiled])
332 AC_ARG_ENABLE(timelord,
333 [ --enable-timelord enable compilation of timelord server],
334 [compile_timelord="$enableval"],
335 [compile_timelord="no"]
337 AC_MSG_RESULT([$compile_timelord])
339 AC_ARG_WITH(uams-path,
340 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
341 uams_path="$withval",
342 uams_path="${PKGCONFDIR}/uams"
345 dnl --------------------------------------------------------------------------
346 dnl FHS stuff has to be done last because it overrides other defaults
347 dnl --------------------------------------------------------------------------
350 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
351 if test "$enableval" = "yes"; then
352 uams_path="/usr/lib/netatalk"
354 PKGCONFDIR=${sysconfdir}/netatalk
356 mandir="/usr/share/man"
357 AC_DEFINE(FHS_COMPATIBILITY)
359 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
362 dnl --------------------------------------------------------------------------
363 dnl post-FHS substitutions, etc
364 dnl --------------------------------------------------------------------------
367 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
368 [path to UAMs [default=PKGCONF/uams]])
369 UAMS_PATH="${uams_path}"
372 dnl --------------------------------------------------------------------------
373 dnl drop in includes for top level directory structures here...
374 dnl --------------------------------------------------------------------------
376 dnl Note: $(top_srcdir)/include should be added before all other includes
377 dnl so that includes from that directory a preferred to includes from
378 dnl /usr/include or similar places.
379 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
380 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
382 dnl --------------------------------------------------------------------------
383 dnl specific configuration comes in here:
384 dnl --------------------------------------------------------------------------
386 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
388 dnl --------------------- determine operating system from "target"
390 *aix*) this_os=aix ;;
391 *freebsd*) this_os=freebsd ;;
392 *hpux11*) this_os=hpux11 ;;
393 *irix*) this_os=irix ;;
394 *linux*) this_os=linux ;;
395 *osx*) this_os=macosx ;;
396 *darwin*) this_os=macosx ;;
397 *netbsd*) this_os=netbsd ;;
398 *openbsd*) this_os=openbsd ;;
399 *osf*) this_os=tru64 ;;
400 *solaris*) this_os=solaris ;;
404 i386|i486|i586|i686|k7) this_cpu=x86 ;;
405 alpha) this_cpu=alpha ;;
406 mips) this_cpu=mips ;;
407 powerpc|ppc) this_cpu=ppc ;;
410 dnl --------------------- operating system specific flags (port from sys/*)
412 dnl ----- AIX specific -----
413 if test x"$this_os" = "xaix"; then
414 AC_MSG_RESULT([ * AIX specific configuration])
415 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
417 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
418 dnl compilation environment. It's enough to get things defined
419 dnl right in endian.h provided that long long is supported, though.
420 AC_DEFINE(HAVE_32BIT_LONGS)
423 dnl ----- FreeBSD specific -----
424 if test x"$this_os" = "xfreebsd"; then
425 AC_MSG_RESULT([ * FreeBSD specific configuration])
427 AC_DEFINE(SENDFILE_FLAVOR_BSD)
429 AC_DEFINE(NO_CRYPT_H, 1)
432 dnl ----- HP-UX 11 specific -----
433 if test x"$this_os" = "xhpux11"; then
434 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
436 AC_DEFINE(_ISOC9X_SOURCE)
437 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
440 dnl ----- IRIX specific -----
441 if test x"$this_os" = "xirix"; then
442 AC_MSG_RESULT([ * IRIX specific configuration])
444 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
447 dnl ----- Linux specific -----
448 if test x"$this_os" = "xlinux"; then
449 AC_MSG_RESULT([ * Linux specific configuration])
451 dnl ----- check if we need the quotactl wrapper
452 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
453 AC_CHECK_FUNC(quotactl,,
454 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
455 AC_MSG_RESULT([enabling quotactl wrapper])
458 dnl ----- as far as I can tell, dbtob always does the wrong thing
459 dnl ----- on every single version of linux I've ever played with.
460 dnl ----- see etc/afpd/quota.c
461 AC_DEFINE(HAVE_BROKEN_DBTOB)
463 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
464 dnl ----- check if version is newer than 2.2.x
466 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
467 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
468 if [ $majorvers -ge 2 ]; then
469 if [ $minorvers -ge 2 ]; then
471 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
472 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
474 AC_MSG_RESULT([ * found Linux 2.0.x ])
478 dnl ----- Linux/alpha specific -----
479 if test x"$this_cpu" = "xalpha"; then
480 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
481 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
486 dnl ----- Mac OSX specific -----
487 if test x"$this_os" = "xmacosx"; then
488 AC_MSG_RESULT([ * Mac OSX specific configuration])
490 AC_DEFINE(HAVE_BROKEN_CPP)
491 AC_DEFINE(HAVE_2ARG_DBTOB)
492 dnl AC_DEFINE(NO_DLFCN_H)
493 AC_DEFINE(MACOSX_SERVER)
496 dnl ----- NetBSD specific -----
497 if test x"$this_os" = "xnetbsd"; then
498 AC_MSG_RESULT([ * NetBSD specific configuration])
500 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
501 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
504 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
505 AC_DEFINE(UAM_DHX, 1)
506 AC_DEFINE(NO_CRYPT_H, 1)
509 dnl ----- OpenBSD specific -----
510 if test x"$this_os" = "xopenbsd"; then
511 AC_MSG_RESULT([ * OpenBSD specific configuration])
513 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
515 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
516 AC_DEFINE(UAM_DHX, 1)
517 AC_DEFINE(NO_CRYPT_H, 1)
520 dnl ----- Solaris specific -----
521 if test x"$this_os" = "xsolaris"; then
522 AC_MSG_RESULT([ * Solaris specific configuration])
524 AC_DEFINE(_ISOC9X_SOURCE)
525 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
527 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
530 AC_MSG_RESULT([enabling Solaris kernel module build])
534 dnl ----- Tru64 specific -----
535 if test x"$this_os" = "xtru64"; then
536 AC_MSG_RESULT([ * Tru64 specific configuration])
538 AC_DEFINE(HAVE_64BIT_LONGS)
539 dnl AC_DEFINE(USE_MOUNT_H)
540 AC_DEFINE(USE_OLD_RQUOTA)
541 dnl AC_DEFINE(USE_UFS_QUOTA_H)
543 AC_CHECK_LIB(security,set_auth_parameters)
544 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
549 dnl -- look for openssl
552 dnl --------------------- check for building PGP UAM module
554 AC_ARG_ENABLE(pgp-uam,
555 [ --enable-pgp-uam enable build of PGP UAM module],
556 if test "$enableval" = "yes"; then
557 if test "$compile_ssl" = "yes"; then
558 AC_DEFINE(UAM_PGP, 1)
560 AC_MSG_RESULT([enabling build with PGP UAM module])
565 dnl --------------------- check for building Kerberos v4 UAM module
567 AC_ARG_ENABLE(krb4-uam,
568 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
569 if test "$enableval" = "yes"; then
570 AC_DEFINE(UAM_KRB4, 1)
572 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
575 dnl --------------------- overwrite the config files . . . or not.
577 AC_MSG_CHECKING([whether configuration files should be overwritten])
578 AC_ARG_ENABLE(overwrite,
579 [ --enable-overwrite overwrite configuration files during installation],
580 [OVERWRITE_CONFIG="${enable_overwrite}"],
581 [OVERWRITE_CONFIG="no"]
583 AC_MSG_RESULT([$OVERWRITE_CONFIG])
585 dnl --------------------- last minute substitutions
592 AC_SUBST(OVERWRITE_CONFIG)
594 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
595 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
596 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
597 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
598 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
599 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
600 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
601 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
602 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
603 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
604 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
605 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
606 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
608 dnl --------------------- generate files
612 bin/adv1tov2/Makefile
615 bin/afppasswd/Makefile
617 bin/getzones/Makefile
618 bin/megatron/Makefile
624 contrib/macusers/Makefile
626 contrib/printing/Makefile
627 contrib/shell_utils/Makefile
628 contrib/timelord/Makefile
630 distrib/config/Makefile
631 distrib/config/netatalk-config
632 distrib/initscripts/Makefile
637 etc/afpd/nls/Makefile
640 etc/uams/uams_krb4/Makefile
644 include/atalk/Makefile
646 libatalk/adouble/Makefile
647 libatalk/asp/Makefile
648 libatalk/atp/Makefile
649 libatalk/cnid/Makefile
650 libatalk/compat/Makefile
651 libatalk/dsi/Makefile
652 libatalk/nbp/Makefile
653 libatalk/netddp/Makefile
654 libatalk/util/Makefile
664 sys/generic/sys/Makefile
665 sys/netatalk/Makefile
667 sys/netbsd/netatalk/Makefile
672 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]