1 dnl $Id: configure.in,v 1.126.2.3 2001-11-25 21:34:24 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
231 dnl Check for CNID DB support
232 AC_MSG_CHECKING([whether CNID support should be enabled])
233 AC_ARG_ENABLE(cnid-db,
234 [ --enable-cnid-db use persistent cnid database per volume (EXPERIMENTAL) ],
236 if test "x$enableval" = "xyes"; then
244 ],[AC_MSG_RESULT([no])]
247 dnl Check for Berkeley DB3 library
248 if test "x$db3_required" = "xyes"; then
249 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
252 dnl Determine DID scheme
253 AC_MSG_CHECKING([for DID scheme to use])
255 [ --with-did=SCHEME set DID scheme (last,mtab)],
256 [ did_scheme="$withval" ],
257 [ did_scheme="last" ]
260 if test "x$did_scheme" = "xlast"; then
261 AC_DEFINE(USE_LASTDID, 1)
262 AC_MSG_RESULT([last])
263 elif test "x$did_scheme" = "xmtab"; then
264 AC_DEFINE(DID_MTAB, 1)
265 AC_MSG_RESULT([mtab-based DID creation support])
266 elif test "x$did_scheme" != "xno"; then
267 AC_MSG_RESULT([default])
269 AC_MSG_ERROR([unknown DID scheme])
273 AC_ARG_WITH(message-dir,
274 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
276 if test x"$msg_dir" = "x"; then
277 msg_dir="${PKGCONFDIR}/msg"
279 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
280 [path to message dir [[PKGCONF/msg]]])
281 SERVERTEXT="$msg_dir"
285 AC_ARG_ENABLE(srvloc,
286 [ --enable-srvloc turn on Server Location Protocol support (EXPERIMENTAL)],
291 dnl Conditional for optional server location protocol support (used by OS X)
292 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
293 if test "x$srvloc" != "xno"; then
294 for slpdir in "" $srvloc /usr /usr/local ; do
295 if test -f "$slpdir/include/slp.h" ; then
296 LIBS="$LIBS -L$slpdir/lib -lslp"
297 CFLAGS="$CFLAGS -I$slpdir/include"
298 AC_CHECK_LIB(slp,SLPOpen)
299 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
300 AC_DEFINE(USE_SRVLOC, 1)
308 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
309 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
315 AC_MSG_CHECKING([whether shadow support should be enabled])
317 [ --with-shadow enable shadow password support],
318 [shadowpw="$withval"],
321 if test "x$shadowpw" = "xyes"; then
324 AC_MSG_RESULT([$shadowpw])
326 AC_ARG_ENABLE(shell-check,
327 [ --disable-shell-check disable checking for a valid shell],
328 if test "$enableval" = "no"; then
329 AC_DEFINE(DISABLE_SHELLCHECK, 1)
330 AC_MSG_RESULT([disabling valid shell check])
334 AC_MSG_CHECKING([whether flock locks should be enabled])
335 AC_ARG_WITH(flock-locks,
336 [ --with-flock-locks enable flock locks support],
337 [flock_locks="$withval"],
340 if test "x$flock_locks" = "xyes"; then
341 AC_DEFINE(USE_FLOCK_LOCKS)
343 AC_MSG_RESULT([$flock_locks])
345 AC_ARG_WITH(tcp-wrappers,
346 [ --with-tcp-wrappers enable TCP wrappers support],
347 AC_CHECK_LIB(wrap, tcpd_warn,
349 AFPD_LIBS="$AFPD_LIBS -lwrap"
350 AC_MSG_RESULT([enabling TCP wrappers support])
354 AC_ARG_ENABLE(redhat,
355 [ --enable-redhat use redhat-style sysv configuration ],
356 if test "$enableval" = "yes"; then
359 AC_MSG_RESULT([enabling redhat-style sysv support])
363 [ --enable-suse use suse-style sysv configuration ],
364 if test "$enableval" = "yes"; then
367 AC_MSG_RESULT([enabling suse-style sysv support])
370 AC_ARG_ENABLE(cobalt,
371 [ --enable-cobalt use cobalt-style sysv configuration ],
372 if test "$enableval" = "yes"; then
375 AC_MSG_RESULT([enabling cobalt-style sysv support])
378 dnl ----- timelord compilation (disabled by default)
379 AC_MSG_CHECKING([whether timelord should be compiled])
381 AC_ARG_ENABLE(timelord,
382 [ --enable-timelord enable compilation of timelord server],
383 [compile_timelord="$enableval"],
384 [compile_timelord="no"]
386 AC_MSG_RESULT([$compile_timelord])
388 AC_ARG_WITH(uams-path,
389 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
390 uams_path="$withval",
391 uams_path="${PKGCONFDIR}/uams"
394 dnl --------------------------------------------------------------------------
395 dnl FHS stuff has to be done last because it overrides other defaults
396 dnl --------------------------------------------------------------------------
399 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
400 if test "$enableval" = "yes"; then
401 uams_path="/usr/lib/netatalk"
403 PKGCONFDIR=${sysconfdir}/netatalk
405 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
406 AC_DEFINE(FHS_COMPATIBILITY)
408 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
411 dnl --------------------------------------------------------------------------
412 dnl post-FHS substitutions, etc
413 dnl --------------------------------------------------------------------------
416 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
417 [path to UAMs [default=PKGCONF/uams]])
418 UAMS_PATH="${uams_path}"
421 dnl --------------------------------------------------------------------------
422 dnl drop in includes for top level directory structures here...
423 dnl --------------------------------------------------------------------------
425 dnl Note: $(top_srcdir)/include should be added before all other includes
426 dnl so that includes from that directory a preferred to includes from
427 dnl /usr/include or similar places.
428 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
429 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
431 dnl --------------------------------------------------------------------------
432 dnl specific configuration comes in here:
433 dnl --------------------------------------------------------------------------
435 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
437 dnl --------------------- determine operating system from "target"
439 *aix*) this_os=aix ;;
440 *freebsd*) this_os=freebsd ;;
441 *hpux11*) this_os=hpux11 ;;
442 *irix*) this_os=irix ;;
443 *linux*) this_os=linux ;;
444 *osx*) this_os=macosx ;;
445 *darwin*) this_os=macosx ;;
446 *netbsd*) this_os=netbsd ;;
447 *openbsd*) this_os=openbsd ;;
448 *osf*) this_os=tru64 ;;
449 *solaris*) this_os=solaris ;;
453 i386|i486|i586|i686|k7) this_cpu=x86 ;;
454 alpha) this_cpu=alpha ;;
455 mips) this_cpu=mips ;;
456 powerpc|ppc) this_cpu=ppc ;;
459 dnl --------------------- operating system specific flags (port from sys/*)
461 dnl ----- AIX specific -----
462 if test x"$this_os" = "xaix"; then
463 AC_MSG_RESULT([ * AIX specific configuration])
464 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
466 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
467 dnl compilation environment. It's enough to get things defined
468 dnl right in endian.h provided that long long is supported, though.
469 AC_DEFINE(HAVE_32BIT_LONGS)
472 dnl ----- FreeBSD specific -----
473 if test x"$this_os" = "xfreebsd"; then
474 AC_MSG_RESULT([ * FreeBSD specific configuration])
476 AC_DEFINE(SENDFILE_FLAVOR_BSD)
478 AC_DEFINE(NO_CRYPT_H, 1)
481 dnl ----- HP-UX 11 specific -----
482 if test x"$this_os" = "xhpux11"; then
483 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
485 AC_DEFINE(_ISOC9X_SOURCE)
486 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
489 dnl ----- IRIX specific -----
490 if test x"$this_os" = "xirix"; then
491 AC_MSG_RESULT([ * IRIX specific configuration])
493 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
496 dnl ----- Linux specific -----
497 if test x"$this_os" = "xlinux"; then
498 AC_MSG_RESULT([ * Linux specific configuration])
500 dnl ----- check if we need the quotactl wrapper
501 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
502 AC_CHECK_FUNC(quotactl,,
503 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
504 AC_MSG_RESULT([enabling quotactl wrapper])
507 dnl ----- as far as I can tell, dbtob always does the wrong thing
508 dnl ----- on every single version of linux I've ever played with.
509 dnl ----- see etc/afpd/quota.c
510 AC_DEFINE(HAVE_BROKEN_DBTOB)
512 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
513 dnl ----- check if version is newer than 2.2.x
515 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
516 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
517 if [ $majorvers -ge 2 ]; then
518 if [ $minorvers -ge 2 ]; then
520 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
521 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
523 AC_MSG_RESULT([ * found Linux 2.0.x ])
527 dnl ----- Linux/alpha specific -----
528 if test x"$this_cpu" = "xalpha"; then
529 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
530 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
535 dnl ----- Mac OSX specific -----
536 if test x"$this_os" = "xmacosx"; then
537 AC_MSG_RESULT([ * Mac OSX specific configuration])
539 AC_DEFINE(HAVE_BROKEN_CPP)
540 AC_DEFINE(HAVE_2ARG_DBTOB)
541 dnl AC_DEFINE(NO_DLFCN_H)
542 AC_DEFINE(MACOSX_SERVER)
545 dnl ----- NetBSD specific -----
546 if test x"$this_os" = "xnetbsd"; then
547 AC_MSG_RESULT([ * NetBSD specific configuration])
549 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
550 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
553 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
554 AC_DEFINE(UAM_DHX, 1)
555 AC_DEFINE(NO_CRYPT_H, 1)
558 dnl ----- OpenBSD specific -----
559 if test x"$this_os" = "xopenbsd"; then
560 AC_MSG_RESULT([ * OpenBSD specific configuration])
562 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
564 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
565 AC_DEFINE(UAM_DHX, 1)
566 AC_DEFINE(NO_CRYPT_H, 1)
569 dnl ----- Solaris specific -----
570 if test x"$this_os" = "xsolaris"; then
571 AC_MSG_RESULT([ * Solaris specific configuration])
573 AC_DEFINE(_ISOC9X_SOURCE)
574 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
576 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
579 AC_MSG_RESULT([enabling Solaris kernel module build])
583 dnl ----- Tru64 specific -----
584 if test x"$this_os" = "xtru64"; then
585 AC_MSG_RESULT([ * Tru64 specific configuration])
587 AC_DEFINE(HAVE_64BIT_LONGS)
588 dnl AC_DEFINE(USE_MOUNT_H)
589 AC_DEFINE(USE_OLD_RQUOTA)
590 dnl AC_DEFINE(USE_UFS_QUOTA_H)
592 AC_CHECK_LIB(security,set_auth_parameters)
593 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
598 dnl -- look for openssl
601 dnl --------------------- check for building PGP UAM module
603 AC_ARG_ENABLE(pgp-uam,
604 [ --enable-pgp-uam enable build of PGP UAM module],
605 if test "$enableval" = "yes"; then
606 if test "$compile_ssl" = "yes"; then
607 AC_DEFINE(UAM_PGP, 1)
609 AC_MSG_RESULT([enabling build with PGP UAM module])
614 dnl --------------------- check for building Kerberos v4 UAM module
616 AC_ARG_ENABLE(krb4-uam,
617 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
618 if test "$enableval" = "yes"; then
619 AC_DEFINE(UAM_KRB4, 1)
621 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
624 dnl --------------------- overwrite the config files . . . or not.
626 AC_MSG_CHECKING([whether configuration files should be overwritten])
627 AC_ARG_ENABLE(overwrite,
628 [ --enable-overwrite overwrite configuration files during installation],
629 [OVERWRITE_CONFIG="${enable_overwrite}"],
630 [OVERWRITE_CONFIG="no"]
632 AC_MSG_RESULT([$OVERWRITE_CONFIG])
634 dnl --------------------- last minute substitutions
641 AC_SUBST(OVERWRITE_CONFIG)
643 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
644 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
645 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
646 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
647 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
648 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
649 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
650 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
651 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
652 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
653 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
654 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
655 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
657 dnl --------------------- generate files
661 bin/adv1tov2/Makefile
664 bin/afppasswd/Makefile
665 bin/getzones/Makefile
666 bin/megatron/Makefile
672 contrib/macusers/Makefile
674 contrib/printing/Makefile
675 contrib/shell_utils/Makefile
676 contrib/timelord/Makefile
678 distrib/config/Makefile
679 distrib/config/netatalk-config
680 distrib/initscripts/Makefile
685 etc/afpd/nls/Makefile
688 etc/uams/uams_krb4/Makefile
692 include/atalk/Makefile
694 libatalk/adouble/Makefile
695 libatalk/asp/Makefile
696 libatalk/atp/Makefile
697 libatalk/cnid/Makefile
698 libatalk/compat/Makefile
699 libatalk/dsi/Makefile
700 libatalk/nbp/Makefile
701 libatalk/netddp/Makefile
702 libatalk/util/Makefile
712 sys/generic/sys/Makefile
713 sys/netatalk/Makefile
715 sys/netbsd/netatalk/Makefile
720 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]