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 AC_DEFINE(DROPKLUDGE, 1)
219 AC_MSG_RESULT([enabling experimental dropbox support])
222 AC_ARG_ENABLE(lastdid,
223 [ --enable-lastdid enable build without DID dev/inode mapping kludge],
224 if test "$enableval" = "yes"; then
225 AC_DEFINE(USE_LASTDID, 1)
226 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
231 AC_ARG_WITH(message-dir,
232 [ --with-msg-dir=path path to message files [default=/etc/atalk/msg]],
234 if test x"$msg_dir" = "x"; then
235 msg_dir="$CONFIG_DIR/msg"
237 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
238 [path to message dir [default=$CONFIG_DIR/msg]])
239 SERVERTEXT="$msg_dir"
243 AC_CHECK_LIB(pam, pam_start,
244 AC_DEFINE(USE_PAM, 1)
248 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
251 [ --with-pam enable password authentication modules support],
252 if test "x$compile_pam" = "xyes"; then
254 AC_MSG_RESULT([enabling pam modules support])
256 AC_MSG_RESULT([pam libraries not found. Disabling pam modules support])
261 [ --with-shadow enable shadow password support],
262 AC_MSG_RESULT([enabling shadow password support])
266 AC_ARG_WITH(flock-locks,
267 [ --with-flock-locks enable flock locks support],
268 AC_MSG_RESULT([enabling flock locks])
269 AC_DEFINE(USE_FLOCK_LOCKS)
272 AC_ARG_WITH(tcp-wrappers,
273 [ --with-tcp-wrappers enable TCP wrappers support],
274 AC_CHECK_LIB(wrap, main,
277 AC_MSG_RESULT([enabling TCP wrappers support])
281 AC_ARG_ENABLE(redhat,
282 [ --enable-redhat use redhat-style sysv configuration ],
283 if test "$enableval" = "yes"; then
286 AC_MSG_RESULT([enabling redhat-style sysv support])
289 AC_ARG_ENABLE(cobalt,
290 [ --enable-cobalt use cobalt-style sysv configuration ],
291 if test "$enableval" = "yes"; then
294 AC_MSG_RESULT([enabling cobalt-style sysv support])
297 AC_ARG_WITH(uams-path,
298 [ --with-uams-path=path path to UAMs [default=/etc/atalk/uams]],
299 uams_path="$withval",
300 uams_path="$config_dir/uams"
302 AC_DEFINE_UNQUOTED(UAMS_PATH, "$uams_path",
303 [path to UAMs [default=/etc/atalk/uams]])
304 UAMS_PATH="$uams_path"
307 dnl --------------------------------------------------------------------------
308 dnl drop in includes for top level directory structures here...
309 dnl --------------------------------------------------------------------------
310 LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/"
311 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
313 dnl --------------------------------------------------------------------------
314 dnl specific configuration comes in here:
315 dnl --------------------------------------------------------------------------
317 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
319 dnl --------------------- determine operating system from "target"
321 *freebsd*) this_os=freebsd ;;
322 *linux*) this_os=linux ;;
323 *osx*) this_os=macosx ;;
324 *netbsd*) this_os=netbsd ;;
325 *openbsd*) this_os=openbsd ;;
326 *osf*) this_os=tru64 ;;
327 *solaris*) this_os=solaris ;;
331 i386|i486|i586|i686|k7) this_cpu=x86 ;;
332 alpha) this_cpu=alpha ;;
333 mips) this_cpu=mips ;;
334 powerpc|ppc) this_cpu=ppc ;;
337 dnl --------------------- operating system specific flags (port from sys/*)
339 dnl ----- FreeBSD specific -----
340 if test x"$this_os" = "xfreebsd"; then
341 AC_MSG_RESULT([ * FreeBSD specific configuration])
343 AC_DEFINE(SENDFILE_FLAVOR_BSD)
346 dnl ----- Linux specific -----
347 if test x"$this_os" = "xlinux"; then
348 AC_MSG_RESULT([ * Linux specific configuration])
349 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
351 dnl ----- check if we need the quotactl wrapper
352 AC_CHECK_HEADER(sys/quota.h,,
353 AC_MSG_RESULT([enabling quotactl wrapper])
354 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
357 dnl ----- Linux/alpha specific -----
358 if test x"$this_cpu" = "xalpha"; then
359 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
360 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
365 dnl ----- Mac OSX specific -----
366 if test x"$this_os" = "xmacosx"; then
367 AC_MSG_RESULT([ * Mac OSX specific configuration])
369 AC_DEFINE(HAVE_BROKEN_CPP)
370 AC_DEFINE(HAVE_2ARG_DBTOB)
371 AC_DEFINE(NO_DLFCN_H)
372 AC_DEFINE(MACOSX_SERVER)
375 dnl ----- NetBSD specific -----
376 if test x"$this_os" = "xnetbsd"; then
377 AC_MSG_RESULT([ * NetBSD specific configuration])
379 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
380 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
384 dnl ----- OpenBSD specific -----
385 if test x"$this_os" = "xopenbsd"; then
386 AC_MSG_RESULT([ * OpenBSD specific configuration])
390 dnl ----- Solaris specific -----
391 if test x"$this_os" = "xsolaris"; then
392 AC_MSG_RESULT([ * Solaris specific configuration])
394 AC_DEFINE(_ISOC9X_SOURCE)
395 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
397 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
401 dnl ----- Tru64 specific -----
402 if test x"$this_os" = "xtru64"; then
403 AC_MSG_RESULT([ * Tru64 specific configuration])
405 AC_DEFINE(HAVE_64BIT_LONGS)
406 AC_DEFINE(USE_MOUNT_H)
407 AC_DEFINE(USE_OLD_RQUOTA)
408 AC_DEFINE(USE_UFS_QUOTA_H)
410 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
411 LDSHAREDFLAGS="-expect_unresolved \*"
416 dnl -- look for openssl
418 [ --with-ssl-dir=PATH specify path to openssl installation (must contain
419 lib and include dirs) ],
421 if test "x$withval" != "$xno"; then
427 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
428 if test -f "$ssldir/include/openssl/cast.h" ; then
429 LDFLAGS="$LDFLAGS -L$ssldir/lib -L$ssldir"
430 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
431 if test "$need_dash_r" = "yes"; then
432 LIBS="$LIBS -R$ssldir/lib -R$ssldir"
435 dnl Check for the crypto library:
436 AC_CHECK_LIB(crypto, main)
437 dnl LIBS="$LIBS -lcrypto"
438 dnl Check for "DES" library (for SSLeay, not openssl):
439 AC_CHECK_LIB(des, main)
441 AC_DEFINE(OPENSSL_DHX, 1)
442 AC_DEFINE(UAM_DHX, 1)
443 dnl AC_DEFINE(UAM_PGP, 1)
444 AC_DEFINE(UAM_RNDNUM, 1)
447 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
452 dnl --------------------- last minute substitutions
456 AC_SUBST(LDSHAREDFLAGS)
457 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
458 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
459 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
460 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
461 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
462 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
463 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
465 dnl --------------------- generate files
469 bin/adv1tov2/Makefile
472 bin/afppasswd/Makefile
473 bin/getzones/Makefile
474 bin/megatron/Makefile
481 contrib/printing/Makefile
482 contrib/shell_utils/Makefile
483 contrib/timelord/Makefile
485 distrib/config/Makefile
486 distrib/config/netatalk-config
487 distrib/initscripts/Makefile
491 etc/afpd/nls/Makefile
497 include/atalk/Makefile
499 libatalk/adouble/Makefile
500 libatalk/asp/Makefile
501 libatalk/atp/Makefile
502 libatalk/compat/Makefile
503 libatalk/dsi/Makefile
504 libatalk/nbp/Makefile
505 libatalk/netddp/Makefile
506 libatalk/util/Makefile
514 sys/netatalk/Makefile
516 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]