1 dnl $Id: configure.in,v 1.146 2002-01-17 05:50:38 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"
132 [ --with-logfile=PATH path for file used by logger [/var/log/netatalk.log]
133 use --without-logfile to disable logger],
134 if test "$withval" = "no"; then
135 AC_DEFINE(DISABLE_LOGGER, 1)
136 AC_MSG_RESULT([logger disabled])
137 elif test "$withval" != "yes"; then
138 AC_DEFINE_UNQUOTED(LOGFILEPATH, $withval)
139 AC_MSG_RESULT([logfile set to $withval])
141 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
142 AC_MSG_RESULT([logfile set to default])
144 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
145 AC_MSG_RESULT([logfile set to default])
148 AC_ARG_WITH(cracklib,
149 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
150 if test "x$withval" != "xno" ; then
152 AC_CHECK_LIB(crack, main,
153 AC_DEFINE(USE_CRACKLIB)
155 AC_MSG_RESULT([enabling cracklib support])
156 if test "$cracklib" = "yes"; then
157 cracklib="/usr/lib/cracklib_dict"
159 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
160 [path to cracklib dictionary])
161 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
162 AC_MSG_ERROR([cracklib not found!])
168 [ --disable-ddp disable DDP],
169 if test "$enableval" = "no"; then
171 AC_MSG_RESULT([disabling DDP])
176 [ --enable-debug enable debug code],
177 if test "$enableval" != "no"; then
178 if test "$enableval" = "yes"; then
181 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
183 AC_MSG_RESULT([enabling debugging code])
190 dnl ----------- A NOTE ABOUT DROPKLUDGE
191 dnl The trouble with this fix is that if you know what the file is called, it
192 dnl can be read from the Unix side. That's okay for most academic institutions
193 dnl since the students don't have telnet access to the Mac servers. There is
194 dnl currently no one working on further development/fixes of DROPKLUDGE.
197 AC_ARG_ENABLE(dropkludge,
198 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
199 if test "$enableval" = "yes"; then
200 AC_DEFINE(DROPKLUDGE, 1)
201 AC_MSG_RESULT([enabling experimental dropbox support])
205 AC_ARG_ENABLE(force-uidgid,
206 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
207 if test "$enableval" = "yes"; then
208 AC_DEFINE(FORCE_UIDGID, 1)
209 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
213 dnl Don't use DB3 unless it's needed
217 dnl Determine DID scheme
218 AC_MSG_CHECKING([for DID scheme to use])
220 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
221 [ did_scheme="$withval" ],
222 [ did_scheme="last" ]
225 if test "x$did_scheme" = "xlast"; then
226 AC_DEFINE(USE_LASTDID, 1)
227 AC_MSG_RESULT([last])
228 elif test "x$did_scheme" = "xhash"; then
229 AC_MSG_RESULT([device/inode-based hashing])
230 elif test "x$did_scheme" = "xmtab"; then
231 AC_DEFINE(DID_MTAB, 1)
232 AC_MSG_RESULT([mtab-based DID creation support])
233 elif test "x$did_scheme" = "xcnid"; then
235 AC_DEFINE(CNID_DB, 1)
236 AC_MSG_RESULT([enabling build with CNID DB support])
238 AC_MSG_ERROR([unknown DID scheme])
240 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
242 dnl Check for Berkeley DB3 library
243 if test "x$db3_required" = "xyes"; then
244 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
247 dnl Check for quota support
251 AC_ARG_WITH(message-dir,
252 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
254 if test x"$msg_dir" = "x"; then
255 msg_dir="${PKGCONFDIR}/msg"
257 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
258 [path to message dir [[PKGCONF/msg]]])
259 SERVERTEXT="$msg_dir"
263 dnl Check for optional server location protocol support (used by MacOS X)
266 dnl Check for PAM libs
268 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
269 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
275 AC_MSG_CHECKING([whether shadow support should be enabled])
277 [ --with-shadow enable shadow password support],
278 [shadowpw="$withval"],
281 if test "x$shadowpw" = "xyes"; then
284 AC_MSG_RESULT([$shadowpw])
286 AC_ARG_ENABLE(shell-check,
287 [ --disable-shell-check disable checking for a valid shell],
288 if test "$enableval" = "no"; then
289 AC_DEFINE(DISABLE_SHELLCHECK, 1)
290 AC_MSG_RESULT([disabling valid shell check])
294 AC_MSG_CHECKING([whether flock locks should be enabled])
295 AC_ARG_WITH(flock-locks,
296 [ --with-flock-locks enable flock locks support],
297 [flock_locks="$withval"],
300 if test "x$flock_locks" = "xyes"; then
301 AC_DEFINE(USE_FLOCK_LOCKS)
303 AC_MSG_RESULT([$flock_locks])
305 AC_ARG_WITH(tcp-wrappers,
306 [ --with-tcp-wrappers enable TCP wrappers support],
307 AC_CHECK_LIB(wrap, tcpd_warn,
309 AFPD_LIBS="$AFPD_LIBS -lwrap"
310 AC_MSG_RESULT([enabling TCP wrappers support])
314 AC_ARG_ENABLE(redhat,
315 [ --enable-redhat use redhat-style sysv configuration ],
316 if test "$enableval" = "yes"; then
319 AC_MSG_RESULT([enabling redhat-style sysv support])
323 [ --enable-suse use suse-style sysv configuration ],
324 if test "$enableval" = "yes"; then
327 AC_MSG_RESULT([enabling suse-style sysv support])
330 AC_ARG_ENABLE(cobalt,
331 [ --enable-cobalt use cobalt-style sysv configuration ],
332 if test "$enableval" = "yes"; then
335 AC_MSG_RESULT([enabling cobalt-style sysv support])
338 dnl ----- timelord compilation (disabled by default)
339 AC_MSG_CHECKING([whether timelord should be compiled])
341 AC_ARG_ENABLE(timelord,
342 [ --enable-timelord enable compilation of timelord server],
343 [compile_timelord="$enableval"],
344 [compile_timelord="no"]
346 AC_MSG_RESULT([$compile_timelord])
348 AC_ARG_WITH(uams-path,
349 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
350 uams_path="$withval",
351 uams_path="${PKGCONFDIR}/uams"
354 dnl --------------------------------------------------------------------------
355 dnl FHS stuff has to be done last because it overrides other defaults
356 dnl --------------------------------------------------------------------------
359 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
360 if test "$enableval" = "yes"; then
361 uams_path="/usr/lib/netatalk"
363 PKGCONFDIR=${sysconfdir}/netatalk
365 mandir="/usr/share/man"
366 AC_DEFINE(FHS_COMPATIBILITY)
368 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
371 dnl --------------------------------------------------------------------------
372 dnl post-FHS substitutions, etc
373 dnl --------------------------------------------------------------------------
376 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
377 [path to UAMs [default=PKGCONF/uams]])
378 UAMS_PATH="${uams_path}"
381 dnl --------------------------------------------------------------------------
382 dnl drop in includes for top level directory structures here...
383 dnl --------------------------------------------------------------------------
385 dnl Note: $(top_srcdir)/include should be added before all other includes
386 dnl so that includes from that directory a preferred to includes from
387 dnl /usr/include or similar places.
388 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
389 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
391 dnl --------------------------------------------------------------------------
392 dnl specific configuration comes in here:
393 dnl --------------------------------------------------------------------------
395 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
397 dnl --------------------- determine operating system from "target"
399 *aix*) this_os=aix ;;
400 *freebsd*) this_os=freebsd ;;
401 *hpux11*) this_os=hpux11 ;;
402 *irix*) this_os=irix ;;
403 *linux*) this_os=linux ;;
404 *osx*) this_os=macosx ;;
405 *darwin*) this_os=macosx ;;
406 *netbsd*) this_os=netbsd ;;
407 *openbsd*) this_os=openbsd ;;
408 *osf*) this_os=tru64 ;;
409 *solaris*) this_os=solaris ;;
413 i386|i486|i586|i686|k7) this_cpu=x86 ;;
414 alpha) this_cpu=alpha ;;
415 mips) this_cpu=mips ;;
416 powerpc|ppc) this_cpu=ppc ;;
419 dnl --------------------- operating system specific flags (port from sys/*)
421 dnl ----- AIX specific -----
422 if test x"$this_os" = "xaix"; then
423 AC_MSG_RESULT([ * AIX specific configuration])
424 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
426 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
427 dnl compilation environment. It's enough to get things defined
428 dnl right in endian.h provided that long long is supported, though.
429 AC_DEFINE(HAVE_32BIT_LONGS)
432 dnl ----- FreeBSD specific -----
433 if test x"$this_os" = "xfreebsd"; then
434 AC_MSG_RESULT([ * FreeBSD specific configuration])
436 AC_DEFINE(SENDFILE_FLAVOR_BSD)
438 AC_DEFINE(NO_CRYPT_H, 1)
441 dnl ----- HP-UX 11 specific -----
442 if test x"$this_os" = "xhpux11"; then
443 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
445 AC_DEFINE(_ISOC9X_SOURCE)
446 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
449 dnl ----- IRIX specific -----
450 if test x"$this_os" = "xirix"; then
451 AC_MSG_RESULT([ * IRIX specific configuration])
453 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
456 dnl ----- Linux specific -----
457 if test x"$this_os" = "xlinux"; then
458 AC_MSG_RESULT([ * Linux specific configuration])
460 dnl ----- check if we need the quotactl wrapper
461 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
462 AC_CHECK_FUNC(quotactl,,
463 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
464 AC_MSG_RESULT([enabling quotactl wrapper])
467 dnl ----- as far as I can tell, dbtob always does the wrong thing
468 dnl ----- on every single version of linux I've ever played with.
469 dnl ----- see etc/afpd/quota.c
470 AC_DEFINE(HAVE_BROKEN_DBTOB)
472 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
473 dnl ----- check if version is newer than 2.2.x
475 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
476 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
477 if [ $majorvers -ge 2 ]; then
478 if [ $minorvers -ge 2 ]; then
480 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
481 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
483 AC_MSG_RESULT([ * found Linux 2.0.x ])
487 dnl ----- Linux/alpha specific -----
488 if test x"$this_cpu" = "xalpha"; then
489 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
490 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
495 dnl ----- Mac OSX specific -----
496 if test x"$this_os" = "xmacosx"; then
497 AC_MSG_RESULT([ * Mac OSX specific configuration])
499 AC_DEFINE(HAVE_BROKEN_CPP)
500 AC_DEFINE(HAVE_2ARG_DBTOB)
501 dnl AC_DEFINE(NO_DLFCN_H)
502 AC_DEFINE(MACOSX_SERVER)
505 dnl ----- NetBSD specific -----
506 if test x"$this_os" = "xnetbsd"; then
507 AC_MSG_RESULT([ * NetBSD specific configuration])
509 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
510 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
513 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
514 AC_DEFINE(UAM_DHX, 1)
515 AC_DEFINE(NO_CRYPT_H, 1)
518 dnl ----- OpenBSD specific -----
519 if test x"$this_os" = "xopenbsd"; then
520 AC_MSG_RESULT([ * OpenBSD specific configuration])
522 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
524 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
525 AC_DEFINE(UAM_DHX, 1)
526 AC_DEFINE(NO_CRYPT_H, 1)
529 dnl ----- Solaris specific -----
530 if test x"$this_os" = "xsolaris"; then
531 AC_MSG_RESULT([ * Solaris specific configuration])
533 AC_DEFINE(_ISOC9X_SOURCE)
534 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
536 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
539 AC_MSG_RESULT([enabling Solaris kernel module build])
543 dnl ----- Tru64 specific -----
544 if test x"$this_os" = "xtru64"; then
545 AC_MSG_RESULT([ * Tru64 specific configuration])
547 AC_DEFINE(HAVE_64BIT_LONGS)
548 dnl AC_DEFINE(USE_MOUNT_H)
549 AC_DEFINE(USE_OLD_RQUOTA)
550 dnl AC_DEFINE(USE_UFS_QUOTA_H)
552 AC_CHECK_LIB(security,set_auth_parameters)
553 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
558 dnl -- look for openssl
561 dnl --------------------- check for building PGP UAM module
563 AC_ARG_ENABLE(pgp-uam,
564 [ --enable-pgp-uam enable build of PGP UAM module],
565 if test "$enableval" = "yes"; then
566 if test "$compile_ssl" = "yes"; then
567 AC_DEFINE(UAM_PGP, 1)
569 AC_MSG_RESULT([enabling build with PGP UAM module])
574 dnl --------------------- check for building Kerberos v4 UAM module
576 AC_ARG_ENABLE(krb4-uam,
577 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
578 if test "$enableval" = "yes"; then
579 AC_DEFINE(UAM_KRB4, 1)
581 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
584 dnl --------------------- overwrite the config files . . . or not.
586 AC_MSG_CHECKING([whether configuration files should be overwritten])
587 AC_ARG_ENABLE(overwrite,
588 [ --enable-overwrite overwrite configuration files during installation],
589 [OVERWRITE_CONFIG="${enable_overwrite}"],
590 [OVERWRITE_CONFIG="no"]
592 AC_MSG_RESULT([$OVERWRITE_CONFIG])
594 dnl --------------------- last minute substitutions
601 AC_SUBST(OVERWRITE_CONFIG)
603 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
604 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
605 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
606 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
607 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
608 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
609 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
610 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
611 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
612 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
613 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
614 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
615 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
617 dnl --------------------- generate files
621 bin/adv1tov2/Makefile
624 bin/afppasswd/Makefile
626 bin/getzones/Makefile
627 bin/megatron/Makefile
633 contrib/macusers/Makefile
635 contrib/printing/Makefile
636 contrib/shell_utils/Makefile
637 contrib/timelord/Makefile
639 distrib/config/Makefile
640 distrib/config/netatalk-config
641 distrib/initscripts/Makefile
646 etc/afpd/nls/Makefile
649 etc/uams/uams_krb4/Makefile
653 include/atalk/Makefile
655 libatalk/adouble/Makefile
656 libatalk/asp/Makefile
657 libatalk/atp/Makefile
658 libatalk/cnid/Makefile
659 libatalk/compat/Makefile
660 libatalk/dsi/Makefile
661 libatalk/nbp/Makefile
662 libatalk/netddp/Makefile
663 libatalk/util/Makefile
673 sys/generic/sys/Makefile
674 sys/netatalk/Makefile
676 sys/netbsd/netatalk/Makefile
681 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]