]> git.wh0rd.org - dump.git/blob - configure.in
4bc4abd93778ccc0364b295adeeafa136c6a8c3c
[dump.git] / configure.in
1 AC_INIT(dump/dump.h)
2 AC_PREREQ(2.57)
3
4 MCONFIG=./MCONFIG
5 AC_SUBST_FILE(MCONFIG)
6
7 AC_CONFIG_HEADER(config.h)
8
9 dnl
10 dnl Check for programs
11 dnl
12 AC_PROG_MAKE_SET
13 AC_PROG_LN_S
14 AC_PATH_PROG(CP, cp, cp)
15 AC_PATH_PROG(MV, mv, mv)
16 AC_PATH_PROG(RM, rm, rm)
17 AC_CHECK_TOOL(AR, ar, ar)
18 AC_CHECK_TOOL(RANLIB, ranlib, :)
19 AC_CHECK_TOOL(PATCH, patch, :)
20 AC_PROG_CC
21 AC_PROG_INSTALL
22
23 AC_CHECK_HEADERS([sys/types.h])
24
25 CPPFLAGS="-D_BSD_SOURCE -D_USE_BSD_SIGNAL ${CPPFLAGS}"
26
27 dnl
28 dnl Handle --enable-debug
29 dnl
30 AC_ARG_ENABLE([debug],
31 [ --enable-debug include debugging code (default is NO)],
32 if test "$enableval" = "no"
33 then
34 DUMPDEBUG=""
35 RESTOREDEBUG=""
36 echo "Not including debugging code"
37 else
38 DUMPDEBUG="-DFDEBUG -DTDEBUG -DWRITEDEBUG -DDIRDEBUG"
39 RESTOREDEBUG="-DDIRDEBUG"
40 echo "Including debugging code"
41 fi,
42 DUMPDEBUG=""
43 RESTOREDEBUG=""
44 echo "Not including debugging code by default"
45 )
46 AC_SUBST(DUMPDEBUG)
47 AC_SUBST(RESTOREDEBUG)
48
49 dnl
50 dnl Handle --enable-static
51 dnl
52 AC_ARG_ENABLE([static],
53 [ --enable-static link dump and restore statically (default is NO)],
54 if test "$enableval" = "no"
55 then
56 STATIC=""
57 echo "Linking dump and restore dynamically"
58 else
59 STATIC="-static"
60 echo "Linking dump and restore statically"
61 fi
62 ,
63 STATIC=""
64 echo "Linking dump and restore dynamically by default"
65 )
66 AC_SUBST(STATIC)
67
68 dnl
69 dnl Handle --enable-rmt
70 dnl
71 AC_ARG_ENABLE([rmt],
72 [ --enable-rmt compile and install rmt (default is YES)],
73 if test "$enableval" = "no"
74 then
75 RMTDIR=""
76 RMTMAKEFILE=""
77 echo "Not compiling rmt"
78 else
79 RMTDIR="rmt"
80 RMTMAKEFILE="rmt/Makefile"
81 echo "Compiling rmt"
82 fi
83 ,
84 RMTDIR="rmt"
85 RMTMAKEFILE="rmt/Makefile"
86 echo "Compiling rmt by default"
87 )
88 AC_SUBST(RMTDIR)
89
90 dnl
91 dnl Handle --enable-ermt
92 dnl
93 AC_ARG_ENABLE([ermt],
94 [ --enable-ermt compile ermt, an encrypting version of rmt (default is NO)],
95 if test "$enableval" = "no"
96 then
97 ERMT=""
98 CRYPTO=""
99 echo "Not compiling ermt"
100 else
101 if test "$RMTDIR" = ""
102 then
103 AC_MSG_ERROR(ermt requires --enable-rmt)
104 fi
105 ERMT="ermt"
106 CRYPTO="-lcrypto"
107 echo "Compiling ermt"
108 fi
109 ,
110 ERMT=""
111 CRYPTO=""
112 echo "Not compiling ermt by default"
113 )
114 AC_SUBST(ERMT)
115 AC_SUBST(CRYPTO)
116
117 dnl
118 dnl Handle --enable-kerberos
119 dnl
120 AC_ARG_ENABLE([kerberos],
121 [ --enable-kerberos compile kerberos extensions (default is NO)],
122 if test "$enableval" = "yes"
123 then
124 OPTDEFS="-DKERBEROS"
125 echo "Compiling kerberos extensions"
126 else
127 OPTDEFS=""
128 echo "Not compiling kerberos extensions"
129 fi
130 ,
131 OPTDEFS=""
132 echo "Not compiling kerberos extensions by default"
133 )
134 AC_SUBST(OPTDEFS)
135
136 dnl
137 dnl Handle --enable-readline
138 dnl
139 AC_ARG_ENABLE([readline],
140 [ --enable-readline enable readline support in restore (default is YES)],
141 if test "$enableval" = "no"
142 then
143 READLINE=""
144 echo "Not including readline support"
145 else
146 READLINE="-lreadline -ltermcap"
147 AC_DEFINE([HAVE_READLINE],1,[Define if you want to include readline support.])
148 echo "Including readline support"
149 fi
150 ,
151 READLINE="-lreadline -ltermcap"
152 AC_DEFINE([HAVE_READLINE],1,[Define if you want to include readline support.])
153 echo "Including readline support by default"
154 )
155 AC_SUBST(READLINE)
156
157 dnl
158 dnl Handle --enable-oldsylefscript
159 dnl
160 AC_ARG_ENABLE([oldstylefscript],
161 [ --enable-oldstylefscript enable old style F script (no arguments) (default is NO)],
162 if test "$enableval" = "yes"
163 then
164 AC_DEFINE([OLD_STYLE_FSCRIPT],1,[Define this is you want old style F script (no arguments).])
165 echo "Using old style F script"
166 else
167 echo "Using new style F script"
168 fi
169 ,
170 echo "Using new style F script by default"
171 )
172
173 dnl
174 dnl Handle --enable-largefile
175 dnl
176 AC_ARG_ENABLE([largefile],
177 [ --enable-largefile enable Large File System support (default is YES)],
178 if test "$enableval" = "yes"
179 then
180 AC_DEFINE([USE_LFS],1,[Define this if you want Large File System support.])
181 echo "Enabling Large File System support"
182 else
183 echo "Not enabling Large File System support"
184 fi
185 ,
186 AC_DEFINE([USE_LFS],1,[Define this if you want Large File System support.])
187 echo "Enabling Large File System support by default"
188 )
189
190 dnl
191 dnl Handle --enable-qfa
192 dnl
193 AC_ARG_ENABLE([qfa],
194 [ --enable-qfa enable Quick File Access support (default is YES)],
195 if test "$enableval" = "yes"
196 then
197 AC_DEFINE([USE_QFA],1,[Define this if you want Quick File Access support.])
198 echo "Enabling Quick File Access support"
199 else
200 echo "Not enabling Quick File Access support"
201 fi
202 ,
203 AC_DEFINE([USE_QFA],1,[Define this if you want Quick File Access support.])
204 echo "Enabling Quick File Access support by default"
205 )
206
207 dnl
208 dnl Handle --enable-qfadebug
209 dnl
210 AC_ARG_ENABLE([qfadebug],
211 [ --enable-qfadebug include Quick File Access debugging code (default is NO)],
212 if test "$enableval" = "yes"
213 then
214 AC_DEFINE([DEBUG_QFA],1,[Define this if you want to include Quick File Access debugging code.])
215 echo "Including Quick File Access debugging code"
216 else
217 echo "Not including Quick File Access debugging code"
218 fi
219 ,
220 echo "Not including Quick File Access debugging code by default"
221 )
222
223 dnl
224 dnl set $(CC) from --with-cc=value
225 dnl
226 AC_ARG_WITH([cc],
227 [ --with-cc=COMPILER select compiler to use],
228 AC_MSG_RESULT(CC=$withval)
229 CC=$withval,
230 if test -z "$CC" ; then CC=cc; fi
231 [AC_MSG_RESULT(CC defaults to $CC)])dnl
232 export CC
233 AC_SUBST([CC])
234
235 dnl
236 dnl set $(LD) from --with-linker=value
237 dnl
238 AC_ARG_WITH([linker],
239 [ --with-linker=LINKER select linker to use],
240 AC_MSG_RESULT(LD=$withval)
241 LD=$withval,
242 if test -z "$LD" ; then LD=$CC; fi
243 [AC_MSG_RESULT(LD defaults to $LD)])dnl
244 export LD
245 AC_SUBST([LD])
246
247 dnl
248 dnl set $(CCOPTS) from --with-ccopts=value
249 dnl
250 AC_ARG_WITH([ccopts],
251 [ --with-ccopts=CCOPTS select compiler command line options],
252 AC_MSG_RESULT(CCOPTS is $withval)
253 CCOPTS=$withval
254 CFLAGS="$CFLAGS $withval",
255 CCOPTS=)dnl
256 AC_SUBST(CCOPTS)
257
258 dnl
259 dnl set $(LDFLAGS) from --with-ldopts=value
260 dnl
261 AC_ARG_WITH([ldopts],
262 [ --with-ldopts=LDOPTS select linker command line options],
263 AC_MSG_RESULT(LDFLAGS is $withval)
264 LDOPTS=$withval
265 LDFLAGS="$LDFLAGS $withval",
266 LDOPTS=)dnl
267 AC_SUBST(LDOPTS)
268
269 dnl
270 dnl set $(BINOWNER) from --with-binowner
271 dnl
272 AC_ARG_WITH([binowner],
273 [ --with-binowner=USER select owner for binaries],
274 AC_MSG_RESULT(BINOWNER is $withval)
275 BINOWNER=$withval,
276 BINOWNER=root
277 echo "BINOWNER defaults to $BINOWNER"
278 )dnl
279 AC_SUBST(BINOWNER)
280
281 dnl
282 dnl set $(BINGRP) from --with-bingrp
283 dnl
284 AC_ARG_WITH([bingrp],
285 [ --with-bingrp=GROUP select group for binaries],
286 AC_MSG_RESULT(BINGRP is $withval)
287 BINGRP=$withval,
288 BINGRP=tty
289 echo "BINGRP defaults to $BINGRP"
290 )dnl
291 AC_SUBST(BINGRP)
292
293 dnl
294 dnl set $(BINMODE) from --with-binmode
295 dnl
296 AC_ARG_WITH([binmode],
297 [ --with-binmode=MODE select mode for binaries],
298 AC_MSG_RESULT(BINMODE is $withval)
299 BINMODE=$withval,
300 BINMODE=0755
301 echo "BINMODE defaults to $BINMODE"
302 )dnl
303 AC_SUBST(BINMODE)
304
305 dnl
306 dnl set $(MANOWNER) from --with-manowner
307 dnl
308 AC_ARG_WITH([manowner],
309 [ --with-manowner=USER select owner for manual pages],
310 AC_MSG_RESULT(MANOWNER is $withval)
311 MANOWNER=$withval,
312 MANOWNER=man
313 echo "MANOWNER defaults to $MANOWNER"
314 )dnl
315 AC_SUBST(MANOWNER)
316
317 dnl
318 dnl set $(MANGRP) from --with-mangrp
319 dnl
320 AC_ARG_WITH([mangrp],
321 [ --with-mangrp=GROUP select group for manual pages],
322 AC_MSG_RESULT(MANGRP is $withval)
323 MANGRP=$withval,
324 MANGRP=tty
325 echo "MANGRP defaults to $MANGRP"
326 )dnl
327 AC_SUBST(MANGRP)
328
329 dnl
330 dnl set $(MANMODE) from --with-manmode
331 dnl
332 AC_ARG_WITH([manmode],
333 [ --with-manmode=MODE select mode for manual pages],
334 AC_MSG_RESULT(MANMODE is $withval)
335 MANMODE=$withval,
336 MANMODE=0644
337 echo "MANMODE defaults to $MANMODE"
338 )dnl
339 AC_SUBST(MANMODE)
340
341 dnl
342 dnl set $(DUMPDATESPATH) from --with-dumpdatespath
343 dnl
344 AC_ARG_WITH([dumpdatespath],
345 [ --with-dumpdatespath=PATH select path for dumpdates file],
346 AC_MSG_RESULT(DUMPDATESPATH is $withval)
347 DUMPDATESPATH=$withval,
348 DUMPDATESPATH="${sysconfdir}/dumpdates"
349 echo "DUMPDATESPATH defaults to $DUMPDATESPATH"
350 )dnl
351 AC_SUBST(DUMPDATESPATH)
352
353 dnl
354 dnl Check for Ext2fs headers and libraries
355 dnl
356 AC_CHECK_HEADER(ext2fs/ext2fs.h, [ext2fs_h=yes], [ext2fs_h=no], [-])
357 AC_CHECK_LIB(ext2fs, ext2fs_open, [ext2fs_lib=yes], [ext2fs_lib=no], [-lcom_err])
358 if test "$ext2fs_h" = no -o "$ext2fs_lib" = no; then
359 AC_MSG_ERROR(You need to install the Ext2fs libraries from the E2fsprogs distribution first - hint: make install-libs)
360 fi
361
362 dnl
363 dnl Try to use ext2_fs.h header from libext2fs instead of from the kernel
364 dnl
365 AC_CHECK_HEADERS(ext2fs/ext2_fs.h, [], [], [-])
366
367 dnl
368 dnl Check for ext2_ino_t type
369 dnl
370 AC_MSG_CHECKING(for ext2_ino_t type in libext2fs headers)
371 AC_TRY_COMPILE([#include <stdio.h>
372 #ifdef HAVE_EXT2FS_EXT2_FS_H
373 #include <ext2fs/ext2_fs.h>
374 #else
375 #include <linux/ext2_fs.h>
376 #endif
377 #include <ext2fs/ext2fs.h>],
378 [ext2_ino_t ino = 0;],
379 [AC_DEFINE([HAVE_EXT2_INO_T],1,[Define if we have the ext2_ino_t type (from e2fsprogs 1.20+).])
380 AC_MSG_RESULT(yes)],
381 AC_MSG_RESULT(no))
382
383 dnl
384 dnl Check for s_journal_inum field in ext2_super_block struct
385 dnl
386 AC_MSG_CHECKING(for s_journal_inum field in ext2_super_block struct)
387 AC_TRY_COMPILE([#include <stdio.h>
388 #ifdef HAVE_EXT2FS_EXT2_FS_H
389 #include <ext2fs/ext2_fs.h>
390 #else
391 #include <linux/ext2_fs.h>
392 #endif
393 #include <ext2fs/ext2fs.h>],
394 [struct ext2_super_block es; es.s_journal_inum = 0;],
395 [AC_DEFINE([HAVE_EXT2_JOURNAL_INUM],1,[Define if we have the s_journal_inum field in struct ext2_super_block.])
396 AC_MSG_RESULT(yes)],
397 AC_MSG_RESULT(no))
398
399 dnl
400 dnl Check for termcap libraries
401 dnl
402 AC_CHECK_LIB(termcap, tgetent, [termcap_lib=yes], [termcap_lib=no])
403 if test "$termcap_lib" = no; then
404 if test "$READLINE" = "-lreadline -ltermcap"; then
405 AC_MSG_ERROR(You need to install the GNU termcap library or configure without --enable-readline)
406 fi
407 fi
408
409 dnl
410 dnl Check for readline headers and libraries
411 dnl
412 AC_CHECK_HEADER(readline/readline.h, [readline_h=yes], [readline_h=no], [-])
413 AC_CHECK_LIB(readline, readline, [readline_lib=yes], [readline_lib=no], "-ltermcap")
414 if test "$readline_h" = no -o "$readline_lib" = no; then
415 if test "$READLINE" = "-lreadline -ltermcap"; then
416 AC_MSG_ERROR(You need to install the GNU readline library or configure without --enable-readline)
417 fi
418 fi
419
420 dnl
421 dnl Check for rl_completion_matches
422 dnl
423 AC_CHECK_LIB(readline, rl_completion_matches, [rlcm=yes], [rlcm=no], "-ltermcap")
424 if test "$rlcm" = yes; then
425 AC_DEFINE([HAVE_READLINE_RLCM],1,[Define this if your readline libs have the rl_completion_matches library.])
426 fi
427
428 dnl
429 dnl Check for rl_completion_append_character
430 dnl
431 AC_CHECK_LIB(readline, rl_completion_append_character, [rcac=yes], [rcac=no], "-ltermcap")
432 if test "$rcac" = yes; then
433 AC_DEFINE([HAVE_READLINE_CAC],1,[Define this if your readline libs have the rl_completion_append_character variable.])
434 fi
435
436 dnl
437 dnl Check for zlib headers and libraries
438 dnl
439 AC_CHECK_HEADER(zlib.h, [zlib_h=yes], [zlib_h=no], [-])
440 AC_CHECK_LIB(z, compress2, [zlib_lib=yes], [zlib_lib=no])
441 if test "$zlib_h" = yes -a "$zlib_lib" = yes; then
442 ZLIB="-lz"
443 AC_DEFINE([HAVE_ZLIB],1,[Define this if you have zlib compression library.])
444 else
445 ZLIB=""
446 fi
447 AC_SUBST(ZLIB)
448
449 dnl
450 dnl Check for bzlib headers and libraries
451 dnl
452 AC_CHECK_HEADER(bzlib.h, [bzlib_h=yes], [bzlib_h=no], [-])
453 AC_CHECK_LIB(bz2, BZ2_bzBuffToBuffCompress, [bzlib_lib=yes], [bzlib_lib=no])
454 if test "$bzlib_h" = yes -a "$bzlib_lib" = yes; then
455 BZLIB="-lbz2"
456 AC_DEFINE([HAVE_BZLIB],1,[Define this if you have bzlib compression library.])
457 else
458 BZLIB=""
459 fi
460 AC_SUBST(BZLIB)
461
462 dnl
463 dnl Check for library functions
464 dnl
465 AC_CHECK_FUNCS(err errx verr verrx vwarn vwarnx warn warnx realpath lchown)
466 AC_CHECK_FUNC(glob)
467
468 dnl
469 dnl Check for GLOB_ALTDIRFUNC
470 dnl
471 AC_MSG_CHECKING(for extended glob routines)
472 if test "$ac_cv_func_glob" = "yes"; then
473 AC_EGREP_CPP(yes,
474 [
475 # include <glob.h>
476 # ifdef GLOB_ALTDIRFUNC
477 yes
478 # endif
479 ],
480 [
481 AC_DEFINE([HAVE_GLOB],1,[Define if you have the glob function.])
482 AC_MSG_RESULT(yes)
483 ],
484 [
485 AC_MSG_RESULT(no)
486 echo "Your system does not support extended glob, will use the internal routines"
487 ])
488 fi
489
490 dnl
491 dnl Check for OpenSSL, for ermt
492 dnl
493 if test "$ERMT" != ""; then
494 AC_CHECK_HEADER(openssl/evp.h, [evp_h=yes], [evp_h=no])
495 AC_CHECK_LIB(crypto, EVP_CIPHER_CTX_set_padding, [crypto_lib=yes], [crypto_lib=no])
496 if test "$evp_h" = no -o "$crypto_lib" = no; then
497 AC_MSG_ERROR(You need to install the OpenSSL library (version 0.9.7a or later), or configure without --enable-ermt)
498 fi
499 fi
500
501 dnl
502 dnl Check for types
503 dnl
504 AC_CHECK_TYPE(quad_t, int64_t)
505 AC_CHECK_TYPE(u_quad_t, uint64_t)
506
507 dnl
508 dnl Compute top_buildir
509 dnl
510 top_builddir=`cd .; pwd`
511 AC_SUBST(top_builddir)
512
513 dnl
514 dnl Create directories
515 dnl
516 test -d compat || mkdir compat
517 test -d compat/lib || mkdir compat/lib
518
519 dnl
520 dnl Output files
521 dnl
522 AC_OUTPUT(MCONFIG Makefile common/Makefile compat/include/Makefile compat/lib/Makefile dump/Makefile restore/Makefile $RMTMAKEFILE)