]> arthur.barton.de Git - netatalk.git/blob - configure.in
small cleanup of changelog
[netatalk.git] / configure.in
1 dnl $Id: configure.in,v 1.104 2001-09-17 13:41:24 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 -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)
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 --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                           [default=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_ARG_ENABLE(cnid-db,
243         [  --enable-cnid-db   use persistent cnid database per volume (EXPERIMENTAL) ],
244         if test "x$enableval" = "xyes"; then
245                 dnl Now we need DB3
246                 db3_required="yes"
247
248                 dnl Note that we don't AC_DEFINE(CNID_DB, 1) here...
249                 dnl we have to check for the library first.
250                 dnl AC_MSG_RESULT([db3 check enabled])
251         fi
252 )
253
254 dnl Check for Berkeley DB3 library
255 AC_ARG_WITH(db3,
256         [  --with-db3=PATH         specify path to Berkeley DB3 installation],
257         if test "x$withval" != "xno"; then
258                 trydb3dir="$withval"
259         fi
260 )
261
262 db3_found=no
263 for db3dir in "" $trydb3dir /usr /usr /usr/local ; do
264         if test -f "$db3dir/include/db3/db.h" ; then
265                 LDFLAGS="$LDFLAGS -L$db3dir/lib -ldb3"
266                 CFLAGS="$CFLAGS -I$db3dir/include/db3"
267
268                 dnl If we require DB3, die if we don't have it
269                 if test "x$db3_required" != "xno"; then
270                         AC_CHECK_LIB(db, main,
271                                 dnl AC_MSG_RESULT([enabling db3 support])
272                                 db3_found=yes
273                                 dnl -- also enable CNID DB when this is found
274                                 AC_DEFINE(CNID_DB, 1)
275                                 AC_MSG_RESULT([using persistent cnid database per volume])
276                                 LIBS="$LIBS -ldb",
277                                 dnl Not Found
278                                 AC_MSG_ERROR([Berkeley DB3 library not found!])
279                         )
280                 fi
281                 break
282         fi
283 done
284
285 dnl Die if the library is required, but not found
286 if test "x$db3_required" != "xno"; then
287         if test "x$db3_found" = "xno"; then
288                 dnl Not Found
289                 AC_MSG_ERROR([Berkeley DB3 library not found!])
290         fi
291 fi
292
293 AC_ARG_WITH(did,
294         [  --with-did=[scheme]     set DID scheme (last,mtab)],
295         if test "x$withval" != "xno" ; then
296                 if test "$withval" = "last"; then
297                         AC_DEFINE(USE_LASTDID, 1)
298                         AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
299                 fi
300                 if test "$withval" = "mtab"; then
301                         AC_DEFINE(DID_MTAB, 1)
302                         AC_MSG_RESULT([enabling mtab-based DID creation support])
303                 fi
304         fi
305 )
306
307 msg_dir=""
308 AC_ARG_WITH(message-dir,
309         [  --with-msg-dir=path     path to message files [default=$ac_prefix_default/etc/msg]],
310                 msg_dir="$withval"
311                 if test x"$msg_dir" = "x"; then
312                         msg_dir="${PKGCONFDIR}/msg"
313                 fi
314                 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
315                         [path to message dir [default=$ac_prefix_default/etc/msg]])
316                 SERVERTEXT="$msg_dir"
317                 AC_SUBST(SERVERTEXT)
318 )
319
320 AC_ARG_ENABLE(srvloc,
321         [  --enable-srvloc         Turn on Server Location Protocol support EXPERIMENTAL)],
322         srvloc=$enableval,
323         srvloc=no
324 )
325
326 dnl Conditional for optional server location protocol support (used by OS X)
327 AM_CONDITIONAL(USE_SRVLOC, test "x$srvloc" != "xno")
328 if test "x$srvloc" != "xno"; then
329     for slpdir in "" $srvloc /usr /usr/local ; do
330                 if test -f "$slpdir/include/slp.h" ; then
331                         LDFLAGS="$LDFLAGS -L$slpdir/lib -lslp"
332                         CFLAGS="$CFLAGS -I$slpdir/include"
333                 AC_CHECK_LIB(slp,SLPOpen)
334                 AC_CHECK_FUNCS(SLPReg SLPDereg SLPClose)
335                 AC_DEFINE(USE_SRVLOC, 1)
336                         break
337                 fi
338         done
339 fi
340
341 AC_CHECK_LIB(pam, pam_start,
342         AC_DEFINE(USE_PAM, 1)
343         LIBS="$LIBS -lpam"
344         compile_pam=yes
345 )
346
347 AC_ARG_WITH(pam,
348         [  --without-pam           disable password authentication modules support],
349         compile_pam=no
350         use_pam_so=no
351         AC_DEFINE(USE_PAM, 0)
352         AC_MSG_RESULT([disabling pam modules support])
353 )
354 if test "x$compile_pam" = "xyes"; then
355         use_pam_so=yes
356         AC_MSG_RESULT([enabling pam modules support])
357 fi
358
359 shadowpw=no
360 AC_ARG_WITH(shadow,
361         [  --with-shadow           enable shadow password support],
362         AC_MSG_RESULT([enabling shadow password support])
363         AC_DEFINE(SHADOWPW)
364         shadowpw=yes
365 )
366
367 AC_ARG_ENABLE(shell-check,
368         [  --disable-shell-check   disable checking for a valid shell],
369         if test "$enableval" = "no"; then 
370                 AC_DEFINE(DISABLE_SHELLCHECK, 1)
371                 AC_MSG_RESULT([disabling valid shell check])
372         fi
373 )
374
375 AC_ARG_WITH(flock-locks,
376         [  --with-flock-locks      enable flock locks support],
377         AC_MSG_RESULT([enabling flock locks])
378         AC_DEFINE(USE_FLOCK_LOCKS)
379 )
380
381 AC_ARG_WITH(tcp-wrappers,
382         [  --with-tcp-wrappers     enable TCP wrappers support],
383         AC_CHECK_LIB(wrap, tcpd_warn,
384                 AC_DEFINE(TCPWRAP)
385                 AFPD_LIBS="$AFPD_LIBS -lwrap"
386                 AC_MSG_RESULT([enabling TCP wrappers support])
387         )
388 )
389
390 AC_ARG_ENABLE(redhat,
391         [  --enable-redhat         use redhat-style sysv configuration ],
392         if test "$enableval" = "yes"; then
393                 sysv_style=redhat
394         fi
395         AC_MSG_RESULT([enabling redhat-style sysv support])
396 )
397
398 AC_ARG_ENABLE(suse,
399         [  --enable-suse           use suse-style sysv configuration ],
400         if test "$enableval" = "yes"; then
401                 sysv_style=suse
402         fi
403         AC_MSG_RESULT([enabling suse-style sysv support])
404 )
405
406 AC_ARG_ENABLE(cobalt,
407         [  --enable-cobalt         use cobalt-style sysv configuration ],
408         if test "$enableval" = "yes"; then
409                 sysv_style=cobalt
410         fi
411         AC_MSG_RESULT([enabling cobalt-style sysv support])
412 )
413
414 dnl ----- timelord compilation (disabled by default)
415 compile_timelord=no
416 AC_ARG_ENABLE(timelord,
417         [  --enable-timelord       enable compilation of timelord server],
418         if test "$enableval" = "yes"; then
419                 compile_timelord=yes
420         fi
421         AC_MSG_RESULT([enabling timelord compilation])
422 )
423
424 AC_ARG_WITH(uams-path,
425         [  --with-uams-path=path   path to UAMs [default=PKGCONF/uams]],
426         uams_path="$withval",
427         uams_path="${PKGCONFDIR}/uams"
428 )
429
430 dnl --------------------------------------------------------------------------
431 dnl FHS stuff has to be done last because it overrides other defaults
432 dnl --------------------------------------------------------------------------
433
434 AC_ARG_ENABLE(fhs,
435         [  --enable-fhs            use Filesystem Hierarchy Standard (FHS) compatibility],
436         if test "$enableval" = "yes"; then
437                 uams_path="/usr/lib/netatalk"
438                 sysconfdir="/etc"
439                 PKGCONFDIR=${sysconfdir}/netatalk
440                 use_pam_so=yes
441                 dnl FIXME: NEED TO HAVE --mandir=/usr/share/man AT SOME POINT...
442                 AC_DEFINE(FHS_COMPATIBILITY)
443         fi
444         AC_MSG_RESULT([enabling Filesystem Hierarchy Standard (FHS) compatibility])
445 )
446
447 dnl --------------------------------------------------------------------------
448 dnl post-FHS substitutions, etc
449 dnl --------------------------------------------------------------------------
450
451 ***** UAMS_PATH
452 AC_DEFINE_UNQUOTED(UAMS_PATH, "${uams_path}",
453         [path to UAMs [default=PKGCONF/uams]])
454 UAMS_PATH="${uams_path}"
455 AC_SUBST(UAMS_PATH)
456
457 dnl --------------------------------------------------------------------------
458 dnl drop in includes for top level directory structures here...
459 dnl --------------------------------------------------------------------------
460 LDFLAGS="$LDFLAGS -L\$(top_srcdir)/libatalk/"
461 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
462
463 dnl --------------------------------------------------------------------------
464 dnl specific configuration comes in here:
465 dnl --------------------------------------------------------------------------
466
467 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
468
469 dnl --------------------- determine operating system from "target"
470 case "$host_os" in
471         *aix*)                          this_os=aix ;;
472         *freebsd*)                      this_os=freebsd ;;
473         *hpux11*)                       this_os=hpux11 ;;
474         *irix*)                         this_os=irix ;;
475         *linux*)                        this_os=linux ;;
476         *osx*)                          this_os=macosx ;;
477         *netbsd*)                       this_os=netbsd ;;
478         *openbsd*)                      this_os=openbsd ;;
479         *osf*)                          this_os=tru64 ;;
480         *solaris*)                      this_os=solaris ;;
481 esac
482
483 case "$host_cpu" in
484         i386|i486|i586|i686|k7)         this_cpu=x86 ;;
485         alpha)                                          this_cpu=alpha ;;
486         mips)                                           this_cpu=mips ;;
487         powerpc|ppc)                            this_cpu=ppc ;;
488 esac
489
490 dnl --------------------- operating system specific flags (port from sys/*)
491
492 dnl ----- AIX specific -----
493 if test x"$this_os" = "xaix"; then
494         AC_MSG_RESULT([ * AIX specific configuration])
495         AC_DEFINE(NO_STRUCT_TM_GMTOFF)
496
497         dnl This is probably a lie; AIX 4.3 supports a 64-bit long
498         dnl compilation environment.  It's enough to get things defined
499         dnl right in endian.h provided that long long is supported, though.
500         AC_DEFINE(HAVE_32BIT_LONGS)
501 fi
502
503 dnl ----- FreeBSD specific -----
504 if test x"$this_os" = "xfreebsd"; then 
505         AC_MSG_RESULT([ * FreeBSD specific configuration])
506         AC_DEFINE(BSD4_4)
507         AC_DEFINE(SENDFILE_FLAVOR_BSD)
508
509         dnl ----- Set -shared flag
510         LDSHAREDFLAGS="-shared"
511         AC_DEFINE(NO_CRYPT_H, 1)
512 fi
513
514 dnl ----- HP-UX 11 specific -----
515 if test x"$this_os" = "xhpux11"; then
516         AC_MSG_RESULT([ * HP-UX 11 specific configuration])
517
518         AC_DEFINE(_ISOC9X_SOURCE)
519         AC_DEFINE(NO_STRUCT_TM_GMTOFF)
520 fi
521
522 dnl ----- IRIX specific -----
523 if test x"$this_os" = "xirix"; then
524         AC_MSG_RESULT([ * IRIX specific configuration])
525
526         AC_DEFINE(NO_STRUCT_TM_GMTOFF)
527 fi
528
529 dnl ----- Linux specific -----
530 if test x"$this_os" = "xlinux"; then 
531         AC_MSG_RESULT([ * Linux specific configuration])
532
533         dnl ----- Set -shared flag
534         LDSHAREDFLAGS="-shared"
535
536         dnl ----- check if we need the quotactl wrapper
537         AC_CHECK_HEADERS(sys/quota.h linux/quota.h)
538         AC_CHECK_FUNC(quotactl,,
539                 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
540                 AC_MSG_RESULT([enabling quotactl wrapper])
541         )
542
543         dnl ----- as far as I can tell, dbtob always does the wrong thing
544         dnl ----- on every single version of linux I've ever played with.
545         dnl ----- see etc/afpd/quota.c
546         AC_DEFINE(HAVE_BROKEN_DBTOB)
547
548         dnl --- added by Yoshinobu Ishizaki (2001.03.13) ---
549         dnl ----- check if version is newer than 2.2.x
550         changequote(<<,>>)
551         majorvers="`uname -r | sed 's/\([0-9]\)..*/\1/'`"
552         minorvers="`uname -r | sed 's/[0-9]\.\([0-9]\)\..*/\1/'`"
553         if [ $majorvers -ge 2 ]; then
554                 if [ $minorvers -ge 2 ]; then
555                         changequote([,])
556                         AC_MSG_RESULT([ * found Linux 2.2.x or higher])
557                         AC_DEFINE(SENDFILE_FLAVOR_LINUX)
558                 else
559                         AC_MSG_RESULT([ * found Linux 2.0.x ]) 
560                 fi
561         fi
562
563         dnl ----- Linux/alpha specific -----
564         if test x"$this_cpu" = "xalpha"; then 
565                 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
566                 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
567         fi
568         need_dash_r=no
569 fi
570
571 dnl ----- Mac OSX specific -----
572 if test x"$this_os" = "xmacosx"; then 
573         AC_MSG_RESULT([ * Mac OSX specific configuration])
574         AC_DEFINE(BSD4_4)
575         AC_DEFINE(HAVE_BROKEN_CPP)
576         AC_DEFINE(HAVE_2ARG_DBTOB)
577         dnl AC_DEFINE(NO_DLFCN_H)
578         AC_DEFINE(MACOSX_SERVER)
579
580         dnl ----- Set -shared flag
581         LDSHAREDFLAGS="-shared"
582 fi
583
584 dnl ----- NetBSD specific -----
585 if test x"$this_os" = "xnetbsd"; then 
586         AC_MSG_RESULT([ * NetBSD specific configuration])
587         AC_DEFINE(BSD4_4)
588         AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
589         CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
590         need_dash_r=yes 
591
592         dnl ----- Set -shared flag
593         LDSHAREDFLAGS="-shared"
594
595         dnl ----- NetBSD does not have crypt.h, uses unistd.h -----
596         AC_DEFINE(UAM_DHX, 1)
597         AC_DEFINE(UAM_RNDNUM, 1)
598         compile_dhx=yes
599         compile_ssl=yes
600         AC_DEFINE(NO_CRYPT_H, 1)
601 fi
602
603 dnl ----- OpenBSD specific -----
604 if test x"$this_os" = "xopenbsd"; then 
605         AC_MSG_RESULT([ * OpenBSD specific configuration])
606         AC_DEFINE(BSD4_4)
607         AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
608
609         dnl ----- Set -shared flag
610         LDSHAREDFLAGS="-Bforcearchive -shared"
611
612         dnl ----- OpenBSD does not have crypt.h, uses unistd.h -----
613         AC_DEFINE(UAM_DHX, 1)
614         AC_DEFINE(UAM_RNDNUM, 1)
615         compile_dhx=yes
616         compile_ssl=yes
617         AC_DEFINE(NO_CRYPT_H, 1)
618 fi
619
620 dnl ----- Solaris specific -----
621 if test x"$this_os" = "xsolaris"; then 
622         AC_MSG_RESULT([ * Solaris specific configuration])
623         AC_DEFINE(__svr4__)
624         AC_DEFINE(_ISOC9X_SOURCE)
625         AC_DEFINE(NO_STRUCT_TM_GMTOFF)
626         AC_DEFINE(SOLARIS)
627         CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
628         need_dash_r=yes
629
630         dnl ----- Set -shared flag
631         LDSHAREDFLAGS="-G"
632
633         AC_MSG_RESULT([enabling Solaris kernel module build])
634         solaris_module=yes
635 fi
636
637 dnl ----- Tru64 specific -----
638 if test x"$this_os" = "xtru64"; then 
639         AC_MSG_RESULT([ * Tru64 specific configuration])
640         AC_DEFINE(NO_DDP)
641         AC_DEFINE(HAVE_64BIT_LONGS)
642         dnl AC_DEFINE(USE_MOUNT_H)
643         AC_DEFINE(USE_OLD_RQUOTA)
644         dnl AC_DEFINE(USE_UFS_QUOTA_H)
645         AC_DEFINE(TRU64)
646         AC_CHECK_LIB(security,set_auth_parameters)
647         CFLAGS="-I\$(top_srcdir)/sys/tru64 $CFLAGS"
648         LDSHAREDFLAGS="-shared -expect_unresolved \*"
649         need_dash_r=no
650         sysv_style=tru64
651
652         dnl ----- Set -shared flag
653         LDSHAREDFLAGS="-shared"
654 fi
655
656 dnl -- look for openssl
657 tryssl=yes
658 AC_ARG_WITH(ssl-dir,
659         [  --with-ssl-dir=PATH     specify path to openssl installation (must contain
660                           lib and include dirs) ],
661         [
662                 if test "x$withval" != "xno"; then
663                         tryssldir=$withval
664                 else
665                         tryssl=no
666                 fi
667         ]
668 )
669
670 if test "$tryssl" = "yes"; then
671         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
672                 if test -f "$ssldir/include/openssl/cast.h" ; then
673                         LDFLAGS="$LDFLAGS -L$ssldir/lib -L$ssldir"
674                         CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
675                         if test "$need_dash_r" = "yes"; then
676                                 LIBS="$LIBS -R$ssldir/lib -R$ssldir"
677                         fi
678
679                         dnl Check for the crypto library:
680                         AC_CHECK_LIB(crypto, main)
681                         dnl LIBS="$LIBS -lcrypto"
682                         dnl Check for "DES" library (for SSLeay, not openssl):
683                         AC_CHECK_LIB(des, main)
684
685                         AC_DEFINE(OPENSSL_DHX,  1)
686                         AC_DEFINE(UAM_DHX,      1)
687                         AC_DEFINE(UAM_RNDNUM,   1)
688                         compile_dhx=yes
689                         compile_ssl=yes
690                         AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
691                         break
692                 fi
693         done
694 fi
695
696 dnl --------------------- check for building PGP UAM module
697
698 AC_ARG_ENABLE(pgp-uam,
699         [  --enable-pgp-uam        enable build of PGP UAM module],
700         if test "$enableval" = "yes"; then 
701                 if test "$compile_ssl" = "yes"; then 
702                         AC_DEFINE(UAM_PGP, 1)
703                         compile_pgp=yes
704                         AC_MSG_RESULT([enabling build with PGP UAM module])
705                 fi
706         fi
707 )
708
709 dnl --------------------- check for building Kerberos v4 UAM module
710
711 AC_ARG_ENABLE(krb4-uam,
712         [  --enable-krb4-uam      enable build of Kerberos v4 UAM module],
713         if test "$enableval" = "yes"; then
714                 AC_DEFINE(UAM_KRB4, 1)
715                 compile_kerberos=yes
716                 AC_MSG_RESULT([enabling build with Kerberos v4 UAM module])
717         fi
718 )
719 dnl --------------------- overwrite the config files . . . or not.
720
721 files="AppleVolumes.default AppleVolumes.system atalkd.conf netatalk.conf netatalk.pamd papd.conf afpd.conf"
722
723 AC_ARG_ENABLE(overwrite,
724         [  --enable-overwrite      Overwrite configuration files
725                                    default=PKGCONFDIR],
726         [ 
727         OVERWRITE="$files"
728         AC_MSG_RESULT([Overwrite configuration files])
729         ],
730         
731         [       
732         for f in $files ; do
733                 if test -f "${PKGCONFDIR}/$f" ; 
734                 then :;
735                 else OVERWRITE="${OVERWRITE} $f";
736                 fi
737         done
738         AC_MSG_RESULT([Don't overwrite existing configuration files])
739         ]       
740 )
741
742 dnl --------------------- last minute substitutions
743
744 AC_SUBST(LIBS)
745 AC_SUBST(AFPD_LIBS)
746 AC_SUBST(PAPD_LIBS)
747 AC_SUBST(CFLAGS)
748 AC_SUBST(LDSHAREDFLAGS)
749 AC_SUBST(PKGCONFDIR)
750 AC_SUBST(OVERWRITE)
751
752 AM_CONDITIONAL(SOLARIS_MODULE, test x$solaris_module = xyes)
753 AM_CONDITIONAL(COMPILE_TIMELORD, test x$compile_timelord = xyes)
754 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
755 AM_CONDITIONAL(USE_KERBEROS, test x$compile_kerberos = xyes)
756 AM_CONDITIONAL(USE_PAM_SO, test x$use_pam_so = xyes)
757 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
758 AM_CONDITIONAL(BUILD_PAM, test x$compile_pam = xyes)
759 AM_CONDITIONAL(USE_PGP, test x$compile_pgp = xyes)
760 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
761 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
762 AM_CONDITIONAL(USE_SUSE, test x$sysv_style = xsuse)
763 AM_CONDITIONAL(USE_SHADOWPW, test x$shadowpw = xyes)
764 AM_CONDITIONAL(USE_TRU64, test x$sysv_style = xtru64)
765
766 dnl --------------------- generate files
767
768 AC_OUTPUT([Makefile
769         bin/Makefile
770         bin/adv1tov2/Makefile
771         bin/aecho/Makefile
772         bin/afile/Makefile
773         bin/afppasswd/Makefile
774         bin/getzones/Makefile
775         bin/megatron/Makefile
776         bin/nbp/Makefile
777         bin/pap/Makefile
778         bin/psorder/Makefile
779         config/Makefile
780         contrib/Makefile
781         contrib/macusers/Makefile
782         contrib/nu/Makefile
783         contrib/printing/Makefile
784         contrib/shell_utils/Makefile
785         contrib/timelord/Makefile
786         distrib/Makefile
787         distrib/config/Makefile
788         distrib/config/netatalk-config
789         distrib/initscripts/Makefile
790         distrib/m4/Makefile
791         doc/Makefile
792         etc/Makefile
793         etc/afpd/Makefile
794         etc/afpd/nls/Makefile
795         etc/atalkd/Makefile
796         etc/uams/Makefile
797         etc/uams/uams_krb4/Makefile
798         etc/papd/Makefile
799         etc/psf/Makefile
800         include/Makefile
801         include/atalk/Makefile
802         libatalk/Makefile
803         libatalk/adouble/Makefile
804         libatalk/asp/Makefile
805         libatalk/atp/Makefile
806         libatalk/cnid/Makefile
807         libatalk/compat/Makefile
808         libatalk/dsi/Makefile
809         libatalk/nbp/Makefile
810         libatalk/netddp/Makefile
811         libatalk/util/Makefile
812         man/Makefile
813         man/man1/Makefile
814         man/man3/Makefile
815         man/man4/Makefile
816         man/man5/Makefile
817         man/man8/Makefile
818         sys/Makefile
819         sys/generic/Makefile
820         sys/generic/sys/Makefile
821         sys/netatalk/Makefile
822         sys/netbsd/Makefile
823         sys/netbsd/netatalk/Makefile
824         sys/solaris/Makefile
825         sys/sunos/Makefile
826         sys/ultrix/Makefile
827         ],
828         [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
829 )
830