1 dnl $Id: configure.in,v 1.129 2001-11-23 07:35:12 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 Reset locations to proper places
14 AC_PREFIX_DEFAULT(/usr/local)
16 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 -lcom_err:
40 AC_CHECK_LIB(com_err, main)
41 dnl Replace `main' with a function in -lcrypt:
42 AC_CHECK_LIB(crypt, main)
43 dnl Replace `main' with a function in -ld:
45 dnl Replace `main' with a function in -ldl:
46 AC_CHECK_LIB(dl, main)
47 dnl Replace `main' with a function in -lkauth:
48 AC_CHECK_LIB(kauth, main)
49 dnl Replace `main' with a function in -lkrb:
50 AC_CHECK_LIB(krb, main)
51 dnl Replace `main' with a function in -llwp:
52 AC_CHECK_LIB(lwp, main)
53 dnl Replace `main' with a function in -ln:
55 dnl Replace `main' with a function in -lnsl:
56 AC_CHECK_LIB(nsl, main)
57 dnl Replace `main' with a function in -lprot:
58 AC_CHECK_LIB(prot, main)
59 dnl Replace `main' with a function in -lresolv:
60 AC_CHECK_LIB(resolv, main)
61 dnl Replace `main' with a function in -lrpcsvc:
62 AC_CHECK_LIB(rpcsvc, main)
63 dnl Replace `main' with a function in -lrx:
64 AC_CHECK_LIB(rx, main)
65 dnl Replace `main' with a function in -lrxkad:
66 AC_CHECK_LIB(rxkad, main)
67 dnl Replace `main' with a function in -lsocket:
68 AC_CHECK_LIB(socket, main)
69 dnl Replace `main' with a function in -lsys:
70 AC_CHECK_LIB(sys, main)
71 dnl Replace `main' with a function in -lubik:
72 AC_CHECK_LIB(ubik, main)
75 # Check presence of some functions
77 # Check for XPG4 access() function
78 # Be sure to test before adding AFS libs in LIBS path as AFS lib
79 # has such a function that works only on AFS filesystems.
80 AC_CHECK_FUNCS(access)
82 dnl Checks for header files.
86 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 security/pam_appl.h)
87 AC_CHECK_HEADER(sys/cdefs.h,,
88 AC_MSG_RESULT([enabling generic cdefs.h from tree])
89 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
92 # Allow user to specify flags
94 [ --with-cflags specify additional flags to pass to compiler],
96 if test "x$withval" != "xno" ; then
97 CFLAGS="$CFLAGS $withval"
102 [ --with-libs specify additional libraries to link with],
104 if test "x$withval" != "xno" ; then
105 LIBS="$LIBS $withval"
110 dnl Checks for typedefs, structures, and compiler characteristics.
122 dnl Checks for library functions.
124 AC_PROG_GCC_TRADITIONAL
131 AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp strchr memcpy)
134 dnl --------------------------------------------------------------------------
135 dnl specific configuration comes in here:
136 dnl --------------------------------------------------------------------------
138 AC_DEFINE(ADMIN_GRP, 1)
140 AC_ARG_WITH(admin-group,
141 [ --disable-admin-group disable admin group],
142 if test "$enableval" = "no"; then
143 AC_DEFINE(ADMIN_GRP, 0)
144 AC_MSG_RESULT([disabling administrative group support])
149 [ --enable-afs enable AFS support],
150 if test "$enableval" = "yes"; then
152 AC_MSG_RESULT([enabling AFS support])
156 AC_ARG_WITH(pkgconfdir,
157 [ --with-pkgconfdir=DIR package specific configuration in DIR
158 [[SYSCONF/netatalk]]],
159 PKGCONFDIR="$withval",
160 PKGCONFDIR="${sysconfdir}/netatalk"
163 AC_ARG_WITH(cracklib,
164 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
165 if test "x$withval" != "xno" ; then
167 AC_CHECK_LIB(crack, main,
168 AC_DEFINE(USE_CRACKLIB)
170 AC_MSG_RESULT([enabling cracklib support])
171 if test "$cracklib" = "yes"; then
172 cracklib="/usr/lib/cracklib_dict"
174 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
175 [path to cracklib dictionary])
176 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
177 AC_MSG_ERROR([cracklib not found!])
183 [ --disable-ddp disable DDP],
184 if test "$enableval" = "no"; then
186 AC_MSG_RESULT([disabling DDP])
191 [ --enable-debug enable debug code],
192 if test "$enableval" != "no"; then
193 if test "$enableval" = "yes"; then
196 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
198 AC_MSG_RESULT([enabling debugging code])
205 dnl ----------- A NOTE ABOUT DROPKLUDGE
206 dnl The trouble with this fix is that if you know what the file is called, it
207 dnl can be read from the Unix side. That's okay for most academic institutions
208 dnl since the students don't have telnet access to the Mac servers. There is
209 dnl currently no one working on further development/fixes of DROPKLUDGE.
212 AC_ARG_ENABLE(dropkludge,
213 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
214 if test "$enableval" = "yes"; then
215 AC_DEFINE(DROPKLUDGE, 1)
216 AC_MSG_RESULT([enabling experimental dropbox support])
220 AC_ARG_ENABLE(force-uidgid,
221 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
222 if test "$enableval" = "yes"; then
223 AC_DEFINE(FORCE_UIDGID, 1)
224 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
228 dnl Don't use DB3 unless it's needed
231 dnl Check for CNID DB support
232 AC_MSG_CHECKING([whether CNID support should be enabled])
233 AC_ARG_ENABLE(cnid-db,
234 [ --enable-cnid-db use persistent cnid database per volume (EXPERIMENTAL) ],
236 if test "x$enableval" = "xyes"; then
244 ],[AC_MSG_RESULT([no])]
247 dnl Check for Berkeley DB3 library
248 if test "x$db3_required" = "xyes"; then
249 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
251 CFLAGS="$CFLAGS $DB3_CFLAGS"
252 LIBS="$LIBS $DB3_LIBS"
255 [ --with-did=SCHEME set DID scheme (last,mtab)],
256 if test "x$withval" != "xno" ; then
257 if test "$withval" = "last"; then
258 AC_DEFINE(USE_LASTDID, 1)
259 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
261 if test "$withval" = "mtab"; then
262 AC_DEFINE(DID_MTAB, 1)
263 AC_MSG_RESULT([enabling mtab-based DID creation support])
269 AC_ARG_WITH(message-dir,
270 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
272 if test x"$msg_dir" = "x"; then
273 msg_dir="${PKGCONFDIR}/msg"
275 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
276 [path to message dir [[PKGCONF/msg]]])
277 SERVERTEXT="$msg_dir"
281 AC_ARG_ENABLE(srvloc,
282 [ --enable-srvloc turn on Server Location Protocol support (EXPERIMENTAL)],
287 dnl Conditional for optional server location protocol support (used by OS X)
288 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
289 if test "x$srvloc" != "xno"; then
290 for slpdir in "" $srvloc /usr /usr/local ; do
291 if test -f "$slpdir/include/slp.h" ; then
292 LIBS="$LIBS -L$slpdir/lib -lslp"
293 CFLAGS="$CFLAGS -I$slpdir/include"
294 AC_CHECK_LIB(slp,SLPOpen)
295 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
296 AC_DEFINE(USE_SRVLOC, 1)
303 AC_MSG_CHECKING([if we should even bother with PAM])
305 [ --with-pam enable PAM support],
306 [PAM_MSG="$withval"],
309 AC_MSG_RESULT($PAM_MSG)
313 if test "x$PAM_MSG" = "xyes"; then
314 if test "x$ac_cv_header_security_pam_appl_h" = "xyes" ; then
316 AC_CHECK_LIB(pam, pam_set_item,
317 [PAPD_LIBS="$PAPD_LIBS -lpam"; AFPD_LIBS="$AFPD_LIBS -lpam"; use_pam_so=yes; compile_pam=yes; AC_DEFINE(USE_PAM)],
318 [use_pam_so=no; compile_pam=no]
326 AC_MSG_CHECKING([whether shadow support should be enabled])
328 [ --with-shadow enable shadow password support],
329 [shadowpw="$withval"],
332 if test "x$shadowpw" = "xyes"; then
335 AC_MSG_RESULT([$shadowpw])
337 AC_ARG_ENABLE(shell-check,
338 [ --disable-shell-check disable checking for a valid shell],
339 if test "$enableval" = "no"; then
340 AC_DEFINE(DISABLE_SHELLCHECK, 1)
341 AC_MSG_RESULT([disabling valid shell check])
345 AC_MSG_CHECKING([whether flock locks should be enabled])
346 AC_ARG_WITH(flock-locks,
347 [ --with-flock-locks enable flock locks support],
348 [flock_locks="$withval"],
351 if test "x$flock_locks" = "xyes"; then
352 AC_DEFINE(USE_FLOCK_LOCKS)
354 AC_MSG_RESULT([$flock_locks])
356 AC_ARG_WITH(tcp-wrappers,
357 [ --with-tcp-wrappers enable TCP wrappers support],
358 AC_CHECK_LIB(wrap, tcpd_warn,
360 AFPD_LIBS="$AFPD_LIBS -lwrap"
361 AC_MSG_RESULT([enabling TCP wrappers support])
365 AC_ARG_ENABLE(redhat,
366 [ --enable-redhat use redhat-style sysv configuration ],
367 if test "$enableval" = "yes"; then
370 AC_MSG_RESULT([enabling redhat-style sysv support])
374 [ --enable-suse use suse-style sysv configuration ],
375 if test "$enableval" = "yes"; then
378 AC_MSG_RESULT([enabling suse-style sysv support])
381 AC_ARG_ENABLE(cobalt,
382 [ --enable-cobalt use cobalt-style sysv configuration ],
383 if test "$enableval" = "yes"; then
386 AC_MSG_RESULT([enabling cobalt-style sysv support])
389 dnl ----- timelord compilation (disabled by default)
390 AC_MSG_CHECKING([whether timelord should be compiled])
392 AC_ARG_ENABLE(timelord,
393 [ --enable-timelord enable compilation of timelord server],
394 [compile_timelord="$enableval"],
395 [compile_timelord="no"]
397 AC_MSG_RESULT([$compile_timelord])
399 AC_ARG_WITH(uams-path,
400 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
401 uams_path="$withval",
402 uams_path="${PKGCONFDIR}/uams"
405 dnl --------------------------------------------------------------------------
406 dnl FHS stuff has to be done last because it overrides other defaults
407 dnl --------------------------------------------------------------------------
410 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
411 if test "$enableval" = "yes"; then
412 uams_path="/usr/lib/netatalk"
414 PKGCONFDIR=${sysconfdir}/netatalk
416 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
417 AC_DEFINE(FHS_COMPATIBILITY)
419 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
422 dnl --------------------------------------------------------------------------
423 dnl post-FHS substitutions, etc
424 dnl --------------------------------------------------------------------------
427 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
428 [path to UAMs [default=PKGCONF/uams]])
429 UAMS_PATH="${uams_path}"
432 dnl --------------------------------------------------------------------------
433 dnl drop in includes for top level directory structures here...
434 dnl --------------------------------------------------------------------------
436 dnl Note: $(top_srcdir)/include should be added before all other includes
437 dnl so that includes from that directory a preferred to includes from
438 dnl /usr/include or similar places.
439 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
440 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
442 dnl --------------------------------------------------------------------------
443 dnl specific configuration comes in here:
444 dnl --------------------------------------------------------------------------
446 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
448 dnl --------------------- determine operating system from "target"
450 *aix*) this_os=aix ;;
451 *freebsd*) this_os=freebsd ;;
452 *hpux11*) this_os=hpux11 ;;
453 *irix*) this_os=irix ;;
454 *linux*) this_os=linux ;;
455 *osx*) this_os=macosx ;;
456 *netbsd*) this_os=netbsd ;;
457 *openbsd*) this_os=openbsd ;;
458 *osf*) this_os=tru64 ;;
459 *solaris*) this_os=solaris ;;
463 i386|i486|i586|i686|k7) this_cpu=x86 ;;
464 alpha) this_cpu=alpha ;;
465 mips) this_cpu=mips ;;
466 powerpc|ppc) this_cpu=ppc ;;
469 dnl --------------------- operating system specific flags (port from sys/*)
471 dnl ----- AIX specific -----
472 if test x"$this_os" = "xaix"; then
473 AC_MSG_RESULT([ * AIX specific configuration])
474 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
476 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
477 dnl compilation environment. It's enough to get things defined
478 dnl right in endian.h provided that long long is supported, though.
479 AC_DEFINE(HAVE_32BIT_LONGS)
482 dnl ----- FreeBSD specific -----
483 if test x"$this_os" = "xfreebsd"; then
484 AC_MSG_RESULT([ * FreeBSD specific configuration])
486 AC_DEFINE(SENDFILE_FLAVOR_BSD)
488 AC_DEFINE(NO_CRYPT_H, 1)
491 dnl ----- HP-UX 11 specific -----
492 if test x"$this_os" = "xhpux11"; then
493 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
495 AC_DEFINE(_ISOC9X_SOURCE)
496 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
499 dnl ----- IRIX specific -----
500 if test x"$this_os" = "xirix"; then
501 AC_MSG_RESULT([ * IRIX specific configuration])
503 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
506 dnl ----- Linux specific -----
507 if test x"$this_os" = "xlinux"; then
508 AC_MSG_RESULT([ * Linux specific configuration])
510 dnl ----- check if we need the quotactl wrapper
511 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
512 AC_CHECK_FUNC(quotactl,,
513 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
514 AC_MSG_RESULT([enabling quotactl wrapper])
517 dnl ----- as far as I can tell, dbtob always does the wrong thing
518 dnl ----- on every single version of linux I've ever played with.
519 dnl ----- see etc/afpd/quota.c
520 AC_DEFINE(HAVE_BROKEN_DBTOB)
522 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
523 dnl ----- check if version is newer than 2.2.x
525 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
526 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
527 if [ $majorvers -ge 2 ]; then
528 if [ $minorvers -ge 2 ]; then
530 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
531 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
533 AC_MSG_RESULT([ * found Linux 2.0.x ])
537 dnl ----- Linux/alpha specific -----
538 if test x"$this_cpu" = "xalpha"; then
539 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
540 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
545 dnl ----- Mac OSX specific -----
546 if test x"$this_os" = "xmacosx"; then
547 AC_MSG_RESULT([ * Mac OSX specific configuration])
549 AC_DEFINE(HAVE_BROKEN_CPP)
550 AC_DEFINE(HAVE_2ARG_DBTOB)
551 dnl AC_DEFINE(NO_DLFCN_H)
552 AC_DEFINE(MACOSX_SERVER)
555 dnl ----- NetBSD specific -----
556 if test x"$this_os" = "xnetbsd"; then
557 AC_MSG_RESULT([ * NetBSD specific configuration])
559 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
560 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
563 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
564 AC_DEFINE(UAM_DHX, 1)
565 AC_DEFINE(NO_CRYPT_H, 1)
568 dnl ----- OpenBSD specific -----
569 if test x"$this_os" = "xopenbsd"; then
570 AC_MSG_RESULT([ * OpenBSD specific configuration])
572 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
574 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
575 AC_DEFINE(UAM_DHX, 1)
576 AC_DEFINE(NO_CRYPT_H, 1)
579 dnl ----- Solaris specific -----
580 if test x"$this_os" = "xsolaris"; then
581 AC_MSG_RESULT([ * Solaris specific configuration])
583 AC_DEFINE(_ISOC9X_SOURCE)
584 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
586 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
589 AC_MSG_RESULT([enabling Solaris kernel module build])
593 dnl ----- Tru64 specific -----
594 if test x"$this_os" = "xtru64"; then
595 AC_MSG_RESULT([ * Tru64 specific configuration])
597 AC_DEFINE(HAVE_64BIT_LONGS)
598 dnl AC_DEFINE(USE_MOUNT_H)
599 AC_DEFINE(USE_OLD_RQUOTA)
600 dnl AC_DEFINE(USE_UFS_QUOTA_H)
602 AC_CHECK_LIB(security,set_auth_parameters)
603 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
608 dnl -- look for openssl
611 dnl --------------------- check for building PGP UAM module
613 AC_ARG_ENABLE(pgp-uam,
614 [ --enable-pgp-uam enable build of PGP UAM module],
615 if test "$enableval" = "yes"; then
616 if test "$compile_ssl" = "yes"; then
617 AC_DEFINE(UAM_PGP, 1)
619 AC_MSG_RESULT([enabling build with PGP UAM module])
624 dnl --------------------- check for building Kerberos v4 UAM module
626 AC_ARG_ENABLE(krb4-uam,
627 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
628 if test "$enableval" = "yes"; then
629 AC_DEFINE(UAM_KRB4, 1)
631 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
634 dnl --------------------- overwrite the config files . . . or not.
636 AC_MSG_CHECKING([whether configuration files should be overwritten])
637 AC_ARG_ENABLE(overwrite,
638 [ --enable-overwrite overwrite configuration files during installation],
639 [OVERWRITE_CONFIG="${enable_overwrite}"],
640 [OVERWRITE_CONFIG="no"]
642 AC_MSG_RESULT([$OVERWRITE_CONFIG])
644 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_REDHAT, test x$sysv_style = xredhat)
663 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
664 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
665 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
667 dnl --------------------- generate files
671 bin/adv1tov2/Makefile
674 bin/afppasswd/Makefile
675 bin/getzones/Makefile
676 bin/megatron/Makefile
682 contrib/macusers/Makefile
684 contrib/printing/Makefile
685 contrib/shell_utils/Makefile
686 contrib/timelord/Makefile
688 distrib/config/Makefile
689 distrib/config/netatalk-config
690 distrib/initscripts/Makefile
695 etc/afpd/nls/Makefile
698 etc/uams/uams_krb4/Makefile
702 include/atalk/Makefile
704 libatalk/adouble/Makefile
705 libatalk/asp/Makefile
706 libatalk/atp/Makefile
707 libatalk/cnid/Makefile
708 libatalk/compat/Makefile
709 libatalk/dsi/Makefile
710 libatalk/nbp/Makefile
711 libatalk/netddp/Makefile
712 libatalk/util/Makefile
722 sys/generic/sys/Makefile
723 sys/netatalk/Makefile
725 sys/netbsd/netatalk/Makefile
730 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]