1 dnl $Id: configure.in,v 1.126.2.10 2002-02-07 23:44:42 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])
176 dnl ----------- A NOTE ABOUT DROPKLUDGE
177 dnl The trouble with this fix is that if you know what the file is called, it
178 dnl can be read from the Unix side. That's okay for most academic institutions
179 dnl since the students don't have telnet access to the Mac servers. There is
180 dnl currently no one working on further development/fixes of DROPKLUDGE.
183 AC_ARG_ENABLE(dropkludge,
184 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
185 if test "$enableval" = "yes"; then
186 AC_DEFINE(DROPKLUDGE, 1)
187 AC_MSG_RESULT([enabling experimental dropbox support])
191 AC_ARG_ENABLE(force-uidgid,
192 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
193 if test "$enableval" = "yes"; then
194 AC_DEFINE(FORCE_UIDGID, 1)
195 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
199 dnl Don't use DB3 unless it's needed
203 dnl Determine DID scheme
204 AC_MSG_CHECKING([for DID scheme to use])
206 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
207 [ did_scheme="$withval" ],
208 [ did_scheme="last" ]
211 if test "x$did_scheme" = "xlast"; then
212 AC_DEFINE(USE_LASTDID, 1)
213 AC_MSG_RESULT([last])
214 elif test "x$did_scheme" = "xhash"; then
215 AC_MSG_RESULT([device/inode-based hashing])
216 elif test "x$did_scheme" = "xmtab"; then
217 AC_DEFINE(DID_MTAB, 1)
218 AC_MSG_RESULT([mtab-based DID creation support])
219 elif test "x$did_scheme" = "xcnid"; then
221 AC_DEFINE(CNID_DB, 1)
222 AC_MSG_RESULT([enabling build with CNID DB support])
224 AC_MSG_ERROR([unknown DID scheme])
226 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
228 dnl Check for Berkeley DB3 library
229 if test "x$db3_required" = "xyes"; then
230 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
233 dnl Check for quota support
237 AC_ARG_WITH(message-dir,
238 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
240 if test x"$msg_dir" = "x"; then
241 msg_dir="${PKGCONFDIR}/msg"
243 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
244 [path to message dir [[PKGCONF/msg]]])
245 SERVERTEXT="$msg_dir"
249 dnl Check for optional server location protocol support (used by MacOS X)
252 dnl Check for PAM libs
254 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
255 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
261 AC_MSG_CHECKING([whether shadow support should be enabled])
263 [ --with-shadow enable shadow password support],
264 [shadowpw="$withval"],
267 if test "x$shadowpw" = "xyes"; then
270 AC_MSG_RESULT([$shadowpw])
272 AC_ARG_ENABLE(shell-check,
273 [ --disable-shell-check disable checking for a valid shell],
274 if test "$enableval" = "no"; then
275 AC_DEFINE(DISABLE_SHELLCHECK, 1)
276 AC_MSG_RESULT([disabling valid shell check])
280 AC_MSG_CHECKING([whether flock locks should be enabled])
281 AC_ARG_WITH(flock-locks,
282 [ --with-flock-locks enable flock locks support],
283 [flock_locks="$withval"],
286 if test "x$flock_locks" = "xyes"; then
287 AC_DEFINE(USE_FLOCK_LOCKS)
289 AC_MSG_RESULT([$flock_locks])
291 AC_ARG_WITH(tcp-wrappers,
292 [ --with-tcp-wrappers enable TCP wrappers support],
293 AC_CHECK_LIB(wrap, tcpd_warn,
295 AFPD_LIBS="$AFPD_LIBS -lwrap"
296 AC_MSG_RESULT([enabling TCP wrappers support])
300 AC_ARG_ENABLE(redhat,
301 [ --enable-redhat use redhat-style sysv configuration ],
302 if test "$enableval" = "yes"; then
305 AC_MSG_RESULT([enabling redhat-style sysv support])
309 [ --enable-suse use suse-style sysv configuration ],
310 if test "$enableval" = "yes"; then
313 AC_MSG_RESULT([enabling suse-style sysv support])
316 AC_ARG_ENABLE(cobalt,
317 [ --enable-cobalt use cobalt-style sysv configuration ],
318 if test "$enableval" = "yes"; then
321 AC_MSG_RESULT([enabling cobalt-style sysv 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
588 AC_SUBST(OVERWRITE_CONFIG)
590 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
591 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
592 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
593 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
594 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
595 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
596 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
597 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
598 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
599 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
600 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
601 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
602 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
604 dnl --------------------- generate files
608 bin/adv1tov2/Makefile
611 bin/afppasswd/Makefile
613 bin/getzones/Makefile
614 bin/megatron/Makefile
620 contrib/macusers/Makefile
622 contrib/printing/Makefile
623 contrib/shell_utils/Makefile
624 contrib/timelord/Makefile
626 distrib/config/Makefile
627 distrib/config/netatalk-config
628 distrib/initscripts/Makefile
633 etc/afpd/nls/Makefile
636 etc/uams/uams_krb4/Makefile
640 include/atalk/Makefile
642 libatalk/adouble/Makefile
643 libatalk/asp/Makefile
644 libatalk/atp/Makefile
645 libatalk/cnid/Makefile
646 libatalk/compat/Makefile
647 libatalk/dsi/Makefile
648 libatalk/nbp/Makefile
649 libatalk/netddp/Makefile
650 libatalk/util/Makefile
660 sys/generic/sys/Makefile
661 sys/netatalk/Makefile
663 sys/netbsd/netatalk/Makefile
668 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]