1 dnl $Id: configure.in,v 1.142 2001-12-14 23:01:47 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 AC_ARG_ENABLE(srvloc,
255 [ --enable-srvloc turn on Server Location Protocol support (EXPERIMENTAL)],
260 dnl Conditional for optional server location protocol support (used by OS X)
261 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
262 if test "x$srvloc" != "xno"; then
263 for slpdir in "" $srvloc /usr /usr/local ; do
264 if test -f "$slpdir/include/slp.h" ; then
265 LIBS="$LIBS -L$slpdir/lib -lslp"
266 CFLAGS="$CFLAGS -I$slpdir/include"
267 AC_CHECK_LIB(slp,SLPOpen)
268 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
269 AC_DEFINE(USE_SRVLOC, 1)
277 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
278 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
284 AC_MSG_CHECKING([whether shadow support should be enabled])
286 [ --with-shadow enable shadow password support],
287 [shadowpw="$withval"],
290 if test "x$shadowpw" = "xyes"; then
293 AC_MSG_RESULT([$shadowpw])
295 AC_ARG_ENABLE(shell-check,
296 [ --disable-shell-check disable checking for a valid shell],
297 if test "$enableval" = "no"; then
298 AC_DEFINE(DISABLE_SHELLCHECK, 1)
299 AC_MSG_RESULT([disabling valid shell check])
303 AC_MSG_CHECKING([whether flock locks should be enabled])
304 AC_ARG_WITH(flock-locks,
305 [ --with-flock-locks enable flock locks support],
306 [flock_locks="$withval"],
309 if test "x$flock_locks" = "xyes"; then
310 AC_DEFINE(USE_FLOCK_LOCKS)
312 AC_MSG_RESULT([$flock_locks])
314 AC_ARG_WITH(tcp-wrappers,
315 [ --with-tcp-wrappers enable TCP wrappers support],
316 AC_CHECK_LIB(wrap, tcpd_warn,
318 AFPD_LIBS="$AFPD_LIBS -lwrap"
319 AC_MSG_RESULT([enabling TCP wrappers support])
323 AC_ARG_ENABLE(redhat,
324 [ --enable-redhat use redhat-style sysv configuration ],
325 if test "$enableval" = "yes"; then
328 AC_MSG_RESULT([enabling redhat-style sysv support])
332 [ --enable-suse use suse-style sysv configuration ],
333 if test "$enableval" = "yes"; then
336 AC_MSG_RESULT([enabling suse-style sysv support])
339 AC_ARG_ENABLE(cobalt,
340 [ --enable-cobalt use cobalt-style sysv configuration ],
341 if test "$enableval" = "yes"; then
344 AC_MSG_RESULT([enabling cobalt-style sysv support])
347 dnl ----- timelord compilation (disabled by default)
348 AC_MSG_CHECKING([whether timelord should be compiled])
350 AC_ARG_ENABLE(timelord,
351 [ --enable-timelord enable compilation of timelord server],
352 [compile_timelord="$enableval"],
353 [compile_timelord="no"]
355 AC_MSG_RESULT([$compile_timelord])
357 AC_ARG_WITH(uams-path,
358 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
359 uams_path="$withval",
360 uams_path="${PKGCONFDIR}/uams"
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 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
519 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
522 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
523 AC_DEFINE(UAM_DHX, 1)
524 AC_DEFINE(NO_CRYPT_H, 1)
527 dnl ----- OpenBSD specific -----
528 if test x"$this_os" = "xopenbsd"; then
529 AC_MSG_RESULT([ * OpenBSD specific configuration])
531 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
533 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
534 AC_DEFINE(UAM_DHX, 1)
535 AC_DEFINE(NO_CRYPT_H, 1)
538 dnl ----- Solaris specific -----
539 if test x"$this_os" = "xsolaris"; then
540 AC_MSG_RESULT([ * Solaris specific configuration])
542 AC_DEFINE(_ISOC9X_SOURCE)
543 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
545 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
548 AC_MSG_RESULT([enabling Solaris kernel module build])
552 dnl ----- Tru64 specific -----
553 if test x"$this_os" = "xtru64"; then
554 AC_MSG_RESULT([ * Tru64 specific configuration])
556 AC_DEFINE(HAVE_64BIT_LONGS)
557 dnl AC_DEFINE(USE_MOUNT_H)
558 AC_DEFINE(USE_OLD_RQUOTA)
559 dnl AC_DEFINE(USE_UFS_QUOTA_H)
561 AC_CHECK_LIB(security,set_auth_parameters)
562 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
567 dnl -- look for openssl
570 dnl --------------------- check for building PGP UAM module
572 AC_ARG_ENABLE(pgp-uam,
573 [ --enable-pgp-uam enable build of PGP UAM module],
574 if test "$enableval" = "yes"; then
575 if test "$compile_ssl" = "yes"; then
576 AC_DEFINE(UAM_PGP, 1)
578 AC_MSG_RESULT([enabling build with PGP UAM module])
583 dnl --------------------- check for building Kerberos v4 UAM module
585 AC_ARG_ENABLE(krb4-uam,
586 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
587 if test "$enableval" = "yes"; then
588 AC_DEFINE(UAM_KRB4, 1)
590 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
593 dnl --------------------- overwrite the config files . . . or not.
595 AC_MSG_CHECKING([whether configuration files should be overwritten])
596 AC_ARG_ENABLE(overwrite,
597 [ --enable-overwrite overwrite configuration files during installation],
598 [OVERWRITE_CONFIG="${enable_overwrite}"],
599 [OVERWRITE_CONFIG="no"]
601 AC_MSG_RESULT([$OVERWRITE_CONFIG])
603 dnl --------------------- last minute substitutions
610 AC_SUBST(OVERWRITE_CONFIG)
612 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
613 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
614 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
615 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
616 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
617 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
618 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
619 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
620 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
621 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
622 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
623 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
624 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
626 dnl --------------------- generate files
630 bin/adv1tov2/Makefile
633 bin/afppasswd/Makefile
635 bin/getzones/Makefile
636 bin/megatron/Makefile
642 contrib/macusers/Makefile
644 contrib/printing/Makefile
645 contrib/shell_utils/Makefile
646 contrib/timelord/Makefile
648 distrib/config/Makefile
649 distrib/config/netatalk-config
650 distrib/initscripts/Makefile
655 etc/afpd/nls/Makefile
658 etc/uams/uams_krb4/Makefile
662 include/atalk/Makefile
664 libatalk/adouble/Makefile
665 libatalk/asp/Makefile
666 libatalk/atp/Makefile
667 libatalk/cnid/Makefile
668 libatalk/compat/Makefile
669 libatalk/dsi/Makefile
670 libatalk/nbp/Makefile
671 libatalk/netddp/Makefile
672 libatalk/util/Makefile
682 sys/generic/sys/Makefile
683 sys/netatalk/Makefile
685 sys/netbsd/netatalk/Makefile
690 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]