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 -ldes:
47 AC_CHECK_LIB(des, main)
48 dnl Replace `main' with a function in -ldl:
49 AC_CHECK_LIB(dl, main)
50 dnl Replace `main' with a function in -lkauth:
51 AC_CHECK_LIB(kauth, main)
52 dnl Replace `main' with a function in -lkrb:
53 AC_CHECK_LIB(krb, main)
54 dnl Replace `main' with a function in -llwp:
55 AC_CHECK_LIB(lwp, main)
56 dnl Replace `main' with a function in -ln:
58 dnl Replace `main' with a function in -lnsl:
59 AC_CHECK_LIB(nsl, main)
60 dnl Replace `main' with a function in -lprot:
61 AC_CHECK_LIB(prot, main)
62 dnl Replace `main' with a function in -lresolv:
63 AC_CHECK_LIB(resolv, main)
64 dnl Replace `main' with a function in -lrpcsvc:
65 AC_CHECK_LIB(rpcsvc, main)
66 dnl Replace `main' with a function in -lrx:
67 AC_CHECK_LIB(rx, main)
68 dnl Replace `main' with a function in -lrxkad:
69 AC_CHECK_LIB(rxkad, main)
70 dnl Replace `main' with a function in -lsocket:
71 AC_CHECK_LIB(socket, main)
72 dnl Replace `main' with a function in -lsys:
73 AC_CHECK_LIB(sys, main)
74 dnl Replace `main' with a function in -lubik:
75 AC_CHECK_LIB(ubik, main)
77 dnl Checks for header files.
81 AC_CHECK_HEADERS(fcntl.h limits.h strings.h sys/file.h sys/ioctl.h sys/time.h syslog.h unistd.h)
82 AC_CHECK_HEADER(sys/cdefs.h,,
83 AC_MSG_RESULT([enabling generic cdefs.h from tree])
84 CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
87 # Allow user to specify flags
89 [ --with-cflags specify additional flags to pass to compiler],
91 if test "x$withval" != "xno" ; then
92 CFLAGS="$CFLAGS $withval"
97 [ --with-libs specify additional libraries to link with],
99 if test "x$withval" != "xno" ; then
100 LIBS="$LIBS $withval"
105 dnl Checks for typedefs, structures, and compiler characteristics.
117 dnl Checks for library functions.
119 AC_PROG_GCC_TRADITIONAL
126 AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul)
128 dnl --------------------------------------------------------------------------
129 dnl specific configuration comes in here:
130 dnl --------------------------------------------------------------------------
132 AC_DEFINE(ADMIN_GRP, 1)
134 AC_ARG_WITH(admin-group,
135 [ --disable-admin-group disable admin group],
136 if test "$enableval" = "no"; then
137 AC_DEFINE(ADMIN_GRP, 0)
138 AC_MSG_RESULT([disabling administrative group support])
142 AC_ARG_WITH(auth-printing-dir,
143 [ --with-auth-printing-dir=path
144 path to authenticated printing directory],
146 AC_DEFINE_UNQUOTED(CAPDIR, "$cap_dir")
148 AC_MSG_RESULT([enabling authenticated printing support]),
151 AC_ARG_WITH(config-dir,
152 [ --with-config-dir=path path to config files [default=/etc/atalk]],
153 config_dir="$withval",
154 config_dir="/etc/atalk"
156 AC_DEFINE_UNQUOTED(CONFIG_DIR, "$config_dir",
157 [path to config dir [default=/etc/atalk]])
158 CONFIG_DIR="$config_dir"
160 AC_MSG_RESULT([setting configuration files location to $CONFIG_DIR])
162 AC_ARG_WITH(cracklib,
163 [ --with-cracklib=dict enable/set location of cracklib dictionary],
165 AC_CHECK_LIB(crack, main,
166 AC_DEFINE(USE_CRACKLIB)
168 AC_MSG_RESULT([enabling cracklib support])
169 if test "$cracklib" = "yes"; then
170 cracklib="/usr/lib/cracklib_dict"
172 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
173 [path to cracklib dictionary])
174 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
175 AC_MSG_ERROR([cracklib not found!])
180 [ --disable-ddp disable DDP],
181 if test "$enableval" = "no"; then
183 AC_MSG_RESULT([disabling DDP])
188 [ --enable-debug enable debug code],
189 if test "$enableval" != "no"; then
190 if test "$enableval" = "yes"; then
193 AC_DEFINE_UNQUOTED(DEBUG, $enableval)
195 AC_MSG_RESULT([enabling debugging code])
202 dnl ----------- A NOTE ABOUT DROPKLUDGE
203 dnl The trouble with this fix is that if you know what the file is called, it
204 dnl can be read from the Unix side. That's okay for most academic institutions
205 dnl since the students don't have telnet access to the Mac servers. There is
206 dnl currently no one working on further development/fixes of DROPKLUDGE.
209 AC_ARG_ENABLE(dropkludge,
210 [ --enable-dropkludge enable the experimental dropbox fix (INSECURE!) ],
211 AC_DEFINE(DROPKLUDGE, 1)
212 AC_MSG_RESULT([enabling experimental dropbox support])
215 AC_ARG_ENABLE(lastdid,
216 [ --enable-lastdid enable build without DID dev/inode mapping kludge],
217 if test "$enableval" = "yes"; then
218 AC_DEFINE(USE_LASTDID, 1)
219 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
224 AC_ARG_WITH(message-dir,
225 [ --with-msg-dir=path path to message files [default=/etc/atalk/msg]],
227 if test x"$msg_dir" = "x"; then
228 msg_dir="$CONFIG_DIR/msg"
230 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
231 [path to message dir [default=$CONFIG_DIR/msg]])
232 SERVERTEXT="$msg_dir"
237 [ --with-pam enable password authentication modules support],
238 AC_CHECK_LIB(pam, pam_start,
239 AC_DEFINE(USE_PAM, 1)
241 AC_MSG_RESULT([enabling pam modules support])
246 [ --with-shadow enable shadow password support],
247 AC_MSG_RESULT([enabling shadow password support])
251 AC_ARG_WITH(flock-locks,
252 [ --with-flock-locks enable flock locks support],
253 AC_MSG_RESULT([enabling flock locks])
254 AC_DEFINE(USE_FLOCK_LOCKS)
257 AC_ARG_WITH(tcp-wrappers,
258 [ --with-tcp-wrappers enable TCP wrappers support],
259 AC_CHECK_LIB(wrap, main,
262 AC_MSG_RESULT([enabling TCP wrappers support])
266 AC_ARG_WITH(uams-path,
267 [ --with-uams-path=path path to UAMs [default=/etc/atalk/uams]],
268 uams_path="$withval",
269 uams_path="/etc/atalk/uams"
271 AC_DEFINE_UNQUOTED(UAMS_PATH, "$uams_path",
272 [path to UAMs [default=/etc/atalk/uams]])
273 UAMS_PATH="$uams_path"
276 dnl --------------------------------------------------------------------------
277 dnl drop in includes for top level directory structures here...
278 dnl --------------------------------------------------------------------------
279 LIBS="$LIBS -L\$(top_srcdir)/libatalk/"
280 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
282 dnl --------------------------------------------------------------------------
283 dnl specific configuration comes in here:
284 dnl --------------------------------------------------------------------------
286 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
288 dnl --------------------- determine operating system from "target"
290 *freebsd*) this_os=freebsd ;;
291 *linux*) this_os=linux ;;
292 *osx*) this_os=macosx ;;
293 *netbsd*) this_os=netbsd ;;
294 *openbsd*) this_os=openbsd ;;
295 *solaris*) this_os=solaris ;;
299 i386|i486|i586|i686|k7) this_cpu=x86 ;;
300 alpha) this_cpu=alpha ;;
301 mips) this_cpu=mips ;;
302 powerpc|ppc) this_cpu=ppc ;;
305 dnl --------------------- operating system specific flags (port from sys/*)
307 dnl ----- FreeBSD specific -----
308 if test x"$this_os" = "xfreebsd"; then
309 AC_MSG_RESULT([ * FreeBSD specific configuration])
311 AC_DEFINE(SENDFILE_FLAVOR_BSD)
314 dnl ----- Linux specific -----
315 if test x"$this_os" = "xlinux"; then
316 AC_MSG_RESULT([ * Linux specific configuration])
317 AC_DEFINE(SENDFILE_FLAVOR_LINUX)
319 dnl ----- check if we need the quotactl wrapper
320 AC_CHECK_HEADER(sys/quota.h,,
321 AC_MSG_RESULT([enabling quotactl wrapper])
322 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
325 dnl ----- Linux/alpha specific -----
326 if test x"$this_cpu" = "xalpha"; then
327 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
328 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
333 dnl ----- Mac OSX specific -----
334 if test x"$this_os" = "xmacosx"; then
335 AC_MSG_RESULT([ * Mac OSX specific configuration])
337 AC_DEFINE(HAVE_BROKEN_CPP)
338 AC_DEFINE(HAVE_2ARG_DBTOB)
339 AC_DEFINE(NO_DLFCN_H)
340 AC_DEFINE(MACOSX_SERVER)
343 dnl ----- NetBSD specific -----
344 if test x"$this_os" = "xnetbsd"; then
345 AC_MSG_RESULT([ * NetBSD specific configuration])
347 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
348 CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
352 dnl ----- OpenBSD specific -----
353 if test x"$this_os" = "xopenbsd"; then
354 AC_MSG_RESULT([ * OpenBSD specific configuration])
358 dnl ----- Solaris specific -----
359 if test x"$this_os" = "xsolaris"; then
360 AC_MSG_RESULT([ * Solaris specific configuration])
362 AC_DEFINE(_ISOC9X_SOURCE)
363 AC_DEFINE(NO_STRUCT_TM_GMTOFF)
368 dnl -- look for openssl
370 [ --with-ssl-dir=PATH specify path to openssl installation (must contain
371 lib and include dirs) ],
373 if test "x$withval" != "$xno"; then
379 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
380 if test -f "$ssldir/include/openssl/cast.h" ; then
381 LIBS="$LIBS -L$ssldir/lib -L$ssldir"
382 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
383 if test "$need_dash_r" = "yes"; then
384 LIBS="$LIBS -R$ssldir/lib -R$ssldir"
386 dnl Replace `main' with a function in -lcrypto:
387 AC_CHECK_LIB(crypto, main)
389 LIBS="$LIBS -lcrypto"
390 AC_DEFINE(OPENSSL_DHX, 1)
391 AC_DEFINE(UAM_DHX, 1)
392 AC_DEFINE(UAM_RNDNUM, 1)
394 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
399 dnl --------------------- last minute substitutions
403 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
405 dnl --------------------- generate files
409 bin/adv1tov2/Makefile
412 bin/afppasswd/Makefile
413 bin/getzones/Makefile
414 bin/megatron/Makefile
421 contrib/printing/Makefile
422 contrib/shell_utils/Makefile
423 contrib/timelord/Makefile
425 distrib/config/Makefile
426 distrib/config/netatalk-config
427 distrib/initscripts/Makefile
431 etc/afpd/nls/Makefile
437 include/atalk/Makefile
439 libatalk/adouble/Makefile
440 libatalk/asp/Makefile
441 libatalk/atp/Makefile
442 libatalk/compat/Makefile
443 libatalk/dsi/Makefile
444 libatalk/nbp/Makefile
445 libatalk/netddp/Makefile
446 libatalk/util/Makefile
454 sys/netatalk/Makefile
456 [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]