1 dnl configure.in for netatalk
3 AC_INIT(bin/adv1tov2/adv1tov2.c)
5 NETATALK_VERSION=`cat VERSION`
6 AC_SUBST(NETATALK_VERSION)
9 AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION})
10 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 syslog.h unistd.h termios.h sys/termios.h netdb.h sgtty.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(auth-printing-dir,
158 [ --with-auth-printing-dir=path
159 path to authenticated printing directory],
161 AC_DEFINE_UNQUOTED(CAPDIR, "$cap_dir")
163 AC_MSG_RESULT([enabling authenticated printing support]),
166 AC_ARG_WITH(config-dir,
167 [ --with-config-dir=path path to config files [default=$ac_default_prefix/etc]],
168 config_dir="$withval",
169 config_dir="${prefix}/etc"
172 AC_ARG_WITH(cracklib,
173 [ --with-cracklib=dict enable/set location of cracklib dictionary],
175 AC_CHECK_LIB(crack, main,
176 AC_DEFINE(USE_CRACKLIB)
178 AC_MSG_RESULT([enabling cracklib support])
179 if test "$cracklib" = "yes"; then
180 cracklib="/usr/lib/cracklib_dict"
182 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
183 [path to cracklib dictionary])
184 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
185 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])
235 AC_ARG_ENABLE(lastdid,
236 [ --enable-lastdid enable build without DID dev/inode mapping kludge],
237 if test "$enableval" = "yes"; then
238 AC_DEFINE(USE_LASTDID, 1)
239 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
244 AC_ARG_WITH(message-dir,
245 [ --with-msg-dir=path path to message files [default=$ac_default_prefix/etc/msg]],
247 if test x"$msg_dir" = "x"; then
248 msg_dir="${prefix}/etc/msg"
250 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
251 [path to message dir [default=$ac_default_prefix/etc/msg]])
252 SERVERTEXT="$msg_dir"
256 AC_CHECK_LIB(pam, pam_start,
257 AC_DEFINE(USE_PAM, 1)
261 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
264 [ --with-pam enable password authentication modules support],
265 if test "x$compile_pam" = "xyes"; then
267 AC_MSG_RESULT([enabling pam modules support])
269 AC_MSG_RESULT([pam libraries not found. Disabling pam modules support])
275 [ --with-shadow enable shadow password support],
276 AC_MSG_RESULT([enabling shadow password support])
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, hosts_access,
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 AC_ARG_WITH(uams-path,
321 [ --with-uams-path=path path to UAMs [default=$ac_default_prefix/etc/uams]],
322 uams_path="$withval",
323 uams_path="${config_dir}/uams"
326 dnl --------------------------------------------------------------------------
327 dnl FHS stuff has to be done last because it overrides other defaults
328 dnl --------------------------------------------------------------------------
331 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
332 if test "$enableval" = "yes"; then
333 uams_path="/usr/lib/netatalk"
334 config_dir="/etc/netatalk"
336 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
337 AC_DEFINE(FHS_COMPATIBILITY)
339 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
342 dnl --------------------------------------------------------------------------
343 dnl post-FHS substitutions, etc
344 dnl --------------------------------------------------------------------------
347 AC_DEFINE_UNQUOTED(CONFIG_DIR, "${config_dir}",
348 [path to config dir [default=$ac_default_prefix/etc]])
349 CONFIG_DIR="${config_dir}"
351 AC_MSG_RESULT([setting configuration files location to $CONFIG_DIR])
354 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
355 [path to UAMs [default=$ac_default_prefix/etc/uams]])
356 UAMS_PATH="${uams_path}"
359 dnl --------------------------------------------------------------------------
360 dnl drop in includes for top level directory structures here...
361 dnl --------------------------------------------------------------------------
362 LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/"
363 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
365 dnl --------------------------------------------------------------------------
366 dnl specific configuration comes in here:
367 dnl --------------------------------------------------------------------------
369 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
371 dnl --------------------- determine operating system from "target"
373 *freebsd*) this_os=freebsd ;;
374 *linux*) this_os=linux ;;
375 *osx*) this_os=macosx ;;
376 *netbsd*) this_os=netbsd ;;
377 *openbsd*) this_os=openbsd ;;
378 *osf*) this_os=tru64 ;;
379 *solaris*) this_os=solaris ;;
383 i386|i486|i586|i686|k7) this_cpu=x86 ;;
384 alpha) this_cpu=alpha ;;
385 mips) this_cpu=mips ;;
386 powerpc|ppc) this_cpu=ppc ;;
389 dnl --------------------- operating system specific flags (port from sys/*)
391 dnl ----- FreeBSD specific -----
392 if test x"$this_os" = "xfreebsd"; then
393 AC_MSG_RESULT([ * FreeBSD specific configuration])
395 AC_DEFINE(SENDFILE_FLAVOR_BSD)
397 dnl ----- Set -shared flag
398 LDSHAREDFLAGS="-shared"
401 dnl ----- Linux specific -----
402 if test x"$this_os" = "xlinux"; then
403 AC_MSG_RESULT([ * Linux specific configuration])
405 dnl ----- Set -shared flag
406 LDSHAREDFLAGS="-shared"
408 dnl ----- check if we need the quotactl wrapper
409 AC_CHECK_HEADER(sys/quota.h,,
410 AC_MSG_RESULT([enabling quotactl wrapper])
411 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
414 dnl ----- as far as I can tell, dbtob always does the wrong thing
415 dnl ----- on every single version of linux I've ever played with.
416 dnl ----- see etc/afpd/quota.c
417 AC_DEFINE(HAVE_BROKEN_DBTOB)
419 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
420 dnl ----- check if version is newer than 2.2.x
422 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
423 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
424 if [ $majorvers -ge 2 ]; then
425 if [ $minorvers -ge 2 ]; then
427 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
428 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
430 AC_MSG_RESULT([ * found Linux 2.0.x ])
434 dnl ----- Linux/alpha specific -----
435 if test x"$this_cpu" = "xalpha"; then
436 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
437 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
442 dnl ----- Mac OSX specific -----
443 if test x"$this_os" = "xmacosx"; then
444 AC_MSG_RESULT([ * Mac OSX specific configuration])
446 AC_DEFINE(HAVE_BROKEN_CPP)
447 AC_DEFINE(HAVE_2ARG_DBTOB)
448 AC_DEFINE(NO_DLFCN_H)
449 AC_DEFINE(MACOSX_SERVER)
451 dnl ----- Set -shared flag
452 LDSHAREDFLAGS="-shared"
455 dnl ----- NetBSD specific -----
456 if test x"$this_os" = "xnetbsd"; then
457 AC_MSG_RESULT([ * NetBSD specific configuration])
459 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
460 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
463 dnl ----- Set -shared flag
464 LDSHAREDFLAGS="-shared"
466 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
467 AC_DEFINE(UAM_DHX, 1)
468 AC_DEFINE(UAM_RNDNUM, 1)
471 AC_DEFINE(NO_CRYPT_H, 1)
474 dnl ----- OpenBSD specific -----
475 if test x"$this_os" = "xopenbsd"; then
476 AC_MSG_RESULT([ * OpenBSD specific configuration])
478 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
480 dnl ----- Set -shared flag
481 LDSHAREDFLAGS="-Bforcearchive -shared"
483 dnl ----- OpenBSD 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 ----- Solaris specific -----
492 if test x"$this_os" = "xsolaris"; then
493 AC_MSG_RESULT([ * Solaris specific configuration])
495 AC_DEFINE(_ISOC9X_SOURCE)
496 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
498 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
501 dnl ----- Set -shared flag
504 AC_MSG_RESULT([enabling Solaris kernel module build])
508 dnl ----- Tru64 specific -----
509 if test x"$this_os" = "xtru64"; then
510 AC_MSG_RESULT([ * Tru64 specific configuration])
512 AC_DEFINE(HAVE_64BIT_LONGS)
513 AC_DEFINE(USE_MOUNT_H)
514 AC_DEFINE(USE_OLD_RQUOTA)
515 AC_DEFINE(USE_UFS_QUOTA_H)
517 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
518 LDSHAREDFLAGS="-shared -expect_unresolved \*"
522 dnl ----- Set -shared flag
523 LDSHAREDFLAGS="-shared"
526 dnl -- look for openssl
528 [ --with-ssl-dir=PATH specify path to openssl installation (must contain
529 lib and include dirs) ],
531 if test "x$withval" != "$xno"; then
537 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
538 if test -f "$ssldir/include/openssl/cast.h" ; then
539 LDFLAGS="$LDFLAGS -L$ssldir/lib -L$ssldir"
540 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
541 if test "$need_dash_r" = "yes"; then
542 LIBS="$LIBS -R$ssldir/lib -R$ssldir"
545 dnl Check for the crypto library:
546 AC_CHECK_LIB(crypto, main)
547 dnl LIBS="$LIBS -lcrypto"
548 dnl Check for "DES" library (for SSLeay, not openssl):
549 AC_CHECK_LIB(des, main)
551 AC_DEFINE(OPENSSL_DHX, 1)
552 AC_DEFINE(UAM_DHX, 1)
553 AC_DEFINE(UAM_RNDNUM, 1)
556 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
561 dnl --------------------- check for building PGP UAM module
563 AC_ARG_ENABLE(pgp-uam,
564 [ --enable-pgp-uam enable build of PGP UAM module],
565 if test "$enableval" = "yes"; then
566 if test "$compile_ssl" = "yes"; then
567 AC_DEFINE(UAM_PGP, 1)
569 AC_MSG_RESULT([enabling build with PGP UAM module])
574 dnl --------------------- last minute substitutions
578 AC_SUBST(LDSHAREDFLAGS)
579 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
580 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
581 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
582 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
583 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
584 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
585 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
586 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
587 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
588 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
589 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
591 dnl --------------------- generate files
595 bin/adv1tov2/Makefile
598 bin/afppasswd/Makefile
599 bin/getzones/Makefile
600 bin/megatron/Makefile
607 contrib/printing/Makefile
608 contrib/shell_utils/Makefile
609 contrib/timelord/Makefile
611 distrib/config/Makefile
612 distrib/config/netatalk-config
613 distrib/initscripts/Makefile
618 etc/afpd/nls/Makefile
621 etc/uams/uams_krb4/Makefile
625 include/atalk/Makefile
627 libatalk/adouble/Makefile
628 libatalk/asp/Makefile
629 libatalk/atp/Makefile
630 libatalk/compat/Makefile
631 libatalk/dsi/Makefile
632 libatalk/nbp/Makefile
633 libatalk/netddp/Makefile
634 libatalk/util/Makefile
642 sys/netatalk/Makefile
644 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]