1 dnl $Id: configure.in,v 1.168 2002-10-04 15:11:57 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 DB3 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 dnl Determine whether or not to use CDB or transactional DB store
252 AC_MSG_CHECKING([whether or not to use CNID with Concurrent Data Store])
254 [ --with-cdb enable CNID with Concurrent Data Store],
255 if test "$withval" = "yes"; then
256 if test "x$did_scheme" != "xcnid"; then
257 AC_MSG_ERROR([DID scheme must be CNID to use CDB])
259 AC_DEFINE(CNID_DB_CDB, 1)
265 , AC_MSG_RESULT([no])
268 dnl Check for Berkeley DB3 library
269 if test "x$db3_required" = "xyes"; then
270 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
273 dnl Check for quota support
276 dnl Check for optional server location protocol support (used by MacOS X)
279 dnl Check for PAM libs
281 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
282 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
288 AC_MSG_CHECKING([whether shadow support should be enabled])
290 [ --with-shadow enable shadow password support],
291 [shadowpw="$withval"],
294 if test "x$shadowpw" = "xyes"; then
297 AC_MSG_RESULT([$shadowpw])
299 AC_ARG_ENABLE(shell-check,
300 [ --disable-shell-check disable checking for a valid shell],
301 if test "$enableval" = "no"; then
302 AC_DEFINE(DISABLE_SHELLCHECK, 1)
303 AC_MSG_RESULT([disabling valid shell check])
307 AC_MSG_CHECKING([whether flock locks should be enabled])
308 AC_ARG_WITH(flock-locks,
309 [ --with-flock-locks enable flock locks support],
310 [flock_locks="$withval"],
313 if test "x$flock_locks" = "xyes"; then
314 AC_DEFINE(USE_FLOCK_LOCKS)
316 AC_MSG_RESULT([$flock_locks])
318 AC_ARG_WITH(tcp-wrappers,
319 [ --with-tcp-wrappers enable TCP wrappers support],
320 AC_CHECK_LIB(wrap, tcpd_warn,
322 AFPD_LIBS="$AFPD_LIBS -lwrap"
323 AC_MSG_RESULT([enabling TCP wrappers support])
327 AC_ARG_ENABLE(redhat,
328 [ --enable-redhat use redhat-style sysv configuration ],
329 if test "$enableval" = "yes"; then
332 AC_MSG_RESULT([enabling redhat-style sysv support])
336 [ --enable-suse use suse-style sysv configuration ],
337 if test "$enableval" = "yes"; then
340 AC_MSG_RESULT([enabling suse-style sysv support])
343 AC_ARG_ENABLE(cobalt,
344 [ --enable-cobalt use cobalt-style sysv configuration ],
345 if test "$enableval" = "yes"; then
348 AC_MSG_RESULT([enabling cobalt-style sysv support])
351 AC_ARG_ENABLE(netbsd,
352 [ --enable-netbsd use NetBSD-style rc.d configuration ],
353 if test "x$enableval" = "xyes"; then
356 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
359 dnl ----- timelord compilation (disabled by default)
360 AC_MSG_CHECKING([whether timelord should be compiled])
362 AC_ARG_ENABLE(timelord,
363 [ --enable-timelord enable compilation of timelord server],
364 [compile_timelord="$enableval"],
365 [compile_timelord="no"]
367 AC_MSG_RESULT([$compile_timelord])
369 AC_ARG_WITH(uams-path,
370 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
371 uams_path="$withval",
372 uams_path="${PKGCONFDIR}/uams"
375 AC_ARG_WITH(catsearch,
376 [ --with-catsearch enable fpCatSearch functionality (experimental)],
377 if test "$withval" = "yes"; then
378 AC_DEFINE(WITH_CATSEARCH, 1)
382 dnl --------------------------------------------------------------------------
383 dnl FHS stuff has to be done last because it overrides other defaults
384 dnl --------------------------------------------------------------------------
387 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
388 if test "$enableval" = "yes"; then
389 uams_path="/usr/lib/netatalk"
391 PKGCONFDIR=${sysconfdir}/netatalk
393 mandir="/usr/share/man"
394 AC_DEFINE(FHS_COMPATIBILITY)
396 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
399 dnl --------------------------------------------------------------------------
400 dnl post-FHS substitutions, etc
401 dnl --------------------------------------------------------------------------
404 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
405 [path to UAMs [default=PKGCONF/uams]])
406 UAMS_PATH="${uams_path}"
409 dnl --------------------------------------------------------------------------
410 dnl drop in includes for top level directory structures here...
411 dnl --------------------------------------------------------------------------
413 dnl Note: $(top_srcdir)/include should be added before all other includes
414 dnl so that includes from that directory a preferred to includes from
415 dnl /usr/include or similar places.
416 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
417 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
419 dnl --------------------------------------------------------------------------
420 dnl specific configuration comes in here:
421 dnl --------------------------------------------------------------------------
423 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
425 dnl --------------------- determine operating system from "target"
427 *aix*) this_os=aix ;;
428 *freebsd*) this_os=freebsd ;;
429 *hpux11*) this_os=hpux11 ;;
430 *irix*) this_os=irix ;;
431 *linux*) this_os=linux ;;
432 *osx*) this_os=macosx ;;
433 *darwin*) this_os=macosx ;;
434 *netbsd*) this_os=netbsd ;;
435 *openbsd*) this_os=openbsd ;;
436 *osf*) this_os=tru64 ;;
437 *solaris*) this_os=solaris ;;
441 i386|i486|i586|i686|k7) this_cpu=x86 ;;
442 alpha) this_cpu=alpha ;;
443 mips) this_cpu=mips ;;
444 powerpc|ppc) this_cpu=ppc ;;
447 dnl --------------------- operating system specific flags (port from sys/*)
449 dnl ----- AIX specific -----
450 if test x"$this_os" = "xaix"; then
451 AC_MSG_RESULT([ * AIX specific configuration])
452 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
454 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
455 dnl compilation environment. It's enough to get things defined
456 dnl right in endian.h provided that long long is supported, though.
457 AC_DEFINE(HAVE_32BIT_LONGS)
460 dnl ----- FreeBSD specific -----
461 if test x"$this_os" = "xfreebsd"; then
462 AC_MSG_RESULT([ * FreeBSD specific configuration])
464 AC_DEFINE(SENDFILE_FLAVOR_BSD)
466 AC_DEFINE(NO_CRYPT_H, 1)
469 dnl ----- HP-UX 11 specific -----
470 if test x"$this_os" = "xhpux11"; then
471 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
473 AC_DEFINE(_ISOC9X_SOURCE)
474 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
477 dnl ----- IRIX specific -----
478 if test x"$this_os" = "xirix"; then
479 AC_MSG_RESULT([ * IRIX specific configuration])
481 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
484 dnl ----- Linux specific -----
485 if test x"$this_os" = "xlinux"; then
486 AC_MSG_RESULT([ * Linux specific configuration])
488 dnl ----- check if we need the quotactl wrapper
489 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
490 AC_CHECK_FUNC(quotactl,,
491 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
492 AC_MSG_RESULT([enabling quotactl wrapper])
495 dnl ----- as far as I can tell, dbtob always does the wrong thing
496 dnl ----- on every single version of linux I've ever played with.
497 dnl ----- see etc/afpd/quota.c
498 AC_DEFINE(HAVE_BROKEN_DBTOB)
500 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
501 dnl ----- check if version is newer than 2.2.x
503 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
504 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
505 if [ $majorvers -ge 2 ]; then
506 if [ $minorvers -ge 2 ]; then
508 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
509 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
511 AC_MSG_RESULT([ * found Linux 2.0.x ])
515 dnl ----- Linux/alpha specific -----
516 if test x"$this_cpu" = "xalpha"; then
517 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
518 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
523 dnl ----- Mac OSX specific -----
524 if test x"$this_os" = "xmacosx"; then
525 AC_MSG_RESULT([ * Mac OSX specific configuration])
527 AC_DEFINE(HAVE_BROKEN_CPP)
528 AC_DEFINE(HAVE_2ARG_DBTOB)
529 dnl AC_DEFINE(NO_DLFCN_H)
530 AC_DEFINE(MACOSX_SERVER)
533 dnl ----- NetBSD specific -----
534 if test x"$this_os" = "xnetbsd"; then
535 AC_MSG_RESULT([ * NetBSD specific configuration])
537 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
538 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
539 # If this test is true, it's not an ELF box.
540 # This REALLY should be a configure test.
541 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
543 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
546 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
547 AC_DEFINE(UAM_DHX, 1)
548 AC_DEFINE(NO_CRYPT_H, 1)
551 dnl ----- OpenBSD specific -----
552 if test x"$this_os" = "xopenbsd"; then
553 AC_MSG_RESULT([ * OpenBSD specific configuration])
555 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
557 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
558 AC_DEFINE(UAM_DHX, 1)
559 AC_DEFINE(NO_CRYPT_H, 1)
562 dnl ----- Solaris specific -----
563 if test x"$this_os" = "xsolaris"; then
564 AC_MSG_RESULT([ * Solaris specific configuration])
566 AC_DEFINE(_ISOC9X_SOURCE)
567 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
569 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
572 AC_MSG_RESULT([enabling Solaris kernel module build])
576 dnl ----- Tru64 specific -----
577 if test x"$this_os" = "xtru64"; then
578 AC_MSG_RESULT([ * Tru64 specific configuration])
580 AC_DEFINE(HAVE_64BIT_LONGS)
581 dnl AC_DEFINE(USE_MOUNT_H)
582 AC_DEFINE(USE_OLD_RQUOTA)
583 dnl AC_DEFINE(USE_UFS_QUOTA_H)
585 AC_CHECK_LIB(security,set_auth_parameters)
586 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
591 dnl -- look for openssl
594 dnl --------------------- check for building PGP UAM module
596 AC_ARG_ENABLE(pgp-uam,
597 [ --enable-pgp-uam enable build of PGP UAM module],
598 if test "$enableval" = "yes"; then
599 if test "$compile_ssl" = "yes"; then
600 AC_DEFINE(UAM_PGP, 1)
602 AC_MSG_RESULT([enabling build with PGP UAM module])
607 dnl --------------------- check for building Kerberos v4 UAM module
609 AC_ARG_ENABLE(krb4-uam,
610 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
611 if test "$enableval" = "yes"; then
612 AC_DEFINE(UAM_KRB4, 1)
614 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
617 dnl --------------------- overwrite the config files . . . or not.
619 AC_MSG_CHECKING([whether configuration files should be overwritten])
620 AC_ARG_ENABLE(overwrite,
621 [ --enable-overwrite overwrite configuration files during installation],
622 [OVERWRITE_CONFIG="${enable_overwrite}"],
623 [OVERWRITE_CONFIG="no"]
625 AC_MSG_RESULT([$OVERWRITE_CONFIG])
627 dnl --------------------- last minute substitutions
633 AC_SUBST(OVERWRITE_CONFIG)
635 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
636 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
637 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
638 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
639 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
640 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
641 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
642 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
643 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
644 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
645 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
646 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
647 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
648 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
650 dnl --------------------- generate files
654 bin/adv1tov2/Makefile
657 bin/afppasswd/Makefile
660 bin/getzones/Makefile
661 bin/megatron/Makefile
667 contrib/macusers/Makefile
668 contrib/macusers/macusers
671 contrib/printing/Makefile
672 contrib/shell_utils/Makefile
673 contrib/shell_utils/afpd-mtab.pl
674 contrib/shell_utils/apple_cp
675 contrib/shell_utils/apple_mv
676 contrib/shell_utils/apple_rm
677 contrib/shell_utils/cleanappledouble.pl
678 contrib/shell_utils/netatalkshorternamelinks.pl
679 contrib/timelord/Makefile
681 distrib/config/Makefile
682 distrib/config/netatalk-config
683 distrib/initscripts/Makefile
688 etc/afpd/nls/Makefile
691 etc/uams/uams_krb4/Makefile
695 include/atalk/Makefile
697 libatalk/adouble/Makefile
698 libatalk/asp/Makefile
699 libatalk/atp/Makefile
700 libatalk/cnid/Makefile
701 libatalk/compat/Makefile
702 libatalk/dsi/Makefile
703 libatalk/nbp/Makefile
704 libatalk/netddp/Makefile
705 libatalk/util/Makefile
715 sys/generic/sys/Makefile
716 sys/netatalk/Makefile
718 sys/netbsd/netatalk/Makefile
720 sys/solaris/Makefile.kernel
724 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]