]> arthur.barton.de Git - netatalk.git/blob - configure.in
Fix help string indention.
[netatalk.git] / configure.in
1 dnl $Id: configure.in,v 1.183 2003-06-07 12:04:51 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_ARG_WITH(admin-group,
124         [  --disable-admin-group   disable admin group],
125         if test "$enableval" = "no"; then
126                 AC_DEFINE(ADMIN_GRP, 0, [Define if the admin group should be enabled])
127                 AC_MSG_RESULT([disabling administrative group support])
128         fi
129 )
130
131 NETATALK_AFS_CHECK
132
133 NETATALK_CONFIG_DIRS
134
135 AC_ARG_WITH(logfile,
136         [  --with-logfile=PATH     path for file used by logger [/var/log/netatalk.log]
137                           use --without-logfile to disable logger],
138         if test "$withval" = "no"; then
139                 AC_DEFINE(DISABLE_LOGGER, 1, [Define if the logger should not be used])
140                 AC_MSG_RESULT([logger disabled])
141         elif test "$withval" != "yes"; then
142                 AC_DEFINE_UNQUOTED(LOGFILEPATH, "$withval", [Path to the log file])
143                 AC_MSG_RESULT([logfile set to $withval])
144         else
145                 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log", [Path to the log file])
146                 AC_MSG_RESULT([logfile set to default]) 
147         fi,
148                 AC_DEFINE_UNQUOTED(LOGFILEPATH, "/var/log/netatalk.log", [Path to the log file])
149                 AC_MSG_RESULT([logfile set to default])
150 )
151
152 AC_ARG_WITH(cracklib,
153         [  --with-cracklib=DICT    enable/set location of cracklib dictionary],
154         if test "x$withval" != "xno" ; then
155                 cracklib="$withval"
156                 AC_CHECK_LIB(crack, main,
157                         AC_DEFINE(USE_CRACKLIB, 1, [Define if cracklib should be used])
158                         LIBS="$LIBS -lcrack"
159                         AC_MSG_RESULT([enabling cracklib support])
160                         if test "$cracklib" = "yes"; then
161                                 cracklib="/usr/lib/cracklib_dict"
162                         fi
163                         AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
164                                 [path to cracklib dictionary])
165                         AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
166                         AC_MSG_ERROR([cracklib not found!])
167                 )
168         fi
169 )
170
171 AC_ARG_ENABLE(ddp,
172         [  --disable-ddp           disable DDP],
173         if test "$enableval" = "no"; then 
174                 AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
175                 AC_MSG_RESULT([disabling DDP])
176         fi
177 )
178
179 AC_ARG_ENABLE(debug,
180         [  --enable-debug          enable debug code],
181         if test "$enableval" != "no"; then
182                 if test "$enableval" = "yes"; then
183                         AC_DEFINE(DEBUG, 1, [Define if debugging information should be included])
184                 else
185                         AC_DEFINE_UNQUOTED(DEBUG, $enableval, [Define if debugging information should be included])
186                 fi 
187                 AC_MSG_RESULT([enabling debugging code])
188         fi
189 )
190
191 afp3=no
192 AC_ARG_ENABLE(afp3,
193         [  --enable-afp3           enable AFP 3.x calls],
194         if test "$enableval" = "yes"; then
195                 afp3=yes
196                 AC_DEFINE(AFP3x, 1, [Define to enable AFP 3.x support])
197                 AC_MSG_RESULT([enabling AFP 3.x calls])
198         fi
199 )
200
201 if test "$afp3" = "yes"; then
202         AM_ICONV
203         AC_SYS_LARGEFILE
204 fi
205
206
207 dnl ----------- A NOTE ABOUT DROPKLUDGE
208 dnl The trouble with this fix is that if you know what the file is called, it
209 dnl can be read from the Unix side.  That's okay for most academic institutions
210 dnl since the students don't have telnet access to the Mac servers.  There is
211 dnl currently no one working on further development/fixes of DROPKLUDGE.
212 dnl -----------
213
214 AC_ARG_ENABLE(dropkludge,
215         [  --enable-dropkludge     enable the experimental dropbox fix (INSECURE!) ],
216         if test "$enableval" = "yes"; then 
217                 AC_DEFINE(DROPKLUDGE, 1, [Define if you want to use the experimental dropkludge support])
218                 AC_MSG_RESULT([enabling experimental dropbox support])
219         fi
220 )
221
222 AC_ARG_ENABLE(force-uidgid,
223         [  --enable-force-uidgid   allow forcing of uid/gid per volume (BROKEN) ],
224         if test "$enableval" = "yes"; then
225                 AC_DEFINE(FORCE_UIDGID, 1, [Define if you want forcing of uid/gid per volume])
226                 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
227         fi
228 )
229
230 dnl Don't use BDB unless it's needed
231 bdb_required=no
232
233 dnl Determine DID scheme
234 AC_MSG_CHECKING([for DID scheme to use])
235 AC_ARG_WITH(did,
236         [  --with-did=SCHEME       set DID scheme (cnid,last)],
237         [ did_scheme="$withval" ],
238         [ did_scheme="cnid" ]
239 )
240
241 if test "x$did_scheme" = "xlast"; then
242         AC_DEFINE(USE_LASTDID, 1, [Define if the last DID scheme should be used])
243         AC_MSG_RESULT([last])
244 elif test "x$did_scheme" = "xcnid"; then
245         bdb_required="yes"
246         AC_DEFINE(CNID_DB, 1, [Define if the CNID DB DID scheme should be used])
247         AC_MSG_RESULT([enabling build with CNID DB support])
248 else
249         AC_MSG_ERROR([unknown DID scheme])
250 fi
251 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
252
253 dnl Determine whether or not to use filename mangling
254 AC_MSG_CHECKING([whether or not to use filename mangling])
255 AC_ARG_WITH(mangling,
256         [  --with-mangling         enable filename mangling],
257         [
258                 if test "x$withval" = "xyes"; then
259                         if test "x$did_scheme" != "xcnid"; then
260                                 AC_MSG_ERROR([DID scheme must be CNID to use filename mangling])
261                         else
262                                 AC_DEFINE(FILE_MANGLING, 1, [Define if file name mangling should be used])
263                                 AC_MSG_RESULT([yes])
264                         fi
265                 else
266                         AC_MSG_RESULT([no])
267                 fi
268         ], [
269                 if test "x$did_scheme" = "xcnid"; then
270                         AC_DEFINE(FILE_MANGLING, 1, [Define if file name mangling should be used])
271                         AC_MSG_RESULT([yes])
272                 else
273                         AC_MSG_RESULT([no])
274                 fi
275         ]
276 )
277
278 if test "$did_scheme" = "cnid"; then
279     USE_CDB="yes"
280 else
281     USE_CDB="no"
282 fi
283
284 dnl Determine whether or not to use CDB or transactional DB store
285 AC_MSG_CHECKING([whether or not to use CNID with Concurrent Data Store])
286 AC_ARG_WITH(cdb,
287         [  --with-cdb              enable CNID with Concurrent Data Store],
288         if test "$withval" = "no"; then
289             if test "x$did_scheme" != "xcnid"; then
290                 USE_CDB="no"
291                 AC_MSG_ERROR([DID scheme must be CNID to use CDB])
292             else
293                 USE_CDB="no"
294                 AC_MSG_RESULT([no])
295             fi
296         else
297             USE_CDB="yes"
298             AC_MSG_RESULT([yes])
299         fi
300         , AC_MSG_RESULT([yes])
301 )
302
303 if test "$USE_CDB" = "yes"; then
304     AC_DEFINE(CNID_DB_CDB, 1, [Define if CNID should be used with Concurrent Data Store])
305 fi
306
307 dnl Check for Berkeley DB library
308 if test "x$bdb_required" = "xyes"; then
309         AC_PATH_BDB(, [AC_MSG_ERROR([Berkeley DB library not found!])])
310 fi
311
312 dnl Check for quota support
313 AC_CHECK_QUOTA
314
315 dnl Check for optional server location protocol support (used by MacOS X)
316 NETATALK_SRVLOC
317
318 dnl Check for PAM libs
319 AC_PATH_PAM([
320         use_pam_so=yes
321         compile_pam=yes
322         AC_DEFINE(USE_PAM, 1, [Define to enable PAM support])
323 ])
324
325 AC_MSG_CHECKING([whether shadow support should be enabled])
326 AC_ARG_WITH(shadow,
327         [  --with-shadow           enable shadow password support],
328         [shadowpw="$withval"],
329         [shadowpw=no]
330 )
331 if test "x$shadowpw" = "xyes"; then
332         AC_DEFINE(SHADOWPW, 1, [Define if shadow passwords should be used])
333 fi
334 AC_MSG_RESULT([$shadowpw])
335
336 AC_ARG_ENABLE(shell-check,
337         [  --disable-shell-check   disable checking for a valid shell],
338         if test "$enableval" = "no"; then 
339                 AC_DEFINE(DISABLE_SHELLCHECK, 1, [Define if shell check should be disabled])
340                 AC_MSG_RESULT([disabling valid shell check])
341         fi
342 )
343
344 AC_ARG_WITH(tcp-wrappers,
345         [  --with-tcp-wrappers     enable TCP wrappers support],
346         AC_CHECK_LIB(wrap, tcpd_warn,
347                 AC_DEFINE(TCPWRAP, 1, [Define if TCP wrappers should be used])
348                 WRAP_LIBS="-lwrap"
349                 AC_MSG_RESULT([enabling TCP wrappers support])
350         )
351 )
352 AC_SUBST(WRAP_LIBS)
353
354 AC_ARG_ENABLE(redhat,
355         [  --enable-redhat         use redhat-style sysv configuration ],
356         if test "$enableval" = "yes"; then
357                 sysv_style=redhat
358         fi
359         AC_MSG_RESULT([enabling redhat-style sysv support])
360 )
361
362 AC_ARG_ENABLE(suse,
363         [  --enable-suse           use suse-style sysv configuration ],
364         if test "$enableval" = "yes"; then
365                 sysv_style=suse
366         fi
367         AC_MSG_RESULT([enabling suse-style sysv support])
368 )
369
370 AC_ARG_ENABLE(cobalt,
371         [  --enable-cobalt         use cobalt-style sysv configuration ],
372         if test "$enableval" = "yes"; then
373                 sysv_style=cobalt
374         fi
375         AC_MSG_RESULT([enabling cobalt-style sysv support])
376 )
377
378 AC_ARG_ENABLE(netbsd,
379         [  --enable-netbsd         use NetBSD-style rc.d configuration ],
380         if test "x$enableval" = "xyes"; then
381                 sysv_style=netbsd
382         fi
383         AC_MSG_RESULT([enabling NetBSD-style rc.d support])
384 )
385
386 dnl ----- timelord compilation (disabled by default)
387 AC_MSG_CHECKING([whether timelord should be compiled])
388 compile_timelord=no
389 AC_ARG_ENABLE(timelord,
390         [  --enable-timelord       enable compilation of timelord server],
391         [compile_timelord="$enableval"],
392         [compile_timelord="no"]
393 )
394 AC_MSG_RESULT([$compile_timelord])
395
396 dnl ----- a2boot compilation (disabled by default)
397 AC_MSG_CHECKING([whether a2boot should be compiled])
398 compile_a2boot=no
399 AC_ARG_ENABLE(a2boot,
400         [  --enable-a2boot         enable compilation of Apple2 boot server],
401         [compile_a2boot="$enableval"],
402         [compile_a2boot="no"]
403 )
404 AC_MSG_RESULT([$compile_a2boot])
405
406 AC_ARG_WITH(uams-path,
407         [  --with-uams-path=PATH   path to UAMs [[PKGCONF/uams]]],
408         uams_path="$withval",
409         uams_path="${PKGCONFDIR}/uams"
410 )
411
412 dnl --------------------------------------------------------------------------
413 dnl FHS stuff has to be done last because it overrides other defaults
414 dnl --------------------------------------------------------------------------
415
416 AC_ARG_ENABLE(fhs,
417         [  --enable-fhs            use Filesystem Hierarchy Standard (FHS) compatibility],
418         if test "$enableval" = "yes"; then
419                 uams_path="${libdir}/netatalk"
420                 sysconfdir="/etc"
421                 PKGCONFDIR=${sysconfdir}/netatalk
422                 SERVERTEXT="${PKGCONFDIR}/msg"
423                 NLSDIR="${PKGCONFDIR}/nls"
424                 use_pam_so=yes
425                 mandir="/usr/share/man"
426                 AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
427         fi
428         AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
429 )
430
431 dnl --------------------------------------------------------------------------
432 dnl post-FHS substitutions, etc
433 dnl --------------------------------------------------------------------------
434
435 dnl ***** UAMS_PATH
436 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
437         [path to UAMs [default=PKGCONF/uams]])
438 UAMS_PATH="${uams_path}"
439 AC_SUBST(UAMS_PATH)
440
441 dnl --------------------------------------------------------------------------
442 dnl drop in includes for top level directory structures here...
443 dnl --------------------------------------------------------------------------
444
445 dnl Note: $(top_srcdir)/include should be added before all other includes
446 dnl       so that includes from that directory a preferred to includes from
447 dnl       /usr/include or similar places.
448 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
449 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
450
451 dnl --------------------------------------------------------------------------
452 dnl specific configuration comes in here:
453 dnl --------------------------------------------------------------------------
454
455 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
456
457 dnl --------------------- determine operating system from "target"
458 case "$host_os" in
459         *aix*)                          this_os=aix ;;
460         *freebsd*)                      this_os=freebsd ;;
461         *hpux11*)                       this_os=hpux11 ;;
462         *irix*)                         this_os=irix ;;
463         *linux*)                        this_os=linux ;;
464         *osx*)                          this_os=macosx ;;
465         *darwin*)                       this_os=macosx ;;
466         *netbsd*)                       this_os=netbsd ;;
467         *openbsd*)                      this_os=openbsd ;;
468         *osf*)                          this_os=tru64 ;;
469         *solaris*)                      this_os=solaris ;;
470 esac
471
472 case "$host_cpu" in
473         i386|i486|i586|i686|k7)         this_cpu=x86 ;;
474         alpha)                                          this_cpu=alpha ;;
475         mips)                                           this_cpu=mips ;;
476         powerpc|ppc)                            this_cpu=ppc ;;
477 esac
478
479 dnl --------------------- operating system specific flags (port from sys/*)
480
481 dnl ----- AIX specific -----
482 if test x"$this_os" = "xaix"; then
483         AC_MSG_RESULT([ * AIX specific configuration])
484         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
485
486         dnl This is probably a lie; AIX 4.3 supports a 64-bit long
487         dnl compilation environment.  It's enough to get things defined
488         dnl right in endian.h provided that long long is supported, though.
489         AC_DEFINE(HAVE_32BIT_LONGS, 1, [Define if the data type long has 32 bit])
490 fi
491
492 dnl ----- FreeBSD specific -----
493 if test x"$this_os" = "xfreebsd"; then 
494         AC_MSG_RESULT([ * FreeBSD specific configuration])
495         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
496         AC_DEFINE(SENDFILE_FLAVOR_BSD, 1, [Define if the sendfile() function uses BSD semantics])
497
498         AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
499 fi
500
501 dnl ----- HP-UX 11 specific -----
502 if test x"$this_os" = "xhpux11"; then
503         AC_MSG_RESULT([ * HP-UX 11 specific configuration])
504
505         AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
506         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
507 fi
508
509 dnl ----- IRIX specific -----
510 if test x"$this_os" = "xirix"; then
511         AC_MSG_RESULT([ * IRIX specific configuration])
512
513         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
514 fi
515
516 dnl ----- Linux specific -----
517 if test x"$this_os" = "xlinux"; then 
518         AC_MSG_RESULT([ * Linux specific configuration])
519
520         dnl ----- check if we need the quotactl wrapper
521         AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
522         AC_CHECK_FUNC(quotactl,,
523                 AC_DEFINE(NEED_QUOTACTL_WRAPPER, 1, [Define if the quotactl wrapper is needed])
524                 AC_MSG_RESULT([enabling quotactl wrapper])
525         )
526
527         dnl ----- as far as I can tell, dbtob always does the wrong thing
528         dnl ----- on every single version of linux I've ever played with.
529         dnl ----- see etc/afpd/quota.c
530         AC_DEFINE(HAVE_BROKEN_DBTOB, 1, [Define if dbtob is broken])
531
532         dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
533         dnl ----- check if version is newer than 2.2.x
534         changequote(<<,>>)
535         majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
536         minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
537         if [ $majorvers -ge 2 ]; then
538                 if [ $minorvers -ge 2 ]; then
539                         changequote([,])
540                         AC_MSG_RESULT([ * found Linux 2.2.x or higher])
541                         AC_DEFINE(SENDFILE_FLAVOR_LINUX, 1, [Define if the sendfile() function uses Linux semantics])
542                 else
543                         AC_MSG_RESULT([ * found Linux 2.0.x ]) 
544                 fi
545         fi
546
547         dnl ----- Linux/alpha specific -----
548         if test x"$this_cpu" = "xalpha"; then 
549                 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
550                 AC_DEFINE(HAVE_GCC_MEMCPY_BUG, 1, [Define if memcpy is buggy])
551         fi
552         need_dash_r=no
553 fi
554
555 dnl ----- Mac OSX specific -----
556 if test x"$this_os" = "xmacosx"; then 
557         AC_MSG_RESULT([ * Mac OSX specific configuration])
558         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
559         AC_DEFINE(HAVE_BROKEN_CPP, 1, [Define if cpp is broken])
560         AC_DEFINE(HAVE_2ARG_DBTOB, 1, [Define if dbtob takes two arguments])
561         dnl AC_DEFINE(NO_DLFCN_H)
562         AC_DEFINE(MACOSX_SERVER, 1, [Define if compiling for MacOS X Server])
563 fi
564
565 dnl ----- NetBSD specific -----
566 if test x"$this_os" = "xnetbsd"; then 
567         AC_MSG_RESULT([ * NetBSD specific configuration])
568         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
569         if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
570                 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
571                 # If this test is true, it's not an ELF box.
572                 # This REALLY should be a configure test.
573                 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
574         fi
575         CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
576         need_dash_r=yes 
577
578         dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
579         AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
580         AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
581 fi
582
583 dnl ----- OpenBSD specific -----
584 if test x"$this_os" = "xopenbsd"; then 
585         AC_MSG_RESULT([ * OpenBSD specific configuration])
586         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
587         AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
588
589         dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
590         AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
591         AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
592 fi
593
594 dnl ----- Solaris specific -----
595 if test x"$this_os" = "xsolaris"; then 
596         AC_MSG_RESULT([ * Solaris specific configuration])
597         AC_DEFINE(__svr4__, 1, [Solaris compatibility macro])
598         AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
599         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
600         AC_DEFINE(SOLARIS, 1, [Solaris compatibility macro])
601         CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
602         need_dash_r=yes
603
604         AC_MSG_RESULT([enabling Solaris kernel module build])
605         solaris_module=yes
606 fi
607
608 dnl ----- Tru64 specific -----
609 if test x"$this_os" = "xtru64"; then 
610         AC_MSG_RESULT([ * Tru64 specific configuration])
611         AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
612         AC_DEFINE(HAVE_64BIT_LONGS, 1, [Define if the data type long has 64 bit])
613         dnl AC_DEFINE(USE_MOUNT_H)
614         AC_DEFINE(USE_OLD_RQUOTA, 1, [Define to use old rquota])
615         dnl AC_DEFINE(USE_UFS_QUOTA_H)
616         AC_DEFINE(TRU64, 1, [Define on Tru64 platforms])
617         AC_CHECK_LIB(security,set_auth_parameters)
618         CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
619         need_dash_r=no
620         sysv_style=tru64
621 fi
622
623 dnl -- look for openssl
624 AC_PATH_SSL
625
626 dnl --------------------- check for building PGP UAM module
627
628 AC_ARG_ENABLE(pgp-uam,
629         [  --enable-pgp-uam        enable build of PGP UAM module],
630         if test "$enableval" = "yes"; then 
631                 if test "$compile_ssl" = "yes"; then 
632                         AC_DEFINE(UAM_PGP, 1, [Define if the PGP UAM module should be compiled])
633                         compile_pgp=yes
634                         AC_MSG_RESULT([enabling build with PGP UAM module])
635                 fi
636         fi
637 )
638
639 dnl --------------------- check for building Kerberos v4 UAM module
640
641 AC_ARG_ENABLE(krb4-uam,
642         [  --enable-krb4-uam       enable build of Kerberos v4 UAM module],
643         if test "$enableval" = "yes"; then
644                 AC_DEFINE(UAM_KRB4, 1, [Define if the Kerberos 4 UAM module should be compiled])
645                 compile_kerberos=yes
646                 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
647         fi
648 )
649 dnl --------------------- overwrite the config files . . . or not.
650
651 AC_MSG_CHECKING([whether configuration files should be overwritten])
652 AC_ARG_ENABLE(overwrite,
653         [  --enable-overwrite      overwrite configuration files during installation],
654         [OVERWRITE_CONFIG="${enable_overwrite}"],
655         [OVERWRITE_CONFIG="no"]
656 )
657 AC_MSG_RESULT([$OVERWRITE_CONFIG])
658
659 dnl --------------------- last minute substitutions
660
661 AC_SUBST(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/lp2pap.sh
710         contrib/shell_utils/netatalkshorternamelinks.pl
711         contrib/timelord/Makefile
712         contrib/a2boot/Makefile
713         distrib/Makefile
714         distrib/config/Makefile
715         distrib/config/netatalk-config
716         distrib/initscripts/Makefile
717         distrib/m4/Makefile
718         doc/Makefile
719         etc/Makefile
720         etc/afpd/Makefile
721         etc/afpd/nls/Makefile
722         etc/atalkd/Makefile
723         etc/uams/Makefile
724         etc/uams/uams_krb4/Makefile
725         etc/papd/Makefile
726         etc/psf/Makefile
727         etc/psf/etc2ps.sh
728         include/Makefile
729         include/atalk/Makefile
730         libatalk/Makefile
731         libatalk/adouble/Makefile
732         libatalk/asp/Makefile
733         libatalk/atp/Makefile
734         libatalk/cnid/Makefile
735         libatalk/compat/Makefile
736         libatalk/dsi/Makefile
737         libatalk/nbp/Makefile
738         libatalk/netddp/Makefile
739         libatalk/util/Makefile
740         macros/Makefile
741         man/Makefile
742         man/man1/Makefile
743         man/man3/Makefile
744         man/man4/Makefile
745         man/man5/Makefile
746         man/man8/Makefile
747         sys/Makefile
748         sys/generic/Makefile
749         sys/generic/sys/Makefile
750         sys/netatalk/Makefile
751         sys/netbsd/Makefile
752         sys/netbsd/netatalk/Makefile
753         sys/solaris/Makefile
754         sys/solaris/Makefile.kernel
755         sys/sunos/Makefile
756         sys/ultrix/Makefile
757         ],
758         [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
759 )
760