1 dnl $Id: configure.in,v 1.175 2003-01-04 21:41:48 jmarcus 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 AC_CHECK_FUNCS(pread pwrite)
78 dnl Checks for header files.
82 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)
83 AC_CHECK_HEADER(sys/cdefs.h,,
84 AC_MSG_RESULT([enabling generic cdefs.h from tree])
85 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
88 dnl Checks for typedefs, structures, and compiler characteristics.
100 dnl Checks for library functions.
102 AC_PROG_GCC_TRADITIONAL
109 AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul setpgrp strchr memcpy)
112 dnl Checks for (v)snprintf
113 NETATALK_SNPRINTF_CHECK
115 dnl --------------------------------------------------------------------------
116 dnl specific configuration comes in here:
117 dnl --------------------------------------------------------------------------
119 AC_DEFINE(ADMIN_GRP, 1)
121 AC_ARG_WITH(admin-group,
122 [ --disable-admin-group disable admin group],
123 if test "$enableval" = "no"; then
124 AC_DEFINE(ADMIN_GRP, 0)
125 AC_MSG_RESULT([disabling administrative group support])
134 [ --with-logfile=PATH path for file used by logger [/var/log/netatalk.log]
135 use --without-logfile to disable logger],
136 if test "$withval" = "no"; then
137 AC_DEFINE(DISABLE_LOGGER, 1)
138 AC_MSG_RESULT([logger disabled])
139 elif test "$withval" != "yes"; then
140 AC_DEFINE_UNQUOTED(LOGFILEPATH, "$withval")
141 AC_MSG_RESULT([logfile set to $withval])
143 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
144 AC_MSG_RESULT([logfile set to default])
146 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
147 AC_MSG_RESULT([logfile set to default])
150 AC_ARG_WITH(cracklib,
151 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
152 if test "x$withval" != "xno" ; then
154 AC_CHECK_LIB(crack, main,
155 AC_DEFINE(USE_CRACKLIB)
157 AC_MSG_RESULT([enabling cracklib support])
158 if test "$cracklib" = "yes"; then
159 cracklib="/usr/lib/cracklib_dict"
161 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
162 [path to cracklib dictionary])
163 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
164 AC_MSG_ERROR([cracklib not found!])
170 [ --disable-ddp disable DDP],
171 if test "$enableval" = "no"; then
173 AC_MSG_RESULT([disabling DDP])
178 [ --enable-debug enable debug code],
179 if test "$enableval" != "no"; then
180 if test "$enableval" = "yes"; then
183 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
185 AC_MSG_RESULT([enabling debugging code])
191 [ --enable-afp3 enable AFP 3.x calls],
192 if test "$enableval" = "yes"; then
195 AC_MSG_RESULT([enabling AFP 3.x calls])
199 if test "$afp3" = "yes"; then
204 dnl ----------- A NOTE ABOUT DROPKLUDGE
205 dnl The trouble with this fix is that if you know what the file is called, it
206 dnl can be read from the Unix side. That's okay for most academic institutions
207 dnl since the students don't have telnet access to the Mac servers. There is
208 dnl currently no one working on further development/fixes of DROPKLUDGE.
211 AC_ARG_ENABLE(dropkludge,
212 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
213 if test "$enableval" = "yes"; then
214 AC_DEFINE(DROPKLUDGE, 1)
215 AC_MSG_RESULT([enabling experimental dropbox support])
219 AC_ARG_ENABLE(force-uidgid,
220 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
221 if test "$enableval" = "yes"; then
222 AC_DEFINE(FORCE_UIDGID, 1)
223 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
227 dnl Don't use BDB unless it's needed
230 dnl Determine DID scheme
231 AC_MSG_CHECKING([for DID scheme to use])
233 [ --with-did=SCHEME set DID scheme (cnid,last)],
234 [ did_scheme="$withval" ],
235 [ did_scheme="cnid" ]
238 if test "x$did_scheme" = "xlast"; then
239 AC_DEFINE(USE_LASTDID, 1)
240 AC_MSG_RESULT([last])
241 elif test "x$did_scheme" = "xcnid"; then
243 AC_DEFINE(CNID_DB, 1)
244 AC_MSG_RESULT([enabling build with CNID DB support])
246 AC_MSG_ERROR([unknown DID scheme])
248 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
250 dnl Determine whether or not to use filename mangling
251 AC_MSG_CHECKING([whether or not to use filename mangling])
252 AC_ARG_WITH(mangling,
253 [ --with-mangling enable filename mangling],
255 if test "x$withval" = "xyes"; then
256 if test "x$did_scheme" != "xcnid"; then
257 AC_MSG_ERROR([DID scheme must be CNID to use filename mangling])
259 AC_DEFINE(FILE_MANGLING, 1)
266 if test "x$did_scheme" = "xcnid"; then
267 AC_DEFINE(FILE_MANGLING, 1)
275 if test "$did_scheme" = "cnid"; then
281 dnl Determine whether or not to use CDB or transactional DB store
282 AC_MSG_CHECKING([whether or not to use CNID with Concurrent Data Store])
284 [ --with-cdb enable CNID with Concurrent Data Store],
285 if test "$withval" = "no"; then
286 if test "x$did_scheme" != "xcnid"; then
288 AC_MSG_ERROR([DID scheme must be CNID to use CDB])
297 , AC_MSG_RESULT([yes])
300 if test "$USE_CDB" = "yes"; then
301 AC_DEFINE(CNID_DB_CDB, 1)
304 dnl Check for Berkeley DB library
305 if test "x$bdb_required" = "xyes"; then
306 AC_PATH_BDB(, [AC_MSG_ERROR([Berkeley DB library not found!])])
309 dnl Check for quota support
312 dnl Check for optional server location protocol support (used by MacOS X)
315 dnl Check for PAM libs
317 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
318 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
324 AC_MSG_CHECKING([whether shadow support should be enabled])
326 [ --with-shadow enable shadow password support],
327 [shadowpw="$withval"],
330 if test "x$shadowpw" = "xyes"; then
333 AC_MSG_RESULT([$shadowpw])
335 AC_ARG_ENABLE(shell-check,
336 [ --disable-shell-check disable checking for a valid shell],
337 if test "$enableval" = "no"; then
338 AC_DEFINE(DISABLE_SHELLCHECK, 1)
339 AC_MSG_RESULT([disabling valid shell check])
343 AC_ARG_WITH(tcp-wrappers,
344 [ --with-tcp-wrappers enable TCP wrappers support],
345 AC_CHECK_LIB(wrap, tcpd_warn,
347 AFPD_LIBS="$AFPD_LIBS -lwrap"
348 AC_MSG_RESULT([enabling TCP wrappers support])
352 AC_ARG_ENABLE(redhat,
353 [ --enable-redhat use redhat-style sysv configuration ],
354 if test "$enableval" = "yes"; then
357 AC_MSG_RESULT([enabling redhat-style sysv support])
361 [ --enable-suse use suse-style sysv configuration ],
362 if test "$enableval" = "yes"; then
365 AC_MSG_RESULT([enabling suse-style sysv support])
368 AC_ARG_ENABLE(cobalt,
369 [ --enable-cobalt use cobalt-style sysv configuration ],
370 if test "$enableval" = "yes"; then
373 AC_MSG_RESULT([enabling cobalt-style sysv support])
376 AC_ARG_ENABLE(netbsd,
377 [ --enable-netbsd use NetBSD-style rc.d configuration ],
378 if test "x$enableval" = "xyes"; then
381 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
384 dnl ----- timelord compilation (disabled by default)
385 AC_MSG_CHECKING([whether timelord should be compiled])
387 AC_ARG_ENABLE(timelord,
388 [ --enable-timelord enable compilation of timelord server],
389 [compile_timelord="$enableval"],
390 [compile_timelord="no"]
392 AC_MSG_RESULT([$compile_timelord])
394 AC_ARG_WITH(uams-path,
395 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
396 uams_path="$withval",
397 uams_path="${PKGCONFDIR}/uams"
400 dnl --------------------------------------------------------------------------
401 dnl FHS stuff has to be done last because it overrides other defaults
402 dnl --------------------------------------------------------------------------
405 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
406 if test "$enableval" = "yes"; then
407 uams_path="/usr/lib/netatalk"
409 PKGCONFDIR=${sysconfdir}/netatalk
411 mandir="/usr/share/man"
412 AC_DEFINE(FHS_COMPATIBILITY)
414 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
417 dnl --------------------------------------------------------------------------
418 dnl post-FHS substitutions, etc
419 dnl --------------------------------------------------------------------------
422 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
423 [path to UAMs [default=PKGCONF/uams]])
424 UAMS_PATH="${uams_path}"
427 dnl --------------------------------------------------------------------------
428 dnl drop in includes for top level directory structures here...
429 dnl --------------------------------------------------------------------------
431 dnl Note: $(top_srcdir)/include should be added before all other includes
432 dnl so that includes from that directory a preferred to includes from
433 dnl /usr/include or similar places.
434 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
435 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
437 dnl --------------------------------------------------------------------------
438 dnl specific configuration comes in here:
439 dnl --------------------------------------------------------------------------
441 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
443 dnl --------------------- determine operating system from "target"
445 *aix*) this_os=aix ;;
446 *freebsd*) this_os=freebsd ;;
447 *hpux11*) this_os=hpux11 ;;
448 *irix*) this_os=irix ;;
449 *linux*) this_os=linux ;;
450 *osx*) this_os=macosx ;;
451 *darwin*) this_os=macosx ;;
452 *netbsd*) this_os=netbsd ;;
453 *openbsd*) this_os=openbsd ;;
454 *osf*) this_os=tru64 ;;
455 *solaris*) this_os=solaris ;;
459 i386|i486|i586|i686|k7) this_cpu=x86 ;;
460 alpha) this_cpu=alpha ;;
461 mips) this_cpu=mips ;;
462 powerpc|ppc) this_cpu=ppc ;;
465 dnl --------------------- operating system specific flags (port from sys/*)
467 dnl ----- AIX specific -----
468 if test x"$this_os" = "xaix"; then
469 AC_MSG_RESULT([ * AIX specific configuration])
470 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
472 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
473 dnl compilation environment. It's enough to get things defined
474 dnl right in endian.h provided that long long is supported, though.
475 AC_DEFINE(HAVE_32BIT_LONGS)
478 dnl ----- FreeBSD specific -----
479 if test x"$this_os" = "xfreebsd"; then
480 AC_MSG_RESULT([ * FreeBSD specific configuration])
482 AC_DEFINE(SENDFILE_FLAVOR_BSD)
484 AC_DEFINE(NO_CRYPT_H, 1)
487 dnl ----- HP-UX 11 specific -----
488 if test x"$this_os" = "xhpux11"; then
489 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
491 AC_DEFINE(_ISOC9X_SOURCE)
492 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
495 dnl ----- IRIX specific -----
496 if test x"$this_os" = "xirix"; then
497 AC_MSG_RESULT([ * IRIX specific configuration])
499 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
502 dnl ----- Linux specific -----
503 if test x"$this_os" = "xlinux"; then
504 AC_MSG_RESULT([ * Linux specific configuration])
506 dnl ----- check if we need the quotactl wrapper
507 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
508 AC_CHECK_FUNC(quotactl,,
509 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
510 AC_MSG_RESULT([enabling quotactl wrapper])
513 dnl ----- as far as I can tell, dbtob always does the wrong thing
514 dnl ----- on every single version of linux I've ever played with.
515 dnl ----- see etc/afpd/quota.c
516 AC_DEFINE(HAVE_BROKEN_DBTOB)
518 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
519 dnl ----- check if version is newer than 2.2.x
521 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
522 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
523 if [ $majorvers -ge 2 ]; then
524 if [ $minorvers -ge 2 ]; then
526 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
527 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
529 AC_MSG_RESULT([ * found Linux 2.0.x ])
533 dnl ----- Linux/alpha specific -----
534 if test x"$this_cpu" = "xalpha"; then
535 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
536 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
541 dnl ----- Mac OSX specific -----
542 if test x"$this_os" = "xmacosx"; then
543 AC_MSG_RESULT([ * Mac OSX specific configuration])
545 AC_DEFINE(HAVE_BROKEN_CPP)
546 AC_DEFINE(HAVE_2ARG_DBTOB)
547 dnl AC_DEFINE(NO_DLFCN_H)
548 AC_DEFINE(MACOSX_SERVER)
551 dnl ----- NetBSD specific -----
552 if test x"$this_os" = "xnetbsd"; then
553 AC_MSG_RESULT([ * NetBSD specific configuration])
555 if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
556 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
557 # If this test is true, it's not an ELF box.
558 # This REALLY should be a configure test.
559 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
561 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
564 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
565 AC_DEFINE(UAM_DHX, 1)
566 AC_DEFINE(NO_CRYPT_H, 1)
569 dnl ----- OpenBSD specific -----
570 if test x"$this_os" = "xopenbsd"; then
571 AC_MSG_RESULT([ * OpenBSD specific configuration])
573 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
575 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
576 AC_DEFINE(UAM_DHX, 1)
577 AC_DEFINE(NO_CRYPT_H, 1)
580 dnl ----- Solaris specific -----
581 if test x"$this_os" = "xsolaris"; then
582 AC_MSG_RESULT([ * Solaris specific configuration])
584 AC_DEFINE(_ISOC9X_SOURCE)
585 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
587 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
590 AC_MSG_RESULT([enabling Solaris kernel module build])
594 dnl ----- Tru64 specific -----
595 if test x"$this_os" = "xtru64"; then
596 AC_MSG_RESULT([ * Tru64 specific configuration])
598 AC_DEFINE(HAVE_64BIT_LONGS)
599 dnl AC_DEFINE(USE_MOUNT_H)
600 AC_DEFINE(USE_OLD_RQUOTA)
601 dnl AC_DEFINE(USE_UFS_QUOTA_H)
603 AC_CHECK_LIB(security,set_auth_parameters)
604 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
609 dnl -- look for openssl
612 dnl --------------------- check for building PGP UAM module
614 AC_ARG_ENABLE(pgp-uam,
615 [ --enable-pgp-uam enable build of PGP UAM module],
616 if test "$enableval" = "yes"; then
617 if test "$compile_ssl" = "yes"; then
618 AC_DEFINE(UAM_PGP, 1)
620 AC_MSG_RESULT([enabling build with PGP UAM module])
625 dnl --------------------- check for building Kerberos v4 UAM module
627 AC_ARG_ENABLE(krb4-uam,
628 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
629 if test "$enableval" = "yes"; then
630 AC_DEFINE(UAM_KRB4, 1)
632 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
635 dnl --------------------- overwrite the config files . . . or not.
637 AC_MSG_CHECKING([whether configuration files should be overwritten])
638 AC_ARG_ENABLE(overwrite,
639 [ --enable-overwrite overwrite configuration files during installation],
640 [OVERWRITE_CONFIG="${enable_overwrite}"],
641 [OVERWRITE_CONFIG="no"]
643 AC_MSG_RESULT([$OVERWRITE_CONFIG])
645 dnl --------------------- last minute substitutions
651 AC_SUBST(OVERWRITE_CONFIG)
653 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
654 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
655 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
656 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
657 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
658 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
659 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
660 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
661 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
662 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
663 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
664 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
665 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
666 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
668 dnl --------------------- generate files
672 bin/adv1tov2/Makefile
675 bin/afppasswd/Makefile
678 bin/getzones/Makefile
679 bin/megatron/Makefile
685 contrib/macusers/Makefile
686 contrib/macusers/macusers
689 contrib/printing/Makefile
690 contrib/shell_utils/Makefile
691 contrib/shell_utils/afpd-mtab.pl
692 contrib/shell_utils/apple_cp
693 contrib/shell_utils/apple_mv
694 contrib/shell_utils/apple_rm
695 contrib/shell_utils/cleanappledouble.pl
696 contrib/shell_utils/netatalkshorternamelinks.pl
697 contrib/timelord/Makefile
699 distrib/config/Makefile
700 distrib/config/netatalk-config
701 distrib/initscripts/Makefile
706 etc/afpd/nls/Makefile
709 etc/uams/uams_krb4/Makefile
713 include/atalk/Makefile
715 libatalk/adouble/Makefile
716 libatalk/asp/Makefile
717 libatalk/atp/Makefile
718 libatalk/cnid/Makefile
719 libatalk/compat/Makefile
720 libatalk/dsi/Makefile
721 libatalk/nbp/Makefile
722 libatalk/netddp/Makefile
723 libatalk/util/Makefile
733 sys/generic/sys/Makefile
734 sys/netatalk/Makefile
736 sys/netbsd/netatalk/Makefile
738 sys/solaris/Makefile.kernel
742 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]