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