1 dnl $Id: configure.in,v 1.81 2001-06-06 13:36:36 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.
24 dnl *********************************************************************
25 dnl FIXME! FIXME! These should be selectable properly, and should produce
26 dnl the proper flags and defines...
27 dnl *********************************************************************
29 dnl Checks for libraries.
30 dnl Replace `main' with a function in -labs:
31 AC_CHECK_LIB(abs, main)
32 dnl Replace `main' with a function in -laudit:
33 AC_CHECK_LIB(audit, main)
34 dnl Replace `main' with a function in -lauth:
35 AC_CHECK_LIB(auth, main)
36 dnl Replace `main' with a function in -lcmd:
37 AC_CHECK_LIB(cmd, main)
38 dnl Replace `main' with a function in -lcom_err:
39 AC_CHECK_LIB(com_err, main)
40 dnl Replace `main' with a function in -lcrypt:
41 AC_CHECK_LIB(crypt, main)
42 dnl Replace `main' with a function in -ld:
44 dnl Replace `main' with a function in -ldb:
45 AC_CHECK_LIB(db, main)
46 dnl Replace `main' with a function in -ldl:
47 AC_CHECK_LIB(dl, main)
48 dnl Replace `main' with a function in -lkauth:
49 AC_CHECK_LIB(kauth, main)
50 dnl Replace `main' with a function in -lkrb:
51 AC_CHECK_LIB(krb, main)
52 dnl Replace `main' with a function in -llwp:
53 AC_CHECK_LIB(lwp, main)
54 dnl Replace `main' with a function in -ln:
56 dnl Replace `main' with a function in -lnsl:
57 AC_CHECK_LIB(nsl, main)
58 dnl Replace `main' with a function in -lprot:
59 AC_CHECK_LIB(prot, main)
60 dnl Replace `main' with a function in -lresolv:
61 AC_CHECK_LIB(resolv, main)
62 dnl Replace `main' with a function in -lrpcsvc:
63 AC_CHECK_LIB(rpcsvc, main)
64 dnl Replace `main' with a function in -lrx:
65 AC_CHECK_LIB(rx, main)
66 dnl Replace `main' with a function in -lrxkad:
67 AC_CHECK_LIB(rxkad, main)
68 dnl Replace `main' with a function in -lsocket:
69 AC_CHECK_LIB(socket, main)
70 dnl Replace `main' with a function in -lsys:
71 AC_CHECK_LIB(sys, main)
72 dnl Replace `main' with a function in -lubik:
73 AC_CHECK_LIB(ubik, main)
76 # Check presence of some functions
78 # Check for XPG4 access() function
79 # Be sure to test before adding AFS libs in LIBS path as AFS lib
80 # has such a function that works only on AFS filesystems.
81 AC_CHECK_FUNCS(access)
83 dnl Checks for header files.
87 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)
88 AC_CHECK_HEADER(sys/cdefs.h,,
89 AC_MSG_RESULT([enabling generic cdefs.h from tree])
90 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
93 # Allow user to specify flags
95 [ --with-cflags specify additional flags to pass to compiler],
97 if test "x$withval" != "xno" ; then
98 CFLAGS="$CFLAGS $withval"
103 [ --with-libs specify additional libraries to link with],
105 if test "x$withval" != "xno" ; then
106 LIBS="$LIBS $withval"
111 dnl Checks for typedefs, structures, and compiler characteristics.
123 dnl Checks for library functions.
125 AC_PROG_GCC_TRADITIONAL
132 AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp)
135 dnl --------------------------------------------------------------------------
136 dnl specific configuration comes in here:
137 dnl --------------------------------------------------------------------------
139 AC_DEFINE(ADMIN_GRP, 1)
141 AC_ARG_WITH(admin-group,
142 [ --disable-admin-group disable admin group],
143 if test "$enableval" = "no"; then
144 AC_DEFINE(ADMIN_GRP, 0)
145 AC_MSG_RESULT([disabling administrative group support])
150 [ --enable-afs enable AFS support],
151 if test "$enableval" = "yes"; then
153 AC_MSG_RESULT([enabling AFS support])
157 AC_ARG_WITH(config-dir,
158 [ --with-config-dir=path path to config files [default=$ac_prefix_default/etc]],
159 config_dir="$withval",
160 config_dir="${prefix}/etc"
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])
229 [ --with-did=[scheme] set DID scheme (last,mtab)],
230 if test "x$withval" != "xno" ; then
231 if test "$withval" = "lastdid"; then
232 AC_DEFINE(USE_LASTDID, 1)
233 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
235 if test "$withval" = "mtab"; then
236 AC_DEFINE(DID_MTAB, 1)
237 AC_MSG_RESULT([enabling mtab-based DID creation support])
243 AC_ARG_WITH(message-dir,
244 [ --with-msg-dir=path path to message files [default=$ac_prefix_default/etc/msg]],
246 if test x"$msg_dir" = "x"; then
247 msg_dir="${prefix}/etc/msg"
249 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
250 [path to message dir [default=$ac_prefix_default/etc/msg]])
251 SERVERTEXT="$msg_dir"
255 AC_CHECK_LIB(pam, pam_start,
256 AC_DEFINE(USE_PAM, 1)
260 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
263 [ --with-pam enable password authentication modules support],
264 if test "x$compile_pam" = "xyes"; then
266 AC_MSG_RESULT([enabling pam modules support])
268 AC_MSG_RESULT([pam libraries not found. Disabling pam modules support])
274 [ --with-shadow enable shadow password support],
275 AC_MSG_RESULT([enabling shadow password support])
280 AC_ARG_ENABLE(shell-check,
281 [ --disable-shell-check disable checking for a valid shell],
282 if test "$enableval" = "no"; then
283 AC_DEFINE(DISABLE_SHELLCHECK, 1)
284 AC_MSG_RESULT([disabling valid shell check])
288 AC_ARG_WITH(flock-locks,
289 [ --with-flock-locks enable flock locks support],
290 AC_MSG_RESULT([enabling flock locks])
291 AC_DEFINE(USE_FLOCK_LOCKS)
294 AC_ARG_WITH(tcp-wrappers,
295 [ --with-tcp-wrappers enable TCP wrappers support],
296 AC_CHECK_LIB(wrap, tcpd_warn,
298 AFPD_LIBS="$AFPD_LIBS -lwrap"
299 AC_MSG_RESULT([enabling TCP wrappers support])
303 AC_ARG_ENABLE(redhat,
304 [ --enable-redhat use redhat-style sysv configuration ],
305 if test "$enableval" = "yes"; then
308 AC_MSG_RESULT([enabling redhat-style sysv support])
312 [ --enable-suse use suse-style sysv configuration ],
313 if test "$enableval" = "yes"; then
316 AC_MSG_RESULT([enabling suse-style sysv support])
319 AC_ARG_ENABLE(cobalt,
320 [ --enable-cobalt use cobalt-style sysv configuration ],
321 if test "$enableval" = "yes"; then
324 AC_MSG_RESULT([enabling cobalt-style sysv support])
327 dnl ----- timelord compilation (disabled by default)
329 AC_ARG_ENABLE(timelord,
330 [ --enable-timelord enable compilation of timelord server],
331 if test "$enableval" = "yes"; then
334 AC_MSG_RESULT([enabling timelord compilation])
337 AC_ARG_WITH(uams-path,
338 [ --with-uams-path=path path to UAMs [default=$ac_prefix_default/etc/uams]],
339 uams_path="$withval",
340 uams_path="${config_dir}/uams"
343 dnl --------------------------------------------------------------------------
344 dnl FHS stuff has to be done last because it overrides other defaults
345 dnl --------------------------------------------------------------------------
348 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
349 if test "$enableval" = "yes"; then
350 uams_path="/usr/lib/netatalk"
351 config_dir="/etc/netatalk"
353 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
354 AC_DEFINE(FHS_COMPATIBILITY)
356 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
359 dnl --------------------------------------------------------------------------
360 dnl post-FHS substitutions, etc
361 dnl --------------------------------------------------------------------------
364 AC_DEFINE_UNQUOTED(CONFIG_DIR, "${config_dir}",
365 [path to config dir [default=$ac_prefix_default/etc]])
366 CONFIG_DIR="${config_dir}"
368 AC_MSG_RESULT([setting configuration files location to $CONFIG_DIR])
371 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
372 [path to UAMs [default=$ac_prefix_default/etc/uams]])
373 UAMS_PATH="${uams_path}"
376 dnl --------------------------------------------------------------------------
377 dnl drop in includes for top level directory structures here...
378 dnl --------------------------------------------------------------------------
379 LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/"
380 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
382 dnl --------------------------------------------------------------------------
383 dnl specific configuration comes in here:
384 dnl --------------------------------------------------------------------------
386 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
388 dnl --------------------- determine operating system from "target"
390 *freebsd*) this_os=freebsd ;;
391 *linux*) this_os=linux ;;
392 *osx*) this_os=macosx ;;
393 *netbsd*) this_os=netbsd ;;
394 *openbsd*) this_os=openbsd ;;
395 *osf*) this_os=tru64 ;;
396 *solaris*) this_os=solaris ;;
400 i386|i486|i586|i686|k7) this_cpu=x86 ;;
401 alpha) this_cpu=alpha ;;
402 mips) this_cpu=mips ;;
403 powerpc|ppc) this_cpu=ppc ;;
406 dnl --------------------- operating system specific flags (port from sys/*)
408 dnl ----- FreeBSD specific -----
409 if test x"$this_os" = "xfreebsd"; then
410 AC_MSG_RESULT([ * FreeBSD specific configuration])
412 AC_DEFINE(SENDFILE_FLAVOR_BSD)
414 dnl ----- Set -shared flag
415 LDSHAREDFLAGS="-shared"
418 dnl ----- Linux specific -----
419 if test x"$this_os" = "xlinux"; then
420 AC_MSG_RESULT([ * Linux specific configuration])
422 dnl ----- Set -shared flag
423 LDSHAREDFLAGS="-shared"
425 dnl ----- check if we need the quotactl wrapper
426 AC_CHECK_HEADER(sys/quota.h,,
427 AC_MSG_RESULT([enabling quotactl wrapper])
428 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
431 dnl ----- as far as I can tell, dbtob always does the wrong thing
432 dnl ----- on every single version of linux I've ever played with.
433 dnl ----- see etc/afpd/quota.c
434 AC_DEFINE(HAVE_BROKEN_DBTOB)
436 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
437 dnl ----- check if version is newer than 2.2.x
439 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
440 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
441 if [ $majorvers -ge 2 ]; then
442 if [ $minorvers -ge 2 ]; then
444 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
445 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
447 AC_MSG_RESULT([ * found Linux 2.0.x ])
451 dnl ----- Linux/alpha specific -----
452 if test x"$this_cpu" = "xalpha"; then
453 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
454 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
459 dnl ----- Mac OSX specific -----
460 if test x"$this_os" = "xmacosx"; then
461 AC_MSG_RESULT([ * Mac OSX specific configuration])
463 AC_DEFINE(HAVE_BROKEN_CPP)
464 AC_DEFINE(HAVE_2ARG_DBTOB)
465 AC_DEFINE(NO_DLFCN_H)
466 AC_DEFINE(MACOSX_SERVER)
468 dnl ----- Set -shared flag
469 LDSHAREDFLAGS="-shared"
472 dnl ----- NetBSD specific -----
473 if test x"$this_os" = "xnetbsd"; then
474 AC_MSG_RESULT([ * NetBSD specific configuration])
476 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
477 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
480 dnl ----- Set -shared flag
481 LDSHAREDFLAGS="-shared"
483 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
484 AC_DEFINE(UAM_DHX, 1)
485 AC_DEFINE(UAM_RNDNUM, 1)
488 AC_DEFINE(NO_CRYPT_H, 1)
491 dnl ----- OpenBSD specific -----
492 if test x"$this_os" = "xopenbsd"; then
493 AC_MSG_RESULT([ * OpenBSD specific configuration])
495 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
497 dnl ----- Set -shared flag
498 LDSHAREDFLAGS="-Bforcearchive -shared"
500 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
501 AC_DEFINE(UAM_DHX, 1)
502 AC_DEFINE(UAM_RNDNUM, 1)
505 AC_DEFINE(NO_CRYPT_H, 1)
508 dnl ----- Solaris specific -----
509 if test x"$this_os" = "xsolaris"; then
510 AC_MSG_RESULT([ * Solaris specific configuration])
512 AC_DEFINE(_ISOC9X_SOURCE)
513 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
515 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
518 dnl ----- Set -shared flag
521 AC_MSG_RESULT([enabling Solaris kernel module build])
525 dnl ----- Tru64 specific -----
526 if test x"$this_os" = "xtru64"; then
527 AC_MSG_RESULT([ * Tru64 specific configuration])
529 AC_DEFINE(HAVE_64BIT_LONGS)
530 dnl AC_DEFINE(USE_MOUNT_H)
531 AC_DEFINE(USE_OLD_RQUOTA)
532 dnl AC_DEFINE(USE_UFS_QUOTA_H)
534 AC_CHECK_LIB(security,set_auth_parameters)
535 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
536 LDSHAREDFLAGS="-shared -expect_unresolved \*"
540 dnl ----- Set -shared flag
541 LDSHAREDFLAGS="-shared"
544 dnl -- look for openssl
546 [ --with-ssl-dir=PATH specify path to openssl installation (must contain
547 lib and include dirs) ],
549 if test "x$withval" != "xno"; then
555 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
556 if test -f "$ssldir/include/openssl/cast.h" ; then
557 LDFLAGS="$LDFLAGS -L$ssldir/lib -L$ssldir"
558 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
559 if test "$need_dash_r" = "yes"; then
560 LIBS="$LIBS -R$ssldir/lib -R$ssldir"
563 dnl Check for the crypto library:
564 AC_CHECK_LIB(crypto, main)
565 dnl LIBS="$LIBS -lcrypto"
566 dnl Check for "DES" library (for SSLeay, not openssl):
567 AC_CHECK_LIB(des, main)
569 AC_DEFINE(OPENSSL_DHX, 1)
570 AC_DEFINE(UAM_DHX, 1)
571 AC_DEFINE(UAM_RNDNUM, 1)
574 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
579 dnl --------------------- check for building PGP UAM module
581 AC_ARG_ENABLE(pgp-uam,
582 [ --enable-pgp-uam enable build of PGP UAM module],
583 if test "$enableval" = "yes"; then
584 if test "$compile_ssl" = "yes"; then
585 AC_DEFINE(UAM_PGP, 1)
587 AC_MSG_RESULT([enabling build with PGP UAM module])
592 dnl --------------------- last minute substitutions
599 AC_SUBST(LDSHAREDFLAGS)
601 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
602 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
603 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
604 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
605 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
606 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
607 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
608 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
609 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
610 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
611 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
612 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
614 dnl --------------------- generate files
618 bin/adv1tov2/Makefile
621 bin/afppasswd/Makefile
622 bin/getzones/Makefile
623 bin/megatron/Makefile
629 contrib/macusers/Makefile
631 contrib/printing/Makefile
632 contrib/shell_utils/Makefile
633 contrib/timelord/Makefile
635 distrib/config/Makefile
636 distrib/config/netatalk-config
637 distrib/initscripts/Makefile
642 etc/afpd/nls/Makefile
645 etc/uams/uams_krb4/Makefile
649 include/atalk/Makefile
651 libatalk/adouble/Makefile
652 libatalk/asp/Makefile
653 libatalk/atp/Makefile
654 libatalk/compat/Makefile
655 libatalk/dsi/Makefile
656 libatalk/nbp/Makefile
657 libatalk/netddp/Makefile
658 libatalk/util/Makefile
666 sys/netatalk/Makefile
668 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]