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