1 dnl $Id: configure.in,v 1.148 2002-01-17 05:55:41 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 Checks for programs.
23 dnl *********************************************************************
24 dnl FIXME! FIXME! These should be selectable properly, and should produce
25 dnl the proper flags and defines...
26 dnl *********************************************************************
28 dnl Checks for libraries.
29 dnl Replace `main' with a function in -labs:
30 AC_CHECK_LIB(abs, main)
31 dnl Replace `main' with a function in -laudit:
32 AC_CHECK_LIB(audit, main)
33 dnl Replace `main' with a function in -lauth:
34 AC_CHECK_LIB(auth, main)
35 dnl Replace `main' with a function in -lcmd:
36 AC_CHECK_LIB(cmd, main)
37 dnl Replace `main' with a function in -lcrypt:
38 AC_CHECK_LIB(crypt, main)
39 dnl Replace `main' with a function in -ld:
41 dnl Replace `main' with a function in -ldl:
42 AC_CHECK_LIB(dl, main)
43 dnl Replace `main' with a function in -lkauth:
44 AC_CHECK_LIB(kauth, main)
45 dnl Replace `main' with a function in -lkrb:
46 AC_CHECK_LIB(krb, main)
47 dnl Replace `main' with a function in -llwp:
48 AC_CHECK_LIB(lwp, main)
49 dnl Replace `main' with a function in -ln:
51 dnl Replace `main' with a function in -lnsl:
52 AC_CHECK_LIB(nsl, main)
53 dnl Replace `main' with a function in -lprot:
54 AC_CHECK_LIB(prot, main)
55 dnl Replace `main' with a function in -lrx:
56 AC_CHECK_LIB(rx, main)
57 dnl Replace `main' with a function in -lrxkad:
58 AC_CHECK_LIB(rxkad, main)
59 dnl Replace `main' with a function in -lsocket:
60 AC_CHECK_LIB(socket, main)
61 dnl Replace `main' with a function in -lsys:
62 AC_CHECK_LIB(sys, main)
63 dnl Replace `main' with a function in -lubik:
64 AC_CHECK_LIB(ubik, main)
67 # Check presence of some functions
69 # Check for XPG4 access() function
70 # Be sure to test before adding AFS libs in LIBS path as AFS lib
71 # has such a function that works only on AFS filesystems.
72 AC_CHECK_FUNCS(access)
74 dnl Checks for header files.
78 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)
79 AC_CHECK_HEADER(sys/cdefs.h,,
80 AC_MSG_RESULT([enabling generic cdefs.h from tree])
81 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
84 dnl Checks for typedefs, structures, and compiler characteristics.
96 dnl Checks for library functions.
98 AC_PROG_GCC_TRADITIONAL
105 AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp strchr memcpy)
108 dnl --------------------------------------------------------------------------
109 dnl specific configuration comes in here:
110 dnl --------------------------------------------------------------------------
112 AC_DEFINE(ADMIN_GRP, 1)
114 AC_ARG_WITH(admin-group,
115 [ --disable-admin-group disable admin group],
116 if test "$enableval" = "no"; then
117 AC_DEFINE(ADMIN_GRP, 0)
118 AC_MSG_RESULT([disabling administrative group support])
124 AC_ARG_WITH(pkgconfdir,
125 [ --with-pkgconfdir=DIR package specific configuration in DIR
126 [[SYSCONF/netatalk]]],
127 PKGCONFDIR="$withval",
128 PKGCONFDIR="${sysconfdir}/netatalk"
131 dnl FIXME: make this an extra check
132 NLSDIR="${PKGCONFDIR}/nls"
135 [ --with-logfile=PATH path for file used by logger [/var/log/netatalk.log]
136 use --without-logfile to disable logger],
137 if test "$withval" = "no"; then
138 AC_DEFINE(DISABLE_LOGGER, 1)
139 AC_MSG_RESULT([logger disabled])
140 elif test "$withval" != "yes"; then
141 AC_DEFINE_UNQUOTED(LOGFILEPATH, $withval)
142 AC_MSG_RESULT([logfile set to $withval])
144 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
145 AC_MSG_RESULT([logfile set to default])
147 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
148 AC_MSG_RESULT([logfile set to default])
151 AC_ARG_WITH(cracklib,
152 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
153 if test "x$withval" != "xno" ; then
155 AC_CHECK_LIB(crack, main,
156 AC_DEFINE(USE_CRACKLIB)
158 AC_MSG_RESULT([enabling cracklib support])
159 if test "$cracklib" = "yes"; then
160 cracklib="/usr/lib/cracklib_dict"
162 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
163 [path to cracklib dictionary])
164 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
165 AC_MSG_ERROR([cracklib not found!])
171 [ --disable-ddp disable DDP],
172 if test "$enableval" = "no"; then
174 AC_MSG_RESULT([disabling DDP])
179 [ --enable-debug enable debug code],
180 if test "$enableval" != "no"; then
181 if test "$enableval" = "yes"; then
184 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
186 AC_MSG_RESULT([enabling debugging code])
191 dnl ----------- A NOTE ABOUT DROPKLUDGE
192 dnl The trouble with this fix is that if you know what the file is called, it
193 dnl can be read from the Unix side. That's okay for most academic institutions
194 dnl since the students don't have telnet access to the Mac servers. There is
195 dnl currently no one working on further development/fixes of DROPKLUDGE.
198 AC_ARG_ENABLE(dropkludge,
199 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
200 if test "$enableval" = "yes"; then
201 AC_DEFINE(DROPKLUDGE, 1)
202 AC_MSG_RESULT([enabling experimental dropbox support])
206 AC_ARG_ENABLE(force-uidgid,
207 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
208 if test "$enableval" = "yes"; then
209 AC_DEFINE(FORCE_UIDGID, 1)
210 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
214 dnl Don't use DB3 unless it's needed
218 dnl Determine DID scheme
219 AC_MSG_CHECKING([for DID scheme to use])
221 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
222 [ did_scheme="$withval" ],
223 [ did_scheme="last" ]
226 if test "x$did_scheme" = "xlast"; then
227 AC_DEFINE(USE_LASTDID, 1)
228 AC_MSG_RESULT([last])
229 elif test "x$did_scheme" = "xhash"; then
230 AC_MSG_RESULT([device/inode-based hashing])
231 elif test "x$did_scheme" = "xmtab"; then
232 AC_DEFINE(DID_MTAB, 1)
233 AC_MSG_RESULT([mtab-based DID creation support])
234 elif test "x$did_scheme" = "xcnid"; then
236 AC_DEFINE(CNID_DB, 1)
237 AC_MSG_RESULT([enabling build with CNID DB support])
239 AC_MSG_ERROR([unknown DID scheme])
241 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
243 dnl Check for Berkeley DB3 library
244 if test "x$db3_required" = "xyes"; then
245 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
248 dnl Check for quota support
252 AC_ARG_WITH(message-dir,
253 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
255 if test x"$msg_dir" = "x"; then
256 msg_dir="${PKGCONFDIR}/msg"
258 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
259 [path to message dir [[PKGCONF/msg]]])
260 SERVERTEXT="$msg_dir"
264 dnl Check for optional server location protocol support (used by MacOS X)
267 dnl Check for PAM libs
269 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
270 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
276 AC_MSG_CHECKING([whether shadow support should be enabled])
278 [ --with-shadow enable shadow password support],
279 [shadowpw="$withval"],
282 if test "x$shadowpw" = "xyes"; then
285 AC_MSG_RESULT([$shadowpw])
287 AC_ARG_ENABLE(shell-check,
288 [ --disable-shell-check disable checking for a valid shell],
289 if test "$enableval" = "no"; then
290 AC_DEFINE(DISABLE_SHELLCHECK, 1)
291 AC_MSG_RESULT([disabling valid shell check])
295 AC_MSG_CHECKING([whether flock locks should be enabled])
296 AC_ARG_WITH(flock-locks,
297 [ --with-flock-locks enable flock locks support],
298 [flock_locks="$withval"],
301 if test "x$flock_locks" = "xyes"; then
302 AC_DEFINE(USE_FLOCK_LOCKS)
304 AC_MSG_RESULT([$flock_locks])
306 AC_ARG_WITH(tcp-wrappers,
307 [ --with-tcp-wrappers enable TCP wrappers support],
308 AC_CHECK_LIB(wrap, tcpd_warn,
310 AFPD_LIBS="$AFPD_LIBS -lwrap"
311 AC_MSG_RESULT([enabling TCP wrappers support])
315 AC_ARG_ENABLE(redhat,
316 [ --enable-redhat use redhat-style sysv configuration ],
317 if test "$enableval" = "yes"; then
320 AC_MSG_RESULT([enabling redhat-style sysv support])
324 [ --enable-suse use suse-style sysv configuration ],
325 if test "$enableval" = "yes"; then
328 AC_MSG_RESULT([enabling suse-style sysv support])
331 AC_ARG_ENABLE(cobalt,
332 [ --enable-cobalt use cobalt-style sysv configuration ],
333 if test "$enableval" = "yes"; then
336 AC_MSG_RESULT([enabling cobalt-style sysv support])
339 dnl ----- timelord compilation (disabled by default)
340 AC_MSG_CHECKING([whether timelord should be compiled])
342 AC_ARG_ENABLE(timelord,
343 [ --enable-timelord enable compilation of timelord server],
344 [compile_timelord="$enableval"],
345 [compile_timelord="no"]
347 AC_MSG_RESULT([$compile_timelord])
349 AC_ARG_WITH(uams-path,
350 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
351 uams_path="$withval",
352 uams_path="${PKGCONFDIR}/uams"
355 dnl --------------------------------------------------------------------------
356 dnl FHS stuff has to be done last because it overrides other defaults
357 dnl --------------------------------------------------------------------------
360 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
361 if test "$enableval" = "yes"; then
362 uams_path="/usr/lib/netatalk"
364 PKGCONFDIR=${sysconfdir}/netatalk
366 mandir="/usr/share/man"
367 AC_DEFINE(FHS_COMPATIBILITY)
369 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
372 dnl --------------------------------------------------------------------------
373 dnl post-FHS substitutions, etc
374 dnl --------------------------------------------------------------------------
377 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
378 [path to UAMs [default=PKGCONF/uams]])
379 UAMS_PATH="${uams_path}"
382 dnl --------------------------------------------------------------------------
383 dnl drop in includes for top level directory structures here...
384 dnl --------------------------------------------------------------------------
386 dnl Note: $(top_srcdir)/include should be added before all other includes
387 dnl so that includes from that directory a preferred to includes from
388 dnl /usr/include or similar places.
389 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
390 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
392 dnl --------------------------------------------------------------------------
393 dnl specific configuration comes in here:
394 dnl --------------------------------------------------------------------------
396 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
398 dnl --------------------- determine operating system from "target"
400 *aix*) this_os=aix ;;
401 *freebsd*) this_os=freebsd ;;
402 *hpux11*) this_os=hpux11 ;;
403 *irix*) this_os=irix ;;
404 *linux*) this_os=linux ;;
405 *osx*) this_os=macosx ;;
406 *darwin*) this_os=macosx ;;
407 *netbsd*) this_os=netbsd ;;
408 *openbsd*) this_os=openbsd ;;
409 *osf*) this_os=tru64 ;;
410 *solaris*) this_os=solaris ;;
414 i386|i486|i586|i686|k7) this_cpu=x86 ;;
415 alpha) this_cpu=alpha ;;
416 mips) this_cpu=mips ;;
417 powerpc|ppc) this_cpu=ppc ;;
420 dnl --------------------- operating system specific flags (port from sys/*)
422 dnl ----- AIX specific -----
423 if test x"$this_os" = "xaix"; then
424 AC_MSG_RESULT([ * AIX specific configuration])
425 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
427 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
428 dnl compilation environment. It's enough to get things defined
429 dnl right in endian.h provided that long long is supported, though.
430 AC_DEFINE(HAVE_32BIT_LONGS)
433 dnl ----- FreeBSD specific -----
434 if test x"$this_os" = "xfreebsd"; then
435 AC_MSG_RESULT([ * FreeBSD specific configuration])
437 AC_DEFINE(SENDFILE_FLAVOR_BSD)
439 AC_DEFINE(NO_CRYPT_H, 1)
442 dnl ----- HP-UX 11 specific -----
443 if test x"$this_os" = "xhpux11"; then
444 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
446 AC_DEFINE(_ISOC9X_SOURCE)
447 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
450 dnl ----- IRIX specific -----
451 if test x"$this_os" = "xirix"; then
452 AC_MSG_RESULT([ * IRIX specific configuration])
454 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
457 dnl ----- Linux specific -----
458 if test x"$this_os" = "xlinux"; then
459 AC_MSG_RESULT([ * Linux specific configuration])
461 dnl ----- check if we need the quotactl wrapper
462 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
463 AC_CHECK_FUNC(quotactl,,
464 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
465 AC_MSG_RESULT([enabling quotactl wrapper])
468 dnl ----- as far as I can tell, dbtob always does the wrong thing
469 dnl ----- on every single version of linux I've ever played with.
470 dnl ----- see etc/afpd/quota.c
471 AC_DEFINE(HAVE_BROKEN_DBTOB)
473 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
474 dnl ----- check if version is newer than 2.2.x
476 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
477 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
478 if [ $majorvers -ge 2 ]; then
479 if [ $minorvers -ge 2 ]; then
481 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
482 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
484 AC_MSG_RESULT([ * found Linux 2.0.x ])
488 dnl ----- Linux/alpha specific -----
489 if test x"$this_cpu" = "xalpha"; then
490 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
491 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
496 dnl ----- Mac OSX specific -----
497 if test x"$this_os" = "xmacosx"; then
498 AC_MSG_RESULT([ * Mac OSX specific configuration])
500 AC_DEFINE(HAVE_BROKEN_CPP)
501 AC_DEFINE(HAVE_2ARG_DBTOB)
502 dnl AC_DEFINE(NO_DLFCN_H)
503 AC_DEFINE(MACOSX_SERVER)
506 dnl ----- NetBSD specific -----
507 if test x"$this_os" = "xnetbsd"; then
508 AC_MSG_RESULT([ * NetBSD specific configuration])
510 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
511 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
514 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
515 AC_DEFINE(UAM_DHX, 1)
516 AC_DEFINE(NO_CRYPT_H, 1)
519 dnl ----- OpenBSD specific -----
520 if test x"$this_os" = "xopenbsd"; then
521 AC_MSG_RESULT([ * OpenBSD specific configuration])
523 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
525 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
526 AC_DEFINE(UAM_DHX, 1)
527 AC_DEFINE(NO_CRYPT_H, 1)
530 dnl ----- Solaris specific -----
531 if test x"$this_os" = "xsolaris"; then
532 AC_MSG_RESULT([ * Solaris specific configuration])
534 AC_DEFINE(_ISOC9X_SOURCE)
535 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
537 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
540 AC_MSG_RESULT([enabling Solaris kernel module build])
544 dnl ----- Tru64 specific -----
545 if test x"$this_os" = "xtru64"; then
546 AC_MSG_RESULT([ * Tru64 specific configuration])
548 AC_DEFINE(HAVE_64BIT_LONGS)
549 dnl AC_DEFINE(USE_MOUNT_H)
550 AC_DEFINE(USE_OLD_RQUOTA)
551 dnl AC_DEFINE(USE_UFS_QUOTA_H)
553 AC_CHECK_LIB(security,set_auth_parameters)
554 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
559 dnl -- look for openssl
562 dnl --------------------- check for building PGP UAM module
564 AC_ARG_ENABLE(pgp-uam,
565 [ --enable-pgp-uam enable build of PGP UAM module],
566 if test "$enableval" = "yes"; then
567 if test "$compile_ssl" = "yes"; then
568 AC_DEFINE(UAM_PGP, 1)
570 AC_MSG_RESULT([enabling build with PGP UAM module])
575 dnl --------------------- check for building Kerberos v4 UAM module
577 AC_ARG_ENABLE(krb4-uam,
578 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
579 if test "$enableval" = "yes"; then
580 AC_DEFINE(UAM_KRB4, 1)
582 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
585 dnl --------------------- overwrite the config files . . . or not.
587 AC_MSG_CHECKING([whether configuration files should be overwritten])
588 AC_ARG_ENABLE(overwrite,
589 [ --enable-overwrite overwrite configuration files during installation],
590 [OVERWRITE_CONFIG="${enable_overwrite}"],
591 [OVERWRITE_CONFIG="no"]
593 AC_MSG_RESULT([$OVERWRITE_CONFIG])
595 dnl --------------------- last minute substitutions
603 AC_SUBST(OVERWRITE_CONFIG)
605 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
606 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
607 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
608 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
609 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
610 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
611 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
612 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
613 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
614 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
615 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
616 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
617 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
619 dnl --------------------- generate files
623 bin/adv1tov2/Makefile
626 bin/afppasswd/Makefile
628 bin/getzones/Makefile
629 bin/megatron/Makefile
635 contrib/macusers/Makefile
637 contrib/printing/Makefile
638 contrib/shell_utils/Makefile
639 contrib/timelord/Makefile
641 distrib/config/Makefile
642 distrib/config/netatalk-config
643 distrib/initscripts/Makefile
648 etc/afpd/nls/Makefile
651 etc/uams/uams_krb4/Makefile
655 include/atalk/Makefile
657 libatalk/adouble/Makefile
658 libatalk/asp/Makefile
659 libatalk/atp/Makefile
660 libatalk/cnid/Makefile
661 libatalk/compat/Makefile
662 libatalk/dsi/Makefile
663 libatalk/nbp/Makefile
664 libatalk/netddp/Makefile
665 libatalk/util/Makefile
675 sys/generic/sys/Makefile
676 sys/netatalk/Makefile
678 sys/netbsd/netatalk/Makefile
683 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]