]> arthur.barton.de Git - netatalk.git/blob - configure.in
fix for libdes not being checked in the right place
[netatalk.git] / configure.in
1 dnl configure.in for netatalk
2
3 AC_INIT(bin/adv1tov2/adv1tov2.c)
4
5 NETATALK_VERSION=`cat VERSION`
6 AC_SUBST(NETATALK_VERSION)
7
8 AC_CANONICAL_SYSTEM
9 AM_INIT_AUTOMAKE(netatalk, ${NETATALK_VERSION})
10 AM_CONFIG_HEADER(config.h)
11 AM_PROG_LIBTOOL
12
13 dnl Reset locations to proper places
14 AC_PREFIX_DEFAULT(/usr)
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_PROG_LIBTOOL
23
24 dnl *********************************************************************
25 dnl FIXME! FIXME! These should be selectable properly, and should produce
26 dnl the proper flags and defines...
27 dnl *********************************************************************
28
29 dnl Checks for libraries.
30 dnl Replace `main' with a function in -labs:
31 AC_CHECK_LIB(abs, main)
32 dnl Replace `main' with a function in -laudit:
33 AC_CHECK_LIB(audit, main)
34 dnl Replace `main' with a function in -lauth:
35 AC_CHECK_LIB(auth, main)
36 dnl Replace `main' with a function in -lcmd:
37 AC_CHECK_LIB(cmd, main)
38 dnl Replace `main' with a function in -lcom_err:
39 AC_CHECK_LIB(com_err, main)
40 dnl Replace `main' with a function in -lcrypt:
41 AC_CHECK_LIB(crypt, main)
42 dnl Replace `main' with a function in -ld:
43 AC_CHECK_LIB(d, main)
44 dnl Replace `main' with a function in -ldb:
45 AC_CHECK_LIB(db, main)
46 dnl Replace `main' with a function in -ldl:
47 AC_CHECK_LIB(dl, main)
48 dnl Replace `main' with a function in -lkauth:
49 AC_CHECK_LIB(kauth, main)
50 dnl Replace `main' with a function in -lkrb:
51 AC_CHECK_LIB(krb, main)
52 dnl Replace `main' with a function in -llwp:
53 AC_CHECK_LIB(lwp, main)
54 dnl Replace `main' with a function in -ln:
55 AC_CHECK_LIB(n, main)
56 dnl Replace `main' with a function in -lnsl:
57 AC_CHECK_LIB(nsl, main)
58 dnl Replace `main' with a function in -lprot:
59 AC_CHECK_LIB(prot, main)
60 dnl Replace `main' with a function in -lresolv:
61 AC_CHECK_LIB(resolv, main)
62 dnl Replace `main' with a function in -lrpcsvc:
63 AC_CHECK_LIB(rpcsvc, main)
64 dnl Replace `main' with a function in -lrx:
65 AC_CHECK_LIB(rx, main)
66 dnl Replace `main' with a function in -lrxkad:
67 AC_CHECK_LIB(rxkad, main)
68 dnl Replace `main' with a function in -lsocket:
69 AC_CHECK_LIB(socket, main)
70 dnl Replace `main' with a function in -lsys:
71 AC_CHECK_LIB(sys, main)
72 dnl Replace `main' with a function in -lubik:
73 AC_CHECK_LIB(ubik, main)
74
75 dnl Checks for header files.
76 AC_HEADER_DIRENT
77 AC_HEADER_STDC
78 AC_HEADER_SYS_WAIT
79 AC_CHECK_HEADERS(fcntl.h limits.h stdint.h strings.h sys/file.h sys/ioctl.h sys/time.h syslog.h unistd.h termios.h netdb.h)
80 AC_CHECK_HEADER(sys/cdefs.h,,
81         AC_MSG_RESULT([enabling generic cdefs.h from tree])
82         CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
83 )
84
85 # Allow user to specify flags
86 AC_ARG_WITH(cflags,
87         [  --with-cflags           specify additional flags to pass to compiler],
88         [
89                 if test "x$withval" != "xno" ; then
90                         CFLAGS="$CFLAGS $withval"
91                 fi
92         ]       
93 )
94 AC_ARG_WITH(libs,
95         [  --with-libs             specify additional libraries to link with],
96         [
97                 if test "x$withval" != "xno" ; then
98                         LIBS="$LIBS $withval"
99                 fi
100         ]
101 )
102
103 dnl Checks for typedefs, structures, and compiler characteristics.
104 AC_C_CONST
105 AC_TYPE_UID_T
106 AC_C_INLINE
107 AC_TYPE_MODE_T
108 AC_TYPE_OFF_T
109 AC_TYPE_PID_T
110 AC_TYPE_SIZE_T
111 AC_STRUCT_ST_RDEV
112 AC_HEADER_TIME
113 AC_STRUCT_TM
114
115 dnl Checks for library functions.
116 AC_TYPE_GETGROUPS
117 AC_PROG_GCC_TRADITIONAL
118 AC_FUNC_MEMCMP
119 AC_HEADER_MAJOR
120 AC_FUNC_MMAP
121 AC_TYPE_SIGNAL
122 AC_FUNC_UTIME_NULL
123 AC_FUNC_WAIT3
124 AC_CHECK_FUNCS(getcwd gethostname gettimeofday getusershell mkdir rmdir select socket strdup strstr strtoul setpgrp)
125 AC_FUNC_SETPGRP
126
127 dnl --------------------------------------------------------------------------
128 dnl specific configuration comes in here:
129 dnl --------------------------------------------------------------------------
130
131 AC_DEFINE(ADMIN_GRP, 1)
132
133 AC_ARG_WITH(admin-group,
134         [  --disable-admin-group  disable admin group],
135         if test "$enableval" = "no"; then
136                 AC_DEFINE(ADMIN_GRP, 0)
137                 AC_MSG_RESULT([disabling administrative group support])
138         fi
139  )
140
141 AC_ARG_WITH(auth-printing-dir,
142         [  --with-auth-printing-dir=path
143               path to authenticated printing directory],
144                 cap_dir="$withval"
145                 AC_DEFINE_UNQUOTED(CAPDIR, "$cap_dir")
146                 AC_DEFINE(USE_CAP)
147                 AC_MSG_RESULT([enabling authenticated printing support]),
148 )
149
150 AC_ARG_WITH(config-dir,
151         [  --with-config-dir=path  path to config files [default=/etc/atalk]],
152                 config_dir="$withval",
153                 config_dir="/etc/atalk"
154 )
155 AC_DEFINE_UNQUOTED(CONFIG_DIR, "$config_dir",
156         [path to config dir [default=/etc/atalk]])
157 CONFIG_DIR="$config_dir"
158 AC_SUBST(CONFIG_DIR)
159 AC_MSG_RESULT([setting configuration files location to $CONFIG_DIR])
160
161 AC_ARG_WITH(cracklib,
162         [  --with-cracklib=dict    enable/set location of cracklib dictionary],
163         cracklib="$withval"
164         AC_CHECK_LIB(crack, main,
165                 AC_DEFINE(USE_CRACKLIB) 
166                 LIBS="$LIBS -lcrack"
167                 AC_MSG_RESULT([enabling cracklib support])
168                 if test "$cracklib" = "yes"; then
169                         cracklib="/usr/lib/cracklib_dict"
170                 fi
171                 AC_DEFINE_UNQUOTED(_PATH_CRACKLIB, "$cracklib",
172                         [path to cracklib dictionary])
173                 AC_MSG_RESULT([setting cracklib dictionary to $cracklib]),
174                 AC_MSG_ERROR([cracklib not found!])
175         )
176 )
177
178 AC_ARG_ENABLE(ddp,
179         [  --disable-ddp           disable DDP],
180         if test "$enableval" = "no"; then 
181                 AC_DEFINE(NO_DDP, 1)
182                 AC_MSG_RESULT([disabling DDP])
183         fi
184 )
185
186 AC_ARG_ENABLE(force2GB,
187         [  --enable-force2GB           enable force 2GB max reported volume size],
188         if test "x$enableval" = "xyes"; then 
189                 AC_DEFINE(FORCE_2GB, 1)
190                 AC_MSG_RESULT([enable forge 2GB])
191         fi
192 )
193
194 AC_ARG_ENABLE(debug,
195         [  --enable-debug          enable debug code],
196         if test "$enableval" != "no"; then
197                 if test "$enableval" = "yes"; then
198                         AC_DEFINE(DEBUG, 1)
199                 else
200                         AC_DEFINE_UNQUOTED(DEBUG, $enableval)
201                 fi 
202                 AC_MSG_RESULT([enabling debugging code])
203         else
204                 AC_DEFINE(DEBUG, 0)
205         fi
206 )
207
208
209 dnl ----------- A NOTE ABOUT DROPKLUDGE
210 dnl The trouble with this fix is that if you know what the file is called, it
211 dnl can be read from the Unix side.  That's okay for most academic institutions
212 dnl since the students don't have telnet access to the Mac servers.  There is
213 dnl currently no one working on further development/fixes of DROPKLUDGE.
214 dnl -----------
215
216 AC_ARG_ENABLE(dropkludge,
217         [  --enable-dropkludge     enable the experimental dropbox fix (INSECURE!) ],
218         AC_DEFINE(DROPKLUDGE, 1)
219         AC_MSG_RESULT([enabling experimental dropbox support])
220 )
221
222 AC_ARG_ENABLE(lastdid,
223         [  --enable-lastdid        enable build without DID dev/inode mapping kludge],
224         if test "$enableval" = "yes"; then 
225                 AC_DEFINE(USE_LASTDID, 1)
226                 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
227         fi
228 )
229
230 msg_dir=""
231 AC_ARG_WITH(message-dir,
232         [  --with-msg-dir=path     path to message files [default=/etc/atalk/msg]],
233                 msg_dir="$withval"
234                 if test x"$msg_dir" = "x"; then
235                         msg_dir="$CONFIG_DIR/msg"
236                 fi
237                 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
238                         [path to message dir [default=$CONFIG_DIR/msg]])
239                 SERVERTEXT="$msg_dir"
240                 AC_SUBST(SERVERTEXT)
241 )
242
243 AC_ARG_WITH(pam,
244         [  --with-pam              enable password authentication modules support],
245         AC_CHECK_LIB(pam, pam_start,
246                 AC_DEFINE(USE_PAM, 1)
247                 LIBS="$LIBS -lpam"
248                 AC_MSG_RESULT([enabling pam modules support])
249         )
250 )
251
252 AC_ARG_WITH(shadow,
253         [  --with-shadow           enable shadow password support],
254         AC_MSG_RESULT([enabling shadow password support])
255         AC_DEFINE(SHADOWPW)
256 )
257
258 AC_ARG_WITH(flock-locks,
259         [  --with-flock-locks      enable flock locks support],
260         AC_MSG_RESULT([enabling flock locks])
261         AC_DEFINE(USE_FLOCK_LOCKS)
262 )
263
264 AC_ARG_WITH(tcp-wrappers,
265         [  --with-tcp-wrappers     enable TCP wrappers support],
266         AC_CHECK_LIB(wrap, main,
267                 AC_DEFINE(TCPWRAP)
268                 LIBS="$LIBS -lwrap"
269                 AC_MSG_RESULT([enabling TCP wrappers support])
270         )
271 )
272
273 AC_ARG_WITH(uams-path,
274         [  --with-uams-path=path   path to UAMs [default=/etc/atalk/uams]],
275         uams_path="$withval",
276         uams_path="/etc/atalk/uams"
277 )
278 AC_DEFINE_UNQUOTED(UAMS_PATH, "$uams_path",
279         [path to UAMs [default=/etc/atalk/uams]])
280 UAMS_PATH="$uams_path"
281 AC_SUBST(UAMS_PATH)
282
283 dnl --------------------------------------------------------------------------
284 dnl drop in includes for top level directory structures here...
285 dnl --------------------------------------------------------------------------
286 LIBS="$LIBS -L\$(top_srcdir)/libatalk/"
287 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
288
289 dnl --------------------------------------------------------------------------
290 dnl specific configuration comes in here:
291 dnl --------------------------------------------------------------------------
292
293 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
294
295 dnl --------------------- determine operating system from "target"
296 case "$host_os" in
297         *freebsd*)                      this_os=freebsd ;;
298         *linux*)                        this_os=linux ;;
299         *osx*)                          this_os=macosx ;;
300         *netbsd*)                       this_os=netbsd ;;
301         *openbsd*)                      this_os=openbsd ;;
302         *solaris*)                      this_os=solaris ;;
303 esac
304
305 case "$host_cpu" in
306         i386|i486|i586|i686|k7)         this_cpu=x86 ;;
307         alpha)                          this_cpu=alpha ;;
308         mips)                           this_cpu=mips ;;
309         powerpc|ppc)                    this_cpu=ppc ;;
310 esac
311
312 dnl --------------------- operating system specific flags (port from sys/*)
313
314 dnl ----- FreeBSD specific -----
315 if test x"$this_os" = "xfreebsd"; then 
316         AC_MSG_RESULT([ * FreeBSD specific configuration])
317         AC_DEFINE(BSD4_4)
318         AC_DEFINE(SENDFILE_FLAVOR_BSD)
319 fi
320
321 dnl ----- Linux specific -----
322 if test x"$this_os" = "xlinux"; then 
323         AC_MSG_RESULT([ * Linux specific configuration])
324         AC_DEFINE(SENDFILE_FLAVOR_LINUX)
325
326         dnl ----- check if we need the quotactl wrapper
327         AC_CHECK_HEADER(sys/quota.h,,
328                 AC_MSG_RESULT([enabling quotactl wrapper])
329                 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
330         )
331
332         dnl ----- Linux/alpha specific -----
333         if test x"$this_cpu" = "xalpha"; then 
334                 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
335                 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
336         fi
337         need_dash_r=no
338 fi
339
340 dnl ----- Mac OSX specific -----
341 if test x"$this_os" = "xmacosx"; then 
342         AC_MSG_RESULT([ * Mac OSX specific configuration])
343         AC_DEFINE(BSD4_4)
344         AC_DEFINE(HAVE_BROKEN_CPP)
345         AC_DEFINE(HAVE_2ARG_DBTOB)
346         AC_DEFINE(NO_DLFCN_H)
347         AC_DEFINE(MACOSX_SERVER)
348 fi
349
350 dnl ----- NetBSD specific -----
351 if test x"$this_os" = "xnetbsd"; then 
352         AC_MSG_RESULT([ * NetBSD specific configuration])
353         AC_DEFINE(BSD4_4)
354         AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
355         CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
356         need_dash_r=yes 
357 fi
358
359 dnl ----- OpenBSD specific -----
360 if test x"$this_os" = "xopenbsd"; then 
361         AC_MSG_RESULT([ * OpenBSD specific configuration])
362         AC_DEFINE(BSD4_4)
363 fi
364
365 dnl ----- Solaris specific -----
366 if test x"$this_os" = "xsolaris"; then 
367         AC_MSG_RESULT([ * Solaris specific configuration])
368         AC_DEFINE(__svr4__)
369         AC_DEFINE(_ISOC9X_SOURCE)
370         AC_DEFINE(NO_STRUCT_TM_GMTOFF)
371         AC_DEFINE(SOLARIS)
372         CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
373         need_dash_r=yes
374 fi
375
376 dnl -- look for openssl  
377 AC_ARG_WITH(ssl-dir,
378         [  --with-ssl-dir=PATH     specify path to openssl installation (must contain
379                           lib and include dirs) ],
380         [
381                 if test "x$withval" != "$xno"; then
382                         tryssldir=$withval
383                 fi
384         ]
385 )
386
387 for ssldir in "" $tryssldir /usr /usr/local/openssl /usr/lib/openssl/ /usr/local/ssl /usr/lib/ssl /usr/local /usr/pkg /opt /opt/openssl ; do
388         if test -f "$ssldir/include/openssl/cast.h" ; then
389                 LIBS="$LIBS -L$ssldir/lib -L$ssldir"
390                 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
391                 if test "$need_dash_r" = "yes"; then
392                         LIBS="$LIBS -R$ssldir/lib -R$ssldir"
393                 fi
394
395                 dnl Check for the crypto library:
396                 AC_CHECK_LIB(crypto, main)
397                 LIBS="$LIBS -lcrypto"
398                 dnl Check for "DES" library (for SSLeay, not openssl):
399                 AC_CHECK_LIB(des, main)
400
401                 AC_DEFINE(OPENSSL_DHX,  1)
402                 AC_DEFINE(UAM_DHX,      1)
403                 AC_DEFINE(UAM_RNDNUM,   1)
404                 compile_dhx=yes
405                 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
406                 break
407         fi
408 done
409
410 dnl --------------------- last minute substitutions
411
412 AC_SUBST(LIBS)
413 AC_SUBST(CFLAGS)
414 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
415
416 dnl --------------------- generate files
417
418 AC_OUTPUT([Makefile
419         bin/Makefile
420         bin/adv1tov2/Makefile
421         bin/aecho/Makefile
422         bin/afile/Makefile
423         bin/afppasswd/Makefile
424         bin/getzones/Makefile
425         bin/megatron/Makefile
426         bin/nbp/Makefile
427         bin/pap/Makefile
428         bin/psorder/Makefile
429         config/Makefile
430         contrib/Makefile
431         contrib/nu/Makefile
432         contrib/printing/Makefile
433         contrib/shell_utils/Makefile
434         contrib/timelord/Makefile
435         distrib/Makefile
436         distrib/config/Makefile
437         distrib/config/netatalk-config
438         distrib/initscripts/Makefile
439         distrib/m4/Makefile
440         etc/Makefile
441         etc/afpd/Makefile
442         etc/afpd/nls/Makefile
443         etc/atalkd/Makefile
444         etc/uams/Makefile
445         etc/papd/Makefile
446         etc/psf/Makefile
447         include/Makefile
448         include/atalk/Makefile
449         libatalk/Makefile
450         libatalk/adouble/Makefile
451         libatalk/asp/Makefile
452         libatalk/atp/Makefile
453         libatalk/compat/Makefile
454         libatalk/dsi/Makefile
455         libatalk/nbp/Makefile
456         libatalk/netddp/Makefile
457         libatalk/util/Makefile
458         man/Makefile
459         man/man1/Makefile
460         man/man3/Makefile
461         man/man4/Makefile
462         man/man5/Makefile
463         man/man8/Makefile
464         sys/Makefile
465         sys/netatalk/Makefile
466         ],
467         [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
468 )
469