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