]> arthur.barton.de Git - netatalk.git/blob - configure.in
Add unicode to Mac OS code page (internal or with iconv) Björn Fernhomberg and
[netatalk.git] / configure.in
1 dnl $Id: configure.in,v 1.179.2.3 2003-06-23 10:25:07 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,hash)],
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" = "xhash"; then
243         AC_DEFINE(USE_HASHDID, 1, [Define if the hash DID scheme should be used, only one dev])
244         AC_MSG_RESULT([hash])
245 elif test "x$did_scheme" = "xcnid"; then
246         bdb_required="yes"
247         AC_DEFINE(CNID_DB, 1, [Define if the CNID DB DID scheme should be used])
248         AC_MSG_RESULT([enabling build with CNID DB support])
249 else
250         AC_MSG_ERROR([unknown DID scheme])
251 fi
252 AM_CONDITIONAL(COMPILE_CNID, test "x$did_scheme" = "xcnid")
253
254 dnl Determine whether or not to use filename mangling
255 AC_MSG_CHECKING([whether or not to use filename mangling])
256 AC_ARG_WITH(mangling,
257         [  --with-mangling         enable filename mangling],
258         [
259                 if test "x$withval" = "xyes"; then
260                         if test "x$did_scheme" != "xcnid"; then
261                                 AC_MSG_ERROR([DID scheme must be CNID to use filename mangling])
262                         else
263                                 AC_DEFINE(FILE_MANGLING, 1, [Define if file name mangling should be used])
264                                 AC_MSG_RESULT([yes])
265                         fi
266                 else
267                         AC_MSG_RESULT([no])
268                 fi
269         ], [
270                 if test "x$did_scheme" = "xcnid"; then
271                         AC_DEFINE(FILE_MANGLING, 1, [Define if file name mangling should be used])
272                         AC_MSG_RESULT([yes])
273                 else
274                         AC_MSG_RESULT([no])
275                 fi
276         ]
277 )
278
279 if test "$did_scheme" = "cnid"; then
280     USE_CDB="yes"
281 else
282     USE_CDB="no"
283 fi
284
285 dnl Determine whether or not to use CDB or transactional DB store
286 AC_MSG_CHECKING([whether or not to use CNID with Concurrent Data Store])
287 AC_ARG_WITH(cdb,
288         [  --with-cdb              enable CNID with Concurrent Data Store],
289         if test "$withval" = "no"; then
290             if test "x$did_scheme" != "xcnid"; then
291                 USE_CDB="no"
292                 AC_MSG_ERROR([DID scheme must be CNID to use CDB])
293             else
294                 USE_CDB="no"
295                 AC_MSG_RESULT([no])
296             fi
297         else
298             USE_CDB="yes"
299             AC_MSG_RESULT([yes])
300         fi
301         , AC_MSG_RESULT([yes])
302 )
303
304 if test "$USE_CDB" = "yes"; then
305     AC_DEFINE(CNID_DB_CDB, 1, [Define if CNID should be used with Concurrent Data Store])
306 fi
307
308 dnl Check for Berkeley DB library
309 if test "x$bdb_required" = "xyes"; then
310         AC_PATH_BDB(, [AC_MSG_ERROR([Berkeley DB library not found!])])
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         PAPD_LIBS="$PAPD_LIBS $PAM_LIBS"
322         AFPD_LIBS="$AFPD_LIBS $PAM_LIBS"
323         use_pam_so=yes
324         compile_pam=yes
325         AC_DEFINE(USE_PAM, 1, [Define to enable PAM support])
326 ])
327
328 AC_MSG_CHECKING([whether shadow support should be enabled])
329 AC_ARG_WITH(shadow,
330         [  --with-shadow           enable shadow password support],
331         [shadowpw="$withval"],
332         [shadowpw=no]
333 )
334 if test "x$shadowpw" = "xyes"; then
335         AC_DEFINE(SHADOWPW, 1, [Define if shadow passwords should be used])
336 fi
337 AC_MSG_RESULT([$shadowpw])
338
339 AC_ARG_ENABLE(shell-check,
340         [  --disable-shell-check   disable checking for a valid shell],
341         if test "$enableval" = "no"; then 
342                 AC_DEFINE(DISABLE_SHELLCHECK, 1, [Define if shell check should be disabled])
343                 AC_MSG_RESULT([disabling valid shell check])
344         fi
345 )
346
347 AC_ARG_WITH(tcp-wrappers,
348         [  --with-tcp-wrappers     enable TCP wrappers support],
349         AC_CHECK_LIB(wrap, tcpd_warn,
350                 AC_DEFINE(TCPWRAP, 1, [Define if TCP wrappers should be used])
351                 AFPD_LIBS="$AFPD_LIBS -lwrap"
352                 AC_MSG_RESULT([enabling TCP wrappers support])
353         )
354 )
355
356 AC_ARG_ENABLE(redhat,
357         [  --enable-redhat         use redhat-style sysv configuration ],
358         if test "$enableval" = "yes"; then
359                 sysv_style=redhat
360         fi
361         AC_MSG_RESULT([enabling redhat-style sysv support])
362 )
363
364 AC_ARG_ENABLE(suse,
365         [  --enable-suse           use suse-style sysv configuration ],
366         if test "$enableval" = "yes"; then
367                 sysv_style=suse
368         fi
369         AC_MSG_RESULT([enabling suse-style sysv support])
370 )
371
372 AC_ARG_ENABLE(cobalt,
373         [  --enable-cobalt         use cobalt-style sysv configuration ],
374         if test "$enableval" = "yes"; then
375                 sysv_style=cobalt
376         fi
377         AC_MSG_RESULT([enabling cobalt-style sysv support])
378 )
379
380 AC_ARG_ENABLE(netbsd,
381         [  --enable-netbsd         use NetBSD-style rc.d configuration ],
382         if test "x$enableval" = "xyes"; then
383                 sysv_style=netbsd
384         fi
385         AC_MSG_RESULT([enabling NetBSD-style rc.d support])
386 )
387
388 dnl ----- timelord compilation (disabled by default)
389 AC_MSG_CHECKING([whether timelord should be compiled])
390 compile_timelord=no
391 AC_ARG_ENABLE(timelord,
392         [  --enable-timelord       enable compilation of timelord server],
393         [compile_timelord="$enableval"],
394         [compile_timelord="no"]
395 )
396 AC_MSG_RESULT([$compile_timelord])
397
398 dnl ----- a2boot compilation (disabled by default)
399 AC_MSG_CHECKING([whether a2boot should be compiled])
400 compile_a2boot=no
401 AC_ARG_ENABLE(a2boot,
402         [  --enable-a2boot       enable compilation of Apple2 boot server],
403         [compile_a2boot="$enableval"],
404         [compile_a2boot="no"]
405 )
406 AC_MSG_RESULT([$compile_a2boot])
407
408 AC_ARG_WITH(uams-path,
409         [  --with-uams-path=PATH   path to UAMs [[PKGCONF/uams]]],
410         uams_path="$withval",
411         uams_path="${PKGCONFDIR}/uams"
412 )
413
414 dnl --------------------------------------------------------------------------
415 dnl FHS stuff has to be done last because it overrides other defaults
416 dnl --------------------------------------------------------------------------
417
418 AC_ARG_ENABLE(fhs,
419         [  --enable-fhs            use Filesystem Hierarchy Standard (FHS) compatibility],
420         if test "$enableval" = "yes"; then
421                 uams_path="${libdir}/netatalk"
422                 sysconfdir="/etc"
423                 PKGCONFDIR=${sysconfdir}/netatalk
424                 SERVERTEXT="${PKGCONFDIR}/msg"
425                 NLSDIR="${PKGCONFDIR}/nls"
426                 use_pam_so=yes
427                 mandir="/usr/share/man"
428                 AC_DEFINE(FHS_COMPATIBILITY, 1, [Define if you want compatibily with the FHS])
429         fi
430         AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
431 )
432
433 dnl --------------------------------------------------------------------------
434 dnl post-FHS substitutions, etc
435 dnl --------------------------------------------------------------------------
436
437 dnl ***** UAMS_PATH
438 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
439         [path to UAMs [default=PKGCONF/uams]])
440 UAMS_PATH="${uams_path}"
441 AC_SUBST(UAMS_PATH)
442
443 dnl --------------------------------------------------------------------------
444 dnl drop in includes for top level directory structures here...
445 dnl --------------------------------------------------------------------------
446
447 dnl Note: $(top_srcdir)/include should be added before all other includes
448 dnl       so that includes from that directory a preferred to includes from
449 dnl       /usr/include or similar places.
450 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
451 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
452
453 dnl --------------------------------------------------------------------------
454 dnl specific configuration comes in here:
455 dnl --------------------------------------------------------------------------
456
457 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
458
459 dnl --------------------- determine operating system from "target"
460 case "$host_os" in
461         *aix*)                          this_os=aix ;;
462         *freebsd*)                      this_os=freebsd ;;
463         *hpux11*)                       this_os=hpux11 ;;
464         *irix*)                         this_os=irix ;;
465         *linux*)                        this_os=linux ;;
466         *osx*)                          this_os=macosx ;;
467         *darwin*)                       this_os=macosx ;;
468         *netbsd*)                       this_os=netbsd ;;
469         *openbsd*)                      this_os=openbsd ;;
470         *osf*)                          this_os=tru64 ;;
471         *solaris*)                      this_os=solaris ;;
472 esac
473
474 case "$host_cpu" in
475         i386|i486|i586|i686|k7)         this_cpu=x86 ;;
476         alpha)                                          this_cpu=alpha ;;
477         mips)                                           this_cpu=mips ;;
478         powerpc|ppc)                            this_cpu=ppc ;;
479 esac
480
481 dnl --------------------- operating system specific flags (port from sys/*)
482
483 dnl ----- AIX specific -----
484 if test x"$this_os" = "xaix"; then
485         AC_MSG_RESULT([ * AIX specific configuration])
486         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
487
488         dnl This is probably a lie; AIX 4.3 supports a 64-bit long
489         dnl compilation environment.  It's enough to get things defined
490         dnl right in endian.h provided that long long is supported, though.
491         AC_DEFINE(HAVE_32BIT_LONGS, 1, [Define if the data type long has 32 bit])
492 fi
493
494 dnl ----- FreeBSD specific -----
495 if test x"$this_os" = "xfreebsd"; then 
496         AC_MSG_RESULT([ * FreeBSD specific configuration])
497         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
498         AC_DEFINE(SENDFILE_FLAVOR_BSD, 1, [Define if the sendfile() function uses BSD semantics])
499
500         AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
501 fi
502
503 dnl ----- HP-UX 11 specific -----
504 if test x"$this_os" = "xhpux11"; then
505         AC_MSG_RESULT([ * HP-UX 11 specific configuration])
506
507         AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
508         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
509 fi
510
511 dnl ----- IRIX specific -----
512 if test x"$this_os" = "xirix"; then
513         AC_MSG_RESULT([ * IRIX specific configuration])
514
515         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
516 fi
517
518 dnl ----- Linux specific -----
519 if test x"$this_os" = "xlinux"; then 
520         AC_MSG_RESULT([ * Linux specific configuration])
521
522         dnl ----- check if we need the quotactl wrapper
523         AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
524         AC_CHECK_FUNC(quotactl,,
525                 AC_DEFINE(NEED_QUOTACTL_WRAPPER, 1, [Define if the quotactl wrapper is needed])
526                 AC_MSG_RESULT([enabling quotactl wrapper])
527         )
528
529         dnl ----- as far as I can tell, dbtob always does the wrong thing
530         dnl ----- on every single version of linux I've ever played with.
531         dnl ----- see etc/afpd/quota.c
532         AC_DEFINE(HAVE_BROKEN_DBTOB, 1, [Define if dbtob is broken])
533
534         linux_sendfile=no
535         AC_ARG_ENABLE(sendfile,
536             [  --enable-sendfile       use sendfile syscall default (no) ],
537             if test "$enableval" = "yes"; then
538                 linux_sendfile=yes
539             fi
540             AC_MSG_RESULT([enabling sendfile syscall])
541         )
542
543         if test x"$linux_sendfile" = "xyes"; then 
544             dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
545             dnl ----- check if version is newer than 2.2.x
546             changequote(<<,>>)
547             majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
548             minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
549             if [ $majorvers -ge 2 ]; then
550                 if [ $minorvers -ge 2 ]; then
551                         changequote([,])
552                         AC_MSG_RESULT([ * found Linux 2.2.x or higher])
553                         AC_DEFINE(SENDFILE_FLAVOR_LINUX, 1, [Define if the sendfile() function uses Linux semantics])
554                 else
555                         AC_MSG_RESULT([ * found Linux 2.0.x ]) 
556                 fi
557             fi
558         fi
559
560         dnl ----- Linux/alpha specific -----
561         if test x"$this_cpu" = "xalpha"; then 
562                 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
563                 AC_DEFINE(HAVE_GCC_MEMCPY_BUG, 1, [Define if memcpy is buggy])
564         fi
565         need_dash_r=no
566
567
568 fi
569
570 dnl ----- Mac OSX specific -----
571 if test x"$this_os" = "xmacosx"; then 
572         AC_MSG_RESULT([ * Mac OSX specific configuration])
573         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
574         AC_DEFINE(HAVE_BROKEN_CPP, 1, [Define if cpp is broken])
575         AC_DEFINE(HAVE_2ARG_DBTOB, 1, [Define if dbtob takes two arguments])
576         dnl AC_DEFINE(NO_DLFCN_H)
577         AC_DEFINE(MACOSX_SERVER, 1, [Define if compiling for MacOS X Server])
578 fi
579
580 dnl ----- NetBSD specific -----
581 if test x"$this_os" = "xnetbsd"; then 
582         AC_MSG_RESULT([ * NetBSD specific configuration])
583         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
584         if echo __ELF__ | $CC -E - | grep __ELF__ > /dev/null; then
585                 # NetBSD ELF machines don't have to have DLSYM_PREPEND_UNDERSCORE.
586                 # If this test is true, it's not an ELF box.
587                 # This REALLY should be a configure test.
588                 AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
589         fi
590         CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
591         need_dash_r=yes 
592
593         dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
594         AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
595         AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
596 fi
597
598 dnl ----- OpenBSD specific -----
599 if test x"$this_os" = "xopenbsd"; then 
600         AC_MSG_RESULT([ * OpenBSD specific configuration])
601         AC_DEFINE(BSD4_4, 1, [BSD compatiblity macro])
602         AC_DEFINE(DLSYM_PREPEND_UNDERSCORE, 1, [BSD compatibility macro])
603
604         dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
605         AC_DEFINE(UAM_DHX, 1, [Define if the DHX UAM modules should be compiled])
606         AC_DEFINE(NO_CRYPT_H, 1, [Define if crypt.h does not exist])
607 fi
608
609 dnl ----- Solaris specific -----
610 if test x"$this_os" = "xsolaris"; then 
611         AC_MSG_RESULT([ * Solaris specific configuration])
612         AC_DEFINE(__svr4__, 1, [Solaris compatibility macro])
613         AC_DEFINE(_ISOC9X_SOURCE, 1, [Compatibility macro])
614         AC_DEFINE(NO_STRUCT_TM_GMTOFF, 1, [Define if the gmtoff member of struct tm is not available])
615         AC_DEFINE(SOLARIS, 1, [Solaris compatibility macro])
616         CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
617         need_dash_r=yes
618
619         AC_MSG_RESULT([enabling Solaris kernel module build])
620         solaris_module=yes
621 fi
622
623 dnl ----- Tru64 specific -----
624 if test x"$this_os" = "xtru64"; then 
625         AC_MSG_RESULT([ * Tru64 specific configuration])
626         AC_DEFINE(NO_DDP, 1, [Define if DDP should be disabled])
627         AC_DEFINE(HAVE_64BIT_LONGS, 1, [Define if the data type long has 64 bit])
628         dnl AC_DEFINE(USE_MOUNT_H)
629         AC_DEFINE(USE_OLD_RQUOTA, 1, [Define to use old rquota])
630         dnl AC_DEFINE(USE_UFS_QUOTA_H)
631         AC_DEFINE(TRU64, 1, [Define on Tru64 platforms])
632         AC_CHECK_LIB(security,set_auth_parameters)
633         CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
634         need_dash_r=no
635         sysv_style=tru64
636 fi
637
638 dnl -- look for openssl
639 AC_PATH_SSL
640
641 dnl --------------------- check for building PGP UAM module
642
643 AC_ARG_ENABLE(pgp-uam,
644         [  --enable-pgp-uam        enable build of PGP UAM module],
645         if test "$enableval" = "yes"; then 
646                 if test "$compile_ssl" = "yes"; then 
647                         AC_DEFINE(UAM_PGP, 1, [Define if the PGP UAM module should be compiled])
648                         compile_pgp=yes
649                         AC_MSG_RESULT([enabling build with PGP UAM module])
650                 fi
651         fi
652 )
653
654 dnl --------------------- check for building Kerberos v4 UAM module
655
656 AC_ARG_ENABLE(krb4-uam,
657         [  --enable-krb4-uam       enable build of Kerberos v4 UAM module],
658         if test "$enableval" = "yes"; then
659                 AC_DEFINE(UAM_KRB4, 1, [Define if the Kerberos 4 UAM module should be compiled])
660                 compile_kerberos=yes
661                 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
662         fi
663 )
664 dnl --------------------- overwrite the config files . . . or not.
665
666 AC_MSG_CHECKING([whether configuration files should be overwritten])
667 AC_ARG_ENABLE(overwrite,
668         [  --enable-overwrite      overwrite configuration files during installation],
669         [OVERWRITE_CONFIG="${enable_overwrite}"],
670         [OVERWRITE_CONFIG="no"]
671 )
672 AC_MSG_RESULT([$OVERWRITE_CONFIG])
673
674 dnl --------------------- last minute substitutions
675
676 AC_SUBST(LIBS)
677 AC_SUBST(AFPD_LIBS)
678 AC_SUBST(PAPD_LIBS)
679 AC_SUBST(CFLAGS)
680 AC_SUBST(OVERWRITE_CONFIG)
681
682 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
683 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
684 AM_CONDITIONAL(COMPILE_A2BOOT, test x$compile_a2boot = xyes)
685 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
686 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
687 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
688 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
689 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
690 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
691 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
692 AM_CONDITIONAL(USE_NETBSD, test x$sysv_style = xnetbsd)
693 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
694 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
695 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
696 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
697
698 dnl --------------------- generate files
699
700 AC_OUTPUT([Makefile
701         bin/Makefile
702         bin/adv1tov2/Makefile
703         bin/aecho/Makefile
704         bin/afile/Makefile
705         bin/afppasswd/Makefile
706         bin/cnid/Makefile
707         bin/cnid/cnid_maint
708         bin/getzones/Makefile
709         bin/megatron/Makefile
710         bin/nbp/Makefile
711         bin/pap/Makefile
712         bin/psorder/Makefile
713         config/Makefile
714         contrib/Makefile
715         contrib/macusers/Makefile
716         contrib/macusers/macusers
717         contrib/nu/Makefile
718         contrib/nu/nu
719         contrib/printing/Makefile
720         contrib/shell_utils/Makefile
721         contrib/shell_utils/afpd-mtab.pl
722         contrib/shell_utils/apple_cp
723         contrib/shell_utils/apple_mv
724         contrib/shell_utils/apple_rm
725         contrib/shell_utils/cleanappledouble.pl
726         contrib/shell_utils/netatalkshorternamelinks.pl
727         contrib/timelord/Makefile
728         contrib/a2boot/Makefile
729         distrib/Makefile
730         distrib/config/Makefile
731         distrib/config/netatalk-config
732         distrib/initscripts/Makefile
733         distrib/m4/Makefile
734         doc/Makefile
735         etc/Makefile
736         etc/afpd/Makefile
737         etc/afpd/nls/Makefile
738         etc/atalkd/Makefile
739         etc/uams/Makefile
740         etc/uams/uams_krb4/Makefile
741         etc/papd/Makefile
742         etc/psf/Makefile
743         include/Makefile
744         include/atalk/Makefile
745         libatalk/Makefile
746         libatalk/adouble/Makefile
747         libatalk/asp/Makefile
748         libatalk/atp/Makefile
749         libatalk/cnid/Makefile
750         libatalk/compat/Makefile
751         libatalk/dsi/Makefile
752         libatalk/nbp/Makefile
753         libatalk/netddp/Makefile
754         libatalk/util/Makefile
755         libatalk/unicode/Makefile
756         macros/Makefile
757         man/Makefile
758         man/man1/Makefile
759         man/man3/Makefile
760         man/man4/Makefile
761         man/man5/Makefile
762         man/man8/Makefile
763         sys/Makefile
764         sys/generic/Makefile
765         sys/generic/sys/Makefile
766         sys/netatalk/Makefile
767         sys/netbsd/Makefile
768         sys/netbsd/netatalk/Makefile
769         sys/solaris/Makefile
770         sys/solaris/Makefile.kernel
771         sys/sunos/Makefile
772         sys/ultrix/Makefile
773         ],
774         [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
775 )
776