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)
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/file.h sys/ioctl.h sys/time.h syslog.h unistd.h termios.h netdb.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])
149 AC_ARG_WITH(auth-printing-dir,
150 [ --with-auth-printing-dir=path
151 path to authenticated printing directory],
153 AC_DEFINE_UNQUOTED(CAPDIR, "$cap_dir")
155 AC_MSG_RESULT([enabling authenticated printing support]),
158 AC_ARG_WITH(config-dir,
159 [ --with-config-dir=path path to config files [default=/etc/atalk]],
160 config_dir="$withval",
161 config_dir="/etc/atalk"
163 AC_DEFINE_UNQUOTED(CONFIG_DIR, "$config_dir",
164 [path to config dir [default=/etc/atalk]])
165 CONFIG_DIR="$config_dir"
167 AC_MSG_RESULT([setting configuration files location to $CONFIG_DIR])
169 AC_ARG_WITH(cracklib,
170 [ --with-cracklib=dict enable/set location of cracklib dictionary],
172 AC_CHECK_LIB(crack, main,
173 AC_DEFINE(USE_CRACKLIB)
175 AC_MSG_RESULT([enabling cracklib support])
176 if test "$cracklib" = "yes"; then
177 cracklib="/usr/lib/cracklib_dict"
179 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
180 [path to cracklib dictionary])
181 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
182 AC_MSG_ERROR([cracklib not found!])
187 [ --disable-ddp disable DDP],
188 if test "$enableval" = "no"; then
190 AC_MSG_RESULT([disabling DDP])
195 [ --enable-debug enable debug code],
196 if test "$enableval" != "no"; then
197 if test "$enableval" = "yes"; then
200 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
202 AC_MSG_RESULT([enabling debugging code])
209 dnl ----------- A NOTE ABOUT DROPKLUDGE
210 dnl The trouble with this fix is that if you know what the file is called, it
211 dnl can be read from the Unix side. That's okay for most academic institutions
212 dnl since the students don't have telnet access to the Mac servers. There is
213 dnl currently no one working on further development/fixes of DROPKLUDGE.
216 AC_ARG_ENABLE(dropkludge,
217 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
218 if test "$enableval" = "yes"; then
219 AC_DEFINE(DROPKLUDGE, 1)
220 AC_MSG_RESULT([enabling experimental dropbox support])
224 AC_ARG_ENABLE(force-uidgid,
225 [ --enable-force-uidgid allow forcing of uid/gid per volume (INSECURE?) ],
226 if test "$enableval" = "yes"; then
227 AC_DEFINE(FORCE_UIDGID, 1)
228 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
232 AC_ARG_ENABLE(lastdid,
233 [ --enable-lastdid enable build without DID dev/inode mapping kludge],
234 if test "$enableval" = "yes"; then
235 AC_DEFINE(USE_LASTDID, 1)
236 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
241 AC_ARG_WITH(message-dir,
242 [ --with-msg-dir=path path to message files [default=/etc/atalk/msg]],
244 if test x"$msg_dir" = "x"; then
245 msg_dir="$CONFIG_DIR/msg"
247 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
248 [path to message dir [default=$CONFIG_DIR/msg]])
249 SERVERTEXT="$msg_dir"
253 AC_CHECK_LIB(pam, pam_start,
254 AC_DEFINE(USE_PAM, 1)
258 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
261 [ --with-pam enable password authentication modules support],
262 if test "x$compile_pam" = "xyes"; then
264 AC_MSG_RESULT([enabling pam modules support])
266 AC_MSG_RESULT([pam libraries not found. Disabling pam modules support])
271 [ --with-shadow enable shadow password support],
272 AC_MSG_RESULT([enabling shadow password support])
276 AC_ARG_WITH(flock-locks,
277 [ --with-flock-locks enable flock locks support],
278 AC_MSG_RESULT([enabling flock locks])
279 AC_DEFINE(USE_FLOCK_LOCKS)
282 AC_ARG_WITH(tcp-wrappers,
283 [ --with-tcp-wrappers enable TCP wrappers support],
284 AC_CHECK_LIB(wrap, main,
287 AC_MSG_RESULT([enabling TCP wrappers support])
291 AC_ARG_ENABLE(redhat,
292 [ --enable-redhat use redhat-style sysv configuration ],
293 if test "$enableval" = "yes"; then
296 AC_MSG_RESULT([enabling redhat-style sysv support])
300 [ --enable-suse use suse-style sysv configuration ],
301 if test "$enableval" = "yes"; then
304 AC_MSG_RESULT([enabling suse-style sysv support])
307 AC_ARG_ENABLE(cobalt,
308 [ --enable-cobalt use cobalt-style sysv configuration ],
309 if test "$enableval" = "yes"; then
312 AC_MSG_RESULT([enabling cobalt-style sysv support])
315 AC_ARG_WITH(uams-path,
316 [ --with-uams-path=path path to UAMs [default=/etc/atalk/uams]],
317 uams_path="$withval",
318 uams_path="$config_dir/uams"
320 AC_DEFINE_UNQUOTED(UAMS_PATH, "$uams_path",
321 [path to UAMs [default=/etc/atalk/uams]])
322 UAMS_PATH="$uams_path"
325 dnl --------------------------------------------------------------------------
326 dnl drop in includes for top level directory structures here...
327 dnl --------------------------------------------------------------------------
328 LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/"
329 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
331 dnl --------------------------------------------------------------------------
332 dnl specific configuration comes in here:
333 dnl --------------------------------------------------------------------------
335 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
337 dnl --------------------- determine operating system from "target"
339 *freebsd*) this_os=freebsd ;;
340 *linux*) this_os=linux ;;
341 *osx*) this_os=macosx ;;
342 *netbsd*) this_os=netbsd ;;
343 *openbsd*) this_os=openbsd ;;
344 *osf*) this_os=tru64 ;;
345 *solaris*) this_os=solaris ;;
349 i386|i486|i586|i686|k7) this_cpu=x86 ;;
350 alpha) this_cpu=alpha ;;
351 mips) this_cpu=mips ;;
352 powerpc|ppc) this_cpu=ppc ;;
355 dnl --------------------- operating system specific flags (port from sys/*)
357 dnl ----- FreeBSD specific -----
358 if test x"$this_os" = "xfreebsd"; then
359 AC_MSG_RESULT([ * FreeBSD specific configuration])
361 AC_DEFINE(SENDFILE_FLAVOR_BSD)
364 dnl ----- Linux specific -----
365 if test x"$this_os" = "xlinux"; then
366 AC_MSG_RESULT([ * Linux specific configuration])
367 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
369 dnl ----- check if we need the quotactl wrapper
370 AC_CHECK_HEADER(sys/quota.h,,
371 AC_MSG_RESULT([enabling quotactl wrapper])
372 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
375 dnl ----- Linux/alpha specific -----
376 if test x"$this_cpu" = "xalpha"; then
377 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
378 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
383 dnl ----- Mac OSX specific -----
384 if test x"$this_os" = "xmacosx"; then
385 AC_MSG_RESULT([ * Mac OSX specific configuration])
387 AC_DEFINE(HAVE_BROKEN_CPP)
388 AC_DEFINE(HAVE_2ARG_DBTOB)
389 AC_DEFINE(NO_DLFCN_H)
390 AC_DEFINE(MACOSX_SERVER)
393 dnl ----- NetBSD specific -----
394 if test x"$this_os" = "xnetbsd"; then
395 AC_MSG_RESULT([ * NetBSD specific configuration])
397 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
398 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
402 dnl ----- OpenBSD specific -----
403 if test x"$this_os" = "xopenbsd"; then
404 AC_MSG_RESULT([ * OpenBSD specific configuration])
408 dnl ----- Solaris specific -----
409 if test x"$this_os" = "xsolaris"; then
410 AC_MSG_RESULT([ * Solaris specific configuration])
412 AC_DEFINE(_ISOC9X_SOURCE)
413 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
415 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
417 AC_MSG_RESULT([enabling Solaris kernel module build])
421 dnl ----- Tru64 specific -----
422 if test x"$this_os" = "xtru64"; then
423 AC_MSG_RESULT([ * Tru64 specific configuration])
425 AC_DEFINE(HAVE_64BIT_LONGS)
426 AC_DEFINE(USE_MOUNT_H)
427 AC_DEFINE(USE_OLD_RQUOTA)
428 AC_DEFINE(USE_UFS_QUOTA_H)
430 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
431 LDSHAREDFLAGS="-expect_unresolved \*"
436 dnl -- look for openssl
438 [ --with-ssl-dir=PATH specify path to openssl installation (must contain
439 lib and include dirs) ],
441 if test "x$withval" != "$xno"; then
447 for ssldir in "" $tryssldir /usr /usr/local/openssl /usr/lib/openssl/ /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl ; do
448 if test -f "$ssldir/include/openssl/cast.h" ; then
449 LDFLAGS="$LDFLAGS -L$ssldir/lib -L$ssldir"
450 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
451 if test "$need_dash_r" = "yes"; then
452 LIBS="$LIBS -R$ssldir/lib -R$ssldir"
455 dnl Check for the crypto library:
456 AC_CHECK_LIB(crypto, main)
457 dnl LIBS="$LIBS -lcrypto"
458 dnl Check for "DES" library (for SSLeay, not openssl):
459 AC_CHECK_LIB(des, main)
461 AC_DEFINE(OPENSSL_DHX, 1)
462 AC_DEFINE(UAM_DHX, 1)
463 dnl AC_DEFINE(UAM_PGP, 1)
464 AC_DEFINE(UAM_RNDNUM, 1)
467 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
472 dnl --------------------- last minute substitutions
476 AC_SUBST(LDSHAREDFLAGS)
477 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
478 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
479 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
480 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
481 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
482 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
483 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
484 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
485 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
487 dnl --------------------- generate files
491 bin/adv1tov2/Makefile
494 bin/afppasswd/Makefile
495 bin/getzones/Makefile
496 bin/megatron/Makefile
503 contrib/printing/Makefile
504 contrib/shell_utils/Makefile
505 contrib/timelord/Makefile
507 distrib/config/Makefile
508 distrib/config/netatalk-config
509 distrib/initscripts/Makefile
513 etc/afpd/nls/Makefile
519 include/atalk/Makefile
521 libatalk/adouble/Makefile
522 libatalk/asp/Makefile
523 libatalk/atp/Makefile
524 libatalk/compat/Makefile
525 libatalk/dsi/Makefile
526 libatalk/nbp/Makefile
527 libatalk/netddp/Makefile
528 libatalk/util/Makefile
536 sys/netatalk/Makefile
538 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]