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