1 dnl $Id: configure.in,v 1.74 2001-05-08 13:52:38 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 mntent.h syslog.h unistd.h termios.h sys/termios.h netdb.h sgtty.h ufs/quota.h mount.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(auth-printing-dir,
159 [ --with-auth-printing-dir=path
160 path to authenticated printing directory],
162 AC_DEFINE_UNQUOTED(CAPDIR, "$cap_dir")
164 AC_MSG_RESULT([enabling authenticated printing support]),
167 AC_ARG_WITH(config-dir,
168 [ --with-config-dir=path path to config files [default=$ac_default_prefix/etc]],
169 config_dir="$withval",
170 config_dir="${prefix}/etc"
173 AC_ARG_WITH(cracklib,
174 [ --with-cracklib=dict enable/set location of cracklib dictionary],
176 AC_CHECK_LIB(crack, main,
177 AC_DEFINE(USE_CRACKLIB)
179 AC_MSG_RESULT([enabling cracklib support])
180 if test "$cracklib" = "yes"; then
181 cracklib="/usr/lib/cracklib_dict"
183 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
184 [path to cracklib dictionary])
185 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
186 AC_MSG_ERROR([cracklib not found!])
191 [ --disable-ddp disable DDP],
192 if test "$enableval" = "no"; then
194 AC_MSG_RESULT([disabling DDP])
199 [ --enable-debug enable debug code],
200 if test "$enableval" != "no"; then
201 if test "$enableval" = "yes"; then
204 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
206 AC_MSG_RESULT([enabling debugging code])
213 dnl ----------- A NOTE ABOUT DROPKLUDGE
214 dnl The trouble with this fix is that if you know what the file is called, it
215 dnl can be read from the Unix side. That's okay for most academic institutions
216 dnl since the students don't have telnet access to the Mac servers. There is
217 dnl currently no one working on further development/fixes of DROPKLUDGE.
220 AC_ARG_ENABLE(dropkludge,
221 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
222 if test "$enableval" = "yes"; then
223 AC_DEFINE(DROPKLUDGE, 1)
224 AC_MSG_RESULT([enabling experimental dropbox support])
228 AC_ARG_ENABLE(force-uidgid,
229 [ --enable-force-uidgid allow forcing of uid/gid per volume (BROKEN) ],
230 if test "$enableval" = "yes"; then
231 AC_DEFINE(FORCE_UIDGID, 1)
232 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
236 AC_ARG_ENABLE(lastdid,
237 [ --enable-lastdid enable build without DID dev/inode mapping kludge],
238 if test "$enableval" = "yes"; then
239 AC_DEFINE(USE_LASTDID, 1)
240 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
245 AC_ARG_WITH(message-dir,
246 [ --with-msg-dir=path path to message files [default=$ac_default_prefix/etc/msg]],
248 if test x"$msg_dir" = "x"; then
249 msg_dir="${prefix}/etc/msg"
251 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
252 [path to message dir [default=$ac_default_prefix/etc/msg]])
253 SERVERTEXT="$msg_dir"
257 AC_CHECK_LIB(pam, pam_start,
258 AC_DEFINE(USE_PAM, 1)
262 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
265 [ --with-pam enable password authentication modules support],
266 if test "x$compile_pam" = "xyes"; then
268 AC_MSG_RESULT([enabling pam modules support])
270 AC_MSG_RESULT([pam libraries not found. Disabling pam modules support])
276 [ --with-shadow enable shadow password support],
277 AC_MSG_RESULT([enabling shadow password support])
282 AC_ARG_ENABLE(shell-check,
283 [ --disable-shell-check disable checking for a valid shell],
284 if test "$enableval" = "no"; then
285 AC_DEFINE(DISABLE_SHELLCHECK, 1)
286 AC_MSG_RESULT([disabling valid shell check])
290 AC_ARG_WITH(flock-locks,
291 [ --with-flock-locks enable flock locks support],
292 AC_MSG_RESULT([enabling flock locks])
293 AC_DEFINE(USE_FLOCK_LOCKS)
296 AC_ARG_WITH(tcp-wrappers,
297 [ --with-tcp-wrappers enable TCP wrappers support],
298 AC_CHECK_LIB(wrap, tcpd_warn,
300 AFPD_LIBS="$AFPD_LIBS -lwrap"
301 AC_MSG_RESULT([enabling TCP wrappers support])
305 AC_ARG_ENABLE(redhat,
306 [ --enable-redhat use redhat-style sysv configuration ],
307 if test "$enableval" = "yes"; then
310 AC_MSG_RESULT([enabling redhat-style sysv support])
314 [ --enable-suse use suse-style sysv configuration ],
315 if test "$enableval" = "yes"; then
318 AC_MSG_RESULT([enabling suse-style sysv support])
321 AC_ARG_ENABLE(cobalt,
322 [ --enable-cobalt use cobalt-style sysv configuration ],
323 if test "$enableval" = "yes"; then
326 AC_MSG_RESULT([enabling cobalt-style sysv support])
329 dnl ----- timelord compilation (disabled by default)
331 AC_ARG_ENABLE(timelord,
332 [ --enable-timelord enable compilation of timelord server],
333 if test "$enableval" = "yes"; then
336 AC_MSG_RESULT([enabling timelord compilation])
339 AC_ARG_WITH(uams-path,
340 [ --with-uams-path=path path to UAMs [default=$ac_default_prefix/etc/uams]],
341 uams_path="$withval",
342 uams_path="${config_dir}/uams"
345 dnl --------------------------------------------------------------------------
346 dnl FHS stuff has to be done last because it overrides other defaults
347 dnl --------------------------------------------------------------------------
350 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
351 if test "$enableval" = "yes"; then
352 uams_path="/usr/lib/netatalk"
353 config_dir="/etc/netatalk"
355 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
356 AC_DEFINE(FHS_COMPATIBILITY)
358 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
361 dnl --------------------------------------------------------------------------
362 dnl post-FHS substitutions, etc
363 dnl --------------------------------------------------------------------------
366 AC_DEFINE_UNQUOTED(CONFIG_DIR, "${config_dir}",
367 [path to config dir [default=$ac_default_prefix/etc]])
368 CONFIG_DIR="${config_dir}"
370 AC_MSG_RESULT([setting configuration files location to $CONFIG_DIR])
373 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
374 [path to UAMs [default=$ac_default_prefix/etc/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 *freebsd*) this_os=freebsd ;;
393 *linux*) this_os=linux ;;
394 *osx*) this_os=macosx ;;
395 *netbsd*) this_os=netbsd ;;
396 *openbsd*) this_os=openbsd ;;
397 *osf*) this_os=tru64 ;;
398 *solaris*) this_os=solaris ;;
402 i386|i486|i586|i686|k7) this_cpu=x86 ;;
403 alpha) this_cpu=alpha ;;
404 mips) this_cpu=mips ;;
405 powerpc|ppc) this_cpu=ppc ;;
408 dnl --------------------- operating system specific flags (port from sys/*)
410 dnl ----- FreeBSD specific -----
411 if test x"$this_os" = "xfreebsd"; then
412 AC_MSG_RESULT([ * FreeBSD specific configuration])
414 AC_DEFINE(SENDFILE_FLAVOR_BSD)
416 dnl ----- Set -shared flag
417 LDSHAREDFLAGS="-shared"
420 dnl ----- Linux specific -----
421 if test x"$this_os" = "xlinux"; then
422 AC_MSG_RESULT([ * Linux specific configuration])
424 dnl ----- Set -shared flag
425 LDSHAREDFLAGS="-shared"
427 dnl ----- check if we need the quotactl wrapper
428 AC_CHECK_HEADER(sys/quota.h,,
429 AC_MSG_RESULT([enabling quotactl wrapper])
430 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
433 dnl ----- as far as I can tell, dbtob always does the wrong thing
434 dnl ----- on every single version of linux I've ever played with.
435 dnl ----- see etc/afpd/quota.c
436 AC_DEFINE(HAVE_BROKEN_DBTOB)
438 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
439 dnl ----- check if version is newer than 2.2.x
441 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
442 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
443 if [ $majorvers -ge 2 ]; then
444 if [ $minorvers -ge 2 ]; then
446 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
447 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
449 AC_MSG_RESULT([ * found Linux 2.0.x ])
453 dnl ----- Linux/alpha specific -----
454 if test x"$this_cpu" = "xalpha"; then
455 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
456 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
461 dnl ----- Mac OSX specific -----
462 if test x"$this_os" = "xmacosx"; then
463 AC_MSG_RESULT([ * Mac OSX specific configuration])
465 AC_DEFINE(HAVE_BROKEN_CPP)
466 AC_DEFINE(HAVE_2ARG_DBTOB)
467 AC_DEFINE(NO_DLFCN_H)
468 AC_DEFINE(MACOSX_SERVER)
470 dnl ----- Set -shared flag
471 LDSHAREDFLAGS="-shared"
474 dnl ----- NetBSD specific -----
475 if test x"$this_os" = "xnetbsd"; then
476 AC_MSG_RESULT([ * NetBSD specific configuration])
478 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
479 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
482 dnl ----- Set -shared flag
483 LDSHAREDFLAGS="-shared"
485 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
486 AC_DEFINE(UAM_DHX, 1)
487 AC_DEFINE(UAM_RNDNUM, 1)
490 AC_DEFINE(NO_CRYPT_H, 1)
493 dnl ----- OpenBSD specific -----
494 if test x"$this_os" = "xopenbsd"; then
495 AC_MSG_RESULT([ * OpenBSD specific configuration])
497 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
499 dnl ----- Set -shared flag
500 LDSHAREDFLAGS="-Bforcearchive -shared"
502 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
503 AC_DEFINE(UAM_DHX, 1)
504 AC_DEFINE(UAM_RNDNUM, 1)
507 AC_DEFINE(NO_CRYPT_H, 1)
510 dnl ----- Solaris specific -----
511 if test x"$this_os" = "xsolaris"; then
512 AC_MSG_RESULT([ * Solaris specific configuration])
514 AC_DEFINE(_ISOC9X_SOURCE)
515 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
517 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
520 dnl ----- Set -shared flag
523 AC_MSG_RESULT([enabling Solaris kernel module build])
527 dnl ----- Tru64 specific -----
528 if test x"$this_os" = "xtru64"; then
529 AC_MSG_RESULT([ * Tru64 specific configuration])
531 AC_DEFINE(HAVE_64BIT_LONGS)
532 dnl AC_DEFINE(USE_MOUNT_H)
533 AC_DEFINE(USE_OLD_RQUOTA)
534 dnl AC_DEFINE(USE_UFS_QUOTA_H)
536 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
537 LDSHAREDFLAGS="-shared -expect_unresolved \*"
541 dnl ----- Set -shared flag
542 LDSHAREDFLAGS="-shared"
545 dnl -- look for openssl
547 [ --with-ssl-dir=PATH specify path to openssl installation (must contain
548 lib and include dirs) ],
550 if test "x$withval" != "xno"; then
556 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
557 if test -f "$ssldir/include/openssl/cast.h" ; then
558 LDFLAGS="$LDFLAGS -L$ssldir/lib -L$ssldir"
559 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
560 if test "$need_dash_r" = "yes"; then
561 LIBS="$LIBS -R$ssldir/lib -R$ssldir"
564 dnl Check for the crypto library:
565 AC_CHECK_LIB(crypto, main)
566 dnl LIBS="$LIBS -lcrypto"
567 dnl Check for "DES" library (for SSLeay, not openssl):
568 AC_CHECK_LIB(des, main)
570 AC_DEFINE(OPENSSL_DHX, 1)
571 AC_DEFINE(UAM_DHX, 1)
572 AC_DEFINE(UAM_RNDNUM, 1)
575 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
580 dnl --------------------- check for building PGP UAM module
582 AC_ARG_ENABLE(pgp-uam,
583 [ --enable-pgp-uam enable build of PGP UAM module],
584 if test "$enableval" = "yes"; then
585 if test "$compile_ssl" = "yes"; then
586 AC_DEFINE(UAM_PGP, 1)
588 AC_MSG_RESULT([enabling build with PGP UAM module])
593 dnl --------------------- last minute substitutions
600 AC_SUBST(LDSHAREDFLAGS)
602 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
603 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
604 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
605 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
606 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
607 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
608 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
609 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
610 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
611 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
612 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
613 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
615 dnl --------------------- generate files
619 bin/adv1tov2/Makefile
622 bin/afppasswd/Makefile
623 bin/getzones/Makefile
624 bin/megatron/Makefile
630 contrib/macusers/Makefile
632 contrib/printing/Makefile
633 contrib/shell_utils/Makefile
634 contrib/timelord/Makefile
636 distrib/config/Makefile
637 distrib/config/netatalk-config
638 distrib/initscripts/Makefile
643 etc/afpd/nls/Makefile
646 etc/uams/uams_krb4/Makefile
650 include/atalk/Makefile
652 libatalk/adouble/Makefile
653 libatalk/asp/Makefile
654 libatalk/atp/Makefile
655 libatalk/compat/Makefile
656 libatalk/dsi/Makefile
657 libatalk/nbp/Makefile
658 libatalk/netddp/Makefile
659 libatalk/util/Makefile
667 sys/netatalk/Makefile
669 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]