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)
247 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
250 [ --with-pam enable password authentication modules support],
251 if test "x$compile_pam" = "xyes"; then
253 AC_MSG_RESULT([enabling pam modules support])
255 AC_MSG_RESULT([pam libraries not found. Disabling pam modules support])
260 [ --with-shadow enable shadow password support],
261 AC_MSG_RESULT([enabling shadow password support])
265 AC_ARG_WITH(flock-locks,
266 [ --with-flock-locks enable flock locks support],
267 AC_MSG_RESULT([enabling flock locks])
268 AC_DEFINE(USE_FLOCK_LOCKS)
271 AC_ARG_WITH(tcp-wrappers,
272 [ --with-tcp-wrappers enable TCP wrappers support],
273 AC_CHECK_LIB(wrap, main,
276 AC_MSG_RESULT([enabling TCP wrappers support])
280 AC_ARG_ENABLE(redhat,
281 [ --enable-redhat use redhat-style sysv configuration ],
282 if test "$enableval" = "yes"; then
285 AC_MSG_RESULT([enabling redhat-style sysv support])
288 AC_ARG_ENABLE(cobalt,
289 [ --enable-cobalt use cobalt-style sysv configuration ],
290 if test "$enableval" = "yes"; then
293 AC_MSG_RESULT([enabling cobalt-style sysv support])
296 AC_ARG_WITH(uams-path,
297 [ --with-uams-path=path path to UAMs [default=/etc/atalk/uams]],
298 uams_path="$withval",
299 uams_path="$config_dir/uams"
301 AC_DEFINE_UNQUOTED(UAMS_PATH, "$uams_path",
302 [path to UAMs [default=/etc/atalk/uams]])
303 UAMS_PATH="$uams_path"
306 dnl --------------------------------------------------------------------------
307 dnl drop in includes for top level directory structures here...
308 dnl --------------------------------------------------------------------------
309 LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/"
310 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
312 dnl --------------------------------------------------------------------------
313 dnl specific configuration comes in here:
314 dnl --------------------------------------------------------------------------
316 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
318 dnl --------------------- determine operating system from "target"
320 *freebsd*) this_os=freebsd ;;
321 *linux*) this_os=linux ;;
322 *osx*) this_os=macosx ;;
323 *netbsd*) this_os=netbsd ;;
324 *openbsd*) this_os=openbsd ;;
325 *osf*) this_os=tru64 ;;
326 *solaris*) this_os=solaris ;;
330 i386|i486|i586|i686|k7) this_cpu=x86 ;;
331 alpha) this_cpu=alpha ;;
332 mips) this_cpu=mips ;;
333 powerpc|ppc) this_cpu=ppc ;;
336 dnl --------------------- operating system specific flags (port from sys/*)
338 dnl ----- FreeBSD specific -----
339 if test x"$this_os" = "xfreebsd"; then
340 AC_MSG_RESULT([ * FreeBSD specific configuration])
342 AC_DEFINE(SENDFILE_FLAVOR_BSD)
345 dnl ----- Linux specific -----
346 if test x"$this_os" = "xlinux"; then
347 AC_MSG_RESULT([ * Linux specific configuration])
348 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
350 dnl ----- check if we need the quotactl wrapper
351 AC_CHECK_HEADER(sys/quota.h,,
352 AC_MSG_RESULT([enabling quotactl wrapper])
353 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
356 dnl ----- Linux/alpha specific -----
357 if test x"$this_cpu" = "xalpha"; then
358 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
359 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
364 dnl ----- Mac OSX specific -----
365 if test x"$this_os" = "xmacosx"; then
366 AC_MSG_RESULT([ * Mac OSX specific configuration])
368 AC_DEFINE(HAVE_BROKEN_CPP)
369 AC_DEFINE(HAVE_2ARG_DBTOB)
370 AC_DEFINE(NO_DLFCN_H)
371 AC_DEFINE(MACOSX_SERVER)
374 dnl ----- NetBSD specific -----
375 if test x"$this_os" = "xnetbsd"; then
376 AC_MSG_RESULT([ * NetBSD specific configuration])
378 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
379 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
383 dnl ----- OpenBSD specific -----
384 if test x"$this_os" = "xopenbsd"; then
385 AC_MSG_RESULT([ * OpenBSD specific configuration])
389 dnl ----- Solaris specific -----
390 if test x"$this_os" = "xsolaris"; then
391 AC_MSG_RESULT([ * Solaris specific configuration])
393 AC_DEFINE(_ISOC9X_SOURCE)
394 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
396 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
400 dnl ----- Tru64 specific -----
401 if test x"$this_os" = "xtru64"; then
402 AC_MSG_RESULT([ * Tru64 specific configuration])
404 AC_DEFINE(HAVE_64BIT_LONGS)
405 AC_DEFINE(USE_MOUNT_H)
406 AC_DEFINE(USE_OLD_RQUOTA)
407 AC_DEFINE(USE_UFS_QUOTA_H)
409 CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
410 LDSHAREDFLAGS="-expect_unresolved \*"
415 dnl -- look for openssl
417 [ --with-ssl-dir=PATH specify path to openssl installation (must contain
418 lib and include dirs) ],
420 if test "x$withval" != "$xno"; then
426 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
427 if test -f "$ssldir/include/openssl/cast.h" ; then
428 LDFLAGS="$LDFLAGS -L$ssldir/lib -L$ssldir"
429 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
430 if test "$need_dash_r" = "yes"; then
431 LIBS="$LIBS -R$ssldir/lib -R$ssldir"
434 dnl Check for the crypto library:
435 AC_CHECK_LIB(crypto, main)
436 dnl LIBS="$LIBS -lcrypto"
437 dnl Check for "DES" library (for SSLeay, not openssl):
438 AC_CHECK_LIB(des, main)
440 AC_DEFINE(OPENSSL_DHX, 1)
441 AC_DEFINE(UAM_DHX, 1)
442 dnl AC_DEFINE(UAM_PGP, 1)
443 AC_DEFINE(UAM_RNDNUM, 1)
446 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
451 dnl --------------------- last minute substitutions
455 AC_SUBST(LDSHAREDFLAGS)
456 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
457 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
458 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
459 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
460 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
461 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
462 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
464 dnl --------------------- generate files
468 bin/adv1tov2/Makefile
471 bin/afppasswd/Makefile
472 bin/getzones/Makefile
473 bin/megatron/Makefile
480 contrib/printing/Makefile
481 contrib/shell_utils/Makefile
482 contrib/timelord/Makefile
484 distrib/config/Makefile
485 distrib/config/netatalk-config
486 distrib/initscripts/Makefile
490 etc/afpd/nls/Makefile
496 include/atalk/Makefile
498 libatalk/adouble/Makefile
499 libatalk/asp/Makefile
500 libatalk/atp/Makefile
501 libatalk/compat/Makefile
502 libatalk/dsi/Makefile
503 libatalk/nbp/Makefile
504 libatalk/netddp/Makefile
505 libatalk/util/Makefile
513 sys/netatalk/Makefile
515 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]