1 dnl $Id: configure.in,v 1.126.2.4 2001-11-30 05:54:33 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 Reset locations to proper places
14 AC_PREFIX_DEFAULT(/usr/local)
16 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 -lcom_err:
40 AC_CHECK_LIB(com_err, main)
41 dnl Replace `main' with a function in -lcrypt:
42 AC_CHECK_LIB(crypt, main)
43 dnl Replace `main' with a function in -ld:
45 dnl Replace `main' with a function in -ldl:
46 AC_CHECK_LIB(dl, main)
47 dnl Replace `main' with a function in -lkauth:
48 AC_CHECK_LIB(kauth, main)
49 dnl Replace `main' with a function in -lkrb:
50 AC_CHECK_LIB(krb, main)
51 dnl Replace `main' with a function in -llwp:
52 AC_CHECK_LIB(lwp, main)
53 dnl Replace `main' with a function in -ln:
55 dnl Replace `main' with a function in -lnsl:
56 AC_CHECK_LIB(nsl, main)
57 dnl Replace `main' with a function in -lprot:
58 AC_CHECK_LIB(prot, main)
59 dnl Replace `main' with a function in -lresolv:
60 AC_CHECK_LIB(resolv, main)
61 dnl Replace `main' with a function in -lrpcsvc:
62 AC_CHECK_LIB(rpcsvc, main)
63 dnl Replace `main' with a function in -lrx:
64 AC_CHECK_LIB(rx, main)
65 dnl Replace `main' with a function in -lrxkad:
66 AC_CHECK_LIB(rxkad, main)
67 dnl Replace `main' with a function in -lsocket:
68 AC_CHECK_LIB(socket, main)
69 dnl Replace `main' with a function in -lsys:
70 AC_CHECK_LIB(sys, main)
71 dnl Replace `main' with a function in -lubik:
72 AC_CHECK_LIB(ubik, main)
75 # Check presence of some functions
77 # Check for XPG4 access() function
78 # Be sure to test before adding AFS libs in LIBS path as AFS lib
79 # has such a function that works only on AFS filesystems.
80 AC_CHECK_FUNCS(access)
82 dnl Checks for header files.
86 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)
87 AC_CHECK_HEADER(sys/cdefs.h,,
88 AC_MSG_RESULT([enabling generic cdefs.h from tree])
89 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
92 # Allow user to specify flags
94 [ --with-cflags specify additional flags to pass to compiler],
96 if test "x$withval" != "xno" ; then
97 CFLAGS="$CFLAGS $withval"
102 [ --with-libs specify additional libraries to link with],
104 if test "x$withval" != "xno" ; then
105 LIBS="$LIBS $withval"
110 dnl Checks for typedefs, structures, and compiler characteristics.
122 dnl Checks for library functions.
124 AC_PROG_GCC_TRADITIONAL
131 AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp strchr memcpy)
134 dnl --------------------------------------------------------------------------
135 dnl specific configuration comes in here:
136 dnl --------------------------------------------------------------------------
138 AC_DEFINE(ADMIN_GRP, 1)
140 AC_ARG_WITH(admin-group,
141 [ --disable-admin-group disable admin group],
142 if test "$enableval" = "no"; then
143 AC_DEFINE(ADMIN_GRP, 0)
144 AC_MSG_RESULT([disabling administrative group support])
149 [ --enable-afs enable AFS support],
150 if test "$enableval" = "yes"; then
152 AC_MSG_RESULT([enabling AFS support])
156 AC_ARG_WITH(pkgconfdir,
157 [ --with-pkgconfdir=DIR package specific configuration in DIR
158 [[SYSCONF/netatalk]]],
159 PKGCONFDIR="$withval",
160 PKGCONFDIR="${sysconfdir}/netatalk"
163 AC_ARG_WITH(cracklib,
164 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
165 if test "x$withval" != "xno" ; then
167 AC_CHECK_LIB(crack, main,
168 AC_DEFINE(USE_CRACKLIB)
170 AC_MSG_RESULT([enabling cracklib support])
171 if test "$cracklib" = "yes"; then
172 cracklib="/usr/lib/cracklib_dict"
174 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
175 [path to cracklib dictionary])
176 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
177 AC_MSG_ERROR([cracklib not found!])
183 [ --disable-ddp disable DDP],
184 if test "$enableval" = "no"; then
186 AC_MSG_RESULT([disabling DDP])
191 [ --enable-debug enable debug code],
192 if test "$enableval" != "no"; then
193 if test "$enableval" = "yes"; then
196 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
198 AC_MSG_RESULT([enabling debugging code])
205 dnl ----------- A NOTE ABOUT DROPKLUDGE
206 dnl The trouble with this fix is that if you know what the file is called, it
207 dnl can be read from the Unix side. That's okay for most academic institutions
208 dnl since the students don't have telnet access to the Mac servers. There is
209 dnl currently no one working on further development/fixes of DROPKLUDGE.
212 AC_ARG_ENABLE(dropkludge,
213 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
214 if test "$enableval" = "yes"; then
215 AC_DEFINE(DROPKLUDGE, 1)
216 AC_MSG_RESULT([enabling experimental dropbox support])
220 AC_ARG_ENABLE(force-uidgid,
221 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
222 if test "$enableval" = "yes"; then
223 AC_DEFINE(FORCE_UIDGID, 1)
224 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
228 dnl Don't use DB3 unless it's needed
232 dnl Determine DID scheme
233 AC_MSG_CHECKING([for DID scheme to use])
235 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
236 [ did_scheme="$withval" ],
237 [ did_scheme="last" ]
240 if test "x$did_scheme" = "xlast"; then
241 AC_DEFINE(USE_LASTDID, 1)
242 AC_MSG_RESULT([last])
243 elif test "x$did_scheme" = "xhash"; then
244 AC_MSG_RESULT([device/inode-based hashing])
245 elif test "x$did_scheme" = "xmtab"; then
246 AC_DEFINE(DID_MTAB, 1)
247 AC_MSG_RESULT([mtab-based DID creation support])
248 elif test "x$did_scheme" = "xcnid"; then
250 AC_DEFINE(CNID_DB, 1)
251 AC_MSG_RESULT([enabling build with CNID DB support])
253 AC_MSG_ERROR([unknown DID scheme])
256 dnl Check for Berkeley DB3 library
257 if test "x$db3_required" = "xyes"; then
258 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
262 AC_ARG_WITH(message-dir,
263 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
265 if test x"$msg_dir" = "x"; then
266 msg_dir="${PKGCONFDIR}/msg"
268 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
269 [path to message dir [[PKGCONF/msg]]])
270 SERVERTEXT="$msg_dir"
274 AC_ARG_ENABLE(srvloc,
275 [ --enable-srvloc turn on Server Location Protocol support (EXPERIMENTAL)],
280 dnl Conditional for optional server location protocol support (used by OS X)
281 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
282 if test "x$srvloc" != "xno"; then
283 for slpdir in "" $srvloc /usr /usr/local ; do
284 if test -f "$slpdir/include/slp.h" ; then
285 LIBS="$LIBS -L$slpdir/lib -lslp"
286 CFLAGS="$CFLAGS -I$slpdir/include"
287 AC_CHECK_LIB(slp,SLPOpen)
288 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
289 AC_DEFINE(USE_SRVLOC, 1)
297 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
298 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
304 AC_MSG_CHECKING([whether shadow support should be enabled])
306 [ --with-shadow enable shadow password support],
307 [shadowpw="$withval"],
310 if test "x$shadowpw" = "xyes"; then
313 AC_MSG_RESULT([$shadowpw])
315 AC_ARG_ENABLE(shell-check,
316 [ --disable-shell-check disable checking for a valid shell],
317 if test "$enableval" = "no"; then
318 AC_DEFINE(DISABLE_SHELLCHECK, 1)
319 AC_MSG_RESULT([disabling valid shell check])
323 AC_MSG_CHECKING([whether flock locks should be enabled])
324 AC_ARG_WITH(flock-locks,
325 [ --with-flock-locks enable flock locks support],
326 [flock_locks="$withval"],
329 if test "x$flock_locks" = "xyes"; then
330 AC_DEFINE(USE_FLOCK_LOCKS)
332 AC_MSG_RESULT([$flock_locks])
334 AC_ARG_WITH(tcp-wrappers,
335 [ --with-tcp-wrappers enable TCP wrappers support],
336 AC_CHECK_LIB(wrap, tcpd_warn,
338 AFPD_LIBS="$AFPD_LIBS -lwrap"
339 AC_MSG_RESULT([enabling TCP wrappers support])
343 AC_ARG_ENABLE(redhat,
344 [ --enable-redhat use redhat-style sysv configuration ],
345 if test "$enableval" = "yes"; then
348 AC_MSG_RESULT([enabling redhat-style sysv support])
352 [ --enable-suse use suse-style sysv configuration ],
353 if test "$enableval" = "yes"; then
356 AC_MSG_RESULT([enabling suse-style sysv support])
359 AC_ARG_ENABLE(cobalt,
360 [ --enable-cobalt use cobalt-style sysv configuration ],
361 if test "$enableval" = "yes"; then
364 AC_MSG_RESULT([enabling cobalt-style sysv support])
367 dnl ----- timelord compilation (disabled by default)
368 AC_MSG_CHECKING([whether timelord should be compiled])
370 AC_ARG_ENABLE(timelord,
371 [ --enable-timelord enable compilation of timelord server],
372 [compile_timelord="$enableval"],
373 [compile_timelord="no"]
375 AC_MSG_RESULT([$compile_timelord])
377 AC_ARG_WITH(uams-path,
378 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
379 uams_path="$withval",
380 uams_path="${PKGCONFDIR}/uams"
383 dnl --------------------------------------------------------------------------
384 dnl FHS stuff has to be done last because it overrides other defaults
385 dnl --------------------------------------------------------------------------
388 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
389 if test "$enableval" = "yes"; then
390 uams_path="/usr/lib/netatalk"
392 PKGCONFDIR=${sysconfdir}/netatalk
394 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
395 AC_DEFINE(FHS_COMPATIBILITY)
397 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
400 dnl --------------------------------------------------------------------------
401 dnl post-FHS substitutions, etc
402 dnl --------------------------------------------------------------------------
405 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
406 [path to UAMs [default=PKGCONF/uams]])
407 UAMS_PATH="${uams_path}"
410 dnl --------------------------------------------------------------------------
411 dnl drop in includes for top level directory structures here...
412 dnl --------------------------------------------------------------------------
414 dnl Note: $(top_srcdir)/include should be added before all other includes
415 dnl so that includes from that directory a preferred to includes from
416 dnl /usr/include or similar places.
417 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
418 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
420 dnl --------------------------------------------------------------------------
421 dnl specific configuration comes in here:
422 dnl --------------------------------------------------------------------------
424 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
426 dnl --------------------- determine operating system from "target"
428 *aix*) this_os=aix ;;
429 *freebsd*) this_os=freebsd ;;
430 *hpux11*) this_os=hpux11 ;;
431 *irix*) this_os=irix ;;
432 *linux*) this_os=linux ;;
433 *osx*) this_os=macosx ;;
434 *darwin*) this_os=macosx ;;
435 *netbsd*) this_os=netbsd ;;
436 *openbsd*) this_os=openbsd ;;
437 *osf*) this_os=tru64 ;;
438 *solaris*) this_os=solaris ;;
442 i386|i486|i586|i686|k7) this_cpu=x86 ;;
443 alpha) this_cpu=alpha ;;
444 mips) this_cpu=mips ;;
445 powerpc|ppc) this_cpu=ppc ;;
448 dnl --------------------- operating system specific flags (port from sys/*)
450 dnl ----- AIX specific -----
451 if test x"$this_os" = "xaix"; then
452 AC_MSG_RESULT([ * AIX specific configuration])
453 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
455 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
456 dnl compilation environment. It's enough to get things defined
457 dnl right in endian.h provided that long long is supported, though.
458 AC_DEFINE(HAVE_32BIT_LONGS)
461 dnl ----- FreeBSD specific -----
462 if test x"$this_os" = "xfreebsd"; then
463 AC_MSG_RESULT([ * FreeBSD specific configuration])
465 AC_DEFINE(SENDFILE_FLAVOR_BSD)
467 AC_DEFINE(NO_CRYPT_H, 1)
470 dnl ----- HP-UX 11 specific -----
471 if test x"$this_os" = "xhpux11"; then
472 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
474 AC_DEFINE(_ISOC9X_SOURCE)
475 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
478 dnl ----- IRIX specific -----
479 if test x"$this_os" = "xirix"; then
480 AC_MSG_RESULT([ * IRIX specific configuration])
482 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
485 dnl ----- Linux specific -----
486 if test x"$this_os" = "xlinux"; then
487 AC_MSG_RESULT([ * Linux specific configuration])
489 dnl ----- check if we need the quotactl wrapper
490 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
491 AC_CHECK_FUNC(quotactl,,
492 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
493 AC_MSG_RESULT([enabling quotactl wrapper])
496 dnl ----- as far as I can tell, dbtob always does the wrong thing
497 dnl ----- on every single version of linux I've ever played with.
498 dnl ----- see etc/afpd/quota.c
499 AC_DEFINE(HAVE_BROKEN_DBTOB)
501 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
502 dnl ----- check if version is newer than 2.2.x
504 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
505 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
506 if [ $majorvers -ge 2 ]; then
507 if [ $minorvers -ge 2 ]; then
509 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
510 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
512 AC_MSG_RESULT([ * found Linux 2.0.x ])
516 dnl ----- Linux/alpha specific -----
517 if test x"$this_cpu" = "xalpha"; then
518 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
519 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
524 dnl ----- Mac OSX specific -----
525 if test x"$this_os" = "xmacosx"; then
526 AC_MSG_RESULT([ * Mac OSX specific configuration])
528 AC_DEFINE(HAVE_BROKEN_CPP)
529 AC_DEFINE(HAVE_2ARG_DBTOB)
530 dnl AC_DEFINE(NO_DLFCN_H)
531 AC_DEFINE(MACOSX_SERVER)
534 dnl ----- NetBSD specific -----
535 if test x"$this_os" = "xnetbsd"; then
536 AC_MSG_RESULT([ * NetBSD specific configuration])
538 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
539 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
542 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
543 AC_DEFINE(UAM_DHX, 1)
544 AC_DEFINE(NO_CRYPT_H, 1)
547 dnl ----- OpenBSD specific -----
548 if test x"$this_os" = "xopenbsd"; then
549 AC_MSG_RESULT([ * OpenBSD specific configuration])
551 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
553 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
554 AC_DEFINE(UAM_DHX, 1)
555 AC_DEFINE(NO_CRYPT_H, 1)
558 dnl ----- Solaris specific -----
559 if test x"$this_os" = "xsolaris"; then
560 AC_MSG_RESULT([ * Solaris specific configuration])
562 AC_DEFINE(_ISOC9X_SOURCE)
563 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
565 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
568 AC_MSG_RESULT([enabling Solaris kernel module build])
572 dnl ----- Tru64 specific -----
573 if test x"$this_os" = "xtru64"; then
574 AC_MSG_RESULT([ * Tru64 specific configuration])
576 AC_DEFINE(HAVE_64BIT_LONGS)
577 dnl AC_DEFINE(USE_MOUNT_H)
578 AC_DEFINE(USE_OLD_RQUOTA)
579 dnl AC_DEFINE(USE_UFS_QUOTA_H)
581 AC_CHECK_LIB(security,set_auth_parameters)
582 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
587 dnl -- look for openssl
590 dnl --------------------- check for building PGP UAM module
592 AC_ARG_ENABLE(pgp-uam,
593 [ --enable-pgp-uam enable build of PGP UAM module],
594 if test "$enableval" = "yes"; then
595 if test "$compile_ssl" = "yes"; then
596 AC_DEFINE(UAM_PGP, 1)
598 AC_MSG_RESULT([enabling build with PGP UAM module])
603 dnl --------------------- check for building Kerberos v4 UAM module
605 AC_ARG_ENABLE(krb4-uam,
606 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
607 if test "$enableval" = "yes"; then
608 AC_DEFINE(UAM_KRB4, 1)
610 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
613 dnl --------------------- overwrite the config files . . . or not.
615 AC_MSG_CHECKING([whether configuration files should be overwritten])
616 AC_ARG_ENABLE(overwrite,
617 [ --enable-overwrite overwrite configuration files during installation],
618 [OVERWRITE_CONFIG="${enable_overwrite}"],
619 [OVERWRITE_CONFIG="no"]
621 AC_MSG_RESULT([$OVERWRITE_CONFIG])
623 dnl --------------------- last minute substitutions
630 AC_SUBST(OVERWRITE_CONFIG)
632 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
633 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
634 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
635 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
636 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
637 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
638 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
639 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
640 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
641 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
642 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
643 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
644 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
646 dnl --------------------- generate files
650 bin/adv1tov2/Makefile
653 bin/afppasswd/Makefile
654 bin/getzones/Makefile
655 bin/megatron/Makefile
661 contrib/macusers/Makefile
663 contrib/printing/Makefile
664 contrib/shell_utils/Makefile
665 contrib/timelord/Makefile
667 distrib/config/Makefile
668 distrib/config/netatalk-config
669 distrib/initscripts/Makefile
674 etc/afpd/nls/Makefile
677 etc/uams/uams_krb4/Makefile
681 include/atalk/Makefile
683 libatalk/adouble/Makefile
684 libatalk/asp/Makefile
685 libatalk/atp/Makefile
686 libatalk/cnid/Makefile
687 libatalk/compat/Makefile
688 libatalk/dsi/Makefile
689 libatalk/nbp/Makefile
690 libatalk/netddp/Makefile
691 libatalk/util/Makefile
701 sys/generic/sys/Makefile
702 sys/netatalk/Makefile
704 sys/netbsd/netatalk/Makefile
709 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]