1 dnl $Id: configure.in,v 1.126.2.15 2002-02-08 16:30:16 jmarcus 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.
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 --------------------------------------------------------------------------
111 dnl specific configuration comes in here:
112 dnl --------------------------------------------------------------------------
114 AC_DEFINE(ADMIN_GRP, 1)
116 AC_ARG_WITH(admin-group,
117 [ --disable-admin-group disable admin group],
118 if test "$enableval" = "no"; then
119 AC_DEFINE(ADMIN_GRP, 0)
120 AC_MSG_RESULT([disabling administrative group support])
126 AC_ARG_WITH(pkgconfdir,
127 [ --with-pkgconfdir=DIR package specific configuration in DIR
128 [[SYSCONF/netatalk]]],
129 PKGCONFDIR="$withval",
130 PKGCONFDIR="${sysconfdir}/netatalk"
133 dnl FIXME: make this an extra check
134 NLSDIR="${PKGCONFDIR}/nls"
136 AC_ARG_WITH(cracklib,
137 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
138 if test "x$withval" != "xno" ; then
140 AC_CHECK_LIB(crack, main,
141 AC_DEFINE(USE_CRACKLIB)
143 AC_MSG_RESULT([enabling cracklib support])
144 if test "$cracklib" = "yes"; then
145 cracklib="/usr/lib/cracklib_dict"
147 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
148 [path to cracklib dictionary])
149 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
150 AC_MSG_ERROR([cracklib not found!])
156 [ --disable-ddp disable DDP],
157 if test "$enableval" = "no"; then
159 AC_MSG_RESULT([disabling DDP])
164 [ --enable-debug enable debug code],
165 if test "$enableval" != "no"; then
166 if test "$enableval" = "yes"; then
169 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
171 AC_MSG_RESULT([enabling debugging code])
176 dnl ----------- A NOTE ABOUT DROPKLUDGE
177 dnl The trouble with this fix is that if you know what the file is called, it
178 dnl can be read from the Unix side. That's okay for most academic institutions
179 dnl since the students don't have telnet access to the Mac servers. There is
180 dnl currently no one working on further development/fixes of DROPKLUDGE.
183 AC_ARG_ENABLE(dropkludge,
184 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
185 if test "$enableval" = "yes"; then
186 AC_DEFINE(DROPKLUDGE, 1)
187 AC_MSG_RESULT([enabling experimental dropbox support])
191 AC_ARG_ENABLE(force-uidgid,
192 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
193 if test "$enableval" = "yes"; then
194 AC_DEFINE(FORCE_UIDGID, 1)
195 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
199 dnl Don't use DB3 unless it's needed
203 dnl Determine DID scheme
204 AC_MSG_CHECKING([for DID scheme to use])
206 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
207 [ did_scheme="$withval" ],
208 [ did_scheme="last" ]
211 if test "x$did_scheme" = "xlast"; then
212 AC_DEFINE(USE_LASTDID, 1)
213 AC_MSG_RESULT([last])
214 elif test "x$did_scheme" = "xhash"; then
215 AC_MSG_RESULT([device/inode-based hashing])
216 elif test "x$did_scheme" = "xmtab"; then
217 AC_DEFINE(DID_MTAB, 1)
218 AC_MSG_RESULT([mtab-based DID creation support])
219 elif test "x$did_scheme" = "xcnid"; then
221 AC_DEFINE(CNID_DB, 1)
222 AC_MSG_RESULT([enabling build with CNID DB support])
224 AC_MSG_ERROR([unknown DID scheme])
226 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
228 dnl Check for Berkeley DB3 library
229 if test "x$db3_required" = "xyes"; then
230 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
233 dnl Check for quota support
237 AC_ARG_WITH(message-dir,
238 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
240 if test x"$msg_dir" = "x"; then
241 msg_dir="${PKGCONFDIR}/msg"
243 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
244 [path to message dir [[PKGCONF/msg]]])
245 SERVERTEXT="$msg_dir"
249 dnl Check for optional server location protocol support (used by MacOS X)
252 dnl Check for PAM libs
254 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
255 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
261 AC_MSG_CHECKING([whether shadow support should be enabled])
263 [ --with-shadow enable shadow password support],
264 [shadowpw="$withval"],
267 if test "x$shadowpw" = "xyes"; then
270 AC_MSG_RESULT([$shadowpw])
272 AC_ARG_ENABLE(shell-check,
273 [ --disable-shell-check disable checking for a valid shell],
274 if test "$enableval" = "no"; then
275 AC_DEFINE(DISABLE_SHELLCHECK, 1)
276 AC_MSG_RESULT([disabling valid shell check])
280 AC_MSG_CHECKING([whether flock locks should be enabled])
281 AC_ARG_WITH(flock-locks,
282 [ --with-flock-locks enable flock locks support],
283 [flock_locks="$withval"],
286 if test "x$flock_locks" = "xyes"; then
287 AC_DEFINE(USE_FLOCK_LOCKS)
289 AC_MSG_RESULT([$flock_locks])
291 AC_ARG_WITH(tcp-wrappers,
292 [ --with-tcp-wrappers enable TCP wrappers support],
293 AC_CHECK_LIB(wrap, tcpd_warn,
295 AFPD_LIBS="$AFPD_LIBS -lwrap"
296 AC_MSG_RESULT([enabling TCP wrappers support])
300 AC_ARG_ENABLE(redhat,
301 [ --enable-redhat use redhat-style sysv configuration ],
302 if test "$enableval" = "yes"; then
305 AC_MSG_RESULT([enabling redhat-style sysv support])
309 [ --enable-suse use suse-style sysv configuration ],
310 if test "$enableval" = "yes"; then
313 AC_MSG_RESULT([enabling suse-style sysv support])
316 AC_ARG_ENABLE(cobalt,
317 [ --enable-cobalt use cobalt-style sysv configuration ],
318 if test "$enableval" = "yes"; then
321 AC_MSG_RESULT([enabling cobalt-style sysv support])
324 AC_ARG_ENABLE(netbsd,
325 [ --enable-netbsd use NetBSD-style rc.d configuration ],
326 if test "x$enableval" = "xyes"; then
329 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
332 dnl ----- timelord compilation (disabled by default)
333 AC_MSG_CHECKING([whether timelord should be compiled])
335 AC_ARG_ENABLE(timelord,
336 [ --enable-timelord enable compilation of timelord server],
337 [compile_timelord="$enableval"],
338 [compile_timelord="no"]
340 AC_MSG_RESULT([$compile_timelord])
342 AC_ARG_WITH(uams-path,
343 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
344 uams_path="$withval",
345 uams_path="${PKGCONFDIR}/uams"
348 dnl --------------------------------------------------------------------------
349 dnl FHS stuff has to be done last because it overrides other defaults
350 dnl --------------------------------------------------------------------------
353 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
354 if test "$enableval" = "yes"; then
355 uams_path="/usr/lib/netatalk"
357 PKGCONFDIR=${sysconfdir}/netatalk
359 mandir="/usr/share/man"
360 AC_DEFINE(FHS_COMPATIBILITY)
362 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
365 dnl --------------------------------------------------------------------------
366 dnl post-FHS substitutions, etc
367 dnl --------------------------------------------------------------------------
370 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
371 [path to UAMs [default=PKGCONF/uams]])
372 UAMS_PATH="${uams_path}"
375 dnl --------------------------------------------------------------------------
376 dnl drop in includes for top level directory structures here...
377 dnl --------------------------------------------------------------------------
379 dnl Note: $(top_srcdir)/include should be added before all other includes
380 dnl so that includes from that directory a preferred to includes from
381 dnl /usr/include or similar places.
382 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
383 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
385 dnl --------------------------------------------------------------------------
386 dnl specific configuration comes in here:
387 dnl --------------------------------------------------------------------------
389 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
391 dnl --------------------- determine operating system from "target"
393 *aix*) this_os=aix ;;
394 *freebsd*) this_os=freebsd ;;
395 *hpux11*) this_os=hpux11 ;;
396 *irix*) this_os=irix ;;
397 *linux*) this_os=linux ;;
398 *osx*) this_os=macosx ;;
399 *darwin*) this_os=macosx ;;
400 *netbsd*) this_os=netbsd ;;
401 *openbsd*) this_os=openbsd ;;
402 *osf*) this_os=tru64 ;;
403 *solaris*) this_os=solaris ;;
407 i386|i486|i586|i686|k7) this_cpu=x86 ;;
408 alpha) this_cpu=alpha ;;
409 mips) this_cpu=mips ;;
410 powerpc|ppc) this_cpu=ppc ;;
413 dnl --------------------- operating system specific flags (port from sys/*)
415 dnl ----- AIX specific -----
416 if test x"$this_os" = "xaix"; then
417 AC_MSG_RESULT([ * AIX specific configuration])
418 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
420 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
421 dnl compilation environment. It's enough to get things defined
422 dnl right in endian.h provided that long long is supported, though.
423 AC_DEFINE(HAVE_32BIT_LONGS)
426 dnl ----- FreeBSD specific -----
427 if test x"$this_os" = "xfreebsd"; then
428 AC_MSG_RESULT([ * FreeBSD specific configuration])
430 AC_DEFINE(SENDFILE_FLAVOR_BSD)
432 AC_DEFINE(NO_CRYPT_H, 1)
435 dnl ----- HP-UX 11 specific -----
436 if test x"$this_os" = "xhpux11"; then
437 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
439 AC_DEFINE(_ISOC9X_SOURCE)
440 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
443 dnl ----- IRIX specific -----
444 if test x"$this_os" = "xirix"; then
445 AC_MSG_RESULT([ * IRIX specific configuration])
447 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
450 dnl ----- Linux specific -----
451 if test x"$this_os" = "xlinux"; then
452 AC_MSG_RESULT([ * Linux specific configuration])
454 dnl ----- check if we need the quotactl wrapper
455 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
456 AC_CHECK_FUNC(quotactl,,
457 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
458 AC_MSG_RESULT([enabling quotactl wrapper])
461 dnl ----- as far as I can tell, dbtob always does the wrong thing
462 dnl ----- on every single version of linux I've ever played with.
463 dnl ----- see etc/afpd/quota.c
464 AC_DEFINE(HAVE_BROKEN_DBTOB)
466 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
467 dnl ----- check if version is newer than 2.2.x
469 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
470 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
471 if [ $majorvers -ge 2 ]; then
472 if [ $minorvers -ge 2 ]; then
474 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
475 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
477 AC_MSG_RESULT([ * found Linux 2.0.x ])
481 dnl ----- Linux/alpha specific -----
482 if test x"$this_cpu" = "xalpha"; then
483 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
484 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
489 dnl ----- Mac OSX specific -----
490 if test x"$this_os" = "xmacosx"; then
491 AC_MSG_RESULT([ * Mac OSX specific configuration])
493 AC_DEFINE(HAVE_BROKEN_CPP)
494 AC_DEFINE(HAVE_2ARG_DBTOB)
495 dnl AC_DEFINE(NO_DLFCN_H)
496 AC_DEFINE(MACOSX_SERVER)
499 dnl ----- NetBSD specific -----
500 if test x"$this_os" = "xnetbsd"; then
501 AC_MSG_RESULT([ * NetBSD specific configuration])
503 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
504 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
507 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
508 AC_DEFINE(UAM_DHX, 1)
509 AC_DEFINE(NO_CRYPT_H, 1)
512 dnl ----- OpenBSD specific -----
513 if test x"$this_os" = "xopenbsd"; then
514 AC_MSG_RESULT([ * OpenBSD specific configuration])
516 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
518 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
519 AC_DEFINE(UAM_DHX, 1)
520 AC_DEFINE(NO_CRYPT_H, 1)
523 dnl ----- Solaris specific -----
524 if test x"$this_os" = "xsolaris"; then
525 AC_MSG_RESULT([ * Solaris specific configuration])
527 AC_DEFINE(_ISOC9X_SOURCE)
528 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
530 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
533 AC_MSG_RESULT([enabling Solaris kernel module build])
537 dnl ----- Tru64 specific -----
538 if test x"$this_os" = "xtru64"; then
539 AC_MSG_RESULT([ * Tru64 specific configuration])
541 AC_DEFINE(HAVE_64BIT_LONGS)
542 dnl AC_DEFINE(USE_MOUNT_H)
543 AC_DEFINE(USE_OLD_RQUOTA)
544 dnl AC_DEFINE(USE_UFS_QUOTA_H)
546 AC_CHECK_LIB(security,set_auth_parameters)
547 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
552 dnl -- look for openssl
555 dnl --------------------- check for building PGP UAM module
557 AC_ARG_ENABLE(pgp-uam,
558 [ --enable-pgp-uam enable build of PGP UAM module],
559 if test "$enableval" = "yes"; then
560 if test "$compile_ssl" = "yes"; then
561 AC_DEFINE(UAM_PGP, 1)
563 AC_MSG_RESULT([enabling build with PGP UAM module])
568 dnl --------------------- check for building Kerberos v4 UAM module
570 AC_ARG_ENABLE(krb4-uam,
571 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
572 if test "$enableval" = "yes"; then
573 AC_DEFINE(UAM_KRB4, 1)
575 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
578 dnl --------------------- overwrite the config files . . . or not.
580 AC_MSG_CHECKING([whether configuration files should be overwritten])
581 AC_ARG_ENABLE(overwrite,
582 [ --enable-overwrite overwrite configuration files during installation],
583 [OVERWRITE_CONFIG="${enable_overwrite}"],
584 [OVERWRITE_CONFIG="no"]
586 AC_MSG_RESULT([$OVERWRITE_CONFIG])
588 dnl --------------------- last minute substitutions
596 AC_SUBST(OVERWRITE_CONFIG)
598 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
599 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
600 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
601 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
602 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
603 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
604 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
605 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
606 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
607 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
608 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
609 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
610 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
611 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
613 dnl --------------------- generate files
617 bin/adv1tov2/Makefile
620 bin/afppasswd/Makefile
622 bin/getzones/Makefile
623 bin/megatron/Makefile
629 contrib/macusers/Makefile
630 contrib/macusers/macusers
633 contrib/printing/Makefile
634 contrib/shell_utils/Makefile
635 contrib/shell_utils/afpd-mtab.pl
636 contrib/shell_utils/apple_cp
637 contrib/shell_utils/apple_mv
638 contrib/shell_utils/apple_rm
639 contrib/shell_utils/cleanappledouble.pl
640 contrib/shell_utils/netatalkshorternamelinks.pl
641 contrib/timelord/Makefile
643 distrib/config/Makefile
644 distrib/config/netatalk-config
645 distrib/initscripts/Makefile
650 etc/afpd/nls/Makefile
653 etc/uams/uams_krb4/Makefile
657 include/atalk/Makefile
659 libatalk/adouble/Makefile
660 libatalk/asp/Makefile
661 libatalk/atp/Makefile
662 libatalk/cnid/Makefile
663 libatalk/compat/Makefile
664 libatalk/dsi/Makefile
665 libatalk/nbp/Makefile
666 libatalk/netddp/Makefile
667 libatalk/util/Makefile
677 sys/generic/sys/Makefile
678 sys/netatalk/Makefile
680 sys/netbsd/netatalk/Makefile
682 sys/solaris/Makefile.kernel
686 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]