1 dnl $Id: configure.in,v 1.91 2001-06-20 14:51:12 rufustfirefly 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 -ldb:
46 AC_CHECK_LIB(db, main)
47 dnl Replace `main' with a function in -ldl:
48 AC_CHECK_LIB(dl, main)
49 dnl Replace `main' with a function in -lkauth:
50 AC_CHECK_LIB(kauth, main)
51 dnl Replace `main' with a function in -lkrb:
52 AC_CHECK_LIB(krb, main)
53 dnl Replace `main' with a function in -llwp:
54 AC_CHECK_LIB(lwp, main)
55 dnl Replace `main' with a function in -ln:
57 dnl Replace `main' with a function in -lnsl:
58 AC_CHECK_LIB(nsl, main)
59 dnl Replace `main' with a function in -lprot:
60 AC_CHECK_LIB(prot, main)
61 dnl Replace `main' with a function in -lresolv:
62 AC_CHECK_LIB(resolv, main)
63 dnl Replace `main' with a function in -lrpcsvc:
64 AC_CHECK_LIB(rpcsvc, main)
65 dnl Replace `main' with a function in -lrx:
66 AC_CHECK_LIB(rx, main)
67 dnl Replace `main' with a function in -lrxkad:
68 AC_CHECK_LIB(rxkad, main)
69 dnl Replace `main' with a function in -lsocket:
70 AC_CHECK_LIB(socket, main)
71 dnl Replace `main' with a function in -lsys:
72 AC_CHECK_LIB(sys, main)
73 dnl Replace `main' with a function in -lubik:
74 AC_CHECK_LIB(ubik, main)
77 # Check presence of some functions
79 # Check for XPG4 access() function
80 # Be sure to test before adding AFS libs in LIBS path as AFS lib
81 # has such a function that works only on AFS filesystems.
82 AC_CHECK_FUNCS(access)
84 dnl Checks for header files.
88 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)
89 AC_CHECK_HEADER(sys/cdefs.h,,
90 AC_MSG_RESULT([enabling generic cdefs.h from tree])
91 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
94 # Allow user to specify flags
96 [ --with-cflags specify additional flags to pass to compiler],
98 if test "x$withval" != "xno" ; then
99 CFLAGS="$CFLAGS $withval"
104 [ --with-libs specify additional libraries to link with],
106 if test "x$withval" != "xno" ; then
107 LIBS="$LIBS $withval"
112 dnl Checks for typedefs, structures, and compiler characteristics.
124 dnl Checks for library functions.
126 AC_PROG_GCC_TRADITIONAL
133 AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp)
136 dnl --------------------------------------------------------------------------
137 dnl specific configuration comes in here:
138 dnl --------------------------------------------------------------------------
140 AC_DEFINE(ADMIN_GRP, 1)
142 AC_ARG_WITH(admin-group,
143 [ --disable-admin-group disable admin group],
144 if test "$enableval" = "no"; then
145 AC_DEFINE(ADMIN_GRP, 0)
146 AC_MSG_RESULT([disabling administrative group support])
151 [ --enable-afs enable AFS support],
152 if test "$enableval" = "yes"; then
154 AC_MSG_RESULT([enabling AFS support])
158 AC_ARG_WITH(config-dir,
159 [ --with-config-dir=DIR obsolete - use --pkgconfdir],
160 sysconfdir="$withval",
161 sysconfdir="${prefix}/etc"
164 AC_ARG_WITH(pkgconfdir,
165 [ --with-pkgconfdir=DIR package specific configuration in DIR [default=SYSCONF/netatalk]],
166 PKGCONFDIR="$withval",
167 PKGCONFDIR="${sysconfdir}/netatalk"
170 AC_ARG_WITH(cracklib,
171 [ --with-cracklib=dict enable/set location of cracklib dictionary],
172 if test "x$withval" != "xno" ; then
174 AC_CHECK_LIB(crack, main,
175 AC_DEFINE(USE_CRACKLIB)
177 AC_MSG_RESULT([enabling cracklib support])
178 if test "$cracklib" = "yes"; then
179 cracklib="/usr/lib/cracklib_dict"
181 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
182 [path to cracklib dictionary])
183 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
184 AC_MSG_ERROR([cracklib not found!])
190 [ --disable-ddp disable DDP],
191 if test "$enableval" = "no"; then
193 AC_MSG_RESULT([disabling DDP])
198 [ --enable-debug enable debug code],
199 if test "$enableval" != "no"; then
200 if test "$enableval" = "yes"; then
203 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
205 AC_MSG_RESULT([enabling debugging code])
212 dnl ----------- A NOTE ABOUT DROPKLUDGE
213 dnl The trouble with this fix is that if you know what the file is called, it
214 dnl can be read from the Unix side. That's okay for most academic institutions
215 dnl since the students don't have telnet access to the Mac servers. There is
216 dnl currently no one working on further development/fixes of DROPKLUDGE.
219 AC_ARG_ENABLE(dropkludge,
220 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
221 if test "$enableval" = "yes"; then
222 AC_DEFINE(DROPKLUDGE, 1)
223 AC_MSG_RESULT([enabling experimental dropbox support])
227 AC_ARG_ENABLE(force-uidgid,
228 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
229 if test "$enableval" = "yes"; then
230 AC_DEFINE(FORCE_UIDGID, 1)
231 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
236 [ --with-did=[scheme] set DID scheme (last,mtab)],
237 if test "x$withval" != "xno" ; then
238 if test "$withval" = "last"; then
239 AC_DEFINE(USE_LASTDID, 1)
240 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
242 if test "$withval" = "mtab"; then
243 AC_DEFINE(DID_MTAB, 1)
244 AC_MSG_RESULT([enabling mtab-based DID creation support])
250 AC_ARG_WITH(message-dir,
251 [ --with-msg-dir=path path to message files [default=$ac_prefix_default/etc/msg]],
253 if test x"$msg_dir" = "x"; then
254 msg_dir="${prefix}/etc/msg"
256 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
257 [path to message dir [default=$ac_prefix_default/etc/msg]])
258 SERVERTEXT="$msg_dir"
262 AC_CHECK_LIB(pam, pam_start,
263 AC_DEFINE(USE_PAM, 1)
269 [ --without-pam disable password authentication modules support],
272 AC_DEFINE(USE_PAM, 0)
273 AC_MSG_RESULT([Disabling pam modules support])
275 if test "x$compile_pam" = "xyes"; then
277 AC_MSG_RESULT([Enabling pam modules support])
282 [ --with-shadow enable shadow password support],
283 AC_MSG_RESULT([enabling shadow password support])
288 AC_ARG_ENABLE(shell-check,
289 [ --disable-shell-check disable checking for a valid shell],
290 if test "$enableval" = "no"; then
291 AC_DEFINE(DISABLE_SHELLCHECK, 1)
292 AC_MSG_RESULT([disabling valid shell check])
296 AC_ARG_WITH(flock-locks,
297 [ --with-flock-locks enable flock locks support],
298 AC_MSG_RESULT([enabling flock locks])
299 AC_DEFINE(USE_FLOCK_LOCKS)
302 AC_ARG_WITH(tcp-wrappers,
303 [ --with-tcp-wrappers enable TCP wrappers support],
304 AC_CHECK_LIB(wrap, tcpd_warn,
306 AFPD_LIBS="$AFPD_LIBS -lwrap"
307 AC_MSG_RESULT([enabling TCP wrappers support])
311 AC_ARG_ENABLE(redhat,
312 [ --enable-redhat use redhat-style sysv configuration ],
313 if test "$enableval" = "yes"; then
316 AC_MSG_RESULT([enabling redhat-style sysv support])
320 [ --enable-suse use suse-style sysv configuration ],
321 if test "$enableval" = "yes"; then
324 AC_MSG_RESULT([enabling suse-style sysv support])
327 AC_ARG_ENABLE(cobalt,
328 [ --enable-cobalt use cobalt-style sysv configuration ],
329 if test "$enableval" = "yes"; then
332 AC_MSG_RESULT([enabling cobalt-style sysv support])
335 dnl ----- timelord compilation (disabled by default)
337 AC_ARG_ENABLE(timelord,
338 [ --enable-timelord enable compilation of timelord server],
339 if test "$enableval" = "yes"; then
342 AC_MSG_RESULT([enabling timelord compilation])
345 AC_ARG_WITH(uams-path,
346 [ --with-uams-path=path path to UAMs [default=PKGCONF/uams]],
347 uams_path="$withval",
348 uams_path="${PKGCONFDIR}/uams"
351 dnl --------------------------------------------------------------------------
352 dnl FHS stuff has to be done last because it overrides other defaults
353 dnl --------------------------------------------------------------------------
356 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
357 if test "$enableval" = "yes"; then
358 uams_path="/usr/lib/netatalk"
360 PKGCONFDIR=${sysconfdir}/netatalk
362 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
363 AC_DEFINE(FHS_COMPATIBILITY)
365 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
368 dnl --------------------------------------------------------------------------
369 dnl post-FHS substitutions, etc
370 dnl --------------------------------------------------------------------------
373 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
374 [path to UAMs [default=PKGCONF/uams]])
375 UAMS_PATH="${uams_path}"
378 dnl --------------------------------------------------------------------------
379 dnl drop in includes for top level directory structures here...
380 dnl --------------------------------------------------------------------------
381 LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/"
382 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
384 dnl --------------------------------------------------------------------------
385 dnl specific configuration comes in here:
386 dnl --------------------------------------------------------------------------
388 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
390 dnl --------------------- determine operating system from "target"
392 *aix*) this_os=aix ;;
393 *freebsd*) this_os=freebsd ;;
394 *hpux11*) this_os=hpux11 ;;
395 *irix*) this_os=irix ;;
396 *linux*) this_os=linux ;;
397 *osx*) this_os=macosx ;;
398 *netbsd*) this_os=netbsd ;;
399 *openbsd*) this_os=openbsd ;;
400 *osf*) this_os=tru64 ;;
401 *solaris*) this_os=solaris ;;
405 i386|i486|i586|i686|k7) this_cpu=x86 ;;
406 alpha) this_cpu=alpha ;;
407 mips) this_cpu=mips ;;
408 powerpc|ppc) this_cpu=ppc ;;
411 dnl --------------------- operating system specific flags (port from sys/*)
413 dnl ----- AIX specific -----
414 if test x"$this_os" = "xaix"; then
415 AC_MSG_RESULT([ * AIX specific configuration])
416 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
418 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
419 dnl compilation environment. It's enough to get things defined
420 dnl right in endian.h provided that long long is supported, though.
421 AC_DEFINE(HAVE_32BIT_LONGS)
424 dnl ----- FreeBSD specific -----
425 if test x"$this_os" = "xfreebsd"; then
426 AC_MSG_RESULT([ * FreeBSD specific configuration])
428 AC_DEFINE(SENDFILE_FLAVOR_BSD)
430 dnl ----- Set -shared flag
431 LDSHAREDFLAGS="-shared"
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 ----- Set -shared flag
455 LDSHAREDFLAGS="-shared"
457 dnl ----- check if we need the quotactl wrapper
458 AC_CHECK_HEADER(sys/quota.h,
462 AC_CHECK_HEADER(linux/quota.h,
467 if test "x$linux_quota" = "xno" -a "x$sys_quota" = "xno"; then
468 AC_MSG_RESULT([enabling quotactl wrapper])
469 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
472 dnl ----- as far as I can tell, dbtob always does the wrong thing
473 dnl ----- on every single version of linux I've ever played with.
474 dnl ----- see etc/afpd/quota.c
475 AC_DEFINE(HAVE_BROKEN_DBTOB)
477 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
478 dnl ----- check if version is newer than 2.2.x
480 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
481 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
482 if [ $majorvers -ge 2 ]; then
483 if [ $minorvers -ge 2 ]; then
485 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
486 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
488 AC_MSG_RESULT([ * found Linux 2.0.x ])
492 dnl ----- Linux/alpha specific -----
493 if test x"$this_cpu" = "xalpha"; then
494 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
495 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
500 dnl ----- Mac OSX specific -----
501 if test x"$this_os" = "xmacosx"; then
502 AC_MSG_RESULT([ * Mac OSX specific configuration])
504 AC_DEFINE(HAVE_BROKEN_CPP)
505 AC_DEFINE(HAVE_2ARG_DBTOB)
506 dnl AC_DEFINE(NO_DLFCN_H)
507 AC_DEFINE(MACOSX_SERVER)
509 dnl ----- Set -shared flag
510 LDSHAREDFLAGS="-shared"
513 dnl ----- NetBSD specific -----
514 if test x"$this_os" = "xnetbsd"; then
515 AC_MSG_RESULT([ * NetBSD specific configuration])
517 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
518 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
521 dnl ----- Set -shared flag
522 LDSHAREDFLAGS="-shared"
524 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
525 AC_DEFINE(UAM_DHX, 1)
526 AC_DEFINE(UAM_RNDNUM, 1)
529 AC_DEFINE(NO_CRYPT_H, 1)
532 dnl ----- OpenBSD specific -----
533 if test x"$this_os" = "xopenbsd"; then
534 AC_MSG_RESULT([ * OpenBSD specific configuration])
536 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
538 dnl ----- Set -shared flag
539 LDSHAREDFLAGS="-Bforcearchive -shared"
541 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
542 AC_DEFINE(UAM_DHX, 1)
543 AC_DEFINE(UAM_RNDNUM, 1)
546 AC_DEFINE(NO_CRYPT_H, 1)
549 dnl ----- Solaris specific -----
550 if test x"$this_os" = "xsolaris"; then
551 AC_MSG_RESULT([ * Solaris specific configuration])
553 AC_DEFINE(_ISOC9X_SOURCE)
554 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
556 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
559 dnl ----- Set -shared flag
562 AC_MSG_RESULT([enabling Solaris kernel module build])
566 dnl ----- Tru64 specific -----
567 if test x"$this_os" = "xtru64"; then
568 AC_MSG_RESULT([ * Tru64 specific configuration])
570 AC_DEFINE(HAVE_64BIT_LONGS)
571 dnl AC_DEFINE(USE_MOUNT_H)
572 AC_DEFINE(USE_OLD_RQUOTA)
573 dnl AC_DEFINE(USE_UFS_QUOTA_H)
575 AC_CHECK_LIB(security,set_auth_parameters)
576 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
577 LDSHAREDFLAGS="-shared -expect_unresolved \*"
581 dnl ----- Set -shared flag
582 LDSHAREDFLAGS="-shared"
585 dnl -- look for openssl
587 [ --with-ssl-dir=PATH specify path to openssl installation (must contain
588 lib and include dirs) ],
590 if test "x$withval" != "xno"; then
596 for ssldir in "" $tryssldir /usr /usr/local/openssl /usr/lib/openssl/ /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl /usr/local/ssl ; do
597 if test -f "$ssldir/include/openssl/cast.h" ; then
598 LDFLAGS="$LDFLAGS -L$ssldir/lib -L$ssldir"
599 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
600 if test "$need_dash_r" = "yes"; then
601 LIBS="$LIBS -R$ssldir/lib -R$ssldir"
604 dnl Check for the crypto library:
605 AC_CHECK_LIB(crypto, main)
606 dnl LIBS="$LIBS -lcrypto"
607 dnl Check for "DES" library (for SSLeay, not openssl):
608 AC_CHECK_LIB(des, main)
610 AC_DEFINE(OPENSSL_DHX, 1)
611 AC_DEFINE(UAM_DHX, 1)
612 AC_DEFINE(UAM_RNDNUM, 1)
615 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
620 dnl --------------------- check for building PGP UAM module
622 AC_ARG_ENABLE(pgp-uam,
623 [ --enable-pgp-uam enable build of PGP UAM module],
624 if test "$enableval" = "yes"; then
625 if test "$compile_ssl" = "yes"; then
626 AC_DEFINE(UAM_PGP, 1)
628 AC_MSG_RESULT([enabling build with PGP UAM module])
633 dnl --------------------- last minute substitutions
640 AC_SUBST(LDSHAREDFLAGS)
644 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
645 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
646 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
647 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
648 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
649 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
650 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
651 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
652 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
653 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
654 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
655 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
656 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
658 dnl --------------------- generate files
662 bin/adv1tov2/Makefile
665 bin/afppasswd/Makefile
666 bin/getzones/Makefile
667 bin/megatron/Makefile
673 contrib/macusers/Makefile
675 contrib/printing/Makefile
676 contrib/shell_utils/Makefile
677 contrib/timelord/Makefile
679 distrib/config/Makefile
680 distrib/config/netatalk-config
681 distrib/initscripts/Makefile
686 etc/afpd/nls/Makefile
689 etc/uams/uams_krb4/Makefile
693 include/atalk/Makefile
695 libatalk/adouble/Makefile
696 libatalk/asp/Makefile
697 libatalk/atp/Makefile
698 libatalk/compat/Makefile
699 libatalk/dsi/Makefile
700 libatalk/nbp/Makefile
701 libatalk/netddp/Makefile
702 libatalk/util/Makefile
710 sys/netatalk/Makefile
712 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]