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