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