1 dnl $Id: configure.in,v 1.168.2.6 2003-06-06 17:24:00 srittau Exp $
2 dnl configure.in for netatalk
4 AC_INIT(bin/adv1tov2/adv1tov2.c)
6 NETATALK_VERSION=`cat $srcdir/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 Checks for (v)snprintf
111 NETATALK_SNPRINTF_CHECK
113 dnl --------------------------------------------------------------------------
114 dnl specific configuration comes in here:
115 dnl --------------------------------------------------------------------------
117 AC_DEFINE(ADMIN_GRP, 1)
119 AC_ARG_WITH(admin-group,
120 [ --disable-admin-group disable admin group],
121 if test "$enableval" = "no"; then
122 AC_DEFINE(ADMIN_GRP, 0)
123 AC_MSG_RESULT([disabling administrative group support])
132 [ --with-logfile=PATH path for file used by logger [/var/log/netatalk.log]
133 use --without-logfile to disable logger],
134 if test "$withval" = "no"; then
135 AC_DEFINE(DISABLE_LOGGER, 1)
136 AC_MSG_RESULT([logger disabled])
137 elif test "$withval" != "yes"; then
138 AC_DEFINE_UNQUOTED(LOGFILEPATH, "$withval")
139 AC_MSG_RESULT([logfile set to $withval])
141 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
142 AC_MSG_RESULT([logfile set to default])
144 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
145 AC_MSG_RESULT([logfile set to default])
148 AC_ARG_WITH(cracklib,
149 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
150 if test "x$withval" != "xno" ; then
152 AC_CHECK_LIB(crack, main,
153 AC_DEFINE(USE_CRACKLIB)
155 AC_MSG_RESULT([enabling cracklib support])
156 if test "$cracklib" = "yes"; then
157 cracklib="/usr/lib/cracklib_dict"
159 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
160 [path to cracklib dictionary])
161 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
162 AC_MSG_ERROR([cracklib not found!])
168 [ --disable-ddp disable DDP],
169 if test "$enableval" = "no"; then
171 AC_MSG_RESULT([disabling DDP])
176 [ --enable-debug enable debug code],
177 if test "$enableval" != "no"; then
178 if test "$enableval" = "yes"; then
181 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
183 AC_MSG_RESULT([enabling debugging code])
188 dnl ----------- A NOTE ABOUT DROPKLUDGE
189 dnl The trouble with this fix is that if you know what the file is called, it
190 dnl can be read from the Unix side. That's okay for most academic institutions
191 dnl since the students don't have telnet access to the Mac servers. There is
192 dnl currently no one working on further development/fixes of DROPKLUDGE.
195 AC_ARG_ENABLE(dropkludge,
196 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
197 if test "$enableval" = "yes"; then
198 AC_DEFINE(DROPKLUDGE, 1)
199 AC_MSG_RESULT([enabling experimental dropbox support])
203 AC_ARG_ENABLE(force-uidgid,
204 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
205 if test "$enableval" = "yes"; then
206 AC_DEFINE(FORCE_UIDGID, 1)
207 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
211 dnl Don't use BDB unless it's needed
214 dnl Determine DID scheme
215 AC_MSG_CHECKING([for DID scheme to use])
217 [ --with-did=SCHEME set DID scheme (cnid,last)],
218 [ did_scheme="$withval" ],
219 [ did_scheme="cnid" ]
222 if test "x$did_scheme" = "xlast"; then
223 AC_DEFINE(USE_LASTDID, 1)
224 AC_MSG_RESULT([last])
225 elif test "x$did_scheme" = "xcnid"; then
227 AC_DEFINE(CNID_DB, 1)
228 AC_MSG_RESULT([enabling build with CNID DB support])
230 AC_MSG_ERROR([unknown DID scheme])
232 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
234 dnl Determine whether or not to use filename mangling
235 AC_MSG_CHECKING([whether or not to use filename mangling])
236 AC_ARG_WITH(mangling,
237 [ --with-mangling enable filename mangling],
238 if test "$withval" = "yes"; then
239 if test "x$did_scheme" != "xcnid"; then
240 AC_MSG_ERROR([DID scheme must be CNID to use filename mangling])
242 AC_DEFINE(FILE_MANGLING, 1)
248 , AC_MSG_RESULT([no])
251 if test "$did_scheme" = "cnid"; then
257 dnl Determine whether or not to use CDB or transactional DB store
258 AC_MSG_CHECKING([whether or not to use CNID with Concurrent Data Store])
260 [ --with-cdb enable CNID with Concurrent Data Store],
261 if test "$withval" = "no"; then
262 if test "x$did_scheme" != "xcnid"; then
264 AC_MSG_ERROR([DID scheme must be CNID to use CDB])
273 , AC_MSG_RESULT([yes])
276 if test "$USE_CDB" = "yes"; then
277 AC_DEFINE(CNID_DB_CDB, 1)
280 dnl Check for Berkeley DB library
281 if test "x$bdb_required" = "xyes"; then
282 AC_PATH_BDB(, [AC_MSG_ERROR([Berkeley DB library not found!])])
285 dnl Check for quota support
288 dnl Check for optional server location protocol support (used by MacOS X)
291 dnl Check for PAM libs
293 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
294 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
300 AC_MSG_CHECKING([whether shadow support should be enabled])
302 [ --with-shadow enable shadow password support],
303 [shadowpw="$withval"],
306 if test "x$shadowpw" = "xyes"; then
309 AC_MSG_RESULT([$shadowpw])
311 AC_ARG_ENABLE(shell-check,
312 [ --disable-shell-check disable checking for a valid shell],
313 if test "$enableval" = "no"; then
314 AC_DEFINE(DISABLE_SHELLCHECK, 1)
315 AC_MSG_RESULT([disabling valid shell check])
319 AC_MSG_CHECKING([whether flock locks should be enabled])
320 AC_ARG_WITH(flock-locks,
321 [ --with-flock-locks enable flock locks support],
322 [flock_locks="$withval"],
325 if test "x$flock_locks" = "xyes"; then
326 AC_DEFINE(USE_FLOCK_LOCKS)
328 AC_MSG_RESULT([$flock_locks])
330 AC_ARG_WITH(tcp-wrappers,
331 [ --with-tcp-wrappers enable TCP wrappers support],
332 AC_CHECK_LIB(wrap, tcpd_warn,
334 AFPD_LIBS="$AFPD_LIBS -lwrap"
335 AC_MSG_RESULT([enabling TCP wrappers support])
339 AC_ARG_ENABLE(redhat,
340 [ --enable-redhat use redhat-style sysv configuration ],
341 if test "$enableval" = "yes"; then
344 AC_MSG_RESULT([enabling redhat-style sysv support])
348 [ --enable-suse use suse-style sysv configuration ],
349 if test "$enableval" = "yes"; then
352 AC_MSG_RESULT([enabling suse-style sysv support])
355 AC_ARG_ENABLE(cobalt,
356 [ --enable-cobalt use cobalt-style sysv configuration ],
357 if test "$enableval" = "yes"; then
360 AC_MSG_RESULT([enabling cobalt-style sysv support])
363 AC_ARG_ENABLE(netbsd,
364 [ --enable-netbsd use NetBSD-style rc.d configuration ],
365 if test "x$enableval" = "xyes"; then
368 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
371 dnl ----- timelord compilation (disabled by default)
372 AC_MSG_CHECKING([whether timelord should be compiled])
374 AC_ARG_ENABLE(timelord,
375 [ --enable-timelord enable compilation of timelord server],
376 [compile_timelord="$enableval"],
377 [compile_timelord="no"]
379 AC_MSG_RESULT([$compile_timelord])
381 AC_ARG_WITH(uams-path,
382 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
383 uams_path="$withval",
384 uams_path="${PKGCONFDIR}/uams"
387 dnl --------------------------------------------------------------------------
388 dnl FHS stuff has to be done last because it overrides other defaults
389 dnl --------------------------------------------------------------------------
392 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
393 if test "$enableval" = "yes"; then
394 uams_path="${libdir}/netatalk"
396 PKGCONFDIR=${sysconfdir}/netatalk
397 SERVERTEXT="${PKGCONFDIR}/msg"
398 NLSDIR="${PKGCONFDIR}/nls"
400 mandir="/usr/share/man"
401 AC_DEFINE(FHS_COMPATIBILITY)
403 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
406 dnl --------------------------------------------------------------------------
407 dnl post-FHS substitutions, etc
408 dnl --------------------------------------------------------------------------
411 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
412 [path to UAMs [default=PKGCONF/uams]])
413 UAMS_PATH="${uams_path}"
416 dnl --------------------------------------------------------------------------
417 dnl drop in includes for top level directory structures here...
418 dnl --------------------------------------------------------------------------
420 dnl Note: $(top_srcdir)/include should be added before all other includes
421 dnl so that includes from that directory a preferred to includes from
422 dnl /usr/include or similar places.
423 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
424 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
426 dnl --------------------------------------------------------------------------
427 dnl specific configuration comes in here:
428 dnl --------------------------------------------------------------------------
430 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
432 dnl --------------------- determine operating system from "target"
434 *aix*) this_os=aix ;;
435 *freebsd*) this_os=freebsd ;;
436 *hpux11*) this_os=hpux11 ;;
437 *irix*) this_os=irix ;;
438 *linux*) this_os=linux ;;
439 *osx*) this_os=macosx ;;
440 *darwin*) this_os=macosx ;;
441 *netbsd*) this_os=netbsd ;;
442 *openbsd*) this_os=openbsd ;;
443 *osf*) this_os=tru64 ;;
444 *solaris*) this_os=solaris ;;
448 i386|i486|i586|i686|k7) this_cpu=x86 ;;
449 alpha) this_cpu=alpha ;;
450 mips) this_cpu=mips ;;
451 powerpc|ppc) this_cpu=ppc ;;
454 dnl --------------------- operating system specific flags (port from sys/*)
456 dnl ----- AIX specific -----
457 if test x"$this_os" = "xaix"; then
458 AC_MSG_RESULT([ * AIX specific configuration])
459 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
461 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
462 dnl compilation environment. It's enough to get things defined
463 dnl right in endian.h provided that long long is supported, though.
464 AC_DEFINE(HAVE_32BIT_LONGS)
467 dnl ----- FreeBSD specific -----
468 if test x"$this_os" = "xfreebsd"; then
469 AC_MSG_RESULT([ * FreeBSD specific configuration])
471 AC_DEFINE(SENDFILE_FLAVOR_BSD)
473 AC_DEFINE(NO_CRYPT_H, 1)
476 dnl ----- HP-UX 11 specific -----
477 if test x"$this_os" = "xhpux11"; then
478 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
480 AC_DEFINE(_ISOC9X_SOURCE)
481 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
484 dnl ----- IRIX specific -----
485 if test x"$this_os" = "xirix"; then
486 AC_MSG_RESULT([ * IRIX specific configuration])
488 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
491 dnl ----- Linux specific -----
492 if test x"$this_os" = "xlinux"; then
493 AC_MSG_RESULT([ * Linux specific configuration])
495 dnl ----- check if we need the quotactl wrapper
496 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
497 AC_CHECK_FUNC(quotactl,,
498 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
499 AC_MSG_RESULT([enabling quotactl wrapper])
502 dnl ----- as far as I can tell, dbtob always does the wrong thing
503 dnl ----- on every single version of linux I've ever played with.
504 dnl ----- see etc/afpd/quota.c
505 AC_DEFINE(HAVE_BROKEN_DBTOB)
507 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
508 dnl ----- check if version is newer than 2.2.x
510 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
511 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
512 if [ $majorvers -ge 2 ]; then
513 if [ $minorvers -ge 2 ]; then
515 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
516 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
518 AC_MSG_RESULT([ * found Linux 2.0.x ])
522 dnl ----- Linux/alpha specific -----
523 if test x"$this_cpu" = "xalpha"; then
524 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
525 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
530 dnl ----- Mac OSX specific -----
531 if test x"$this_os" = "xmacosx"; then
532 AC_MSG_RESULT([ * Mac OSX specific configuration])
534 AC_DEFINE(HAVE_BROKEN_CPP)
535 AC_DEFINE(HAVE_2ARG_DBTOB)
536 dnl AC_DEFINE(NO_DLFCN_H)
537 AC_DEFINE(MACOSX_SERVER)
540 dnl ----- NetBSD specific -----
541 if test x"$this_os" = "xnetbsd"; then
542 AC_MSG_RESULT([ * NetBSD specific configuration])
544 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
545 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
546 # If this test is true, it's not an ELF box.
547 # This REALLY should be a configure test.
548 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
640 AC_SUBST(OVERWRITE_CONFIG)
642 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
643 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
644 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
645 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
646 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
647 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
648 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
649 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
650 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
651 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
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
667 bin/getzones/Makefile
668 bin/megatron/Makefile
674 contrib/macusers/Makefile
675 contrib/macusers/macusers
678 contrib/printing/Makefile
679 contrib/shell_utils/Makefile
680 contrib/shell_utils/afpd-mtab.pl
681 contrib/shell_utils/apple_cp
682 contrib/shell_utils/apple_mv
683 contrib/shell_utils/apple_rm
684 contrib/shell_utils/cleanappledouble.pl
685 contrib/shell_utils/lp2pap.sh
686 contrib/shell_utils/netatalkshorternamelinks.pl
687 contrib/timelord/Makefile
689 distrib/config/Makefile
690 distrib/config/netatalk-config
691 distrib/initscripts/Makefile
696 etc/afpd/nls/Makefile
699 etc/uams/uams_krb4/Makefile
703 include/atalk/Makefile
705 libatalk/adouble/Makefile
706 libatalk/asp/Makefile
707 libatalk/atp/Makefile
708 libatalk/cnid/Makefile
709 libatalk/compat/Makefile
710 libatalk/dsi/Makefile
711 libatalk/nbp/Makefile
712 libatalk/netddp/Makefile
713 libatalk/util/Makefile
723 sys/generic/sys/Makefile
724 sys/netatalk/Makefile
726 sys/netbsd/netatalk/Makefile
728 sys/solaris/Makefile.kernel
732 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]