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_ENABLE(shell-check,
282 [ --disable-shell-check disable checking for a valid shell],
283 if test "$enableval" = "no"; then
284 AC_DEFINE(DISABLE_SHELLCHECK, 1)
285 AC_MSG_RESULT([disabling valid shell check])
289 AC_ARG_WITH(flock-locks,
290 [ --with-flock-locks enable flock locks support],
291 AC_MSG_RESULT([enabling flock locks])
292 AC_DEFINE(USE_FLOCK_LOCKS)
295 AC_ARG_WITH(tcp-wrappers,
296 [ --with-tcp-wrappers enable TCP wrappers support],
297 AC_CHECK_LIB(wrap, hosts_access,
300 AC_MSG_RESULT([enabling TCP wrappers support])
304 AC_ARG_ENABLE(redhat,
305 [ --enable-redhat use redhat-style sysv configuration ],
306 if test "$enableval" = "yes"; then
309 AC_MSG_RESULT([enabling redhat-style sysv support])
313 [ --enable-suse use suse-style sysv configuration ],
314 if test "$enableval" = "yes"; then
317 AC_MSG_RESULT([enabling suse-style sysv support])
320 AC_ARG_ENABLE(cobalt,
321 [ --enable-cobalt use cobalt-style sysv configuration ],
322 if test "$enableval" = "yes"; then
325 AC_MSG_RESULT([enabling cobalt-style sysv support])
328 dnl ----- timelord compilation (disabled by default)
330 AC_ARG_ENABLE(timelord,
331 [ --enable-timelord enable compilation of timelord server],
332 if test "$enableval" = "yes"; then
335 AC_MSG_RESULT([enabling timelord compilation])
338 AC_ARG_WITH(uams-path,
339 [ --with-uams-path=path path to UAMs [default=$ac_default_prefix/etc/uams]],
340 uams_path="$withval",
341 uams_path="${config_dir}/uams"
344 dnl --------------------------------------------------------------------------
345 dnl FHS stuff has to be done last because it overrides other defaults
346 dnl --------------------------------------------------------------------------
349 [ --enable-fhs use Filesystem Hierarchy Standard (FHS) compatibility],
350 if test "$enableval" = "yes"; then
351 uams_path="/usr/lib/netatalk"
352 config_dir="/etc/netatalk"
354 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
355 AC_DEFINE(FHS_COMPATIBILITY)
357 AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
360 dnl --------------------------------------------------------------------------
361 dnl post-FHS substitutions, etc
362 dnl --------------------------------------------------------------------------
365 AC_DEFINE_UNQUOTED(CONFIG_DIR, "${config_dir}",
366 [path to config dir [default=$ac_default_prefix/etc]])
367 CONFIG_DIR="${config_dir}"
369 AC_MSG_RESULT([setting configuration files location to $CONFIG_DIR])
372 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
373 [path to UAMs [default=$ac_default_prefix/etc/uams]])
374 UAMS_PATH="${uams_path}"
377 dnl --------------------------------------------------------------------------
378 dnl drop in includes for top level directory structures here...
379 dnl --------------------------------------------------------------------------
380 LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/"
381 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
383 dnl --------------------------------------------------------------------------
384 dnl specific configuration comes in here:
385 dnl --------------------------------------------------------------------------
387 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
389 dnl --------------------- determine operating system from "target"
391 *freebsd*) this_os=freebsd ;;
392 *linux*) this_os=linux ;;
393 *osx*) this_os=macosx ;;
394 *netbsd*) this_os=netbsd ;;
395 *openbsd*) this_os=openbsd ;;
396 *osf*) this_os=tru64 ;;
397 *solaris*) this_os=solaris ;;
401 i386|i486|i586|i686|k7) this_cpu=x86 ;;
402 alpha) this_cpu=alpha ;;
403 mips) this_cpu=mips ;;
404 powerpc|ppc) this_cpu=ppc ;;
407 dnl --------------------- operating system specific flags (port from sys/*)
409 dnl ----- FreeBSD specific -----
410 if test x"$this_os" = "xfreebsd"; then
411 AC_MSG_RESULT([ * FreeBSD specific configuration])
413 AC_DEFINE(SENDFILE_FLAVOR_BSD)
415 dnl ----- Set -shared flag
416 LDSHAREDFLAGS="-shared"
419 dnl ----- Linux specific -----
420 if test x"$this_os" = "xlinux"; then
421 AC_MSG_RESULT([ * Linux specific configuration])
423 dnl ----- Set -shared flag
424 LDSHAREDFLAGS="-shared"
426 dnl ----- check if we need the quotactl wrapper
427 AC_CHECK_HEADER(sys/quota.h,,
428 AC_MSG_RESULT([enabling quotactl wrapper])
429 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
432 dnl ----- as far as I can tell, dbtob always does the wrong thing
433 dnl ----- on every single version of linux I've ever played with.
434 dnl ----- see etc/afpd/quota.c
435 AC_DEFINE(HAVE_BROKEN_DBTOB)
437 dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
438 dnl ----- check if version is newer than 2.2.x
440 majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
441 minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
442 if [ $majorvers -ge 2 ]; then
443 if [ $minorvers -ge 2 ]; then
445 AC_MSG_RESULT([ * found Linux 2.2.x or higher])
446 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
448 AC_MSG_RESULT([ * found Linux 2.0.x ])
452 dnl ----- Linux/alpha specific -----
453 if test x"$this_cpu" = "xalpha"; then
454 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
455 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
460 dnl ----- Mac OSX specific -----
461 if test x"$this_os" = "xmacosx"; then
462 AC_MSG_RESULT([ * Mac OSX specific configuration])
464 AC_DEFINE(HAVE_BROKEN_CPP)
465 AC_DEFINE(HAVE_2ARG_DBTOB)
466 AC_DEFINE(NO_DLFCN_H)
467 AC_DEFINE(MACOSX_SERVER)
469 dnl ----- Set -shared flag
470 LDSHAREDFLAGS="-shared"
473 dnl ----- NetBSD specific -----
474 if test x"$this_os" = "xnetbsd"; then
475 AC_MSG_RESULT([ * NetBSD specific configuration])
477 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
478 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
481 dnl ----- Set -shared flag
482 LDSHAREDFLAGS="-shared"
484 dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
485 AC_DEFINE(UAM_DHX, 1)
486 AC_DEFINE(UAM_RNDNUM, 1)
489 AC_DEFINE(NO_CRYPT_H, 1)
492 dnl ----- OpenBSD specific -----
493 if test x"$this_os" = "xopenbsd"; then
494 AC_MSG_RESULT([ * OpenBSD specific configuration])
496 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
498 dnl ----- Set -shared flag
499 LDSHAREDFLAGS="-Bforcearchive -shared"
501 dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
502 AC_DEFINE(UAM_DHX, 1)
503 AC_DEFINE(UAM_RNDNUM, 1)
506 AC_DEFINE(NO_CRYPT_H, 1)
509 dnl ----- Solaris specific -----
510 if test x"$this_os" = "xsolaris"; then
511 AC_MSG_RESULT([ * Solaris specific configuration])
513 AC_DEFINE(_ISOC9X_SOURCE)
514 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
516 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
519 dnl ----- Set -shared flag
522 AC_MSG_RESULT([enabling Solaris kernel module build])
526 dnl ----- Tru64 specific -----
527 if test x"$this_os" = "xtru64"; then
528 AC_MSG_RESULT([ * Tru64 specific configuration])
530 AC_DEFINE(HAVE_64BIT_LONGS)
531 AC_DEFINE(USE_MOUNT_H)
532 AC_DEFINE(USE_OLD_RQUOTA)
533 AC_DEFINE(USE_UFS_QUOTA_H)
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
596 AC_SUBST(LDSHAREDFLAGS)
597 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
598 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
599 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
600 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
601 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
602 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
603 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
604 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
605 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
606 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
607 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
608 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
610 dnl --------------------- generate files
614 bin/adv1tov2/Makefile
617 bin/afppasswd/Makefile
618 bin/getzones/Makefile
619 bin/megatron/Makefile
626 contrib/printing/Makefile
627 contrib/shell_utils/Makefile
628 contrib/timelord/Makefile
630 distrib/config/Makefile
631 distrib/config/netatalk-config
632 distrib/initscripts/Makefile
637 etc/afpd/nls/Makefile
640 etc/uams/uams_krb4/Makefile
644 include/atalk/Makefile
646 libatalk/adouble/Makefile
647 libatalk/asp/Makefile
648 libatalk/atp/Makefile
649 libatalk/compat/Makefile
650 libatalk/dsi/Makefile
651 libatalk/nbp/Makefile
652 libatalk/netddp/Makefile
653 libatalk/util/Makefile
661 sys/netatalk/Makefile
663 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]