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