1 dnl $Id: configure.in,v 1.168.2.9 2003-12-02 13:20:51 bfernhomberg 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_ARG_WITH(tcp-wrappers,
320 [ --with-tcp-wrappers enable TCP wrappers support],
321 AC_CHECK_LIB(wrap, tcpd_warn,
323 AFPD_LIBS="$AFPD_LIBS -lwrap"
324 AC_MSG_RESULT([enabling TCP wrappers support])
328 AC_ARG_ENABLE(redhat,
329 [ --enable-redhat use redhat-style sysv configuration ],
330 if test "$enableval" = "yes"; then
333 AC_MSG_RESULT([enabling redhat-style sysv support])
337 [ --enable-suse use suse-style sysv configuration ],
338 if test "$enableval" = "yes"; then
341 AC_MSG_RESULT([enabling suse-style sysv support])
344 AC_ARG_ENABLE(cobalt,
345 [ --enable-cobalt use cobalt-style sysv configuration ],
346 if test "$enableval" = "yes"; then
349 AC_MSG_RESULT([enabling cobalt-style sysv support])
352 AC_ARG_ENABLE(netbsd,
353 [ --enable-netbsd use NetBSD-style rc.d configuration ],
354 if test "x$enableval" = "xyes"; then
357 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
360 dnl ----- timelord compilation (disabled by default)
361 AC_MSG_CHECKING([whether timelord should be compiled])
363 AC_ARG_ENABLE(timelord,
364 [ --enable-timelord enable compilation of timelord server],
365 [compile_timelord="$enableval"],
366 [compile_timelord="no"]
368 AC_MSG_RESULT([$compile_timelord])
370 AC_ARG_WITH(uams-path,
371 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
372 uams_path="$withval",
373 uams_path="${PKGCONFDIR}/uams"
376 dnl --------------------------------------------------------------------------
377 dnl FHS stuff has to be done last because it overrides other defaults
378 dnl --------------------------------------------------------------------------
381 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
382 if test "$enableval" = "yes"; then
383 uams_path="${libdir}/netatalk"
385 PKGCONFDIR=${sysconfdir}/netatalk
386 SERVERTEXT="${PKGCONFDIR}/msg"
387 NLSDIR="${PKGCONFDIR}/nls"
389 mandir="/usr/share/man"
390 AC_DEFINE(FHS_COMPATIBILITY)
392 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
395 dnl --------------------------------------------------------------------------
396 dnl post-FHS substitutions, etc
397 dnl --------------------------------------------------------------------------
400 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
401 [path to UAMs [default=PKGCONF/uams]])
402 UAMS_PATH="${uams_path}"
405 dnl --------------------------------------------------------------------------
406 dnl drop in includes for top level directory structures here...
407 dnl --------------------------------------------------------------------------
409 dnl Note: $(top_srcdir)/include should be added before all other includes
410 dnl so that includes from that directory a preferred to includes from
411 dnl /usr/include or similar places.
412 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
413 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
415 dnl --------------------------------------------------------------------------
416 dnl specific configuration comes in here:
417 dnl --------------------------------------------------------------------------
419 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
421 dnl --------------------- determine operating system from "target"
423 *aix*) this_os=aix ;;
424 *freebsd*) this_os=freebsd ;;
425 *hpux11*) this_os=hpux11 ;;
426 *irix*) this_os=irix ;;
427 *linux*) this_os=linux ;;
428 *osx*) this_os=macosx ;;
429 *darwin*) this_os=macosx ;;
430 *netbsd*) this_os=netbsd ;;
431 *openbsd*) this_os=openbsd ;;
432 *osf*) this_os=tru64 ;;
433 *solaris*) this_os=solaris ;;
437 i386|i486|i586|i686|k7) this_cpu=x86 ;;
438 alpha) this_cpu=alpha ;;
439 mips) this_cpu=mips ;;
440 powerpc|ppc) this_cpu=ppc ;;
443 dnl --------------------- operating system specific flags (port from sys/*)
445 dnl ----- AIX specific -----
446 if test x"$this_os" = "xaix"; then
447 AC_MSG_RESULT([ * AIX specific configuration])
448 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
450 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
451 dnl compilation environment. It's enough to get things defined
452 dnl right in endian.h provided that long long is supported, though.
453 AC_DEFINE(HAVE_32BIT_LONGS)
456 dnl ----- FreeBSD specific -----
457 if test x"$this_os" = "xfreebsd"; then
458 AC_MSG_RESULT([ * FreeBSD specific configuration])
460 AC_DEFINE(SENDFILE_FLAVOR_BSD)
462 AC_DEFINE(NO_CRYPT_H, 1)
465 dnl ----- HP-UX 11 specific -----
466 if test x"$this_os" = "xhpux11"; then
467 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
469 AC_DEFINE(_ISOC9X_SOURCE)
470 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
473 dnl ----- IRIX specific -----
474 if test x"$this_os" = "xirix"; then
475 AC_MSG_RESULT([ * IRIX specific configuration])
477 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
480 dnl ----- Linux specific -----
481 ac_have_atalk_addr=no
482 if test x"$this_os" = "xlinux"; then
483 AC_MSG_RESULT([ * Linux specific configuration])
485 dnl ----- kernel 2.6 changed struct at_addr to atalk_addr
486 AC_MSG_CHECKING([for struct atalk_addr])
488 #include <sys/socket.h>
489 #include <asm/types.h>
490 #include <linux/atalk.h>
493 struct atalk_addr foo;
498 ac_have_atalk_addr=yes
504 if test "x$ac_have_atalk_addr" = "xyes"; then
505 AC_DEFINE(HAVE_ATALK_ADDR, 1, [set if struct at_addr is called atalk_addr])
508 dnl ----- check if we need the quotactl wrapper
509 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
510 AC_CHECK_FUNC(quotactl,,
511 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
512 AC_MSG_RESULT([enabling quotactl wrapper])
515 dnl ----- as far as I can tell, dbtob always does the wrong thing
516 dnl ----- on every single version of linux I've ever played with.
517 dnl ----- see etc/afpd/quota.c
518 AC_DEFINE(HAVE_BROKEN_DBTOB)
520 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
521 dnl ----- check if version is newer than 2.2.x
523 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
524 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
525 if [ $majorvers -ge 2 ]; then
526 if [ $minorvers -ge 2 ]; then
528 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
529 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
531 AC_MSG_RESULT([ * found Linux 2.0.x ])
535 dnl ----- Linux/alpha specific -----
536 if test x"$this_cpu" = "xalpha"; then
537 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
538 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
543 dnl ----- Mac OSX specific -----
544 if test x"$this_os" = "xmacosx"; then
545 AC_MSG_RESULT([ * Mac OSX specific configuration])
547 AC_DEFINE(HAVE_BROKEN_CPP)
548 AC_DEFINE(HAVE_2ARG_DBTOB)
549 dnl AC_DEFINE(NO_DLFCN_H)
550 AC_DEFINE(MACOSX_SERVER)
553 dnl ----- NetBSD specific -----
554 if test x"$this_os" = "xnetbsd"; then
555 AC_MSG_RESULT([ * NetBSD specific configuration])
557 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
558 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
559 # If this test is true, it's not an ELF box.
560 # This REALLY should be a configure test.
561 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
563 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
566 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
567 AC_DEFINE(UAM_DHX, 1)
568 AC_DEFINE(NO_CRYPT_H, 1)
571 dnl ----- OpenBSD specific -----
572 if test x"$this_os" = "xopenbsd"; then
573 AC_MSG_RESULT([ * OpenBSD specific configuration])
575 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
577 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
578 AC_DEFINE(UAM_DHX, 1)
579 AC_DEFINE(NO_CRYPT_H, 1)
582 dnl ----- Solaris specific -----
583 if test x"$this_os" = "xsolaris"; then
584 AC_MSG_RESULT([ * Solaris specific configuration])
586 AC_DEFINE(_ISOC9X_SOURCE)
587 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
589 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
592 AC_MSG_RESULT([enabling Solaris kernel module build])
596 dnl ----- Tru64 specific -----
597 if test x"$this_os" = "xtru64"; then
598 AC_MSG_RESULT([ * Tru64 specific configuration])
600 AC_DEFINE(HAVE_64BIT_LONGS)
601 dnl AC_DEFINE(USE_MOUNT_H)
602 AC_DEFINE(USE_OLD_RQUOTA)
603 dnl AC_DEFINE(USE_UFS_QUOTA_H)
605 AC_CHECK_LIB(security,set_auth_parameters)
606 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
611 dnl -- look for openssl
614 dnl --------------------- check for building PGP UAM module
616 AC_ARG_ENABLE(pgp-uam,
617 [ --enable-pgp-uam enable build of PGP UAM module],
618 if test "$enableval" = "yes"; then
619 if test "$compile_ssl" = "yes"; then
620 AC_DEFINE(UAM_PGP, 1)
622 AC_MSG_RESULT([enabling build with PGP UAM module])
627 dnl --------------------- check for building Kerberos v4 UAM module
629 AC_ARG_ENABLE(krb4-uam,
630 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
631 if test "$enableval" = "yes"; then
632 AC_DEFINE(UAM_KRB4, 1)
634 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
637 dnl --------------------- overwrite the config files . . . or not.
639 AC_MSG_CHECKING([whether configuration files should be overwritten])
640 AC_ARG_ENABLE(overwrite,
641 [ --enable-overwrite overwrite configuration files during installation],
642 [OVERWRITE_CONFIG="${enable_overwrite}"],
643 [OVERWRITE_CONFIG="no"]
645 AC_MSG_RESULT([$OVERWRITE_CONFIG])
647 dnl --------------------- last minute substitutions
653 AC_SUBST(OVERWRITE_CONFIG)
655 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
656 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
657 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
658 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
659 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
660 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
661 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
662 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
663 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
664 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
665 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
666 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
667 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
668 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
670 dnl --------------------- generate files
674 bin/adv1tov2/Makefile
677 bin/afppasswd/Makefile
680 bin/getzones/Makefile
681 bin/megatron/Makefile
687 contrib/macusers/Makefile
688 contrib/macusers/macusers
691 contrib/printing/Makefile
692 contrib/shell_utils/Makefile
693 contrib/shell_utils/afpd-mtab.pl
694 contrib/shell_utils/apple_cp
695 contrib/shell_utils/apple_mv
696 contrib/shell_utils/apple_rm
697 contrib/shell_utils/cleanappledouble.pl
698 contrib/shell_utils/lp2pap.sh
699 contrib/shell_utils/netatalkshorternamelinks.pl
700 contrib/timelord/Makefile
702 distrib/config/Makefile
703 distrib/config/netatalk-config
704 distrib/initscripts/Makefile
709 etc/afpd/nls/Makefile
712 etc/uams/uams_krb4/Makefile
716 include/atalk/Makefile
718 libatalk/adouble/Makefile
719 libatalk/asp/Makefile
720 libatalk/atp/Makefile
721 libatalk/cnid/Makefile
722 libatalk/compat/Makefile
723 libatalk/dsi/Makefile
724 libatalk/nbp/Makefile
725 libatalk/netddp/Makefile
726 libatalk/util/Makefile
736 sys/generic/sys/Makefile
737 sys/netatalk/Makefile
739 sys/netbsd/netatalk/Makefile
741 sys/solaris/Makefile.kernel
745 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]