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