1 dnl $Id: configure.in,v 1.154 2002-02-08 17:43:15 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"
137 [ --with-logfile=PATH path for file used by logger [/var/log/netatalk.log]
138 use --without-logfile to disable logger],
139 if test "$withval" = "no"; then
140 AC_DEFINE(DISABLE_LOGGER, 1)
141 AC_MSG_RESULT([logger disabled])
142 elif test "$withval" != "yes"; then
143 AC_DEFINE_UNQUOTED(LOGFILEPATH, $withval)
144 AC_MSG_RESULT([logfile set to $withval])
146 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
147 AC_MSG_RESULT([logfile set to default])
149 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log")
150 AC_MSG_RESULT([logfile set to default])
153 AC_ARG_WITH(cracklib,
154 [ --with-cracklib=DICT enable/set location of cracklib dictionary],
155 if test "x$withval" != "xno" ; then
157 AC_CHECK_LIB(crack, main,
158 AC_DEFINE(USE_CRACKLIB)
160 AC_MSG_RESULT([enabling cracklib support])
161 if test "$cracklib" = "yes"; then
162 cracklib="/usr/lib/cracklib_dict"
164 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
165 [path to cracklib dictionary])
166 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
167 AC_MSG_ERROR([cracklib not found!])
173 [ --disable-ddp disable DDP],
174 if test "$enableval" = "no"; then
176 AC_MSG_RESULT([disabling DDP])
181 [ --enable-debug enable debug code],
182 if test "$enableval" != "no"; then
183 if test "$enableval" = "yes"; then
186 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
188 AC_MSG_RESULT([enabling debugging code])
193 dnl ----------- A NOTE ABOUT DROPKLUDGE
194 dnl The trouble with this fix is that if you know what the file is called, it
195 dnl can be read from the Unix side. That's okay for most academic institutions
196 dnl since the students don't have telnet access to the Mac servers. There is
197 dnl currently no one working on further development/fixes of DROPKLUDGE.
200 AC_ARG_ENABLE(dropkludge,
201 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
202 if test "$enableval" = "yes"; then
203 AC_DEFINE(DROPKLUDGE, 1)
204 AC_MSG_RESULT([enabling experimental dropbox support])
208 AC_ARG_ENABLE(force-uidgid,
209 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
210 if test "$enableval" = "yes"; then
211 AC_DEFINE(FORCE_UIDGID, 1)
212 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
216 dnl Don't use DB3 unless it's needed
220 dnl Determine DID scheme
221 AC_MSG_CHECKING([for DID scheme to use])
223 [ --with-did=SCHEME set DID scheme (last,hash,mtab,cnid)],
224 [ did_scheme="$withval" ],
225 [ did_scheme="last" ]
228 if test "x$did_scheme" = "xlast"; then
229 AC_DEFINE(USE_LASTDID, 1)
230 AC_MSG_RESULT([last])
231 elif test "x$did_scheme" = "xhash"; then
232 AC_MSG_RESULT([device/inode-based hashing])
233 elif test "x$did_scheme" = "xmtab"; then
234 AC_DEFINE(DID_MTAB, 1)
235 AC_MSG_RESULT([mtab-based DID creation support])
236 elif test "x$did_scheme" = "xcnid"; then
238 AC_DEFINE(CNID_DB, 1)
239 AC_MSG_RESULT([enabling build with CNID DB support])
241 AC_MSG_ERROR([unknown DID scheme])
243 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
245 dnl Check for Berkeley DB3 library
246 if test "x$db3_required" = "xyes"; then
247 AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
250 dnl Check for quota support
254 AC_ARG_WITH(message-dir,
255 [ --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
257 if test x"$msg_dir" = "x"; then
258 msg_dir="${PKGCONFDIR}/msg"
260 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
261 [path to message dir [[PKGCONF/msg]]])
262 SERVERTEXT="$msg_dir"
266 dnl Check for optional server location protocol support (used by MacOS X)
269 dnl Check for PAM libs
271 PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
272 AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
278 AC_MSG_CHECKING([whether shadow support should be enabled])
280 [ --with-shadow enable shadow password support],
281 [shadowpw="$withval"],
284 if test "x$shadowpw" = "xyes"; then
287 AC_MSG_RESULT([$shadowpw])
289 AC_ARG_ENABLE(shell-check,
290 [ --disable-shell-check disable checking for a valid shell],
291 if test "$enableval" = "no"; then
292 AC_DEFINE(DISABLE_SHELLCHECK, 1)
293 AC_MSG_RESULT([disabling valid shell check])
297 AC_MSG_CHECKING([whether flock locks should be enabled])
298 AC_ARG_WITH(flock-locks,
299 [ --with-flock-locks enable flock locks support],
300 [flock_locks="$withval"],
303 if test "x$flock_locks" = "xyes"; then
304 AC_DEFINE(USE_FLOCK_LOCKS)
306 AC_MSG_RESULT([$flock_locks])
308 AC_ARG_WITH(tcp-wrappers,
309 [ --with-tcp-wrappers enable TCP wrappers support],
310 AC_CHECK_LIB(wrap, tcpd_warn,
312 AFPD_LIBS="$AFPD_LIBS -lwrap"
313 AC_MSG_RESULT([enabling TCP wrappers support])
317 AC_ARG_ENABLE(redhat,
318 [ --enable-redhat use redhat-style sysv configuration ],
319 if test "$enableval" = "yes"; then
322 AC_MSG_RESULT([enabling redhat-style sysv support])
326 [ --enable-suse use suse-style sysv configuration ],
327 if test "$enableval" = "yes"; then
330 AC_MSG_RESULT([enabling suse-style sysv support])
333 AC_ARG_ENABLE(cobalt,
334 [ --enable-cobalt use cobalt-style sysv configuration ],
335 if test "$enableval" = "yes"; then
338 AC_MSG_RESULT([enabling cobalt-style sysv support])
341 AC_ARG_ENABLE(netbsd,
342 [ --enable-netbsd use NetBSD-style rc.d configuration ],
343 if test "x$enableval" = "xyes"; then
346 AC_MSG_RESULT([enabling NetBSD-style rc.d support])
349 dnl ----- timelord compilation (disabled by default)
350 AC_MSG_CHECKING([whether timelord should be compiled])
352 AC_ARG_ENABLE(timelord,
353 [ --enable-timelord enable compilation of timelord server],
354 [compile_timelord="$enableval"],
355 [compile_timelord="no"]
357 AC_MSG_RESULT([$compile_timelord])
359 AC_ARG_WITH(uams-path,
360 [ --with-uams-path=PATH path to UAMs [[PKGCONF/uams]]],
361 uams_path="$withval",
362 uams_path="${PKGCONFDIR}/uams"
365 dnl --------------------------------------------------------------------------
366 dnl FHS stuff has to be done last because it overrides other defaults
367 dnl --------------------------------------------------------------------------
370 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
371 if test "$enableval" = "yes"; then
372 uams_path="/usr/lib/netatalk"
374 PKGCONFDIR=${sysconfdir}/netatalk
376 mandir="/usr/share/man"
377 AC_DEFINE(FHS_COMPATIBILITY)
379 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
382 dnl --------------------------------------------------------------------------
383 dnl post-FHS substitutions, etc
384 dnl --------------------------------------------------------------------------
387 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
388 [path to UAMs [default=PKGCONF/uams]])
389 UAMS_PATH="${uams_path}"
392 dnl --------------------------------------------------------------------------
393 dnl drop in includes for top level directory structures here...
394 dnl --------------------------------------------------------------------------
396 dnl Note: $(top_srcdir)/include should be added before all other includes
397 dnl so that includes from that directory a preferred to includes from
398 dnl /usr/include or similar places.
399 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
400 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
402 dnl --------------------------------------------------------------------------
403 dnl specific configuration comes in here:
404 dnl --------------------------------------------------------------------------
406 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
408 dnl --------------------- determine operating system from "target"
410 *aix*) this_os=aix ;;
411 *freebsd*) this_os=freebsd ;;
412 *hpux11*) this_os=hpux11 ;;
413 *irix*) this_os=irix ;;
414 *linux*) this_os=linux ;;
415 *osx*) this_os=macosx ;;
416 *darwin*) this_os=macosx ;;
417 *netbsd*) this_os=netbsd ;;
418 *openbsd*) this_os=openbsd ;;
419 *osf*) this_os=tru64 ;;
420 *solaris*) this_os=solaris ;;
424 i386|i486|i586|i686|k7) this_cpu=x86 ;;
425 alpha) this_cpu=alpha ;;
426 mips) this_cpu=mips ;;
427 powerpc|ppc) this_cpu=ppc ;;
430 dnl --------------------- operating system specific flags (port from sys/*)
432 dnl ----- AIX specific -----
433 if test x"$this_os" = "xaix"; then
434 AC_MSG_RESULT([ * AIX specific configuration])
435 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
437 dnl This is probably a lie; AIX 4.3 supports a 64-bit long
438 dnl compilation environment. It's enough to get things defined
439 dnl right in endian.h provided that long long is supported, though.
440 AC_DEFINE(HAVE_32BIT_LONGS)
443 dnl ----- FreeBSD specific -----
444 if test x"$this_os" = "xfreebsd"; then
445 AC_MSG_RESULT([ * FreeBSD specific configuration])
447 AC_DEFINE(SENDFILE_FLAVOR_BSD)
449 AC_DEFINE(NO_CRYPT_H, 1)
452 dnl ----- HP-UX 11 specific -----
453 if test x"$this_os" = "xhpux11"; then
454 AC_MSG_RESULT([ * HP-UX 11 specific configuration])
456 AC_DEFINE(_ISOC9X_SOURCE)
457 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
460 dnl ----- IRIX specific -----
461 if test x"$this_os" = "xirix"; then
462 AC_MSG_RESULT([ * IRIX specific configuration])
464 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
467 dnl ----- Linux specific -----
468 if test x"$this_os" = "xlinux"; then
469 AC_MSG_RESULT([ * Linux specific configuration])
471 dnl ----- check if we need the quotactl wrapper
472 AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
473 AC_CHECK_FUNC(quotactl,,
474 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
475 AC_MSG_RESULT([enabling quotactl wrapper])
478 dnl ----- as far as I can tell, dbtob always does the wrong thing
479 dnl ----- on every single version of linux I've ever played with.
480 dnl ----- see etc/afpd/quota.c
481 AC_DEFINE(HAVE_BROKEN_DBTOB)
483 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
484 dnl ----- check if version is newer than 2.2.x
486 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
487 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
488 if [ $majorvers -ge 2 ]; then
489 if [ $minorvers -ge 2 ]; then
491 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
492 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
494 AC_MSG_RESULT([ * found Linux 2.0.x ])
498 dnl ----- Linux/alpha specific -----
499 if test x"$this_cpu" = "xalpha"; then
500 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
501 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
506 dnl ----- Mac OSX specific -----
507 if test x"$this_os" = "xmacosx"; then
508 AC_MSG_RESULT([ * Mac OSX specific configuration])
510 AC_DEFINE(HAVE_BROKEN_CPP)
511 AC_DEFINE(HAVE_2ARG_DBTOB)
512 dnl AC_DEFINE(NO_DLFCN_H)
513 AC_DEFINE(MACOSX_SERVER)
516 dnl ----- NetBSD specific -----
517 if test x"$this_os" = "xnetbsd"; then
518 AC_MSG_RESULT([ * NetBSD specific configuration])
520 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
521 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
524 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
525 AC_DEFINE(UAM_DHX, 1)
526 AC_DEFINE(NO_CRYPT_H, 1)
529 dnl ----- OpenBSD specific -----
530 if test x"$this_os" = "xopenbsd"; then
531 AC_MSG_RESULT([ * OpenBSD specific configuration])
533 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
535 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
536 AC_DEFINE(UAM_DHX, 1)
537 AC_DEFINE(NO_CRYPT_H, 1)
540 dnl ----- Solaris specific -----
541 if test x"$this_os" = "xsolaris"; then
542 AC_MSG_RESULT([ * Solaris specific configuration])
544 AC_DEFINE(_ISOC9X_SOURCE)
545 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
547 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
550 AC_MSG_RESULT([enabling Solaris kernel module build])
554 dnl ----- Tru64 specific -----
555 if test x"$this_os" = "xtru64"; then
556 AC_MSG_RESULT([ * Tru64 specific configuration])
558 AC_DEFINE(HAVE_64BIT_LONGS)
559 dnl AC_DEFINE(USE_MOUNT_H)
560 AC_DEFINE(USE_OLD_RQUOTA)
561 dnl AC_DEFINE(USE_UFS_QUOTA_H)
563 AC_CHECK_LIB(security,set_auth_parameters)
564 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
569 dnl -- look for openssl
572 dnl --------------------- check for building PGP UAM module
574 AC_ARG_ENABLE(pgp-uam,
575 [ --enable-pgp-uam enable build of PGP UAM module],
576 if test "$enableval" = "yes"; then
577 if test "$compile_ssl" = "yes"; then
578 AC_DEFINE(UAM_PGP, 1)
580 AC_MSG_RESULT([enabling build with PGP UAM module])
585 dnl --------------------- check for building Kerberos v4 UAM module
587 AC_ARG_ENABLE(krb4-uam,
588 [ --enable-krb4-uam enable build of Kerberos v4 UAM module],
589 if test "$enableval" = "yes"; then
590 AC_DEFINE(UAM_KRB4, 1)
592 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
595 dnl --------------------- overwrite the config files . . . or not.
597 AC_MSG_CHECKING([whether configuration files should be overwritten])
598 AC_ARG_ENABLE(overwrite,
599 [ --enable-overwrite overwrite configuration files during installation],
600 [OVERWRITE_CONFIG="${enable_overwrite}"],
601 [OVERWRITE_CONFIG="no"]
603 AC_MSG_RESULT([$OVERWRITE_CONFIG])
605 dnl --------------------- last minute substitutions
613 AC_SUBST(OVERWRITE_CONFIG)
615 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
616 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
617 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
618 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
619 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
620 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
621 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
622 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
623 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
624 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
625 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
626 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
627 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
628 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
630 dnl --------------------- generate files
634 bin/adv1tov2/Makefile
637 bin/afppasswd/Makefile
640 bin/getzones/Makefile
641 bin/megatron/Makefile
647 contrib/macusers/Makefile
648 contrib/macusers/macusers
651 contrib/printing/Makefile
652 contrib/shell_utils/Makefile
653 contrib/shell_utils/afpd-mtab.pl
654 contrib/shell_utils/apple_cp
655 contrib/shell_utils/apple_mv
656 contrib/shell_utils/apple_rm
657 contrib/shell_utils/cleanappledouble.pl
658 contrib/shell_utils/netatalkshorternamelinks.pl
659 contrib/timelord/Makefile
661 distrib/config/Makefile
662 distrib/config/netatalk-config
663 distrib/initscripts/Makefile
668 etc/afpd/nls/Makefile
671 etc/uams/uams_krb4/Makefile
675 include/atalk/Makefile
677 libatalk/adouble/Makefile
678 libatalk/asp/Makefile
679 libatalk/atp/Makefile
680 libatalk/cnid/Makefile
681 libatalk/compat/Makefile
682 libatalk/dsi/Makefile
683 libatalk/nbp/Makefile
684 libatalk/netddp/Makefile
685 libatalk/util/Makefile
695 sys/generic/sys/Makefile
696 sys/netatalk/Makefile
698 sys/netbsd/netatalk/Makefile
700 sys/solaris/Makefile.kernel
704 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]