]> arthur.barton.de Git - netatalk.git/blob - configure.in
Use three-argument AC_DEFINE and AC_DEFINE_UNQUOTED to fix a deprecation
[netatalk.git] / configure.in
1 dnl $Id: configure.in,v 1.178 2003-01-29 00:16:23 srittau Exp $
2 dnl configure.in for netatalk
3
4 AC_INIT(bin/adv1tov2/adv1tov2.c)
5
6 NETATALK_VERSION=`cat $srcdir/VERSION`
7 AC_SUBST(NETATALK_VERSION)
8
9 AC_CANONICAL_SYSTEM
10 AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION})
11 AM_CONFIG_HEADER(config.h)
12
13 dnl Checks for programs.
14 AC_PROG_AWK
15 AC_PROG_CC
16 AC_PROG_INSTALL
17 AC_PROG_LN_S
18 AC_PROG_MAKE_SET
19 AC_LIBTOOL_DLOPEN
20 AM_PROG_LIBTOOL
21 AC_PROG_PERL
22 AC_PROG_GREP
23 AC_PROG_PS
24
25 dnl *********************************************************************
26 dnl FIXME! FIXME! These should be selectable properly, and should produce
27 dnl the proper flags and defines...
28 dnl *********************************************************************
29
30 dnl Checks for libraries.
31 dnl Replace `main' with a function in -labs:
32 AC_CHECK_LIB(abs, main)
33 dnl Replace `main' with a function in -laudit:
34 AC_CHECK_LIB(audit, main)
35 dnl Replace `main' with a function in -lauth:
36 AC_CHECK_LIB(auth, main)
37 dnl Replace `main' with a function in -lcmd:
38 AC_CHECK_LIB(cmd, main)
39 dnl Replace `main' with a function in -lcrypt:
40 AC_CHECK_LIB(crypt, main)
41 dnl Replace `main' with a function in -ld:
42 AC_CHECK_LIB(d, main)
43 dnl Replace `main' with a function in -ldl:
44 AC_CHECK_LIB(dl, main)
45 dnl Replace `main' with a function in -lkauth:
46 AC_CHECK_LIB(kauth, main)
47 dnl Replace `main' with a function in -lkrb:
48 AC_CHECK_LIB(krb, main)
49 dnl Replace `main' with a function in -llwp:
50 AC_CHECK_LIB(lwp, main)
51 dnl Replace `main' with a function in -ln:
52 AC_CHECK_LIB(n, main)
53 dnl Replace `main' with a function in -lnsl:
54 AC_CHECK_LIB(nsl, main)
55 dnl Replace `main' with a function in -lprot:
56 AC_CHECK_LIB(prot, main)
57 dnl Replace `main' with a function in -lrx:
58 AC_CHECK_LIB(rx, main)
59 dnl Replace `main' with a function in -lrxkad:
60 AC_CHECK_LIB(rxkad, main)
61 dnl Replace `main' with a function in -lsocket:
62 AC_CHECK_LIB(socket, main)
63 dnl Replace `main' with a function in -lsys:
64 AC_CHECK_LIB(sys, main)
65 dnl Replace `main' with a function in -lubik:
66 AC_CHECK_LIB(ubik, main)
67
68 #
69 # Check presence of some functions
70 #
71 # Check for XPG4 access() function
72 # Be sure to test before adding AFS libs in LIBS path as AFS lib
73 # has such a function that works only on AFS filesystems.
74 AC_CHECK_FUNCS(access)
75
76 AC_CHECK_FUNCS(pread pwrite)
77
78 dnl Checks for header files.
79 AC_HEADER_DIRENT
80 AC_HEADER_STDC
81 AC_HEADER_SYS_WAIT
82 AC_CHECK_HEADERS(fcntl.h limits.h stdint.h strings.h sys/fcntl.h sys/file.h sys/ioctl.h sys/time.h sys/mnttab.h sys/statvfs.h sys/stat.h sys/vfs.h mntent.h syslog.h unistd.h termios.h sys/termios.h netdb.h sgtty.h ufs/quota.h mount.h sys/mount.h statfs.h sys/types.h dlfcn.h errno.h sys/errno.h)
83 AC_CHECK_HEADER(sys/cdefs.h,,
84         AC_MSG_RESULT([enabling generic cdefs.h from tree])
85         CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
86 )
87
88 dnl Checks for typedefs, structures, and compiler characteristics.
89 AC_C_CONST
90 AC_TYPE_UID_T
91 AC_C_INLINE
92 AC_TYPE_MODE_T
93 AC_TYPE_OFF_T
94 AC_TYPE_PID_T
95 AC_TYPE_SIZE_T
96 AC_STRUCT_ST_RDEV
97 AC_HEADER_TIME
98 AC_STRUCT_TM
99
100 dnl Checks for library functions.
101 AC_TYPE_GETGROUPS
102 AC_PROG_GCC_TRADITIONAL
103 AC_FUNC_MEMCMP
104 AC_HEADER_MAJOR
105 AC_FUNC_MMAP
106 AC_TYPE_SIGNAL
107 AC_FUNC_UTIME_NULL
108 AC_FUNC_WAIT3
109 AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strcasestr strstr strtoul setpgrp strchr memcpy)
110 AC_FUNC_SETPGRP
111
112 dnl Checks for (v)snprintf
113 NETATALK_SNPRINTF_CHECK
114
115 dnl --------------------------------------------------------------------------
116 dnl specific configuration comes in here:
117 dnl --------------------------------------------------------------------------
118
119 AC_DEFINE(ADMIN_GRP, 1, [Define if the admin group should be enabled])
120
121 AC_ARG_WITH(admin-group,
122         [  --disable-admin-group   disable admin group],
123         if test "$enableval" = "no"; then
124                 AC_DEFINE(ADMIN_GRP, 0, [Define if the admin group should be enabled])
125                 AC_MSG_RESULT([disabling administrative group support])
126         fi
127 )
128
129 NETATALK_AFS_CHECK
130
131 NETATALK_CONFIG_DIRS
132
133 AC_ARG_WITH(logfile,
134         [  --with-logfile=PATH     path for file used by logger [/var/log/netatalk.log]
135                           use --without-logfile to disable logger],
136         if test "$withval" = "no"; then
137                 AC_DEFINE(DISABLE_LOGGER, 1, [Define if the logger should not be used])
138                 AC_MSG_RESULT([logger disabled])
139         elif test "$withval" != "yes"; then
140                 AC_DEFINE_UNQUOTED(LOGFILEPATH, "$withval", [Path to the log file])
141                 AC_MSG_RESULT([logfile set to $withval])
142         else
143                 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log", [Path to the log file])
144                 AC_MSG_RESULT([logfile set to default]) 
145         fi,
146                 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log", [Path to the log file])
147                 AC_MSG_RESULT([logfile set to default])
148 )
149
150 AC_ARG_WITH(cracklib,
151         [  --with-cracklib=DICT    enable/set location of cracklib dictionary],
152         if test "x$withval" != "xno" ; then
153                 cracklib="$withval"
154                 AC_CHECK_LIB(crack, main,
155                         AC_DEFINE(USE_CRACKLIB, 1, [Define if cracklib should be used])
156                         LIBS="$LIBS -lcrack"
157                         AC_MSG_RESULT([enabling cracklib support])
158                         if test "$cracklib" = "yes"; then
159                                 cracklib="/usr/lib/cracklib_dict"
160                         fi
161                         AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
162                                 [path to cracklib dictionary])
163                         AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
164                         AC_MSG_ERROR([cracklib not found!])
165                 )
166         fi
167 )
168
169 AC_ARG_ENABLE(ddp,
170         [  --disable-ddp           disable DDP],
171         if test "$enableval" = "no"; then 
172                 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
173                 AC_MSG_RESULT([disabling DDP])
174         fi
175 )
176
177 AC_ARG_ENABLE(debug,
178         [  --enable-debug          enable debug code],
179         if test "$enableval" != "no"; then
180                 if test "$enableval" = "yes"; then
181                         AC_DEFINE(DEBUG, 1, [Define if debugging information should be included])
182                 else
183                         AC_DEFINE_UNQUOTED(DEBUG, $enableval, [Define if debugging information should be included])
184                 fi 
185                 AC_MSG_RESULT([enabling debugging code])
186         fi
187 )
188
189 afp3=no
190 AC_ARG_ENABLE(afp3,
191         [  --enable-afp3           enable AFP 3.x calls],
192         if test "$enableval" = "yes"; then
193                 afp3=yes
194                 AC_DEFINE(AFP3x, 1, [Define to enable AFP 3.x support])
195                 AC_MSG_RESULT([enabling AFP 3.x calls])
196         fi
197 )
198
199 if test "$afp3" = "yes"; then
200         AC_SYS_LARGEFILE
201 fi
202
203
204 dnl ----------- A NOTE ABOUT DROPKLUDGE
205 dnl The trouble with this fix is that if you know what the file is called, it
206 dnl can be read from the Unix side.  That's okay for most academic institutions
207 dnl since the students don't have telnet access to the Mac servers.  There is
208 dnl currently no one working on further development/fixes of DROPKLUDGE.
209 dnl -----------
210
211 AC_ARG_ENABLE(dropkludge,
212         [  --enable-dropkludge     enable the experimental dropbox fix (INSECURE!) ],
213         if test "$enableval" = "yes"; then 
214                 AC_DEFINE(DROPKLUDGE, 1, [Define if you want to use the experimental dropkludge support])
215                 AC_MSG_RESULT([enabling experimental dropbox support])
216         fi
217 )
218
219 AC_ARG_ENABLE(force-uidgid,
220         [  --enable-force-uidgid   allow forcing of uid/gid per volume (BROKEN) ],
221         if test "$enableval" = "yes"; then
222                 AC_DEFINE(FORCE_UIDGID, 1, [Define if you want forcing of uid/gid per volume])
223                 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
224         fi
225 )
226
227 dnl Don't use BDB unless it's needed
228 bdb_required=no
229
230 dnl Determine DID scheme
231 AC_MSG_CHECKING([for DID scheme to use])
232 AC_ARG_WITH(did,
233         [  --with-did=SCHEME       set DID scheme (cnid,last)],
234         [ did_scheme="$withval" ],
235         [ did_scheme="cnid" ]
236 )
237
238 if test "x$did_scheme" = "xlast"; then
239         AC_DEFINE(USE_LASTDID, 1, [Define if the last DID scheme should be used])
240         AC_MSG_RESULT([last])
241 elif test "x$did_scheme" = "xcnid"; then
242         bdb_required="yes"
243         AC_DEFINE(CNID_DB, 1, [Define if the CNID DB DID scheme should be used])
244         AC_MSG_RESULT([enabling build with CNID DB support])
245 else
246         AC_MSG_ERROR([unknown DID scheme])
247 fi
248 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
249
250 dnl Determine whether or not to use filename mangling
251 AC_MSG_CHECKING([whether or not to use filename mangling])
252 AC_ARG_WITH(mangling,
253         [  --with-mangling         enable filename mangling],
254         [
255                 if test "x$withval" = "xyes"; then
256                         if test "x$did_scheme" != "xcnid"; then
257                                 AC_MSG_ERROR([DID scheme must be CNID to use filename mangling])
258                         else
259                                 AC_DEFINE(FILE_MANGLING, 1, [Define if file name mangling should be used])
260                                 AC_MSG_RESULT([yes])
261                         fi
262                 else
263                         AC_MSG_RESULT([no])
264                 fi
265         ], [
266                 if test "x$did_scheme" = "xcnid"; then
267                         AC_DEFINE(FILE_MANGLING, 1, [Define if file name mangling should be used])
268                         AC_MSG_RESULT([yes])
269                 else
270                         AC_MSG_RESULT([no])
271                 fi
272         ]
273 )
274
275 if test "$did_scheme" = "cnid"; then
276     USE_CDB="yes"
277 else
278     USE_CDB="no"
279 fi
280
281 dnl Determine whether or not to use CDB or transactional DB store
282 AC_MSG_CHECKING([whether or not to use CNID with Concurrent Data Store])
283 AC_ARG_WITH(cdb,
284         [  --with-cdb              enable CNID with Concurrent Data Store],
285         if test "$withval" = "no"; then
286             if test "x$did_scheme" != "xcnid"; then
287                 USE_CDB="no"
288                 AC_MSG_ERROR([DID scheme must be CNID to use CDB])
289             else
290                 USE_CDB="no"
291                 AC_MSG_RESULT([no])
292             fi
293         else
294             USE_CDB="yes"
295             AC_MSG_RESULT([yes])
296         fi
297         , AC_MSG_RESULT([yes])
298 )
299
300 if test "$USE_CDB" = "yes"; then
301     AC_DEFINE(CNID_DB_CDB, 1, [Define if CNID should be used with Concurrent Data Store])
302 fi
303
304 dnl Check for Berkeley DB library
305 if test "x$bdb_required" = "xyes"; then
306         AC_PATH_BDB(, [AC_MSG_ERROR([Berkeley DB library not found!])])
307 fi
308
309 dnl Check for quota support
310 AC_CHECK_QUOTA
311
312 dnl Check for optional server location protocol support (used by MacOS X)
313 NETATALK_SRVLOC
314
315 dnl Check for PAM libs
316 AC_PATH_PAM([
317         PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
318         AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
319         use_pam_so=yes
320         compile_pam=yes
321         AC_DEFINE(USE_PAM, 1, [Define to enable PAM support])
322 ])
323
324 AC_MSG_CHECKING([whether shadow support should be enabled])
325 AC_ARG_WITH(shadow,
326         [  --with-shadow           enable shadow password support],
327         [shadowpw="$withval"],
328         [shadowpw=no]
329 )
330 if test "x$shadowpw" = "xyes"; then
331         AC_DEFINE(SHADOWPW, 1, [Define if shadow passwords should be used])
332 fi
333 AC_MSG_RESULT([$shadowpw])
334
335 AC_ARG_ENABLE(shell-check,
336         [  --disable-shell-check   disable checking for a valid shell],
337         if test "$enableval" = "no"; then 
338                 AC_DEFINE(DISABLE_SHELLCHECK, 1, [Define if shell check should be disabled])
339                 AC_MSG_RESULT([disabling valid shell check])
340         fi
341 )
342
343 AC_ARG_WITH(tcp-wrappers,
344         [  --with-tcp-wrappers     enable TCP wrappers support],
345         AC_CHECK_LIB(wrap, tcpd_warn,
346                 AC_DEFINE(TCPWRAP, 1, [Define if TCP wrappers should be used])
347                 AFPD_LIBS="$AFPD_LIBS -lwrap"
348                 AC_MSG_RESULT([enabling TCP wrappers support])
349         )
350 )
351
352 AC_ARG_ENABLE(redhat,
353         [  --enable-redhat         use redhat-style sysv configuration ],
354         if test "$enableval" = "yes"; then
355                 sysv_style=redhat
356         fi
357         AC_MSG_RESULT([enabling redhat-style sysv support])
358 )
359
360 AC_ARG_ENABLE(suse,
361         [  --enable-suse           use suse-style sysv configuration ],
362         if test "$enableval" = "yes"; then
363                 sysv_style=suse
364         fi
365         AC_MSG_RESULT([enabling suse-style sysv support])
366 )
367
368 AC_ARG_ENABLE(cobalt,
369         [  --enable-cobalt         use cobalt-style sysv configuration ],
370         if test "$enableval" = "yes"; then
371                 sysv_style=cobalt
372         fi
373         AC_MSG_RESULT([enabling cobalt-style sysv support])
374 )
375
376 AC_ARG_ENABLE(netbsd,
377         [  --enable-netbsd         use NetBSD-style rc.d configuration ],
378         if test "x$enableval" = "xyes"; then
379                 sysv_style=netbsd
380         fi
381         AC_MSG_RESULT([enabling NetBSD-style rc.d support])
382 )
383
384 dnl ----- timelord compilation (disabled by default)
385 AC_MSG_CHECKING([whether timelord should be compiled])
386 compile_timelord=no
387 AC_ARG_ENABLE(timelord,
388         [  --enable-timelord       enable compilation of timelord server],
389         [compile_timelord="$enableval"],
390         [compile_timelord="no"]
391 )
392 AC_MSG_RESULT([$compile_timelord])
393
394 dnl ----- a2boot compilation (disabled by default)
395 AC_MSG_CHECKING([whether a2boot should be compiled])
396 compile_a2boot=no
397 AC_ARG_ENABLE(a2boot,
398         [  --enable-a2boot       enable compilation of Apple2 boot server],
399         [compile_a2boot="$enableval"],
400         [compile_a2boot="no"]
401 )
402 AC_MSG_RESULT([$compile_a2boot])
403
404 AC_ARG_WITH(uams-path,
405         [  --with-uams-path=PATH   path to UAMs [[PKGCONF/uams]]],
406         uams_path="$withval",
407         uams_path="${PKGCONFDIR}/uams"
408 )
409
410 dnl --------------------------------------------------------------------------
411 dnl FHS stuff has to be done last because it overrides other defaults
412 dnl --------------------------------------------------------------------------
413
414 AC_ARG_ENABLE(fhs,
415         [  --enable-fhs            use Filesystem Hierarchy Standard (FHS) compatibility],
416         if test "$enableval" = "yes"; then
417                 uams_path="${libdir}/netatalk"
418                 sysconfdir="/etc"
419                 PKGCONFDIR=${sysconfdir}/netatalk
420                 SERVERTEXT="${PKGCONFDIR}/msg"
421                 NLSDIR="${PKGCONFDIR}/nls"
422                 use_pam_so=yes
423                 mandir="/usr/share/man"
424                 AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
425         fi
426         AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
427 )
428
429 dnl --------------------------------------------------------------------------
430 dnl post-FHS substitutions, etc
431 dnl --------------------------------------------------------------------------
432
433 dnl ***** UAMS_PATH
434 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
435         [path to UAMs [default=PKGCONF/uams]])
436 UAMS_PATH="${uams_path}"
437 AC_SUBST(UAMS_PATH)
438
439 dnl --------------------------------------------------------------------------
440 dnl drop in includes for top level directory structures here...
441 dnl --------------------------------------------------------------------------
442
443 dnl Note: $(top_srcdir)/include should be added before all other includes
444 dnl       so that includes from that directory a preferred to includes from
445 dnl       /usr/include or similar places.
446 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
447 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
448
449 dnl --------------------------------------------------------------------------
450 dnl specific configuration comes in here:
451 dnl --------------------------------------------------------------------------
452
453 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
454
455 dnl --------------------- determine operating system from "target"
456 case "$host_os" in
457         *aix*)                          this_os=aix ;;
458         *freebsd*)                      this_os=freebsd ;;
459         *hpux11*)                       this_os=hpux11 ;;
460         *irix*)                         this_os=irix ;;
461         *linux*)                        this_os=linux ;;
462         *osx*)                          this_os=macosx ;;
463         *darwin*)                       this_os=macosx ;;
464         *netbsd*)                       this_os=netbsd ;;
465         *openbsd*)                      this_os=openbsd ;;
466         *osf*)                          this_os=tru64 ;;
467         *solaris*)                      this_os=solaris ;;
468 esac
469
470 case "$host_cpu" in
471         i386|i486|i586|i686|k7)         this_cpu=x86 ;;
472         alpha)                                          this_cpu=alpha ;;
473         mips)                                           this_cpu=mips ;;
474         powerpc|ppc)                            this_cpu=ppc ;;
475 esac
476
477 dnl --------------------- operating system specific flags (port from sys/*)
478
479 dnl ----- AIX specific -----
480 if test x"$this_os" = "xaix"; then
481         AC_MSG_RESULT([ * AIX specific configuration])
482         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
483
484         dnl This is probably a lie; AIX 4.3 supports a 64-bit long
485         dnl compilation environment.  It's enough to get things defined
486         dnl right in endian.h provided that long long is supported, though.
487         AC_DEFINE(HAVE_32BIT_LONGS, 1, [Define if the data type long has 32 bit])
488 fi
489
490 dnl ----- FreeBSD specific -----
491 if test x"$this_os" = "xfreebsd"; then 
492         AC_MSG_RESULT([ * FreeBSD specific configuration])
493         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
494         AC_DEFINE(SENDFILE_FLAVOR_BSD, 1, [Define if the sendfile() function uses BSD semantics])
495
496         AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
497 fi
498
499 dnl ----- HP-UX 11 specific -----
500 if test x"$this_os" = "xhpux11"; then
501         AC_MSG_RESULT([ * HP-UX 11 specific configuration])
502
503         AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
504         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
505 fi
506
507 dnl ----- IRIX specific -----
508 if test x"$this_os" = "xirix"; then
509         AC_MSG_RESULT([ * IRIX specific configuration])
510
511         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
512 fi
513
514 dnl ----- Linux specific -----
515 if test x"$this_os" = "xlinux"; then 
516         AC_MSG_RESULT([ * Linux specific configuration])
517
518         dnl ----- check if we need the quotactl wrapper
519         AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
520         AC_CHECK_FUNC(quotactl,,
521                 AC_DEFINE(NEED_QUOTACTL_WRAPPER, 1, [Define if the quotactl wrapper is needed])
522                 AC_MSG_RESULT([enabling quotactl wrapper])
523         )
524
525         dnl ----- as far as I can tell, dbtob always does the wrong thing
526         dnl ----- on every single version of linux I've ever played with.
527         dnl ----- see etc/afpd/quota.c
528         AC_DEFINE(HAVE_BROKEN_DBTOB, 1, [Define if dbtob is broken])
529
530         dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
531         dnl ----- check if version is newer than 2.2.x
532         changequote(<<,>>)
533         majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
534         minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
535         if [ $majorvers -ge 2 ]; then
536                 if [ $minorvers -ge 2 ]; then
537                         changequote([,])
538                         AC_MSG_RESULT([ * found Linux 2.2.x or higher])
539                         AC_DEFINE(SENDFILE_FLAVOR_LINUX, 1, [Define if the sendfile() function uses Linux semantics])
540                 else
541                         AC_MSG_RESULT([ * found Linux 2.0.x ]) 
542                 fi
543         fi
544
545         dnl ----- Linux/alpha specific -----
546         if test x"$this_cpu" = "xalpha"; then 
547                 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
548                 AC_DEFINE(HAVE_GCC_MEMCPY_BUG, 1, [Define if memcpy is buggy])
549         fi
550         need_dash_r=no
551 fi
552
553 dnl ----- Mac OSX specific -----
554 if test x"$this_os" = "xmacosx"; then 
555         AC_MSG_RESULT([ * Mac OSX specific configuration])
556         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
557         AC_DEFINE(HAVE_BROKEN_CPP, 1, [Define if cpp is broken])
558         AC_DEFINE(HAVE_2ARG_DBTOB, 1, [Define if dbtob takes two arguments])
559         dnl AC_DEFINE(NO_DLFCN_H)
560         AC_DEFINE(MACOSX_SERVER, 1, [Define if compiling for MacOS X Server])
561 fi
562
563 dnl ----- NetBSD specific -----
564 if test x"$this_os" = "xnetbsd"; then 
565         AC_MSG_RESULT([ * NetBSD specific configuration])
566         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
567         if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
568                 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
569                 # If this test is true, it's not an ELF box.
570                 # This REALLY should be a configure test.
571                 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
572         fi
573         CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
574         need_dash_r=yes 
575
576         dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
577         AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
578         AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
579 fi
580
581 dnl ----- OpenBSD specific -----
582 if test x"$this_os" = "xopenbsd"; then 
583         AC_MSG_RESULT([ * OpenBSD specific configuration])
584         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
585         AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
586
587         dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
588         AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
589         AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
590 fi
591
592 dnl ----- Solaris specific -----
593 if test x"$this_os" = "xsolaris"; then 
594         AC_MSG_RESULT([ * Solaris specific configuration])
595         AC_DEFINE(__svr4__, 1, [Solaris compatibility macro])
596         AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
597         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
598         AC_DEFINE(SOLARIS, 1, [Solaris compatibility macro])
599         CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
600         need_dash_r=yes
601
602         AC_MSG_RESULT([enabling Solaris kernel module build])
603         solaris_module=yes
604 fi
605
606 dnl ----- Tru64 specific -----
607 if test x"$this_os" = "xtru64"; then 
608         AC_MSG_RESULT([ * Tru64 specific configuration])
609         AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
610         AC_DEFINE(HAVE_64BIT_LONGS, 1, [Define if the data type long has 64 bit])
611         dnl AC_DEFINE(USE_MOUNT_H)
612         AC_DEFINE(USE_OLD_RQUOTA, 1, [Define to use old rquota])
613         dnl AC_DEFINE(USE_UFS_QUOTA_H)
614         AC_DEFINE(TRU64, 1, [Define on Tru64 platforms])
615         AC_CHECK_LIB(security,set_auth_parameters)
616         CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
617         need_dash_r=no
618         sysv_style=tru64
619 fi
620
621 dnl -- look for openssl
622 AC_PATH_SSL
623
624 dnl --------------------- check for building PGP UAM module
625
626 AC_ARG_ENABLE(pgp-uam,
627         [  --enable-pgp-uam        enable build of PGP UAM module],
628         if test "$enableval" = "yes"; then 
629                 if test "$compile_ssl" = "yes"; then 
630                         AC_DEFINE(UAM_PGP, 1, [Define if the PGP UAM module should be compiled])
631                         compile_pgp=yes
632                         AC_MSG_RESULT([enabling build with PGP UAM module])
633                 fi
634         fi
635 )
636
637 dnl --------------------- check for building Kerberos v4 UAM module
638
639 AC_ARG_ENABLE(krb4-uam,
640         [  --enable-krb4-uam       enable build of Kerberos v4 UAM module],
641         if test "$enableval" = "yes"; then
642                 AC_DEFINE(UAM_KRB4, 1, [Define if the Kerberos 4 UAM module should be compiled])
643                 compile_kerberos=yes
644                 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
645         fi
646 )
647 dnl --------------------- overwrite the config files . . . or not.
648
649 AC_MSG_CHECKING([whether configuration files should be overwritten])
650 AC_ARG_ENABLE(overwrite,
651         [  --enable-overwrite      overwrite configuration files during installation],
652         [OVERWRITE_CONFIG="${enable_overwrite}"],
653         [OVERWRITE_CONFIG="no"]
654 )
655 AC_MSG_RESULT([$OVERWRITE_CONFIG])
656
657 dnl --------------------- last minute substitutions
658
659 AC_SUBST(LIBS)
660 AC_SUBST(AFPD_LIBS)
661 AC_SUBST(PAPD_LIBS)
662 AC_SUBST(CFLAGS)
663 AC_SUBST(OVERWRITE_CONFIG)
664
665 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
666 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
667 AM_CONDITIONAL(COMPILE_A2BOOT, test x$compile_a2boot = xyes)
668 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
669 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
670 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
671 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
672 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
673 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
674 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
675 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
676 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
677 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
678 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
679 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
680
681 dnl --------------------- generate files
682
683 AC_OUTPUT([Makefile
684         bin/Makefile
685         bin/adv1tov2/Makefile
686         bin/aecho/Makefile
687         bin/afile/Makefile
688         bin/afppasswd/Makefile
689         bin/cnid/Makefile
690         bin/cnid/cnid_maint
691         bin/getzones/Makefile
692         bin/megatron/Makefile
693         bin/nbp/Makefile
694         bin/pap/Makefile
695         bin/psorder/Makefile
696         config/Makefile
697         contrib/Makefile
698         contrib/macusers/Makefile
699         contrib/macusers/macusers
700         contrib/nu/Makefile
701         contrib/nu/nu
702         contrib/printing/Makefile
703         contrib/shell_utils/Makefile
704         contrib/shell_utils/afpd-mtab.pl
705         contrib/shell_utils/apple_cp
706         contrib/shell_utils/apple_mv
707         contrib/shell_utils/apple_rm
708         contrib/shell_utils/cleanappledouble.pl
709         contrib/shell_utils/netatalkshorternamelinks.pl
710         contrib/timelord/Makefile
711         contrib/a2boot/Makefile
712         distrib/Makefile
713         distrib/config/Makefile
714         distrib/config/netatalk-config
715         distrib/initscripts/Makefile
716         distrib/m4/Makefile
717         doc/Makefile
718         etc/Makefile
719         etc/afpd/Makefile
720         etc/afpd/nls/Makefile
721         etc/atalkd/Makefile
722         etc/uams/Makefile
723         etc/uams/uams_krb4/Makefile
724         etc/papd/Makefile
725         etc/psf/Makefile
726         include/Makefile
727         include/atalk/Makefile
728         libatalk/Makefile
729         libatalk/adouble/Makefile
730         libatalk/asp/Makefile
731         libatalk/atp/Makefile
732         libatalk/cnid/Makefile
733         libatalk/compat/Makefile
734         libatalk/dsi/Makefile
735         libatalk/nbp/Makefile
736         libatalk/netddp/Makefile
737         libatalk/util/Makefile
738         macros/Makefile
739         man/Makefile
740         man/man1/Makefile
741         man/man3/Makefile
742         man/man4/Makefile
743         man/man5/Makefile
744         man/man8/Makefile
745         sys/Makefile
746         sys/generic/Makefile
747         sys/generic/sys/Makefile
748         sys/netatalk/Makefile
749         sys/netbsd/Makefile
750         sys/netbsd/netatalk/Makefile
751         sys/solaris/Makefile
752         sys/solaris/Makefile.kernel
753         sys/sunos/Makefile
754         sys/ultrix/Makefile
755         ],
756         [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
757 )
758