]> arthur.barton.de Git - netatalk.git/blob - configure.in
Mostly reverted Dan's patch after a short discussion with him, but fixed
[netatalk.git] / configure.in
1 dnl $Id: configure.in,v 1.128 2001-11-20 19:06:46 srittau Exp $
2 dnl configure.in for netatalk
3
4 AC_INIT(bin/adv1tov2/adv1tov2.c)
5
6 NETATALK_VERSION=`cat 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 Reset locations to proper places
14 AC_PREFIX_DEFAULT(/usr/local)
15
16 dnl Checks for programs.
17 AC_PROG_AWK
18 AC_PROG_CC
19 AC_PROG_INSTALL
20 AC_PROG_LN_S
21 AC_PROG_MAKE_SET
22 AC_LIBTOOL_DLOPEN
23 AM_PROG_LIBTOOL
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 -lcom_err:
40 AC_CHECK_LIB(com_err, 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 -lresolv:
60 AC_CHECK_LIB(resolv, main)
61 dnl Replace `main' with a function in -lrpcsvc:
62 AC_CHECK_LIB(rpcsvc, main)
63 dnl Replace `main' with a function in -lrx:
64 AC_CHECK_LIB(rx, main)
65 dnl Replace `main' with a function in -lrxkad:
66 AC_CHECK_LIB(rxkad, main)
67 dnl Replace `main' with a function in -lsocket:
68 AC_CHECK_LIB(socket, main)
69 dnl Replace `main' with a function in -lsys:
70 AC_CHECK_LIB(sys, main)
71 dnl Replace `main' with a function in -lubik:
72 AC_CHECK_LIB(ubik, main)
73
74 #
75 # Check presence of some functions
76 #
77 # Check for XPG4 access() function
78 # Be sure to test before adding AFS libs in LIBS path as AFS lib
79 # has such a function that works only on AFS filesystems.
80 AC_CHECK_FUNCS(access)
81
82 dnl Checks for header files.
83 AC_HEADER_DIRENT
84 AC_HEADER_STDC
85 AC_HEADER_SYS_WAIT
86 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 security/pam_appl.h)
87 AC_CHECK_HEADER(sys/cdefs.h,,
88         AC_MSG_RESULT([enabling generic cdefs.h from tree])
89         CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
90 )
91
92 # Allow user to specify flags
93 AC_ARG_WITH(cflags,
94         [  --with-cflags           specify additional flags to pass to compiler],
95         [
96                 if test "x$withval" != "xno" ; then
97                         CFLAGS="$CFLAGS $withval"
98                 fi
99         ]       
100 )
101 AC_ARG_WITH(libs,
102         [  --with-libs             specify additional libraries to link with],
103         [
104                 if test "x$withval" != "xno" ; then
105                         LIBS="$LIBS $withval"
106                 fi
107         ]
108 )
109
110 dnl Checks for typedefs, structures, and compiler characteristics.
111 AC_C_CONST
112 AC_TYPE_UID_T
113 AC_C_INLINE
114 AC_TYPE_MODE_T
115 AC_TYPE_OFF_T
116 AC_TYPE_PID_T
117 AC_TYPE_SIZE_T
118 AC_STRUCT_ST_RDEV
119 AC_HEADER_TIME
120 AC_STRUCT_TM
121
122 dnl Checks for library functions.
123 AC_TYPE_GETGROUPS
124 AC_PROG_GCC_TRADITIONAL
125 AC_FUNC_MEMCMP
126 AC_HEADER_MAJOR
127 AC_FUNC_MMAP
128 AC_TYPE_SIGNAL
129 AC_FUNC_UTIME_NULL
130 AC_FUNC_WAIT3
131 AC_CHECK_FUNCS(flock getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp strchr memcpy)
132 AC_FUNC_SETPGRP
133
134 dnl --------------------------------------------------------------------------
135 dnl specific configuration comes in here:
136 dnl --------------------------------------------------------------------------
137
138 AC_DEFINE(ADMIN_GRP, 1)
139
140 AC_ARG_WITH(admin-group,
141         [  --disable-admin-group   disable admin group],
142         if test "$enableval" = "no"; then
143                 AC_DEFINE(ADMIN_GRP, 0)
144                 AC_MSG_RESULT([disabling administrative group support])
145         fi
146  )
147
148 AC_ARG_ENABLE(afs,
149         [  --enable-afs            enable AFS support],
150         if test "$enableval" = "yes"; then
151                 AC_DEFINE(AFS, 1)
152                 AC_MSG_RESULT([enabling AFS support])
153         fi
154 )
155
156 AC_ARG_WITH(config-dir,
157         [  --with-config-dir=DIR   obsolete - use --with-pkgconfdir],
158         [sysconfdir="$withval"]
159 )
160
161 AC_ARG_WITH(pkgconfdir,
162         [  --with-pkgconfdir=DIR   package specific configuration in DIR
163                           [[SYSCONF/netatalk]]],
164                 PKGCONFDIR="$withval",
165                 PKGCONFDIR="${sysconfdir}/netatalk"
166 )
167
168 AC_ARG_WITH(cracklib,
169         [  --with-cracklib=DICT    enable/set location of cracklib dictionary],
170         if test "x$withval" != "xno" ; then
171                 cracklib="$withval"
172                 AC_CHECK_LIB(crack, main,
173                         AC_DEFINE(USE_CRACKLIB) 
174                         LIBS="$LIBS -lcrack"
175                         AC_MSG_RESULT([enabling cracklib support])
176                         if test "$cracklib" = "yes"; then
177                                 cracklib="/usr/lib/cracklib_dict"
178                         fi
179                         AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
180                                 [path to cracklib dictionary])
181                         AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
182                         AC_MSG_ERROR([cracklib not found!])
183                 )
184         fi
185 )
186
187 AC_ARG_ENABLE(ddp,
188         [  --disable-ddp           disable DDP],
189         if test "$enableval" = "no"; then 
190                 AC_DEFINE(NO_DDP, 1)
191                 AC_MSG_RESULT([disabling DDP])
192         fi
193 )
194
195 AC_ARG_ENABLE(debug,
196         [  --enable-debug          enable debug code],
197         if test "$enableval" != "no"; then
198                 if test "$enableval" = "yes"; then
199                         AC_DEFINE(DEBUG, 1)
200                 else
201                         AC_DEFINE_UNQUOTED(DEBUG, $enableval)
202                 fi 
203                 AC_MSG_RESULT([enabling debugging code])
204         else
205                 AC_DEFINE(DEBUG, 0)
206         fi
207 )
208
209
210 dnl ----------- A NOTE ABOUT DROPKLUDGE
211 dnl The trouble with this fix is that if you know what the file is called, it
212 dnl can be read from the Unix side.  That's okay for most academic institutions
213 dnl since the students don't have telnet access to the Mac servers.  There is
214 dnl currently no one working on further development/fixes of DROPKLUDGE.
215 dnl -----------
216
217 AC_ARG_ENABLE(dropkludge,
218         [  --enable-dropkludge     enable the experimental dropbox fix (INSECURE!) ],
219         if test "$enableval" = "yes"; then 
220                 AC_DEFINE(DROPKLUDGE, 1)
221                 AC_MSG_RESULT([enabling experimental dropbox support])
222         fi
223 )
224
225 AC_ARG_ENABLE(force-uidgid,
226         [  --enable-force-uidgid   allow forcing of uid/gid per volume (BROKEN) ],
227         if test "$enableval" = "yes"; then
228                 AC_DEFINE(FORCE_UIDGID, 1)
229                 AC_MSG_RESULT([enabling forcing of uid/gid per volume])
230         fi
231 )
232
233 dnl Don't use DB3 unless it's needed
234 db3_required=no
235
236 dnl Check for CNID DB support
237 AC_MSG_CHECKING([whether CNID support should be enabled])
238 AC_ARG_ENABLE(cnid-db,
239         [  --enable-cnid-db        use persistent cnid database per volume (EXPERIMENTAL) ],
240         [
241                 if test "x$enableval" = "xyes"; then
242                         dnl Now we need DB3
243                         db3_required="yes"
244                         AC_DEFINE(CNID_DB)
245                         AC_MSG_RESULT([yes])
246                 else
247                         AC_MSG_RESULT([no])
248                 fi
249         ],[AC_MSG_RESULT([no])]
250 )
251
252 dnl Check for Berkeley DB3 library
253 if test "x$db3_required" = "xyes"; then
254         AC_PATH_DB3(, [AC_MSG_ERROR([Berkeley DB3 library not found!])])
255 fi
256 CFLAGS="$CFLAGS $DB3_CFLAGS"
257 LIBS="$LIBS $DB3_LIBS"
258
259 AC_ARG_WITH(did,
260         [  --with-did=SCHEME       set DID scheme (last,mtab)],
261         if test "x$withval" != "xno" ; then
262                 if test "$withval" = "last"; then
263                         AC_DEFINE(USE_LASTDID, 1)
264                         AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
265                 fi
266                 if test "$withval" = "mtab"; then
267                         AC_DEFINE(DID_MTAB, 1)
268                         AC_MSG_RESULT([enabling mtab-based DID creation support])
269                 fi
270         fi
271 )
272
273 msg_dir=""
274 AC_ARG_WITH(message-dir,
275         [  --with-message-dir=PATH path to message files [[PKGCONF/msg]]],
276                 msg_dir="$withval"
277                 if test x"$msg_dir" = "x"; then
278                         msg_dir="${PKGCONFDIR}/msg"
279                 fi
280                 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
281                         [path to message dir [[PKGCONF/msg]]])
282                 SERVERTEXT="$msg_dir"
283                 AC_SUBST(SERVERTEXT)
284 )
285
286 AC_ARG_ENABLE(srvloc,
287         [  --enable-srvloc         turn on Server Location Protocol support (EXPERIMENTAL)],
288         srvloc=$enableval,
289         srvloc=no
290 )
291
292 dnl Conditional for optional server location protocol support (used by OS X)
293 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
294 if test "x$srvloc" != "xno"; then
295     for slpdir in "" $srvloc /usr /usr/local ; do
296                 if test -f "$slpdir/include/slp.h" ; then
297                         LIBS="$LIBS -L$slpdir/lib -lslp"
298                         CFLAGS="$CFLAGS -I$slpdir/include"
299                 AC_CHECK_LIB(slp,SLPOpen)
300                 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
301                 AC_DEFINE(USE_SRVLOC, 1)
302                         break
303                 fi
304         done
305 fi
306
307 # Check for PAM libs
308 AC_MSG_CHECKING([if we should even bother with PAM])
309 AC_ARG_WITH(pam,
310     [  --with-pam              enable PAM support],
311     [PAM_MSG="$withval"],
312     [PAM_MSG="yes"]
313 )
314 AC_MSG_RESULT($PAM_MSG)
315 use_pam_so=no
316 compile_pam=no
317
318 if test "x$PAM_MSG" = "xyes"; then
319         if test "x$ac_cv_header_security_pam_appl_h" = "xyes" ; then
320         
321                 AC_CHECK_LIB(pam, pam_set_item, 
322                                 [PAPD_LIBS="$PAPD_LIBS -lpam"; AFPD_LIBS="$AFPD_LIBS -lpam"; use_pam_so=yes; compile_pam=yes; AC_DEFINE(USE_PAM)],
323                         [use_pam_so=no; compile_pam=no]
324                 )
325         fi
326 else
327         use_pam_so=no
328         compile_pam=no
329 fi
330
331 AC_MSG_CHECKING([whether shadow support should be enabled])
332 AC_ARG_WITH(shadow,
333         [  --with-shadow           enable shadow password support],
334         [shadowpw="$withval"],
335         [shadowpw=no]
336 )
337 if test "x$shadowpw" = "xyes"; then
338         AC_DEFINE(SHADOWPW)
339 fi
340 AC_MSG_RESULT([$shadowpw])
341
342 AC_ARG_ENABLE(shell-check,
343         [  --disable-shell-check   disable checking for a valid shell],
344         if test "$enableval" = "no"; then 
345                 AC_DEFINE(DISABLE_SHELLCHECK, 1)
346                 AC_MSG_RESULT([disabling valid shell check])
347         fi
348 )
349
350 AC_MSG_CHECKING([whether flock locks should be enabled])
351 AC_ARG_WITH(flock-locks,
352         [  --with-flock-locks      enable flock locks support],
353         [flock_locks="$withval"],
354         [flock_locks="no"]
355 )
356 if test "x$flock_locks" = "xyes"; then
357         AC_DEFINE(USE_FLOCK_LOCKS)
358 fi
359 AC_MSG_RESULT([$flock_locks])
360
361 AC_ARG_WITH(tcp-wrappers,
362         [  --with-tcp-wrappers     enable TCP wrappers support],
363         AC_CHECK_LIB(wrap, tcpd_warn,
364                 AC_DEFINE(TCPWRAP)
365                 AFPD_LIBS="$AFPD_LIBS -lwrap"
366                 AC_MSG_RESULT([enabling TCP wrappers support])
367         )
368 )
369
370 AC_ARG_ENABLE(redhat,
371         [  --enable-redhat         use redhat-style sysv configuration ],
372         if test "$enableval" = "yes"; then
373                 sysv_style=redhat
374         fi
375         AC_MSG_RESULT([enabling redhat-style sysv support])
376 )
377
378 AC_ARG_ENABLE(suse,
379         [  --enable-suse           use suse-style sysv configuration ],
380         if test "$enableval" = "yes"; then
381                 sysv_style=suse
382         fi
383         AC_MSG_RESULT([enabling suse-style sysv support])
384 )
385
386 AC_ARG_ENABLE(cobalt,
387         [  --enable-cobalt         use cobalt-style sysv configuration ],
388         if test "$enableval" = "yes"; then
389                 sysv_style=cobalt
390         fi
391         AC_MSG_RESULT([enabling cobalt-style sysv support])
392 )
393
394 dnl ----- timelord compilation (disabled by default)
395 AC_MSG_CHECKING([whether timelord should be compiled])
396 compile_timelord=no
397 AC_ARG_ENABLE(timelord,
398         [  --enable-timelord       enable compilation of timelord server],
399         [compile_timelord="$enableval"],
400         [compile_timelord="no"]
401 )
402 AC_MSG_RESULT([$compile_timelord])
403
404 AC_ARG_WITH(uams-path,
405         [  --with-uams-path=PATH   path to UAMs [[PKGCONF/uams]]],
406         uams_path="$withval",
407         uams_path="${PKGCONFDIR}/uams"
408 )
409
410 dnl --------------------------------------------------------------------------
411 dnl FHS stuff has to be done last because it overrides other defaults
412 dnl --------------------------------------------------------------------------
413
414 AC_ARG_ENABLE(fhs,
415         [  --enable-fhs            use Filesystem Hierarchy Standard (FHS) compatibility],
416         if test "$enableval" = "yes"; then
417                 uams_path="/usr/lib/netatalk"
418                 sysconfdir="/etc"
419                 PKGCONFDIR=${sysconfdir}/netatalk
420                 use_pam_so=yes
421                 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
422                 AC_DEFINE(FHS_COMPATIBILITY)
423         fi
424         AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
425 )
426
427 dnl --------------------------------------------------------------------------
428 dnl post-FHS substitutions, etc
429 dnl --------------------------------------------------------------------------
430
431 dnl ***** UAMS_PATH
432 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
433         [path to UAMs [default=PKGCONF/uams]])
434 UAMS_PATH="${uams_path}"
435 AC_SUBST(UAMS_PATH)
436
437 dnl --------------------------------------------------------------------------
438 dnl drop in includes for top level directory structures here...
439 dnl --------------------------------------------------------------------------
440
441 dnl Note: $(top_srcdir)/include should be added before all other includes
442 dnl       so that includes from that directory a preferred to includes from
443 dnl       /usr/include or similar places.
444 LIBS="$LIBS -L\$(top_srcdir)/libatalk"
445 CFLAGS="-I\$(top_srcdir)/include $CFLAGS -I\$(top_srcdir)/sys"
446
447 dnl --------------------------------------------------------------------------
448 dnl specific configuration comes in here:
449 dnl --------------------------------------------------------------------------
450
451 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
452
453 dnl --------------------- determine operating system from "target"
454 case "$host_os" in
455         *aix*)                          this_os=aix ;;
456         *freebsd*)                      this_os=freebsd ;;
457         *hpux11*)                       this_os=hpux11 ;;
458         *irix*)                         this_os=irix ;;
459         *linux*)                        this_os=linux ;;
460         *osx*)                          this_os=macosx ;;
461         *netbsd*)                       this_os=netbsd ;;
462         *openbsd*)                      this_os=openbsd ;;
463         *osf*)                          this_os=tru64 ;;
464         *solaris*)                      this_os=solaris ;;
465 esac
466
467 case "$host_cpu" in
468         i386|i486|i586|i686|k7)         this_cpu=x86 ;;
469         alpha)                                          this_cpu=alpha ;;
470         mips)                                           this_cpu=mips ;;
471         powerpc|ppc)                            this_cpu=ppc ;;
472 esac
473
474 dnl --------------------- operating system specific flags (port from sys/*)
475
476 dnl ----- AIX specific -----
477 if test x"$this_os" = "xaix"; then
478         AC_MSG_RESULT([ * AIX specific configuration])
479         AC_DEFINE(NO_STRUCT_TM_GMTOFF)
480
481         dnl This is probably a lie; AIX 4.3 supports a 64-bit long
482         dnl compilation environment.  It's enough to get things defined
483         dnl right in endian.h provided that long long is supported, though.
484         AC_DEFINE(HAVE_32BIT_LONGS)
485 fi
486
487 dnl ----- FreeBSD specific -----
488 if test x"$this_os" = "xfreebsd"; then 
489         AC_MSG_RESULT([ * FreeBSD specific configuration])
490         AC_DEFINE(BSD4_4)
491         AC_DEFINE(SENDFILE_FLAVOR_BSD)
492
493         AC_DEFINE(NO_CRYPT_H, 1)
494 fi
495
496 dnl ----- HP-UX 11 specific -----
497 if test x"$this_os" = "xhpux11"; then
498         AC_MSG_RESULT([ * HP-UX 11 specific configuration])
499
500         AC_DEFINE(_ISOC9X_SOURCE)
501         AC_DEFINE(NO_STRUCT_TM_GMTOFF)
502 fi
503
504 dnl ----- IRIX specific -----
505 if test x"$this_os" = "xirix"; then
506         AC_MSG_RESULT([ * IRIX specific configuration])
507
508         AC_DEFINE(NO_STRUCT_TM_GMTOFF)
509 fi
510
511 dnl ----- Linux specific -----
512 if test x"$this_os" = "xlinux"; then 
513         AC_MSG_RESULT([ * Linux specific configuration])
514
515         dnl ----- check if we need the quotactl wrapper
516         AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
517         AC_CHECK_FUNC(quotactl,,
518                 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
519                 AC_MSG_RESULT([enabling quotactl wrapper])
520         )
521
522         dnl ----- as far as I can tell, dbtob always does the wrong thing
523         dnl ----- on every single version of linux I've ever played with.
524         dnl ----- see etc/afpd/quota.c
525         AC_DEFINE(HAVE_BROKEN_DBTOB)
526
527         dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
528         dnl ----- check if version is newer than 2.2.x
529         changequote(<<,>>)
530         majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
531         minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
532         if [ $majorvers -ge 2 ]; then
533                 if [ $minorvers -ge 2 ]; then
534                         changequote([,])
535                         AC_MSG_RESULT([ * found Linux 2.2.x or higher])
536                         AC_DEFINE(SENDFILE_FLAVOR_LINUX)
537                 else
538                         AC_MSG_RESULT([ * found Linux 2.0.x ]) 
539                 fi
540         fi
541
542         dnl ----- Linux/alpha specific -----
543         if test x"$this_cpu" = "xalpha"; then 
544                 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
545                 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
546         fi
547         need_dash_r=no
548 fi
549
550 dnl ----- Mac OSX specific -----
551 if test x"$this_os" = "xmacosx"; then 
552         AC_MSG_RESULT([ * Mac OSX specific configuration])
553         AC_DEFINE(BSD4_4)
554         AC_DEFINE(HAVE_BROKEN_CPP)
555         AC_DEFINE(HAVE_2ARG_DBTOB)
556         dnl AC_DEFINE(NO_DLFCN_H)
557         AC_DEFINE(MACOSX_SERVER)
558 fi
559
560 dnl ----- NetBSD specific -----
561 if test x"$this_os" = "xnetbsd"; then 
562         AC_MSG_RESULT([ * NetBSD specific configuration])
563         AC_DEFINE(BSD4_4)
564         AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
565         CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
566         need_dash_r=yes 
567
568         dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
569         AC_DEFINE(UAM_DHX, 1)
570         AC_DEFINE(NO_CRYPT_H, 1)
571 fi
572
573 dnl ----- OpenBSD specific -----
574 if test x"$this_os" = "xopenbsd"; then 
575         AC_MSG_RESULT([ * OpenBSD specific configuration])
576         AC_DEFINE(BSD4_4)
577         AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
578
579         dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
580         AC_DEFINE(UAM_DHX, 1)
581         AC_DEFINE(NO_CRYPT_H, 1)
582 fi
583
584 dnl ----- Solaris specific -----
585 if test x"$this_os" = "xsolaris"; then 
586         AC_MSG_RESULT([ * Solaris specific configuration])
587         AC_DEFINE(__svr4__)
588         AC_DEFINE(_ISOC9X_SOURCE)
589         AC_DEFINE(NO_STRUCT_TM_GMTOFF)
590         AC_DEFINE(SOLARIS)
591         CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
592         need_dash_r=yes
593
594         AC_MSG_RESULT([enabling Solaris kernel module build])
595         solaris_module=yes
596 fi
597
598 dnl ----- Tru64 specific -----
599 if test x"$this_os" = "xtru64"; then 
600         AC_MSG_RESULT([ * Tru64 specific configuration])
601         AC_DEFINE(NO_DDP)
602         AC_DEFINE(HAVE_64BIT_LONGS)
603         dnl AC_DEFINE(USE_MOUNT_H)
604         AC_DEFINE(USE_OLD_RQUOTA)
605         dnl AC_DEFINE(USE_UFS_QUOTA_H)
606         AC_DEFINE(TRU64)
607         AC_CHECK_LIB(security,set_auth_parameters)
608         CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
609         need_dash_r=no
610         sysv_style=tru64
611 fi
612
613 dnl -- look for openssl
614 AC_PATH_SSL
615
616 dnl --------------------- check for building PGP UAM module
617
618 AC_ARG_ENABLE(pgp-uam,
619         [  --enable-pgp-uam        enable build of PGP UAM module],
620         if test "$enableval" = "yes"; then 
621                 if test "$compile_ssl" = "yes"; then 
622                         AC_DEFINE(UAM_PGP, 1)
623                         compile_pgp=yes
624                         AC_MSG_RESULT([enabling build with PGP UAM module])
625                 fi
626         fi
627 )
628
629 dnl --------------------- check for building Kerberos v4 UAM module
630
631 AC_ARG_ENABLE(krb4-uam,
632         [  --enable-krb4-uam       enable build of Kerberos v4 UAM module],
633         if test "$enableval" = "yes"; then
634                 AC_DEFINE(UAM_KRB4, 1)
635                 compile_kerberos=yes
636                 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
637         fi
638 )
639 dnl --------------------- overwrite the config files . . . or not.
640
641 AC_MSG_CHECKING([whether configuration files should be overwritten])
642 AC_ARG_ENABLE(overwrite,
643         [  --enable-overwrite      overwrite configuration files during installation],
644         [OVERWRITE_CONFIG="${enable_overwrite}"],
645         [OVERWRITE_CONFIG="no"]
646 )
647 AC_MSG_RESULT([$OVERWRITE_CONFIG])
648
649 dnl --------------------- last minute substitutions
650
651 AC_SUBST(LIBS)
652 AC_SUBST(AFPD_LIBS)
653 AC_SUBST(PAPD_LIBS)
654 AC_SUBST(CFLAGS)
655 AC_SUBST(PKGCONFDIR)
656 AC_SUBST(OVERWRITE_CONFIG)
657
658 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
659 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
660 AM_CONDITIONAL(USE_DHX, test x$compile_ssl = xyes)
661 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
662 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
663 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
664 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
665 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
666 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
667 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
668 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
669 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
670 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
671
672 dnl --------------------- generate files
673
674 AC_OUTPUT([Makefile
675         bin/Makefile
676         bin/adv1tov2/Makefile
677         bin/aecho/Makefile
678         bin/afile/Makefile
679         bin/afppasswd/Makefile
680         bin/getzones/Makefile
681         bin/megatron/Makefile
682         bin/nbp/Makefile
683         bin/pap/Makefile
684         bin/psorder/Makefile
685         config/Makefile
686         contrib/Makefile
687         contrib/macusers/Makefile
688         contrib/nu/Makefile
689         contrib/printing/Makefile
690         contrib/shell_utils/Makefile
691         contrib/timelord/Makefile
692         distrib/Makefile
693         distrib/config/Makefile
694         distrib/config/netatalk-config
695         distrib/initscripts/Makefile
696         distrib/m4/Makefile
697         doc/Makefile
698         etc/Makefile
699         etc/afpd/Makefile
700         etc/afpd/nls/Makefile
701         etc/atalkd/Makefile
702         etc/uams/Makefile
703         etc/uams/uams_krb4/Makefile
704         etc/papd/Makefile
705         etc/psf/Makefile
706         include/Makefile
707         include/atalk/Makefile
708         libatalk/Makefile
709         libatalk/adouble/Makefile
710         libatalk/asp/Makefile
711         libatalk/atp/Makefile
712         libatalk/cnid/Makefile
713         libatalk/compat/Makefile
714         libatalk/dsi/Makefile
715         libatalk/nbp/Makefile
716         libatalk/netddp/Makefile
717         libatalk/util/Makefile
718         macros/Makefile
719         man/Makefile
720         man/man1/Makefile
721         man/man3/Makefile
722         man/man4/Makefile
723         man/man5/Makefile
724         man/man8/Makefile
725         sys/Makefile
726         sys/generic/Makefile
727         sys/generic/sys/Makefile
728         sys/netatalk/Makefile
729         sys/netbsd/Makefile
730         sys/netbsd/netatalk/Makefile
731         sys/solaris/Makefile
732         sys/sunos/Makefile
733         sys/ultrix/Makefile
734         ],
735         [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
736 )
737