1 dnl $Id: configure.in,v 1.126.2.19 2002-03-12 11:19:27 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.
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])
128 AC_ARG_WITH(cracklib,
129 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
130 if test "x$withval" != "xno" ; then
132 AC_CHECK_LIB(crack, main,
133 AC_DEFINE(USE_CRACKLIB)
135 AC_MSG_RESULT([enabling cracklib support])
136 if test "$cracklib" = "yes"; then
137 cracklib="/usr/lib/cracklib_dict"
139 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
140 [path to cracklib dictionary])
141 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
142 AC_MSG_ERROR([cracklib not found!])
148 [ --disable-ddp disable DDP],
149 if test "$enableval" = "no"; then
151 AC_MSG_RESULT([disabling DDP])
156 [ --enable-debug enable debug code],
157 if test "$enableval" != "no"; then
158 if test "$enableval" = "yes"; then
161 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
163 AC_MSG_RESULT([enabling debugging code])
168 dnl ----------- A NOTE ABOUT DROPKLUDGE
169 dnl The trouble with this fix is that if you know what the file is called, it
170 dnl can be read from the Unix side. That's okay for most academic institutions
171 dnl since the students don't have telnet access to the Mac servers. There is
172 dnl currently no one working on further development/fixes of DROPKLUDGE.
175 AC_ARG_ENABLE(dropkludge,
176 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
177 if test "$enableval" = "yes"; then
178 AC_DEFINE(DROPKLUDGE, 1)
179 AC_MSG_RESULT([enabling experimental dropbox support])
183 AC_ARG_ENABLE(force-uidgid,
184 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
185 if test "$enableval" = "yes"; then
186 AC_DEFINE(FORCE_UIDGID, 1)
187 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
191 dnl Don't use DB3 unless it's needed
195 dnl Determine DID scheme
196 AC_MSG_CHECKING([for DID scheme to use])
198 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
199 [ did_scheme="$withval" ],
200 [ did_scheme="last" ]
203 if test "x$did_scheme" = "xlast"; then
204 AC_DEFINE(USE_LASTDID, 1)
205 AC_MSG_RESULT([last])
206 elif test "x$did_scheme" = "xhash"; then
207 AC_MSG_RESULT([device/inode-based hashing])
208 elif test "x$did_scheme" = "xmtab"; then
209 AC_DEFINE(DID_MTAB, 1)
210 AC_MSG_RESULT([mtab-based DID creation support])
211 elif test "x$did_scheme" = "xcnid"; then
213 AC_DEFINE(CNID_DB, 1)
214 AC_MSG_RESULT([enabling build with CNID DB support])
216 AC_MSG_ERROR([unknown DID scheme])
218 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
220 dnl Check for Berkeley DB3 library
221 if test "x$db3_required" = "xyes"; then
222 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
225 dnl Check for quota support
229 AC_ARG_WITH(message-dir,
230 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
232 if test x"$msg_dir" = "x"; then
233 msg_dir="${PKGCONFDIR}/msg"
235 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
236 [path to message dir [[PKGCONF/msg]]])
237 SERVERTEXT="$msg_dir"
241 dnl Check for optional server location protocol support (used by MacOS X)
244 dnl Check for PAM libs
246 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
247 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
253 AC_MSG_CHECKING([whether shadow support should be enabled])
255 [ --with-shadow enable shadow password support],
256 [shadowpw="$withval"],
259 if test "x$shadowpw" = "xyes"; then
262 AC_MSG_RESULT([$shadowpw])
264 AC_ARG_ENABLE(shell-check,
265 [ --disable-shell-check disable checking for a valid shell],
266 if test "$enableval" = "no"; then
267 AC_DEFINE(DISABLE_SHELLCHECK, 1)
268 AC_MSG_RESULT([disabling valid shell check])
272 AC_MSG_CHECKING([whether flock locks should be enabled])
273 AC_ARG_WITH(flock-locks,
274 [ --with-flock-locks enable flock locks support],
275 [flock_locks="$withval"],
278 if test "x$flock_locks" = "xyes"; then
279 AC_DEFINE(USE_FLOCK_LOCKS)
281 AC_MSG_RESULT([$flock_locks])
283 AC_ARG_WITH(tcp-wrappers,
284 [ --with-tcp-wrappers enable TCP wrappers support],
285 AC_CHECK_LIB(wrap, tcpd_warn,
287 AFPD_LIBS="$AFPD_LIBS -lwrap"
288 AC_MSG_RESULT([enabling TCP wrappers support])
292 AC_ARG_ENABLE(redhat,
293 [ --enable-redhat use redhat-style sysv configuration ],
294 if test "$enableval" = "yes"; then
297 AC_MSG_RESULT([enabling redhat-style sysv support])
301 [ --enable-suse use suse-style sysv configuration ],
302 if test "$enableval" = "yes"; then
305 AC_MSG_RESULT([enabling suse-style sysv support])
308 AC_ARG_ENABLE(cobalt,
309 [ --enable-cobalt use cobalt-style sysv configuration ],
310 if test "$enableval" = "yes"; then
313 AC_MSG_RESULT([enabling cobalt-style sysv support])
316 AC_ARG_ENABLE(netbsd,
317 [ --enable-netbsd use NetBSD-style rc.d configuration ],
318 if test "x$enableval" = "xyes"; then
321 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
324 dnl ----- timelord compilation (disabled by default)
325 AC_MSG_CHECKING([whether timelord should be compiled])
327 AC_ARG_ENABLE(timelord,
328 [ --enable-timelord enable compilation of timelord server],
329 [compile_timelord="$enableval"],
330 [compile_timelord="no"]
332 AC_MSG_RESULT([$compile_timelord])
334 AC_ARG_WITH(uams-path,
335 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
336 uams_path="$withval",
337 uams_path="${PKGCONFDIR}/uams"
340 dnl --------------------------------------------------------------------------
341 dnl FHS stuff has to be done last because it overrides other defaults
342 dnl --------------------------------------------------------------------------
345 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
346 if test "$enableval" = "yes"; then
347 uams_path="/usr/lib/netatalk"
349 PKGCONFDIR=${sysconfdir}/netatalk
351 mandir="/usr/share/man"
352 AC_DEFINE(FHS_COMPATIBILITY)
354 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
357 dnl --------------------------------------------------------------------------
358 dnl post-FHS substitutions, etc
359 dnl --------------------------------------------------------------------------
362 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
363 [path to UAMs [default=PKGCONF/uams]])
364 UAMS_PATH="${uams_path}"
367 dnl --------------------------------------------------------------------------
368 dnl drop in includes for top level directory structures here...
369 dnl --------------------------------------------------------------------------
371 dnl Note: $(top_srcdir)/include should be added before all other includes
372 dnl so that includes from that directory a preferred to includes from
373 dnl /usr/include or similar places.
374 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
375 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
377 dnl --------------------------------------------------------------------------
378 dnl specific configuration comes in here:
379 dnl --------------------------------------------------------------------------
381 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
383 dnl --------------------- determine operating system from "target"
385 *aix*) this_os=aix ;;
386 *freebsd*) this_os=freebsd ;;
387 *hpux11*) this_os=hpux11 ;;
388 *irix*) this_os=irix ;;
389 *linux*) this_os=linux ;;
390 *osx*) this_os=macosx ;;
391 *darwin*) this_os=macosx ;;
392 *netbsd*) this_os=netbsd ;;
393 *openbsd*) this_os=openbsd ;;
394 *osf*) this_os=tru64 ;;
395 *solaris*) this_os=solaris ;;
399 i386|i486|i586|i686|k7) this_cpu=x86 ;;
400 alpha) this_cpu=alpha ;;
401 mips) this_cpu=mips ;;
402 powerpc|ppc) this_cpu=ppc ;;
405 dnl --------------------- operating system specific flags (port from sys/*)
407 dnl ----- AIX specific -----
408 if test x"$this_os" = "xaix"; then
409 AC_MSG_RESULT([ * AIX specific configuration])
410 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
412 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
413 dnl compilation environment. It's enough to get things defined
414 dnl right in endian.h provided that long long is supported, though.
415 AC_DEFINE(HAVE_32BIT_LONGS)
418 dnl ----- FreeBSD specific -----
419 if test x"$this_os" = "xfreebsd"; then
420 AC_MSG_RESULT([ * FreeBSD specific configuration])
422 AC_DEFINE(SENDFILE_FLAVOR_BSD)
424 AC_DEFINE(NO_CRYPT_H, 1)
427 dnl ----- HP-UX 11 specific -----
428 if test x"$this_os" = "xhpux11"; then
429 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
431 AC_DEFINE(_ISOC9X_SOURCE)
432 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
435 dnl ----- IRIX specific -----
436 if test x"$this_os" = "xirix"; then
437 AC_MSG_RESULT([ * IRIX specific configuration])
439 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
442 dnl ----- Linux specific -----
443 if test x"$this_os" = "xlinux"; then
444 AC_MSG_RESULT([ * Linux specific configuration])
446 dnl ----- check if we need the quotactl wrapper
447 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
448 AC_CHECK_FUNC(quotactl,,
449 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
450 AC_MSG_RESULT([enabling quotactl wrapper])
453 dnl ----- as far as I can tell, dbtob always does the wrong thing
454 dnl ----- on every single version of linux I've ever played with.
455 dnl ----- see etc/afpd/quota.c
456 AC_DEFINE(HAVE_BROKEN_DBTOB)
458 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
459 dnl ----- check if version is newer than 2.2.x
461 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
462 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
463 if [ $majorvers -ge 2 ]; then
464 if [ $minorvers -ge 2 ]; then
466 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
467 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
469 AC_MSG_RESULT([ * found Linux 2.0.x ])
473 dnl ----- Linux/alpha specific -----
474 if test x"$this_cpu" = "xalpha"; then
475 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
476 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
481 dnl ----- Mac OSX specific -----
482 if test x"$this_os" = "xmacosx"; then
483 AC_MSG_RESULT([ * Mac OSX specific configuration])
485 AC_DEFINE(HAVE_BROKEN_CPP)
486 AC_DEFINE(HAVE_2ARG_DBTOB)
487 dnl AC_DEFINE(NO_DLFCN_H)
488 AC_DEFINE(MACOSX_SERVER)
491 dnl ----- NetBSD specific -----
492 if test x"$this_os" = "xnetbsd"; then
493 AC_MSG_RESULT([ * NetBSD specific configuration])
495 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
496 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
499 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
500 AC_DEFINE(UAM_DHX, 1)
501 AC_DEFINE(NO_CRYPT_H, 1)
504 dnl ----- OpenBSD specific -----
505 if test x"$this_os" = "xopenbsd"; then
506 AC_MSG_RESULT([ * OpenBSD specific configuration])
508 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
510 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
511 AC_DEFINE(UAM_DHX, 1)
512 AC_DEFINE(NO_CRYPT_H, 1)
515 dnl ----- Solaris specific -----
516 if test x"$this_os" = "xsolaris"; then
517 AC_MSG_RESULT([ * Solaris specific configuration])
519 AC_DEFINE(_ISOC9X_SOURCE)
520 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
522 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
525 AC_MSG_RESULT([enabling Solaris kernel module build])
529 dnl ----- Tru64 specific -----
530 if test x"$this_os" = "xtru64"; then
531 AC_MSG_RESULT([ * Tru64 specific configuration])
533 AC_DEFINE(HAVE_64BIT_LONGS)
534 dnl AC_DEFINE(USE_MOUNT_H)
535 AC_DEFINE(USE_OLD_RQUOTA)
536 dnl AC_DEFINE(USE_UFS_QUOTA_H)
538 AC_CHECK_LIB(security,set_auth_parameters)
539 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
544 dnl -- look for openssl
547 dnl --------------------- check for building PGP UAM module
549 AC_ARG_ENABLE(pgp-uam,
550 [ --enable-pgp-uam enable build of PGP UAM module],
551 if test "$enableval" = "yes"; then
552 if test "$compile_ssl" = "yes"; then
553 AC_DEFINE(UAM_PGP, 1)
555 AC_MSG_RESULT([enabling build with PGP UAM module])
560 dnl --------------------- check for building Kerberos v4 UAM module
562 AC_ARG_ENABLE(krb4-uam,
563 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
564 if test "$enableval" = "yes"; then
565 AC_DEFINE(UAM_KRB4, 1)
567 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
570 dnl --------------------- overwrite the config files . . . or not.
572 AC_MSG_CHECKING([whether configuration files should be overwritten])
573 AC_ARG_ENABLE(overwrite,
574 [ --enable-overwrite overwrite configuration files during installation],
575 [OVERWRITE_CONFIG="${enable_overwrite}"],
576 [OVERWRITE_CONFIG="no"]
578 AC_MSG_RESULT([$OVERWRITE_CONFIG])
580 dnl --------------------- last minute substitutions
586 AC_SUBST(OVERWRITE_CONFIG)
588 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
589 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
590 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
591 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
592 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
593 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
594 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
595 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
596 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
597 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
598 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
599 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
600 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
601 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
603 dnl --------------------- generate files
607 bin/adv1tov2/Makefile
610 bin/afppasswd/Makefile
613 bin/getzones/Makefile
614 bin/megatron/Makefile
620 contrib/macusers/Makefile
621 contrib/macusers/macusers
624 contrib/printing/Makefile
625 contrib/shell_utils/Makefile
626 contrib/shell_utils/afpd-mtab.pl
627 contrib/shell_utils/apple_cp
628 contrib/shell_utils/apple_mv
629 contrib/shell_utils/apple_rm
630 contrib/shell_utils/cleanappledouble.pl
631 contrib/shell_utils/netatalkshorternamelinks.pl
632 contrib/timelord/Makefile
634 distrib/config/Makefile
635 distrib/config/netatalk-config
636 distrib/initscripts/Makefile
641 etc/afpd/nls/Makefile
644 etc/uams/uams_krb4/Makefile
648 include/atalk/Makefile
650 libatalk/adouble/Makefile
651 libatalk/asp/Makefile
652 libatalk/atp/Makefile
653 libatalk/cnid/Makefile
654 libatalk/compat/Makefile
655 libatalk/dsi/Makefile
656 libatalk/nbp/Makefile
657 libatalk/netddp/Makefile
658 libatalk/util/Makefile
668 sys/generic/sys/Makefile
669 sys/netatalk/Makefile
671 sys/netbsd/netatalk/Makefile
673 sys/solaris/Makefile.kernel
677 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]