]> arthur.barton.de Git - netatalk.git/blob - configure.in
Remove force 2 GB option after introducing fixed code from Uwe Hees into etc/afpd...
[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(debug,
187         [  --enable-debug          enable debug code],
188         if test "$enableval" != "no"; then
189                 if test "$enableval" = "yes"; then
190                         AC_DEFINE(DEBUG, 1)
191                 else
192                         AC_DEFINE_UNQUOTED(DEBUG, $enableval)
193                 fi 
194                 AC_MSG_RESULT([enabling debugging code])
195         else
196                 AC_DEFINE(DEBUG, 0)
197         fi
198 )
199
200
201 dnl ----------- A NOTE ABOUT DROPKLUDGE
202 dnl The trouble with this fix is that if you know what the file is called, it
203 dnl can be read from the Unix side.  That's okay for most academic institutions
204 dnl since the students don't have telnet access to the Mac servers.  There is
205 dnl currently no one working on further development/fixes of DROPKLUDGE.
206 dnl -----------
207
208 AC_ARG_ENABLE(dropkludge,
209         [  --enable-dropkludge     enable the experimental dropbox fix (INSECURE!) ],
210         AC_DEFINE(DROPKLUDGE, 1)
211         AC_MSG_RESULT([enabling experimental dropbox support])
212 )
213
214 AC_ARG_ENABLE(lastdid,
215         [  --enable-lastdid        enable build without DID dev/inode mapping kludge],
216         if test "$enableval" = "yes"; then 
217                 AC_DEFINE(USE_LASTDID, 1)
218                 AC_MSG_RESULT([enabling build without DID dev/inode mapping kludge])
219         fi
220 )
221
222 msg_dir=""
223 AC_ARG_WITH(message-dir,
224         [  --with-msg-dir=path     path to message files [default=/etc/atalk/msg]],
225                 msg_dir="$withval"
226                 if test x"$msg_dir" = "x"; then
227                         msg_dir="$CONFIG_DIR/msg"
228                 fi
229                 AC_DEFINE_UNQUOTED(SERVERTEXT, "$msg_dir",
230                         [path to message dir [default=$CONFIG_DIR/msg]])
231                 SERVERTEXT="$msg_dir"
232                 AC_SUBST(SERVERTEXT)
233 )
234
235 AC_ARG_WITH(pam,
236         [  --with-pam              enable password authentication modules support],
237         AC_CHECK_LIB(pam, pam_start,
238                 AC_DEFINE(USE_PAM, 1)
239                 LIBS="$LIBS -lpam"
240                 compile_pam=yes
241                 AC_MSG_RESULT([enabling pam modules support])
242         )
243 )
244
245 AC_ARG_WITH(shadow,
246         [  --with-shadow           enable shadow password support],
247         AC_MSG_RESULT([enabling shadow password support])
248         AC_DEFINE(SHADOWPW)
249 )
250
251 AC_ARG_WITH(flock-locks,
252         [  --with-flock-locks      enable flock locks support],
253         AC_MSG_RESULT([enabling flock locks])
254         AC_DEFINE(USE_FLOCK_LOCKS)
255 )
256
257 AC_ARG_WITH(tcp-wrappers,
258         [  --with-tcp-wrappers     enable TCP wrappers support],
259         AC_CHECK_LIB(wrap, main,
260                 AC_DEFINE(TCPWRAP)
261                 LIBS="$LIBS -lwrap"
262                 AC_MSG_RESULT([enabling TCP wrappers support])
263         )
264 )
265
266 AC_ARG_ENABLE(redhat,
267         [  --enable-redhat     use redhat-style sysv configuration ],
268     if test "$enableval" = "yes"; then
269                 sysv_style=redhat
270         fi
271         AC_MSG_RESULT([enabling redhat-style sysv support])
272 )
273
274 AC_ARG_ENABLE(cobalt,
275         [  --enable-cobalt     use cobalt-style sysv configuration ],
276     if test "$enableval" = "yes"; then
277                 sysv_style=cobalt
278         fi
279         AC_MSG_RESULT([enabling cobalt-style sysv support])
280 )
281
282 AC_ARG_WITH(uams-path,
283         [  --with-uams-path=path   path to UAMs [default=/etc/atalk/uams]],
284         uams_path="$withval",
285         uams_path="/etc/atalk/uams"
286 )
287 AC_DEFINE_UNQUOTED(UAMS_PATH, "$uams_path",
288         [path to UAMs [default=/etc/atalk/uams]])
289 UAMS_PATH="$uams_path"
290 AC_SUBST(UAMS_PATH)
291
292 dnl --------------------------------------------------------------------------
293 dnl drop in includes for top level directory structures here...
294 dnl --------------------------------------------------------------------------
295 LIBS="$LIBS -L\$(top_srcdir)/libatalk/"
296 CFLAGS="$CFLAGS -I\$(top_srcdir)/include -I\$(top_srcdir)/sys"
297
298 dnl --------------------------------------------------------------------------
299 dnl specific configuration comes in here:
300 dnl --------------------------------------------------------------------------
301
302 dnl ac_cv_target_os is now host_os, ac_cv_target_cpu is now host_cpu
303
304 dnl --------------------- determine operating system from "target"
305 case "$host_os" in
306         *freebsd*)                      this_os=freebsd ;;
307         *linux*)                        this_os=linux ;;
308         *osx*)                          this_os=macosx ;;
309         *netbsd*)                       this_os=netbsd ;;
310         *openbsd*)                      this_os=openbsd ;;
311         *solaris*)                      this_os=solaris ;;
312 esac
313
314 case "$host_cpu" in
315         i386|i486|i586|i686|k7)         this_cpu=x86 ;;
316         alpha)                          this_cpu=alpha ;;
317         mips)                           this_cpu=mips ;;
318         powerpc|ppc)                    this_cpu=ppc ;;
319 esac
320
321 dnl --------------------- operating system specific flags (port from sys/*)
322
323 dnl ----- FreeBSD specific -----
324 if test x"$this_os" = "xfreebsd"; then 
325         AC_MSG_RESULT([ * FreeBSD specific configuration])
326         AC_DEFINE(BSD4_4)
327         AC_DEFINE(SENDFILE_FLAVOR_BSD)
328 fi
329
330 dnl ----- Linux specific -----
331 if test x"$this_os" = "xlinux"; then 
332         AC_MSG_RESULT([ * Linux specific configuration])
333         AC_DEFINE(SENDFILE_FLAVOR_LINUX)
334
335         dnl ----- check if we need the quotactl wrapper
336         AC_CHECK_HEADER(sys/quota.h,,
337                 AC_MSG_RESULT([enabling quotactl wrapper])
338                 AC_DEFINE(NEED_QUOTACTL_WRAPPER)
339         )
340
341         dnl ----- Linux/alpha specific -----
342         if test x"$this_cpu" = "xalpha"; then 
343                 AC_MSG_RESULT([enabling gcc memcpy bug workaround])
344                 AC_DEFINE(HAVE_GCC_MEMCPY_BUG)
345         fi
346         need_dash_r=no
347 fi
348
349 dnl ----- Mac OSX specific -----
350 if test x"$this_os" = "xmacosx"; then 
351         AC_MSG_RESULT([ * Mac OSX specific configuration])
352         AC_DEFINE(BSD4_4)
353         AC_DEFINE(HAVE_BROKEN_CPP)
354         AC_DEFINE(HAVE_2ARG_DBTOB)
355         AC_DEFINE(NO_DLFCN_H)
356         AC_DEFINE(MACOSX_SERVER)
357 fi
358
359 dnl ----- NetBSD specific -----
360 if test x"$this_os" = "xnetbsd"; then 
361         AC_MSG_RESULT([ * NetBSD specific configuration])
362         AC_DEFINE(BSD4_4)
363         AC_DEFINE(DLSYM_PREPEND_UNDERSCORE)
364         CFLAGS="-I\$(top_srcdir)/sys/netbsd -I/usr/include/kerberosIV $CFLAGS"
365         need_dash_r=yes 
366 fi
367
368 dnl ----- OpenBSD specific -----
369 if test x"$this_os" = "xopenbsd"; then 
370         AC_MSG_RESULT([ * OpenBSD specific configuration])
371         AC_DEFINE(BSD4_4)
372 fi
373
374 dnl ----- Solaris specific -----
375 if test x"$this_os" = "xsolaris"; then 
376         AC_MSG_RESULT([ * Solaris specific configuration])
377         AC_DEFINE(__svr4__)
378         AC_DEFINE(_ISOC9X_SOURCE)
379         AC_DEFINE(NO_STRUCT_TM_GMTOFF)
380         AC_DEFINE(SOLARIS)
381         CFLAGS="-I\$(top_srcdir)/sys/generic $CFLAGS"
382         need_dash_r=yes
383 fi
384
385 dnl -- look for openssl  
386 AC_ARG_WITH(ssl-dir,
387         [  --with-ssl-dir=PATH     specify path to openssl installation (must contain
388                           lib and include dirs) ],
389         [
390                 if test "x$withval" != "$xno"; then
391                         tryssldir=$withval
392                 fi
393         ]
394 )
395
396 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
397         if test -f "$ssldir/include/openssl/cast.h" ; then
398                 LIBS="$LIBS -L$ssldir/lib -L$ssldir"
399                 CFLAGS="$CFLAGS -I$ssldir/include -I$ssldir/include/openssl"
400                 if test "$need_dash_r" = "yes"; then
401                         LIBS="$LIBS -R$ssldir/lib -R$ssldir"
402                 fi
403
404                 dnl Check for the crypto library:
405                 AC_CHECK_LIB(crypto, main)
406                 LIBS="$LIBS -lcrypto"
407                 dnl Check for "DES" library (for SSLeay, not openssl):
408                 AC_CHECK_LIB(des, main)
409
410                 AC_DEFINE(OPENSSL_DHX,  1)
411                 AC_DEFINE(UAM_DHX,              1)
412                 AC_DEFINE(UAM_PGP,              1)
413                 AC_DEFINE(UAM_RNDNUM,   1)
414                 compile_dhx=yes
415                 AC_MSG_RESULT([Found ssl and enabling RANDNUM and DHX support "$ssldir"])
416                 break
417         fi
418 done
419
420 dnl --------------------- last minute substitutions
421
422 AC_SUBST(LIBS)
423 AC_SUBST(CFLAGS)
424 AM_CONDITIONAL(USE_DHX, test x$compile_dhx = xyes)
425 AM_CONDITIONAL(USE_PAM, test x$compile_pam = xyes)
426 AM_CONDITIONAL(USE_COBALT, test x$sysv_style = xcobalt)
427 AM_CONDITIONAL(USE_REDHAT, test x$sysv_style = xredhat)
428
429 dnl --------------------- generate files
430
431 AC_OUTPUT([Makefile
432         bin/Makefile
433         bin/adv1tov2/Makefile
434         bin/aecho/Makefile
435         bin/afile/Makefile
436         bin/afppasswd/Makefile
437         bin/getzones/Makefile
438         bin/megatron/Makefile
439         bin/nbp/Makefile
440         bin/pap/Makefile
441         bin/psorder/Makefile
442         config/Makefile
443         contrib/Makefile
444         contrib/nu/Makefile
445         contrib/printing/Makefile
446         contrib/shell_utils/Makefile
447         contrib/timelord/Makefile
448         distrib/Makefile
449         distrib/config/Makefile
450         distrib/config/netatalk-config
451         distrib/initscripts/Makefile
452         distrib/m4/Makefile
453         etc/Makefile
454         etc/afpd/Makefile
455         etc/afpd/nls/Makefile
456         etc/atalkd/Makefile
457         etc/uams/Makefile
458         etc/papd/Makefile
459         etc/psf/Makefile
460         include/Makefile
461         include/atalk/Makefile
462         libatalk/Makefile
463         libatalk/adouble/Makefile
464         libatalk/asp/Makefile
465         libatalk/atp/Makefile
466         libatalk/compat/Makefile
467         libatalk/dsi/Makefile
468         libatalk/nbp/Makefile
469         libatalk/netddp/Makefile
470         libatalk/util/Makefile
471         man/Makefile
472         man/man1/Makefile
473         man/man3/Makefile
474         man/man4/Makefile
475         man/man5/Makefile
476         man/man8/Makefile
477         sys/Makefile
478         sys/netatalk/Makefile
479         ],
480         [chmod a+x distrib/config/netatalk-config contrib/shell_utils/apple_*]
481 )
482