1 dnl $Id: configure.in,v 1.126.2.20 2002-03-12 11:23: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 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 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
496 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
497 # If this test is true, it's not an ELF box.
498 # This REALLY should be a configure test.
499 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
501 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
504 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
505 AC_DEFINE(UAM_DHX, 1)
506 AC_DEFINE(NO_CRYPT_H, 1)
509 dnl ----- OpenBSD specific -----
510 if test x"$this_os" = "xopenbsd"; then
511 AC_MSG_RESULT([ * OpenBSD specific configuration])
513 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
515 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
516 AC_DEFINE(UAM_DHX, 1)
517 AC_DEFINE(NO_CRYPT_H, 1)
520 dnl ----- Solaris specific -----
521 if test x"$this_os" = "xsolaris"; then
522 AC_MSG_RESULT([ * Solaris specific configuration])
524 AC_DEFINE(_ISOC9X_SOURCE)
525 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
527 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
530 AC_MSG_RESULT([enabling Solaris kernel module build])
534 dnl ----- Tru64 specific -----
535 if test x"$this_os" = "xtru64"; then
536 AC_MSG_RESULT([ * Tru64 specific configuration])
538 AC_DEFINE(HAVE_64BIT_LONGS)
539 dnl AC_DEFINE(USE_MOUNT_H)
540 AC_DEFINE(USE_OLD_RQUOTA)
541 dnl AC_DEFINE(USE_UFS_QUOTA_H)
543 AC_CHECK_LIB(security,set_auth_parameters)
544 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
549 dnl -- look for openssl
552 dnl --------------------- check for building PGP UAM module
554 AC_ARG_ENABLE(pgp-uam,
555 [ --enable-pgp-uam enable build of PGP UAM module],
556 if test "$enableval" = "yes"; then
557 if test "$compile_ssl" = "yes"; then
558 AC_DEFINE(UAM_PGP, 1)
560 AC_MSG_RESULT([enabling build with PGP UAM module])
565 dnl --------------------- check for building Kerberos v4 UAM module
567 AC_ARG_ENABLE(krb4-uam,
568 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
569 if test "$enableval" = "yes"; then
570 AC_DEFINE(UAM_KRB4, 1)
572 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
575 dnl --------------------- overwrite the config files . . . or not.
577 AC_MSG_CHECKING([whether configuration files should be overwritten])
578 AC_ARG_ENABLE(overwrite,
579 [ --enable-overwrite overwrite configuration files during installation],
580 [OVERWRITE_CONFIG="${enable_overwrite}"],
581 [OVERWRITE_CONFIG="no"]
583 AC_MSG_RESULT([$OVERWRITE_CONFIG])
585 dnl --------------------- last minute substitutions
591 AC_SUBST(OVERWRITE_CONFIG)
593 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
594 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
595 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
596 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
597 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
598 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
599 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
600 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
601 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
602 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
603 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
604 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
605 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
606 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
608 dnl --------------------- generate files
612 bin/adv1tov2/Makefile
615 bin/afppasswd/Makefile
618 bin/getzones/Makefile
619 bin/megatron/Makefile
625 contrib/macusers/Makefile
626 contrib/macusers/macusers
629 contrib/printing/Makefile
630 contrib/shell_utils/Makefile
631 contrib/shell_utils/afpd-mtab.pl
632 contrib/shell_utils/apple_cp
633 contrib/shell_utils/apple_mv
634 contrib/shell_utils/apple_rm
635 contrib/shell_utils/cleanappledouble.pl
636 contrib/shell_utils/netatalkshorternamelinks.pl
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
678 sys/solaris/Makefile.kernel
682 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]