1 dnl $Id: configure.in,v 1.141 2001-12-14 22:53:33 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])
232 dnl Check for Berkeley DB3 library
233 if test "x$db3_required" = "xyes"; then
234 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
237 dnl Check for quota support
241 AC_ARG_WITH(message-dir,
242 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
244 if test x"$msg_dir" = "x"; then
245 msg_dir="${PKGCONFDIR}/msg"
247 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
248 [path to message dir [[PKGCONF/msg]]])
249 SERVERTEXT="$msg_dir"
253 AC_ARG_ENABLE(srvloc,
254 [ --enable-srvloc turn on Server Location Protocol support (EXPERIMENTAL)],
259 dnl Conditional for optional server location protocol support (used by OS X)
260 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
261 if test "x$srvloc" != "xno"; then
262 for slpdir in "" $srvloc /usr /usr/local ; do
263 if test -f "$slpdir/include/slp.h" ; then
264 LIBS="$LIBS -L$slpdir/lib -lslp"
265 CFLAGS="$CFLAGS -I$slpdir/include"
266 AC_CHECK_LIB(slp,SLPOpen)
267 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
268 AC_DEFINE(USE_SRVLOC, 1)
276 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
277 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
283 AC_MSG_CHECKING([whether shadow support should be enabled])
285 [ --with-shadow enable shadow password support],
286 [shadowpw="$withval"],
289 if test "x$shadowpw" = "xyes"; then
292 AC_MSG_RESULT([$shadowpw])
294 AC_ARG_ENABLE(shell-check,
295 [ --disable-shell-check disable checking for a valid shell],
296 if test "$enableval" = "no"; then
297 AC_DEFINE(DISABLE_SHELLCHECK, 1)
298 AC_MSG_RESULT([disabling valid shell check])
302 AC_MSG_CHECKING([whether flock locks should be enabled])
303 AC_ARG_WITH(flock-locks,
304 [ --with-flock-locks enable flock locks support],
305 [flock_locks="$withval"],
308 if test "x$flock_locks" = "xyes"; then
309 AC_DEFINE(USE_FLOCK_LOCKS)
311 AC_MSG_RESULT([$flock_locks])
313 AC_ARG_WITH(tcp-wrappers,
314 [ --with-tcp-wrappers enable TCP wrappers support],
315 AC_CHECK_LIB(wrap, tcpd_warn,
317 AFPD_LIBS="$AFPD_LIBS -lwrap"
318 AC_MSG_RESULT([enabling TCP wrappers support])
322 AC_ARG_ENABLE(redhat,
323 [ --enable-redhat use redhat-style sysv configuration ],
324 if test "$enableval" = "yes"; then
327 AC_MSG_RESULT([enabling redhat-style sysv support])
331 [ --enable-suse use suse-style sysv configuration ],
332 if test "$enableval" = "yes"; then
335 AC_MSG_RESULT([enabling suse-style sysv support])
338 AC_ARG_ENABLE(cobalt,
339 [ --enable-cobalt use cobalt-style sysv configuration ],
340 if test "$enableval" = "yes"; then
343 AC_MSG_RESULT([enabling cobalt-style sysv support])
346 dnl ----- timelord compilation (disabled by default)
347 AC_MSG_CHECKING([whether timelord should be compiled])
349 AC_ARG_ENABLE(timelord,
350 [ --enable-timelord enable compilation of timelord server],
351 [compile_timelord="$enableval"],
352 [compile_timelord="no"]
354 AC_MSG_RESULT([$compile_timelord])
356 AC_ARG_WITH(uams-path,
357 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
358 uams_path="$withval",
359 uams_path="${PKGCONFDIR}/uams"
362 dnl --------------------------------------------------------------------------
363 dnl FHS stuff has to be done last because it overrides other defaults
364 dnl --------------------------------------------------------------------------
367 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
368 if test "$enableval" = "yes"; then
369 uams_path="/usr/lib/netatalk"
371 PKGCONFDIR=${sysconfdir}/netatalk
373 mandir="/usr/share/man"
374 AC_DEFINE(FHS_COMPATIBILITY)
376 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
379 dnl --------------------------------------------------------------------------
380 dnl post-FHS substitutions, etc
381 dnl --------------------------------------------------------------------------
384 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
385 [path to UAMs [default=PKGCONF/uams]])
386 UAMS_PATH="${uams_path}"
389 dnl --------------------------------------------------------------------------
390 dnl drop in includes for top level directory structures here...
391 dnl --------------------------------------------------------------------------
393 dnl Note: $(top_srcdir)/include should be added before all other includes
394 dnl so that includes from that directory a preferred to includes from
395 dnl /usr/include or similar places.
396 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
397 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
399 dnl --------------------------------------------------------------------------
400 dnl specific configuration comes in here:
401 dnl --------------------------------------------------------------------------
403 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
405 dnl --------------------- determine operating system from "target"
407 *aix*) this_os=aix ;;
408 *freebsd*) this_os=freebsd ;;
409 *hpux11*) this_os=hpux11 ;;
410 *irix*) this_os=irix ;;
411 *linux*) this_os=linux ;;
412 *osx*) this_os=macosx ;;
413 *darwin*) this_os=macosx ;;
414 *netbsd*) this_os=netbsd ;;
415 *openbsd*) this_os=openbsd ;;
416 *osf*) this_os=tru64 ;;
417 *solaris*) this_os=solaris ;;
421 i386|i486|i586|i686|k7) this_cpu=x86 ;;
422 alpha) this_cpu=alpha ;;
423 mips) this_cpu=mips ;;
424 powerpc|ppc) this_cpu=ppc ;;
427 dnl --------------------- operating system specific flags (port from sys/*)
429 dnl ----- AIX specific -----
430 if test x"$this_os" = "xaix"; then
431 AC_MSG_RESULT([ * AIX specific configuration])
432 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
434 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
435 dnl compilation environment. It's enough to get things defined
436 dnl right in endian.h provided that long long is supported, though.
437 AC_DEFINE(HAVE_32BIT_LONGS)
440 dnl ----- FreeBSD specific -----
441 if test x"$this_os" = "xfreebsd"; then
442 AC_MSG_RESULT([ * FreeBSD specific configuration])
444 AC_DEFINE(SENDFILE_FLAVOR_BSD)
446 AC_DEFINE(NO_CRYPT_H, 1)
449 dnl ----- HP-UX 11 specific -----
450 if test x"$this_os" = "xhpux11"; then
451 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
453 AC_DEFINE(_ISOC9X_SOURCE)
454 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
457 dnl ----- IRIX specific -----
458 if test x"$this_os" = "xirix"; then
459 AC_MSG_RESULT([ * IRIX specific configuration])
461 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
464 dnl ----- Linux specific -----
465 if test x"$this_os" = "xlinux"; then
466 AC_MSG_RESULT([ * Linux specific configuration])
468 dnl ----- check if we need the quotactl wrapper
469 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
470 AC_CHECK_FUNC(quotactl,,
471 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
472 AC_MSG_RESULT([enabling quotactl wrapper])
475 dnl ----- as far as I can tell, dbtob always does the wrong thing
476 dnl ----- on every single version of linux I've ever played with.
477 dnl ----- see etc/afpd/quota.c
478 AC_DEFINE(HAVE_BROKEN_DBTOB)
480 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
481 dnl ----- check if version is newer than 2.2.x
483 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
484 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
485 if [ $majorvers -ge 2 ]; then
486 if [ $minorvers -ge 2 ]; then
488 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
489 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
491 AC_MSG_RESULT([ * found Linux 2.0.x ])
495 dnl ----- Linux/alpha specific -----
496 if test x"$this_cpu" = "xalpha"; then
497 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
498 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
503 dnl ----- Mac OSX specific -----
504 if test x"$this_os" = "xmacosx"; then
505 AC_MSG_RESULT([ * Mac OSX specific configuration])
507 AC_DEFINE(HAVE_BROKEN_CPP)
508 AC_DEFINE(HAVE_2ARG_DBTOB)
509 dnl AC_DEFINE(NO_DLFCN_H)
510 AC_DEFINE(MACOSX_SERVER)
513 dnl ----- NetBSD specific -----
514 if test x"$this_os" = "xnetbsd"; then
515 AC_MSG_RESULT([ * NetBSD specific configuration])
517 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
518 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
521 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
522 AC_DEFINE(UAM_DHX, 1)
523 AC_DEFINE(NO_CRYPT_H, 1)
526 dnl ----- OpenBSD specific -----
527 if test x"$this_os" = "xopenbsd"; then
528 AC_MSG_RESULT([ * OpenBSD specific configuration])
530 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
532 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
533 AC_DEFINE(UAM_DHX, 1)
534 AC_DEFINE(NO_CRYPT_H, 1)
537 dnl ----- Solaris specific -----
538 if test x"$this_os" = "xsolaris"; then
539 AC_MSG_RESULT([ * Solaris specific configuration])
541 AC_DEFINE(_ISOC9X_SOURCE)
542 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
544 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
547 AC_MSG_RESULT([enabling Solaris kernel module build])
551 dnl ----- Tru64 specific -----
552 if test x"$this_os" = "xtru64"; then
553 AC_MSG_RESULT([ * Tru64 specific configuration])
555 AC_DEFINE(HAVE_64BIT_LONGS)
556 dnl AC_DEFINE(USE_MOUNT_H)
557 AC_DEFINE(USE_OLD_RQUOTA)
558 dnl AC_DEFINE(USE_UFS_QUOTA_H)
560 AC_CHECK_LIB(security,set_auth_parameters)
561 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
566 dnl -- look for openssl
569 dnl --------------------- check for building PGP UAM module
571 AC_ARG_ENABLE(pgp-uam,
572 [ --enable-pgp-uam enable build of PGP UAM module],
573 if test "$enableval" = "yes"; then
574 if test "$compile_ssl" = "yes"; then
575 AC_DEFINE(UAM_PGP, 1)
577 AC_MSG_RESULT([enabling build with PGP UAM module])
582 dnl --------------------- check for building Kerberos v4 UAM module
584 AC_ARG_ENABLE(krb4-uam,
585 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
586 if test "$enableval" = "yes"; then
587 AC_DEFINE(UAM_KRB4, 1)
589 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
592 dnl --------------------- overwrite the config files . . . or not.
594 AC_MSG_CHECKING([whether configuration files should be overwritten])
595 AC_ARG_ENABLE(overwrite,
596 [ --enable-overwrite overwrite configuration files during installation],
597 [OVERWRITE_CONFIG="${enable_overwrite}"],
598 [OVERWRITE_CONFIG="no"]
600 AC_MSG_RESULT([$OVERWRITE_CONFIG])
602 dnl --------------------- last minute substitutions
609 AC_SUBST(OVERWRITE_CONFIG)
611 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
612 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
613 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
614 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
615 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
616 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
617 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
618 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
619 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
620 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
621 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
622 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
623 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
625 dnl --------------------- generate files
629 bin/adv1tov2/Makefile
632 bin/afppasswd/Makefile
634 bin/getzones/Makefile
635 bin/megatron/Makefile
641 contrib/macusers/Makefile
643 contrib/printing/Makefile
644 contrib/shell_utils/Makefile
645 contrib/timelord/Makefile
647 distrib/config/Makefile
648 distrib/config/netatalk-config
649 distrib/initscripts/Makefile
654 etc/afpd/nls/Makefile
657 etc/uams/uams_krb4/Makefile
661 include/atalk/Makefile
663 libatalk/adouble/Makefile
664 libatalk/asp/Makefile
665 libatalk/atp/Makefile
666 libatalk/cnid/Makefile
667 libatalk/compat/Makefile
668 libatalk/dsi/Makefile
669 libatalk/nbp/Makefile
670 libatalk/netddp/Makefile
671 libatalk/util/Makefile
681 sys/generic/sys/Makefile
682 sys/netatalk/Makefile
684 sys/netbsd/netatalk/Makefile
689 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]