1 dnl $Id: configure.in,v 1.126.2.2 2001-11-23 07:34:58 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"
254 dnl Determine DID scheme
255 AC_MSG_CHECKING([for DID scheme to use])
257 [ --with-did=SCHEME set DID scheme (last,mtab)],
258 [ did_scheme="$withval" ],
259 [ did_scheme="last" ]
262 if test "x$did_scheme" = "xlast"; then
263 AC_DEFINE(USE_LASTDID, 1)
264 AC_MSG_RESULT([no DID dev/inode mapping kludge])
265 elif test "x$did_scheme" = "xmtab"; then
266 AC_DEFINE(DID_MTAB, 1)
267 AC_MSG_RESULT([mtab-based DID creation support])
268 elif test "x$did_scheme" != "xno"; then
269 AC_MSG_RESULT([default])
271 AC_MSG_ERROR([unknown DID scheme])
275 AC_ARG_WITH(message-dir,
276 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
278 if test x"$msg_dir" = "x"; then
279 msg_dir="${PKGCONFDIR}/msg"
281 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
282 [path to message dir [[PKGCONF/msg]]])
283 SERVERTEXT="$msg_dir"
287 AC_ARG_ENABLE(srvloc,
288 [ --enable-srvloc turn on Server Location Protocol support (EXPERIMENTAL)],
293 dnl Conditional for optional server location protocol support (used by OS X)
294 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
295 if test "x$srvloc" != "xno"; then
296 for slpdir in "" $srvloc /usr /usr/local ; do
297 if test -f "$slpdir/include/slp.h" ; then
298 LIBS="$LIBS -L$slpdir/lib -lslp"
299 CFLAGS="$CFLAGS -I$slpdir/include"
300 AC_CHECK_LIB(slp,SLPOpen)
301 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
302 AC_DEFINE(USE_SRVLOC, 1)
309 AC_MSG_CHECKING([if we should even bother with PAM])
311 [ --with-pam enable PAM support],
312 [PAM_MSG="$withval"],
315 AC_MSG_RESULT($PAM_MSG)
319 if test "x$PAM_MSG" = "xyes"; then
320 if test "x$ac_cv_header_security_pam_appl_h" = "xyes" ; then
322 AC_CHECK_LIB(pam, pam_set_item,
323 [PAPD_LIBS="$PAPD_LIBS -lpam"; AFPD_LIBS="$AFPD_LIBS -lpam"; use_pam_so=yes; compile_pam=yes; AC_DEFINE(USE_PAM)],
324 [use_pam_so=no; compile_pam=no]
332 AC_MSG_CHECKING([whether shadow support should be enabled])
334 [ --with-shadow enable shadow password support],
335 [shadowpw="$withval"],
338 if test "x$shadowpw" = "xyes"; then
341 AC_MSG_RESULT([$shadowpw])
343 AC_ARG_ENABLE(shell-check,
344 [ --disable-shell-check disable checking for a valid shell],
345 if test "$enableval" = "no"; then
346 AC_DEFINE(DISABLE_SHELLCHECK, 1)
347 AC_MSG_RESULT([disabling valid shell check])
351 AC_MSG_CHECKING([whether flock locks should be enabled])
352 AC_ARG_WITH(flock-locks,
353 [ --with-flock-locks enable flock locks support],
354 [flock_locks="$withval"],
357 if test "x$flock_locks" = "xyes"; then
358 AC_DEFINE(USE_FLOCK_LOCKS)
360 AC_MSG_RESULT([$flock_locks])
362 AC_ARG_WITH(tcp-wrappers,
363 [ --with-tcp-wrappers enable TCP wrappers support],
364 AC_CHECK_LIB(wrap, tcpd_warn,
366 AFPD_LIBS="$AFPD_LIBS -lwrap"
367 AC_MSG_RESULT([enabling TCP wrappers support])
371 AC_ARG_ENABLE(redhat,
372 [ --enable-redhat use redhat-style sysv configuration ],
373 if test "$enableval" = "yes"; then
376 AC_MSG_RESULT([enabling redhat-style sysv support])
380 [ --enable-suse use suse-style sysv configuration ],
381 if test "$enableval" = "yes"; then
384 AC_MSG_RESULT([enabling suse-style sysv support])
387 AC_ARG_ENABLE(cobalt,
388 [ --enable-cobalt use cobalt-style sysv configuration ],
389 if test "$enableval" = "yes"; then
392 AC_MSG_RESULT([enabling cobalt-style sysv support])
395 dnl ----- timelord compilation (disabled by default)
396 AC_MSG_CHECKING([whether timelord should be compiled])
398 AC_ARG_ENABLE(timelord,
399 [ --enable-timelord enable compilation of timelord server],
400 [compile_timelord="$enableval"],
401 [compile_timelord="no"]
403 AC_MSG_RESULT([$compile_timelord])
405 AC_ARG_WITH(uams-path,
406 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
407 uams_path="$withval",
408 uams_path="${PKGCONFDIR}/uams"
411 dnl --------------------------------------------------------------------------
412 dnl FHS stuff has to be done last because it overrides other defaults
413 dnl --------------------------------------------------------------------------
416 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
417 if test "$enableval" = "yes"; then
418 uams_path="/usr/lib/netatalk"
420 PKGCONFDIR=${sysconfdir}/netatalk
422 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
423 AC_DEFINE(FHS_COMPATIBILITY)
425 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
428 dnl --------------------------------------------------------------------------
429 dnl post-FHS substitutions, etc
430 dnl --------------------------------------------------------------------------
433 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
434 [path to UAMs [default=PKGCONF/uams]])
435 UAMS_PATH="${uams_path}"
438 dnl --------------------------------------------------------------------------
439 dnl drop in includes for top level directory structures here...
440 dnl --------------------------------------------------------------------------
442 dnl Note: $(top_srcdir)/include should be added before all other includes
443 dnl so that includes from that directory a preferred to includes from
444 dnl /usr/include or similar places.
445 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
446 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
448 dnl --------------------------------------------------------------------------
449 dnl specific configuration comes in here:
450 dnl --------------------------------------------------------------------------
452 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
454 dnl --------------------- determine operating system from "target"
456 *aix*) this_os=aix ;;
457 *freebsd*) this_os=freebsd ;;
458 *hpux11*) this_os=hpux11 ;;
459 *irix*) this_os=irix ;;
460 *linux*) this_os=linux ;;
461 *osx*) this_os=macosx ;;
462 *netbsd*) this_os=netbsd ;;
463 *openbsd*) this_os=openbsd ;;
464 *osf*) this_os=tru64 ;;
465 *solaris*) this_os=solaris ;;
469 i386|i486|i586|i686|k7) this_cpu=x86 ;;
470 alpha) this_cpu=alpha ;;
471 mips) this_cpu=mips ;;
472 powerpc|ppc) this_cpu=ppc ;;
475 dnl --------------------- operating system specific flags (port from sys/*)
477 dnl ----- AIX specific -----
478 if test x"$this_os" = "xaix"; then
479 AC_MSG_RESULT([ * AIX specific configuration])
480 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
482 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
483 dnl compilation environment. It's enough to get things defined
484 dnl right in endian.h provided that long long is supported, though.
485 AC_DEFINE(HAVE_32BIT_LONGS)
488 dnl ----- FreeBSD specific -----
489 if test x"$this_os" = "xfreebsd"; then
490 AC_MSG_RESULT([ * FreeBSD specific configuration])
492 AC_DEFINE(SENDFILE_FLAVOR_BSD)
494 AC_DEFINE(NO_CRYPT_H, 1)
497 dnl ----- HP-UX 11 specific -----
498 if test x"$this_os" = "xhpux11"; then
499 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
501 AC_DEFINE(_ISOC9X_SOURCE)
502 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
505 dnl ----- IRIX specific -----
506 if test x"$this_os" = "xirix"; then
507 AC_MSG_RESULT([ * IRIX specific configuration])
509 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
512 dnl ----- Linux specific -----
513 if test x"$this_os" = "xlinux"; then
514 AC_MSG_RESULT([ * Linux specific configuration])
516 dnl ----- check if we need the quotactl wrapper
517 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
518 AC_CHECK_FUNC(quotactl,,
519 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
520 AC_MSG_RESULT([enabling quotactl wrapper])
523 dnl ----- as far as I can tell, dbtob always does the wrong thing
524 dnl ----- on every single version of linux I've ever played with.
525 dnl ----- see etc/afpd/quota.c
526 AC_DEFINE(HAVE_BROKEN_DBTOB)
528 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
529 dnl ----- check if version is newer than 2.2.x
531 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
532 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
533 if [ $majorvers -ge 2 ]; then
534 if [ $minorvers -ge 2 ]; then
536 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
537 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
539 AC_MSG_RESULT([ * found Linux 2.0.x ])
543 dnl ----- Linux/alpha specific -----
544 if test x"$this_cpu" = "xalpha"; then
545 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
546 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
551 dnl ----- Mac OSX specific -----
552 if test x"$this_os" = "xmacosx"; then
553 AC_MSG_RESULT([ * Mac OSX specific configuration])
555 AC_DEFINE(HAVE_BROKEN_CPP)
556 AC_DEFINE(HAVE_2ARG_DBTOB)
557 dnl AC_DEFINE(NO_DLFCN_H)
558 AC_DEFINE(MACOSX_SERVER)
561 dnl ----- NetBSD specific -----
562 if test x"$this_os" = "xnetbsd"; then
563 AC_MSG_RESULT([ * NetBSD specific configuration])
565 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
566 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
569 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
570 AC_DEFINE(UAM_DHX, 1)
571 AC_DEFINE(NO_CRYPT_H, 1)
574 dnl ----- OpenBSD specific -----
575 if test x"$this_os" = "xopenbsd"; then
576 AC_MSG_RESULT([ * OpenBSD specific configuration])
578 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
580 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
581 AC_DEFINE(UAM_DHX, 1)
582 AC_DEFINE(NO_CRYPT_H, 1)
585 dnl ----- Solaris specific -----
586 if test x"$this_os" = "xsolaris"; then
587 AC_MSG_RESULT([ * Solaris specific configuration])
589 AC_DEFINE(_ISOC9X_SOURCE)
590 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
592 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
595 AC_MSG_RESULT([enabling Solaris kernel module build])
599 dnl ----- Tru64 specific -----
600 if test x"$this_os" = "xtru64"; then
601 AC_MSG_RESULT([ * Tru64 specific configuration])
603 AC_DEFINE(HAVE_64BIT_LONGS)
604 dnl AC_DEFINE(USE_MOUNT_H)
605 AC_DEFINE(USE_OLD_RQUOTA)
606 dnl AC_DEFINE(USE_UFS_QUOTA_H)
608 AC_CHECK_LIB(security,set_auth_parameters)
609 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
614 dnl -- look for openssl
617 dnl --------------------- check for building PGP UAM module
619 AC_ARG_ENABLE(pgp-uam,
620 [ --enable-pgp-uam enable build of PGP UAM module],
621 if test "$enableval" = "yes"; then
622 if test "$compile_ssl" = "yes"; then
623 AC_DEFINE(UAM_PGP, 1)
625 AC_MSG_RESULT([enabling build with PGP UAM module])
630 dnl --------------------- check for building Kerberos v4 UAM module
632 AC_ARG_ENABLE(krb4-uam,
633 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
634 if test "$enableval" = "yes"; then
635 AC_DEFINE(UAM_KRB4, 1)
637 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
640 dnl --------------------- overwrite the config files . . . or not.
642 AC_MSG_CHECKING([whether configuration files should be overwritten])
643 AC_ARG_ENABLE(overwrite,
644 [ --enable-overwrite overwrite configuration files during installation],
645 [OVERWRITE_CONFIG="${enable_overwrite}"],
646 [OVERWRITE_CONFIG="no"]
648 AC_MSG_RESULT([$OVERWRITE_CONFIG])
650 dnl --------------------- last minute substitutions
657 AC_SUBST(OVERWRITE_CONFIG)
659 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
660 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
661 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
662 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
663 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
664 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
665 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
666 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
667 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
668 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
669 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
670 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
671 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
673 dnl --------------------- generate files
677 bin/adv1tov2/Makefile
680 bin/afppasswd/Makefile
681 bin/getzones/Makefile
682 bin/megatron/Makefile
688 contrib/macusers/Makefile
690 contrib/printing/Makefile
691 contrib/shell_utils/Makefile
692 contrib/timelord/Makefile
694 distrib/config/Makefile
695 distrib/config/netatalk-config
696 distrib/initscripts/Makefile
701 etc/afpd/nls/Makefile
704 etc/uams/uams_krb4/Makefile
708 include/atalk/Makefile
710 libatalk/adouble/Makefile
711 libatalk/asp/Makefile
712 libatalk/atp/Makefile
713 libatalk/cnid/Makefile
714 libatalk/compat/Makefile
715 libatalk/dsi/Makefile
716 libatalk/nbp/Makefile
717 libatalk/netddp/Makefile
718 libatalk/util/Makefile
728 sys/generic/sys/Makefile
729 sys/netatalk/Makefile
731 sys/netbsd/netatalk/Makefile
736 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]