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])
299 AC_ARG_ENABLE(cobalt,
300 [ --enable-cobalt use cobalt-style sysv configuration ],
301 if test "$enableval" = "yes"; then
304 AC_MSG_RESULT([enabling cobalt-style sysv support])
307 AC_ARG_WITH(uams-path,
308 [ --with-uams-path=path path to UAMs [default=/etc/atalk/uams]],
309 uams_path="$withval",
310 uams_path="$config_dir/uams"
312 AC_DEFINE_UNQUOTED(UAMS_PATH, "$uams_path",
313 [path to UAMs [default=/etc/atalk/uams]])
314 UAMS_PATH="$uams_path"
317 dnl --------------------------------------------------------------------------
318 dnl drop in includes for top level directory structures here...
319 dnl --------------------------------------------------------------------------
320 LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/"
321 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
323 dnl --------------------------------------------------------------------------
324 dnl specific configuration comes in here:
325 dnl --------------------------------------------------------------------------
327 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
329 dnl --------------------- determine operating system from "target"
331 *freebsd*) this_os=freebsd ;;
332 *linux*) this_os=linux ;;
333 *osx*) this_os=macosx ;;
334 *netbsd*) this_os=netbsd ;;
335 *openbsd*) this_os=openbsd ;;
336 *osf*) this_os=tru64 ;;
337 *solaris*) this_os=solaris ;;
341 i386|i486|i586|i686|k7) this_cpu=x86 ;;
342 alpha) this_cpu=alpha ;;
343 mips) this_cpu=mips ;;
344 powerpc|ppc) this_cpu=ppc ;;
347 dnl --------------------- operating system specific flags (port from sys/*)
349 dnl ----- FreeBSD specific -----
350 if test x"$this_os" = "xfreebsd"; then
351 AC_MSG_RESULT([ * FreeBSD specific configuration])
353 AC_DEFINE(SENDFILE_FLAVOR_BSD)
356 dnl ----- Linux specific -----
357 if test x"$this_os" = "xlinux"; then
358 AC_MSG_RESULT([ * Linux specific configuration])
359 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
361 dnl ----- check if we need the quotactl wrapper
362 AC_CHECK_HEADER(sys/quota.h,,
363 AC_MSG_RESULT([enabling quotactl wrapper])
364 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
367 dnl ----- Linux/alpha specific -----
368 if test x"$this_cpu" = "xalpha"; then
369 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
370 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
375 dnl ----- Mac OSX specific -----
376 if test x"$this_os" = "xmacosx"; then
377 AC_MSG_RESULT([ * Mac OSX specific configuration])
379 AC_DEFINE(HAVE_BROKEN_CPP)
380 AC_DEFINE(HAVE_2ARG_DBTOB)
381 AC_DEFINE(NO_DLFCN_H)
382 AC_DEFINE(MACOSX_SERVER)
385 dnl ----- NetBSD specific -----
386 if test x"$this_os" = "xnetbsd"; then
387 AC_MSG_RESULT([ * NetBSD specific configuration])
389 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
390 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
394 dnl ----- OpenBSD specific -----
395 if test x"$this_os" = "xopenbsd"; then
396 AC_MSG_RESULT([ * OpenBSD specific configuration])
400 dnl ----- Solaris specific -----
401 if test x"$this_os" = "xsolaris"; then
402 AC_MSG_RESULT([ * Solaris specific configuration])
404 AC_DEFINE(_ISOC9X_SOURCE)
405 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
407 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
411 dnl ----- Tru64 specific -----
412 if test x"$this_os" = "xtru64"; then
413 AC_MSG_RESULT([ * Tru64 specific configuration])
415 AC_DEFINE(HAVE_64BIT_LONGS)
416 AC_DEFINE(USE_MOUNT_H)
417 AC_DEFINE(USE_OLD_RQUOTA)
418 AC_DEFINE(USE_UFS_QUOTA_H)
420 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
421 LDSHAREDFLAGS="-expect_unresolved \*"
426 dnl -- look for openssl
428 [ --with-ssl-dir=PATH specify path to openssl installation (must contain
429 lib and include dirs) ],
431 if test "x$withval" != "$xno"; then
437 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
438 if test -f "$ssldir/include/openssl/cast.h" ; then
439 LDFLAGS="$LDFLAGS -L$ssldir/lib -L$ssldir"
440 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
441 if test "$need_dash_r" = "yes"; then
442 LIBS="$LIBS -R$ssldir/lib -R$ssldir"
445 dnl Check for the crypto library:
446 AC_CHECK_LIB(crypto, main)
447 dnl LIBS="$LIBS -lcrypto"
448 dnl Check for "DES" library (for SSLeay, not openssl):
449 AC_CHECK_LIB(des, main)
451 AC_DEFINE(OPENSSL_DHX, 1)
452 AC_DEFINE(UAM_DHX, 1)
453 dnl AC_DEFINE(UAM_PGP, 1)
454 AC_DEFINE(UAM_RNDNUM, 1)
457 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
462 dnl --------------------- last minute substitutions
466 AC_SUBST(LDSHAREDFLAGS)
467 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
468 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
469 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
470 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
471 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
472 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
473 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
475 dnl --------------------- generate files
479 bin/adv1tov2/Makefile
482 bin/afppasswd/Makefile
483 bin/getzones/Makefile
484 bin/megatron/Makefile
491 contrib/printing/Makefile
492 contrib/shell_utils/Makefile
493 contrib/timelord/Makefile
495 distrib/config/Makefile
496 distrib/config/netatalk-config
497 distrib/initscripts/Makefile
501 etc/afpd/nls/Makefile
507 include/atalk/Makefile
509 libatalk/adouble/Makefile
510 libatalk/asp/Makefile
511 libatalk/atp/Makefile
512 libatalk/compat/Makefile
513 libatalk/dsi/Makefile
514 libatalk/nbp/Makefile
515 libatalk/netddp/Makefile
516 libatalk/util/Makefile
524 sys/netatalk/Makefile
526 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]