1 dnl $Id: configure.in,v 1.126.2.14 2002-02-07 23:50:21 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 Checks for programs.
23 dnl *********************************************************************
24 dnl FIXME! FIXME! These should be selectable properly, and should produce
25 dnl the proper flags and defines...
26 dnl *********************************************************************
28 dnl Checks for libraries.
29 dnl Replace `main' with a function in -labs:
30 AC_CHECK_LIB(abs, main)
31 dnl Replace `main' with a function in -laudit:
32 AC_CHECK_LIB(audit, main)
33 dnl Replace `main' with a function in -lauth:
34 AC_CHECK_LIB(auth, main)
35 dnl Replace `main' with a function in -lcmd:
36 AC_CHECK_LIB(cmd, main)
37 dnl Replace `main' with a function in -lcrypt:
38 AC_CHECK_LIB(crypt, main)
39 dnl Replace `main' with a function in -ld:
41 dnl Replace `main' with a function in -ldl:
42 AC_CHECK_LIB(dl, main)
43 dnl Replace `main' with a function in -lkauth:
44 AC_CHECK_LIB(kauth, main)
45 dnl Replace `main' with a function in -lkrb:
46 AC_CHECK_LIB(krb, main)
47 dnl Replace `main' with a function in -llwp:
48 AC_CHECK_LIB(lwp, main)
49 dnl Replace `main' with a function in -ln:
51 dnl Replace `main' with a function in -lnsl:
52 AC_CHECK_LIB(nsl, main)
53 dnl Replace `main' with a function in -lprot:
54 AC_CHECK_LIB(prot, main)
55 dnl Replace `main' with a function in -lrx:
56 AC_CHECK_LIB(rx, main)
57 dnl Replace `main' with a function in -lrxkad:
58 AC_CHECK_LIB(rxkad, main)
59 dnl Replace `main' with a function in -lsocket:
60 AC_CHECK_LIB(socket, main)
61 dnl Replace `main' with a function in -lsys:
62 AC_CHECK_LIB(sys, main)
63 dnl Replace `main' with a function in -lubik:
64 AC_CHECK_LIB(ubik, main)
67 # Check presence of some functions
69 # Check for XPG4 access() function
70 # Be sure to test before adding AFS libs in LIBS path as AFS lib
71 # has such a function that works only on AFS filesystems.
72 AC_CHECK_FUNCS(access)
74 dnl Checks for header files.
78 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)
79 AC_CHECK_HEADER(sys/cdefs.h,,
80 AC_MSG_RESULT([enabling generic cdefs.h from tree])
81 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
84 dnl Checks for typedefs, structures, and compiler characteristics.
96 dnl Checks for library functions.
98 AC_PROG_GCC_TRADITIONAL
105 AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp strchr memcpy)
108 dnl --------------------------------------------------------------------------
109 dnl specific configuration comes in here:
110 dnl --------------------------------------------------------------------------
112 AC_DEFINE(ADMIN_GRP, 1)
114 AC_ARG_WITH(admin-group,
115 [ --disable-admin-group disable admin group],
116 if test "$enableval" = "no"; then
117 AC_DEFINE(ADMIN_GRP, 0)
118 AC_MSG_RESULT([disabling administrative group support])
124 AC_ARG_WITH(pkgconfdir,
125 [ --with-pkgconfdir=DIR package specific configuration in DIR
126 [[SYSCONF/netatalk]]],
127 PKGCONFDIR="$withval",
128 PKGCONFDIR="${sysconfdir}/netatalk"
131 dnl FIXME: make this an extra check
132 NLSDIR="${PKGCONFDIR}/nls"
134 AC_ARG_WITH(cracklib,
135 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
136 if test "x$withval" != "xno" ; then
138 AC_CHECK_LIB(crack, main,
139 AC_DEFINE(USE_CRACKLIB)
141 AC_MSG_RESULT([enabling cracklib support])
142 if test "$cracklib" = "yes"; then
143 cracklib="/usr/lib/cracklib_dict"
145 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
146 [path to cracklib dictionary])
147 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
148 AC_MSG_ERROR([cracklib not found!])
154 [ --disable-ddp disable DDP],
155 if test "$enableval" = "no"; then
157 AC_MSG_RESULT([disabling DDP])
162 [ --enable-debug enable debug code],
163 if test "$enableval" != "no"; then
164 if test "$enableval" = "yes"; then
167 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
169 AC_MSG_RESULT([enabling debugging code])
174 dnl ----------- A NOTE ABOUT DROPKLUDGE
175 dnl The trouble with this fix is that if you know what the file is called, it
176 dnl can be read from the Unix side. That's okay for most academic institutions
177 dnl since the students don't have telnet access to the Mac servers. There is
178 dnl currently no one working on further development/fixes of DROPKLUDGE.
181 AC_ARG_ENABLE(dropkludge,
182 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
183 if test "$enableval" = "yes"; then
184 AC_DEFINE(DROPKLUDGE, 1)
185 AC_MSG_RESULT([enabling experimental dropbox support])
189 AC_ARG_ENABLE(force-uidgid,
190 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
191 if test "$enableval" = "yes"; then
192 AC_DEFINE(FORCE_UIDGID, 1)
193 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
197 dnl Don't use DB3 unless it's needed
201 dnl Determine DID scheme
202 AC_MSG_CHECKING([for DID scheme to use])
204 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
205 [ did_scheme="$withval" ],
206 [ did_scheme="last" ]
209 if test "x$did_scheme" = "xlast"; then
210 AC_DEFINE(USE_LASTDID, 1)
211 AC_MSG_RESULT([last])
212 elif test "x$did_scheme" = "xhash"; then
213 AC_MSG_RESULT([device/inode-based hashing])
214 elif test "x$did_scheme" = "xmtab"; then
215 AC_DEFINE(DID_MTAB, 1)
216 AC_MSG_RESULT([mtab-based DID creation support])
217 elif test "x$did_scheme" = "xcnid"; then
219 AC_DEFINE(CNID_DB, 1)
220 AC_MSG_RESULT([enabling build with CNID DB support])
222 AC_MSG_ERROR([unknown DID scheme])
224 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
226 dnl Check for Berkeley DB3 library
227 if test "x$db3_required" = "xyes"; then
228 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
231 dnl Check for quota support
235 AC_ARG_WITH(message-dir,
236 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
238 if test x"$msg_dir" = "x"; then
239 msg_dir="${PKGCONFDIR}/msg"
241 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
242 [path to message dir [[PKGCONF/msg]]])
243 SERVERTEXT="$msg_dir"
247 dnl Check for optional server location protocol support (used by MacOS X)
250 dnl Check for PAM libs
252 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
253 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
259 AC_MSG_CHECKING([whether shadow support should be enabled])
261 [ --with-shadow enable shadow password support],
262 [shadowpw="$withval"],
265 if test "x$shadowpw" = "xyes"; then
268 AC_MSG_RESULT([$shadowpw])
270 AC_ARG_ENABLE(shell-check,
271 [ --disable-shell-check disable checking for a valid shell],
272 if test "$enableval" = "no"; then
273 AC_DEFINE(DISABLE_SHELLCHECK, 1)
274 AC_MSG_RESULT([disabling valid shell check])
278 AC_MSG_CHECKING([whether flock locks should be enabled])
279 AC_ARG_WITH(flock-locks,
280 [ --with-flock-locks enable flock locks support],
281 [flock_locks="$withval"],
284 if test "x$flock_locks" = "xyes"; then
285 AC_DEFINE(USE_FLOCK_LOCKS)
287 AC_MSG_RESULT([$flock_locks])
289 AC_ARG_WITH(tcp-wrappers,
290 [ --with-tcp-wrappers enable TCP wrappers support],
291 AC_CHECK_LIB(wrap, tcpd_warn,
293 AFPD_LIBS="$AFPD_LIBS -lwrap"
294 AC_MSG_RESULT([enabling TCP wrappers support])
298 AC_ARG_ENABLE(redhat,
299 [ --enable-redhat use redhat-style sysv configuration ],
300 if test "$enableval" = "yes"; then
303 AC_MSG_RESULT([enabling redhat-style sysv support])
307 [ --enable-suse use suse-style sysv configuration ],
308 if test "$enableval" = "yes"; then
311 AC_MSG_RESULT([enabling suse-style sysv support])
314 AC_ARG_ENABLE(cobalt,
315 [ --enable-cobalt use cobalt-style sysv configuration ],
316 if test "$enableval" = "yes"; then
319 AC_MSG_RESULT([enabling cobalt-style sysv support])
322 AC_ARG_ENABLE(netbsd,
323 [ --enable-netbsd use NetBSD-style rc.d configuration ],
324 if test "x$enableval" = "xyes"; then
327 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
330 dnl ----- timelord compilation (disabled by default)
331 AC_MSG_CHECKING([whether timelord should be compiled])
333 AC_ARG_ENABLE(timelord,
334 [ --enable-timelord enable compilation of timelord server],
335 [compile_timelord="$enableval"],
336 [compile_timelord="no"]
338 AC_MSG_RESULT([$compile_timelord])
340 AC_ARG_WITH(uams-path,
341 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
342 uams_path="$withval",
343 uams_path="${PKGCONFDIR}/uams"
346 dnl --------------------------------------------------------------------------
347 dnl FHS stuff has to be done last because it overrides other defaults
348 dnl --------------------------------------------------------------------------
351 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
352 if test "$enableval" = "yes"; then
353 uams_path="/usr/lib/netatalk"
355 PKGCONFDIR=${sysconfdir}/netatalk
357 mandir="/usr/share/man"
358 AC_DEFINE(FHS_COMPATIBILITY)
360 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
363 dnl --------------------------------------------------------------------------
364 dnl post-FHS substitutions, etc
365 dnl --------------------------------------------------------------------------
368 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
369 [path to UAMs [default=PKGCONF/uams]])
370 UAMS_PATH="${uams_path}"
373 dnl --------------------------------------------------------------------------
374 dnl drop in includes for top level directory structures here...
375 dnl --------------------------------------------------------------------------
377 dnl Note: $(top_srcdir)/include should be added before all other includes
378 dnl so that includes from that directory a preferred to includes from
379 dnl /usr/include or similar places.
380 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
381 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
383 dnl --------------------------------------------------------------------------
384 dnl specific configuration comes in here:
385 dnl --------------------------------------------------------------------------
387 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
389 dnl --------------------- determine operating system from "target"
391 *aix*) this_os=aix ;;
392 *freebsd*) this_os=freebsd ;;
393 *hpux11*) this_os=hpux11 ;;
394 *irix*) this_os=irix ;;
395 *linux*) this_os=linux ;;
396 *osx*) this_os=macosx ;;
397 *darwin*) this_os=macosx ;;
398 *netbsd*) this_os=netbsd ;;
399 *openbsd*) this_os=openbsd ;;
400 *osf*) this_os=tru64 ;;
401 *solaris*) this_os=solaris ;;
405 i386|i486|i586|i686|k7) this_cpu=x86 ;;
406 alpha) this_cpu=alpha ;;
407 mips) this_cpu=mips ;;
408 powerpc|ppc) this_cpu=ppc ;;
411 dnl --------------------- operating system specific flags (port from sys/*)
413 dnl ----- AIX specific -----
414 if test x"$this_os" = "xaix"; then
415 AC_MSG_RESULT([ * AIX specific configuration])
416 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
418 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
419 dnl compilation environment. It's enough to get things defined
420 dnl right in endian.h provided that long long is supported, though.
421 AC_DEFINE(HAVE_32BIT_LONGS)
424 dnl ----- FreeBSD specific -----
425 if test x"$this_os" = "xfreebsd"; then
426 AC_MSG_RESULT([ * FreeBSD specific configuration])
428 AC_DEFINE(SENDFILE_FLAVOR_BSD)
430 AC_DEFINE(NO_CRYPT_H, 1)
433 dnl ----- HP-UX 11 specific -----
434 if test x"$this_os" = "xhpux11"; then
435 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
437 AC_DEFINE(_ISOC9X_SOURCE)
438 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
441 dnl ----- IRIX specific -----
442 if test x"$this_os" = "xirix"; then
443 AC_MSG_RESULT([ * IRIX specific configuration])
445 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
448 dnl ----- Linux specific -----
449 if test x"$this_os" = "xlinux"; then
450 AC_MSG_RESULT([ * Linux specific configuration])
452 dnl ----- check if we need the quotactl wrapper
453 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
454 AC_CHECK_FUNC(quotactl,,
455 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
456 AC_MSG_RESULT([enabling quotactl wrapper])
459 dnl ----- as far as I can tell, dbtob always does the wrong thing
460 dnl ----- on every single version of linux I've ever played with.
461 dnl ----- see etc/afpd/quota.c
462 AC_DEFINE(HAVE_BROKEN_DBTOB)
464 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
465 dnl ----- check if version is newer than 2.2.x
467 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
468 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
469 if [ $majorvers -ge 2 ]; then
470 if [ $minorvers -ge 2 ]; then
472 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
473 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
475 AC_MSG_RESULT([ * found Linux 2.0.x ])
479 dnl ----- Linux/alpha specific -----
480 if test x"$this_cpu" = "xalpha"; then
481 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
482 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
487 dnl ----- Mac OSX specific -----
488 if test x"$this_os" = "xmacosx"; then
489 AC_MSG_RESULT([ * Mac OSX specific configuration])
491 AC_DEFINE(HAVE_BROKEN_CPP)
492 AC_DEFINE(HAVE_2ARG_DBTOB)
493 dnl AC_DEFINE(NO_DLFCN_H)
494 AC_DEFINE(MACOSX_SERVER)
497 dnl ----- NetBSD specific -----
498 if test x"$this_os" = "xnetbsd"; then
499 AC_MSG_RESULT([ * NetBSD specific configuration])
501 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
502 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
505 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
506 AC_DEFINE(UAM_DHX, 1)
507 AC_DEFINE(NO_CRYPT_H, 1)
510 dnl ----- OpenBSD specific -----
511 if test x"$this_os" = "xopenbsd"; then
512 AC_MSG_RESULT([ * OpenBSD specific configuration])
514 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
516 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
517 AC_DEFINE(UAM_DHX, 1)
518 AC_DEFINE(NO_CRYPT_H, 1)
521 dnl ----- Solaris specific -----
522 if test x"$this_os" = "xsolaris"; then
523 AC_MSG_RESULT([ * Solaris specific configuration])
525 AC_DEFINE(_ISOC9X_SOURCE)
526 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
528 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
531 AC_MSG_RESULT([enabling Solaris kernel module build])
535 dnl ----- Tru64 specific -----
536 if test x"$this_os" = "xtru64"; then
537 AC_MSG_RESULT([ * Tru64 specific configuration])
539 AC_DEFINE(HAVE_64BIT_LONGS)
540 dnl AC_DEFINE(USE_MOUNT_H)
541 AC_DEFINE(USE_OLD_RQUOTA)
542 dnl AC_DEFINE(USE_UFS_QUOTA_H)
544 AC_CHECK_LIB(security,set_auth_parameters)
545 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
550 dnl -- look for openssl
553 dnl --------------------- check for building PGP UAM module
555 AC_ARG_ENABLE(pgp-uam,
556 [ --enable-pgp-uam enable build of PGP UAM module],
557 if test "$enableval" = "yes"; then
558 if test "$compile_ssl" = "yes"; then
559 AC_DEFINE(UAM_PGP, 1)
561 AC_MSG_RESULT([enabling build with PGP UAM module])
566 dnl --------------------- check for building Kerberos v4 UAM module
568 AC_ARG_ENABLE(krb4-uam,
569 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
570 if test "$enableval" = "yes"; then
571 AC_DEFINE(UAM_KRB4, 1)
573 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
576 dnl --------------------- overwrite the config files . . . or not.
578 AC_MSG_CHECKING([whether configuration files should be overwritten])
579 AC_ARG_ENABLE(overwrite,
580 [ --enable-overwrite overwrite configuration files during installation],
581 [OVERWRITE_CONFIG="${enable_overwrite}"],
582 [OVERWRITE_CONFIG="no"]
584 AC_MSG_RESULT([$OVERWRITE_CONFIG])
586 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
620 bin/getzones/Makefile
621 bin/megatron/Makefile
627 contrib/macusers/Makefile
628 contrib/macusers/macusers
631 contrib/printing/Makefile
632 contrib/shell_utils/Makefile
633 contrib/shell_utils/afpd-mtab.pl
634 contrib/shell_utils/apple_cp
635 contrib/shell_utils/apple_mv
636 contrib/shell_utils/apple_rm
637 contrib/shell_utils/cleanappledouble.pl
638 contrib/shell_utils/netatalkshorternamelinks.pl
639 contrib/timelord/Makefile
641 distrib/config/Makefile
642 distrib/config/netatalk-config
643 distrib/initscripts/Makefile
648 etc/afpd/nls/Makefile
651 etc/uams/uams_krb4/Makefile
655 include/atalk/Makefile
657 libatalk/adouble/Makefile
658 libatalk/asp/Makefile
659 libatalk/atp/Makefile
660 libatalk/cnid/Makefile
661 libatalk/compat/Makefile
662 libatalk/dsi/Makefile
663 libatalk/nbp/Makefile
664 libatalk/netddp/Makefile
665 libatalk/util/Makefile
675 sys/generic/sys/Makefile
676 sys/netatalk/Makefile
678 sys/netbsd/netatalk/Makefile
680 sys/solaris/Makefile.kernel
684 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]