1 dnl $Id: configure.in,v 1.78 2001-05-25 16:18:08 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)
14 dnl Reset locations to proper places
15 AC_PREFIX_DEFAULT(/usr/local)
17 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)
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(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=path path to config files [default=$ac_default_prefix/etc]],
160 config_dir="$withval",
161 config_dir="${prefix}/etc"
164 AC_ARG_WITH(cracklib,
165 [ --with-cracklib=dict enable/set location of cracklib dictionary],
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!])
182 [ --disable-ddp disable DDP],
183 if test "$enableval" = "no"; then
185 AC_MSG_RESULT([disabling DDP])
190 [ --enable-debug enable debug code],
191 if test "$enableval" != "no"; then
192 if test "$enableval" = "yes"; then
195 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
197 AC_MSG_RESULT([enabling debugging code])
204 dnl ----------- A NOTE ABOUT DROPKLUDGE
205 dnl The trouble with this fix is that if you know what the file is called, it
206 dnl can be read from the Unix side. That's okay for most academic institutions
207 dnl since the students don't have telnet access to the Mac servers. There is
208 dnl currently no one working on further development/fixes of DROPKLUDGE.
211 AC_ARG_ENABLE(dropkludge,
212 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
213 if test "$enableval" = "yes"; then
214 AC_DEFINE(DROPKLUDGE, 1)
215 AC_MSG_RESULT([enabling experimental dropbox support])
219 AC_ARG_ENABLE(force-uidgid,
220 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
221 if test "$enableval" = "yes"; then
222 AC_DEFINE(FORCE_UIDGID, 1)
223 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
227 AC_ARG_ENABLE(lastdid,
228 [ --enable-lastdid enable build without DID dev/inode mapping kludge],
229 if test "$enableval" = "yes"; then
230 AC_DEFINE(USE_LASTDID, 1)
231 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
236 AC_ARG_WITH(message-dir,
237 [ --with-msg-dir=path path to message files [default=$ac_default_prefix/etc/msg]],
239 if test x"$msg_dir" = "x"; then
240 msg_dir="${prefix}/etc/msg"
242 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
243 [path to message dir [default=$ac_default_prefix/etc/msg]])
244 SERVERTEXT="$msg_dir"
248 AC_CHECK_LIB(pam, pam_start,
249 AC_DEFINE(USE_PAM, 1)
253 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
256 [ --with-pam enable password authentication modules support],
257 if test "x$compile_pam" = "xyes"; then
259 AC_MSG_RESULT([enabling pam modules support])
261 AC_MSG_RESULT([pam libraries not found. Disabling pam modules support])
267 [ --with-shadow enable shadow password support],
268 AC_MSG_RESULT([enabling shadow password support])
273 AC_ARG_ENABLE(shell-check,
274 [ --disable-shell-check disable checking for a valid shell],
275 if test "$enableval" = "no"; then
276 AC_DEFINE(DISABLE_SHELLCHECK, 1)
277 AC_MSG_RESULT([disabling valid shell check])
281 AC_ARG_WITH(flock-locks,
282 [ --with-flock-locks enable flock locks support],
283 AC_MSG_RESULT([enabling flock locks])
284 AC_DEFINE(USE_FLOCK_LOCKS)
287 AC_ARG_WITH(tcp-wrappers,
288 [ --with-tcp-wrappers enable TCP wrappers support],
289 AC_CHECK_LIB(wrap, tcpd_warn,
291 AFPD_LIBS="$AFPD_LIBS -lwrap"
292 AC_MSG_RESULT([enabling TCP wrappers support])
296 AC_ARG_ENABLE(redhat,
297 [ --enable-redhat use redhat-style sysv configuration ],
298 if test "$enableval" = "yes"; then
301 AC_MSG_RESULT([enabling redhat-style sysv support])
305 [ --enable-suse use suse-style sysv configuration ],
306 if test "$enableval" = "yes"; then
309 AC_MSG_RESULT([enabling suse-style sysv support])
312 AC_ARG_ENABLE(cobalt,
313 [ --enable-cobalt use cobalt-style sysv configuration ],
314 if test "$enableval" = "yes"; then
317 AC_MSG_RESULT([enabling cobalt-style sysv support])
320 dnl ----- timelord compilation (disabled by default)
322 AC_ARG_ENABLE(timelord,
323 [ --enable-timelord enable compilation of timelord server],
324 if test "$enableval" = "yes"; then
327 AC_MSG_RESULT([enabling timelord compilation])
330 AC_ARG_WITH(uams-path,
331 [ --with-uams-path=path path to UAMs [default=$ac_default_prefix/etc/uams]],
332 uams_path="$withval",
333 uams_path="${config_dir}/uams"
336 dnl --------------------------------------------------------------------------
337 dnl FHS stuff has to be done last because it overrides other defaults
338 dnl --------------------------------------------------------------------------
341 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
342 if test "$enableval" = "yes"; then
343 uams_path="/usr/lib/netatalk"
344 config_dir="/etc/netatalk"
346 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
347 AC_DEFINE(FHS_COMPATIBILITY)
349 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
352 dnl --------------------------------------------------------------------------
353 dnl post-FHS substitutions, etc
354 dnl --------------------------------------------------------------------------
357 AC_DEFINE_UNQUOTED(CONFIG_DIR, "${config_dir}",
358 [path to config dir [default=$ac_default_prefix/etc]])
359 CONFIG_DIR="${config_dir}"
361 AC_MSG_RESULT([setting configuration files location to $CONFIG_DIR])
364 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
365 [path to UAMs [default=$ac_default_prefix/etc/uams]])
366 UAMS_PATH="${uams_path}"
369 dnl --------------------------------------------------------------------------
370 dnl drop in includes for top level directory structures here...
371 dnl --------------------------------------------------------------------------
372 LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/"
373 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
375 dnl --------------------------------------------------------------------------
376 dnl specific configuration comes in here:
377 dnl --------------------------------------------------------------------------
379 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
381 dnl --------------------- determine operating system from "target"
383 *freebsd*) this_os=freebsd ;;
384 *linux*) this_os=linux ;;
385 *osx*) this_os=macosx ;;
386 *netbsd*) this_os=netbsd ;;
387 *openbsd*) this_os=openbsd ;;
388 *osf*) this_os=tru64 ;;
389 *solaris*) this_os=solaris ;;
393 i386|i486|i586|i686|k7) this_cpu=x86 ;;
394 alpha) this_cpu=alpha ;;
395 mips) this_cpu=mips ;;
396 powerpc|ppc) this_cpu=ppc ;;
399 dnl --------------------- operating system specific flags (port from sys/*)
401 dnl ----- FreeBSD specific -----
402 if test x"$this_os" = "xfreebsd"; then
403 AC_MSG_RESULT([ * FreeBSD specific configuration])
405 AC_DEFINE(SENDFILE_FLAVOR_BSD)
407 dnl ----- Set -shared flag
408 LDSHAREDFLAGS="-shared"
411 dnl ----- Linux specific -----
412 if test x"$this_os" = "xlinux"; then
413 AC_MSG_RESULT([ * Linux specific configuration])
415 dnl ----- Set -shared flag
416 LDSHAREDFLAGS="-shared"
418 dnl ----- check if we need the quotactl wrapper
419 AC_CHECK_HEADER(sys/quota.h,,
420 AC_MSG_RESULT([enabling quotactl wrapper])
421 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
424 dnl ----- as far as I can tell, dbtob always does the wrong thing
425 dnl ----- on every single version of linux I've ever played with.
426 dnl ----- see etc/afpd/quota.c
427 AC_DEFINE(HAVE_BROKEN_DBTOB)
429 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
430 dnl ----- check if version is newer than 2.2.x
432 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
433 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
434 if [ $majorvers -ge 2 ]; then
435 if [ $minorvers -ge 2 ]; then
437 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
438 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
440 AC_MSG_RESULT([ * found Linux 2.0.x ])
444 dnl ----- Linux/alpha specific -----
445 if test x"$this_cpu" = "xalpha"; then
446 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
447 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
452 dnl ----- Mac OSX specific -----
453 if test x"$this_os" = "xmacosx"; then
454 AC_MSG_RESULT([ * Mac OSX specific configuration])
456 AC_DEFINE(HAVE_BROKEN_CPP)
457 AC_DEFINE(HAVE_2ARG_DBTOB)
458 AC_DEFINE(NO_DLFCN_H)
459 AC_DEFINE(MACOSX_SERVER)
461 dnl ----- Set -shared flag
462 LDSHAREDFLAGS="-shared"
465 dnl ----- NetBSD specific -----
466 if test x"$this_os" = "xnetbsd"; then
467 AC_MSG_RESULT([ * NetBSD specific configuration])
469 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
470 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
473 dnl ----- Set -shared flag
474 LDSHAREDFLAGS="-shared"
476 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
477 AC_DEFINE(UAM_DHX, 1)
478 AC_DEFINE(UAM_RNDNUM, 1)
481 AC_DEFINE(NO_CRYPT_H, 1)
484 dnl ----- OpenBSD specific -----
485 if test x"$this_os" = "xopenbsd"; then
486 AC_MSG_RESULT([ * OpenBSD specific configuration])
488 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
490 dnl ----- Set -shared flag
491 LDSHAREDFLAGS="-Bforcearchive -shared"
493 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
494 AC_DEFINE(UAM_DHX, 1)
495 AC_DEFINE(UAM_RNDNUM, 1)
498 AC_DEFINE(NO_CRYPT_H, 1)
501 dnl ----- Solaris specific -----
502 if test x"$this_os" = "xsolaris"; then
503 AC_MSG_RESULT([ * Solaris specific configuration])
505 AC_DEFINE(_ISOC9X_SOURCE)
506 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
508 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
511 dnl ----- Set -shared flag
514 AC_MSG_RESULT([enabling Solaris kernel module build])
518 dnl ----- Tru64 specific -----
519 if test x"$this_os" = "xtru64"; then
520 AC_MSG_RESULT([ * Tru64 specific configuration])
522 AC_DEFINE(HAVE_64BIT_LONGS)
523 dnl AC_DEFINE(USE_MOUNT_H)
524 AC_DEFINE(USE_OLD_RQUOTA)
525 dnl AC_DEFINE(USE_UFS_QUOTA_H)
527 AC_CHECK_LIB(security,set_auth_parameters)
528 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
529 LDSHAREDFLAGS="-shared -expect_unresolved \*"
533 dnl ----- Set -shared flag
534 LDSHAREDFLAGS="-shared"
537 dnl -- look for openssl
539 [ --with-ssl-dir=PATH specify path to openssl installation (must contain
540 lib and include dirs) ],
542 if test "x$withval" != "xno"; then
548 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
549 if test -f "$ssldir/include/openssl/cast.h" ; then
550 LDFLAGS="$LDFLAGS -L$ssldir/lib -L$ssldir"
551 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
552 if test "$need_dash_r" = "yes"; then
553 LIBS="$LIBS -R$ssldir/lib -R$ssldir"
556 dnl Check for the crypto library:
557 AC_CHECK_LIB(crypto, main)
558 dnl LIBS="$LIBS -lcrypto"
559 dnl Check for "DES" library (for SSLeay, not openssl):
560 AC_CHECK_LIB(des, main)
562 AC_DEFINE(OPENSSL_DHX, 1)
563 AC_DEFINE(UAM_DHX, 1)
564 AC_DEFINE(UAM_RNDNUM, 1)
567 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
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 --------------------- last minute substitutions
592 AC_SUBST(LDSHAREDFLAGS)
594 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
595 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
596 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
597 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
598 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
599 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
600 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
601 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
602 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
603 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
604 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
605 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
607 dnl --------------------- generate files
611 bin/adv1tov2/Makefile
614 bin/afppasswd/Makefile
615 bin/getzones/Makefile
616 bin/megatron/Makefile
622 contrib/macusers/Makefile
624 contrib/printing/Makefile
625 contrib/shell_utils/Makefile
626 contrib/timelord/Makefile
628 distrib/config/Makefile
629 distrib/config/netatalk-config
630 distrib/initscripts/Makefile
635 etc/afpd/nls/Makefile
638 etc/uams/uams_krb4/Makefile
642 include/atalk/Makefile
644 libatalk/adouble/Makefile
645 libatalk/asp/Makefile
646 libatalk/atp/Makefile
647 libatalk/compat/Makefile
648 libatalk/dsi/Makefile
649 libatalk/nbp/Makefile
650 libatalk/netddp/Makefile
651 libatalk/util/Makefile
659 sys/netatalk/Makefile
661 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]