Fix an issue with the size of dump maps appearing when the filesystem has been resize...
[dump.git] / configure.in
CommitLineData
1227625a 1AC_INIT(dump/dump.h)
e7d18957 2AC_PREREQ(2.57)
1227625a
SP
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
e7d18957
SP
23AC_CHECK_HEADERS([sys/types.h])
24
25CPPFLAGS="-D_BSD_SOURCE -D_USE_BSD_SIGNAL ${CPPFLAGS}"
26
1227625a
SP
27dnl
28dnl Handle --enable-debug
29dnl
30AC_ARG_ENABLE([debug],
1daf06b9 31[ --enable-debug include debugging code (default is NO)],
1227625a
SP
32if test "$enableval" = "no"
33then
34 DUMPDEBUG=""
35 RESTOREDEBUG=""
1daf06b9 36 echo "Not including debugging code"
1227625a
SP
37else
38 DUMPDEBUG="-DFDEBUG -DTDEBUG -DWRITEDEBUG -DDIRDEBUG"
39 RESTOREDEBUG="-DDIRDEBUG"
1daf06b9 40 echo "Including debugging code"
1227625a
SP
41fi,
42DUMPDEBUG=""
43RESTOREDEBUG=""
1daf06b9 44echo "Not including debugging code by default"
1227625a
SP
45)
46AC_SUBST(DUMPDEBUG)
47AC_SUBST(RESTOREDEBUG)
48
49dnl
50dnl Handle --enable-static
51dnl
52AC_ARG_ENABLE([static],
1daf06b9 53[ --enable-static link dump and restore statically (default is NO)],
1227625a
SP
54if test "$enableval" = "no"
55then
56 STATIC=""
1daf06b9 57 echo "Linking dump and restore dynamically"
1227625a
SP
58else
59 STATIC="-static"
1daf06b9 60 echo "Linking dump and restore statically"
1227625a
SP
61fi
62,
63STATIC=""
64echo "Linking dump and restore dynamically by default"
65)
66AC_SUBST(STATIC)
67
d7783603
SP
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
1227625a
SP
86dnl
87dnl Handle --enable-rmt
88dnl
89AC_ARG_ENABLE([rmt],
1daf06b9 90[ --enable-rmt compile and install rmt (default is YES)],
1227625a
SP
91if test "$enableval" = "no"
92then
93 RMTDIR=""
94 RMTMAKEFILE=""
1daf06b9 95 echo "Not compiling rmt"
1227625a
SP
96else
97 RMTDIR="rmt"
98 RMTMAKEFILE="rmt/Makefile"
1daf06b9 99 echo "Compiling rmt"
1227625a
SP
100fi
101,
1daf06b9
SP
102RMTDIR="rmt"
103RMTMAKEFILE="rmt/Makefile"
104echo "Compiling rmt by default"
1227625a
SP
105)
106AC_SUBST(RMTDIR)
107
cdfe1392
SP
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
2ed89fda
SP
135dnl
136dnl Handle --enable-kerberos
137dnl
138AC_ARG_ENABLE([kerberos],
1daf06b9 139[ --enable-kerberos compile kerberos extensions (default is NO)],
2ed89fda
SP
140if test "$enableval" = "yes"
141then
142 OPTDEFS="-DKERBEROS"
1daf06b9 143 echo "Compiling kerberos extensions"
2ed89fda
SP
144else
145 OPTDEFS=""
1daf06b9 146 echo "Not compiling kerberos extensions"
2ed89fda
SP
147fi
148,
149OPTDEFS=""
150echo "Not compiling kerberos extensions by default"
151)
152AC_SUBST(OPTDEFS)
153
c38e5b6a
SP
154dnl
155dnl Handle --enable-readline
156dnl
157AC_ARG_ENABLE([readline],
1daf06b9 158[ --enable-readline enable readline support in restore (default is YES)],
c38e5b6a
SP
159if test "$enableval" = "no"
160then
161 READLINE=""
1daf06b9 162 echo "Not including readline support"
c38e5b6a 163else
0556ca22 164 READLINE="yes"
e7d18957 165 AC_DEFINE([HAVE_READLINE],1,[Define if you want to include readline support.])
1daf06b9 166 echo "Including readline support"
c38e5b6a
SP
167fi
168,
0556ca22 169READLINE="yes"
e7d18957 170AC_DEFINE([HAVE_READLINE],1,[Define if you want to include readline support.])
1daf06b9 171echo "Including readline support by default"
c38e5b6a 172)
c38e5b6a 173
d8574d45
SP
174dnl
175dnl Handle --enable-oldsylefscript
176dnl
177AC_ARG_ENABLE([oldstylefscript],
1daf06b9 178[ --enable-oldstylefscript enable old style F script (no arguments) (default is NO)],
d8574d45
SP
179if test "$enableval" = "yes"
180then
e7d18957 181 AC_DEFINE([OLD_STYLE_FSCRIPT],1,[Define this is you want old style F script (no arguments).])
1daf06b9
SP
182 echo "Using old style F script"
183else
184 echo "Using new style F script"
d8574d45
SP
185fi
186,
1daf06b9 187echo "Using new style F script by default"
d8574d45
SP
188)
189
d6967896
SP
190dnl
191dnl Handle --enable-largefile
192dnl
193AC_ARG_ENABLE([largefile],
1daf06b9 194[ --enable-largefile enable Large File System support (default is YES)],
d6967896
SP
195if test "$enableval" = "yes"
196then
e7d18957 197 AC_DEFINE([USE_LFS],1,[Define this if you want Large File System support.])
1daf06b9
SP
198 echo "Enabling Large File System support"
199else
200 echo "Not enabling Large File System support"
d6967896
SP
201fi
202,
e7d18957 203AC_DEFINE([USE_LFS],1,[Define this if you want Large File System support.])
1daf06b9 204echo "Enabling Large File System support by default"
d6967896
SP
205)
206
35b24fb7
SP
207dnl
208dnl Handle --enable-qfa
209dnl
210AC_ARG_ENABLE([qfa],
1daf06b9 211[ --enable-qfa enable Quick File Access support (default is YES)],
35b24fb7
SP
212if test "$enableval" = "yes"
213then
e7d18957 214 AC_DEFINE([USE_QFA],1,[Define this if you want Quick File Access support.])
1daf06b9
SP
215 echo "Enabling Quick File Access support"
216else
217 echo "Not enabling Quick File Access support"
35b24fb7
SP
218fi
219,
e7d18957 220AC_DEFINE([USE_QFA],1,[Define this if you want Quick File Access support.])
1daf06b9 221echo "Enabling Quick File Access support by default"
35b24fb7
SP
222)
223
224dnl
225dnl Handle --enable-qfadebug
226dnl
227AC_ARG_ENABLE([qfadebug],
1daf06b9 228[ --enable-qfadebug include Quick File Access debugging code (default is NO)],
35b24fb7
SP
229if test "$enableval" = "yes"
230then
e7d18957 231 AC_DEFINE([DEBUG_QFA],1,[Define this if you want to include Quick File Access debugging code.])
1daf06b9
SP
232 echo "Including Quick File Access debugging code"
233else
234 echo "Not including Quick File Access debugging code"
35b24fb7
SP
235fi
236,
1daf06b9 237echo "Not including Quick File Access debugging code by default"
35b24fb7
SP
238)
239
d1925e0c
SP
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
1227625a
SP
257dnl
258dnl set $(CC) from --with-cc=value
259dnl
260AC_ARG_WITH([cc],
d8574d45 261[ --with-cc=COMPILER select compiler to use],
1227625a
SP
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],
d8574d45 273[ --with-linker=LINKER select linker to use],
1227625a
SP
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],
d8574d45 285[ --with-ccopts=CCOPTS select compiler command line options],
1227625a
SP
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],
d8574d45 296[ --with-ldopts=LDOPTS select linker command line options],
1227625a 297AC_MSG_RESULT(LDFLAGS is $withval)
e95b2aff
SP
298LDOPTS=$withval
299LDFLAGS="$LDFLAGS $withval",
300LDOPTS=)dnl
301AC_SUBST(LDOPTS)
1227625a
SP
302
303dnl
304dnl set $(BINOWNER) from --with-binowner
305dnl
306AC_ARG_WITH([binowner],
d8574d45 307[ --with-binowner=USER select owner for binaries],
1227625a
SP
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],
d8574d45 319[ --with-bingrp=GROUP select group for binaries],
1227625a
SP
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],
d8574d45 331[ --with-binmode=MODE select mode for binaries],
1227625a
SP
332AC_MSG_RESULT(BINMODE is $withval)
333BINMODE=$withval,
882090d1 334BINMODE=0755
1227625a
SP
335echo "BINMODE defaults to $BINMODE"
336)dnl
337AC_SUBST(BINMODE)
338
339dnl
340dnl set $(MANOWNER) from --with-manowner
341dnl
342AC_ARG_WITH([manowner],
d8574d45 343[ --with-manowner=USER select owner for manual pages],
1227625a
SP
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],
d8574d45 355[ --with-mangrp=GROUP select group for manual pages],
1227625a
SP
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],
d8574d45 367[ --with-manmode=MODE select mode for manual pages],
1227625a
SP
368AC_MSG_RESULT(MANMODE is $withval)
369MANMODE=$withval,
882090d1 370MANMODE=0644
1227625a
SP
371echo "MANMODE defaults to $MANMODE"
372)dnl
373AC_SUBST(MANMODE)
374
8d4197bb
SP
375dnl
376dnl set $(DUMPDATESPATH) from --with-dumpdatespath
377dnl
378AC_ARG_WITH([dumpdatespath],
d8574d45 379[ --with-dumpdatespath=PATH select path for dumpdates file],
8d4197bb
SP
380AC_MSG_RESULT(DUMPDATESPATH is $withval)
381DUMPDATESPATH=$withval,
60d46c35 382DUMPDATESPATH="${sysconfdir}/dumpdates"
8d4197bb
SP
383echo "DUMPDATESPATH defaults to $DUMPDATESPATH"
384)dnl
385AC_SUBST(DUMPDATESPATH)
386
1227625a
SP
387dnl
388dnl Check for Ext2fs headers and libraries
389dnl
d3e542e7 390AC_CHECK_HEADER(ext2fs/ext2fs.h, [ext2fs_h=yes], [ext2fs_h=no], [-])
1227625a
SP
391AC_CHECK_LIB(ext2fs, ext2fs_open, [ext2fs_lib=yes], [ext2fs_lib=no], [-lcom_err])
392if test "$ext2fs_h" = no -o "$ext2fs_lib" = no; then
d3393043 393 AC_MSG_ERROR(You need to install the Ext2fs libraries from the E2fsprogs distribution first - hint: make install-libs)
1227625a
SP
394fi
395
e4a8bde4
SP
396dnl
397dnl Try to use ext2_fs.h header from libext2fs instead of from the kernel
398dnl
d3e542e7 399AC_CHECK_HEADERS(ext2fs/ext2_fs.h, [], [], [-])
e4a8bde4 400
a4f547cd
SP
401dnl
402dnl Check for ext2_ino_t type
403dnl
7422942f 404AC_MSG_CHECKING(for ext2_ino_t type in libext2fs headers)
a4f547cd 405AC_TRY_COMPILE([#include <stdio.h>
e4a8bde4
SP
406#ifdef HAVE_EXT2FS_EXT2_FS_H
407#include <ext2fs/ext2_fs.h>
408#else
a4f547cd 409#include <linux/ext2_fs.h>
e4a8bde4
SP
410#endif
411#include <ext2fs/ext2fs.h>],
a4f547cd 412[ext2_ino_t ino = 0;],
e7d18957
SP
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)],
a4f547cd
SP
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>
e4a8bde4
SP
422#ifdef HAVE_EXT2FS_EXT2_FS_H
423#include <ext2fs/ext2_fs.h>
424#else
a4f547cd 425#include <linux/ext2_fs.h>
e4a8bde4 426#endif
a4f547cd
SP
427#include <ext2fs/ext2fs.h>],
428[struct ext2_super_block es; es.s_journal_inum = 0;],
e7d18957
SP
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)],
a4f547cd
SP
431AC_MSG_RESULT(no))
432
c9e4e868
SP
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
3e815572 444dnl
0556ca22 445dnl Check for ncurses or termcap libraries
3e815572 446dnl
0556ca22 447AC_CHECK_LIB(ncurses, tgetent, [ncurses_lib=yes], [ncurses_lib=no])
3e815572 448AC_CHECK_LIB(termcap, tgetent, [termcap_lib=yes], [termcap_lib=no])
0556ca22
SP
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)
3e815572
SP
453 fi
454fi
0556ca22
SP
455if test "$ncurses_lib" = yes; then
456 rdllib="-lncurses"
457elif test "$termcap_lib" = yes; then
458 rdllib="-ltermcap"
459fi
3e815572 460
c38e5b6a
SP
461dnl
462dnl Check for readline headers and libraries
463dnl
d3e542e7 464AC_CHECK_HEADER(readline/readline.h, [readline_h=yes], [readline_h=no], [-])
0556ca22 465AC_CHECK_LIB(readline, readline, [readline_lib=yes], [readline_lib=no], $rdllib)
c38e5b6a 466if test "$readline_h" = no -o "$readline_lib" = no; then
0556ca22 467 if test "$READLINE" = "yes"; then
e68dc63e 468 AC_MSG_ERROR(You need to install the GNU readline library or configure without --enable-readline)
c38e5b6a
SP
469 fi
470fi
0556ca22
SP
471if test "$READLINE" = yes; then
472 READLINE="-lreadline $rdllib"
473fi
474AC_SUBST(READLINE)
c38e5b6a 475
bcecd677
SP
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
e7d18957 481 AC_DEFINE([HAVE_READLINE_RLCM],1,[Define this if your readline libs have the rl_completion_matches library.])
bcecd677
SP
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
e7d18957 489 AC_DEFINE([HAVE_READLINE_CAC],1,[Define this if your readline libs have the rl_completion_append_character variable.])
bcecd677
SP
490fi
491
4d5ed2f3
SP
492dnl
493dnl Check for zlib headers and libraries
494dnl
d3e542e7 495AC_CHECK_HEADER(zlib.h, [zlib_h=yes], [zlib_h=no], [-])
4d5ed2f3
SP
496AC_CHECK_LIB(z, compress2, [zlib_lib=yes], [zlib_lib=no])
497if test "$zlib_h" = yes -a "$zlib_lib" = yes; then
d7783603
SP
498 if test "$STATICZ" = yes; then
499 ZLIB="-Wl,-Bstatic -lz -Wl,-Bdynamic"
500 else
501 ZLIB="-lz"
502 fi
e7d18957 503 AC_DEFINE([HAVE_ZLIB],1,[Define this if you have zlib compression library.])
4d5ed2f3
SP
504else
505 ZLIB=""
506fi
507AC_SUBST(ZLIB)
508
88ef261e
SP
509dnl
510dnl Check for bzlib headers and libraries
511dnl
d3e542e7 512AC_CHECK_HEADER(bzlib.h, [bzlib_h=yes], [bzlib_h=no], [-])
88ef261e
SP
513AC_CHECK_LIB(bz2, BZ2_bzBuffToBuffCompress, [bzlib_lib=yes], [bzlib_lib=no])
514if test "$bzlib_h" = yes -a "$bzlib_lib" = yes; then
d7783603
SP
515 if test "$STATICZ" = yes; then
516 BZLIB="-Wl,-Bstatic -lbz2 -Wl,-Bdynamic"
517 else
518 BZLIB="-lbz2"
519 fi
e7d18957 520 AC_DEFINE([HAVE_BZLIB],1,[Define this if you have bzlib compression library.])
88ef261e
SP
521else
522 BZLIB=""
523fi
524AC_SUBST(BZLIB)
525
1227625a
SP
526dnl
527dnl Check for library functions
528dnl
5c1faba5
SP
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
a4f547cd 535AC_MSG_CHECKING(for extended glob routines)
5c1faba5
SP
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
a4f547cd
SP
543 ],
544 [
e7d18957 545 AC_DEFINE([HAVE_GLOB],1,[Define if you have the glob function.])
a4f547cd
SP
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 ])
5c1faba5 552fi
1227625a 553
18282881
SP
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
1227625a
SP
565dnl
566dnl Check for types
567dnl
1a886de8
SP
568AC_CHECK_TYPE(quad_t, int64_t)
569AC_CHECK_TYPE(u_quad_t, uint64_t)
1227625a
SP
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
8d4197bb 586AC_OUTPUT(MCONFIG Makefile common/Makefile compat/include/Makefile compat/lib/Makefile dump/Makefile restore/Makefile $RMTMAKEFILE)