• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1AC_INIT(version.h)
2AC_PREREQ(2.69)
3AC_CONFIG_AUX_DIR(config)
4AC_CONFIG_HEADERS([lib/config.h])
5AH_BOTTOM([#include <dirpaths.h>])
6MCONFIG=./MCONFIG
7AC_SUBST_FILE(MCONFIG)
8BINARY_TYPE=bin
9dnl
10dnl This is to figure out the version number and the date....
11dnl
12E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h  \
13	| awk '{print $3}' | tr \" " " | awk '{print $1}'`
14E2FSPROGS_DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
15	| tr \" " " | awk '{print $1}'`
16E2FSPROGS_DAY=$(echo $E2FSPROGS_DATE | awk -F- '{print $1}' | sed -e '/^[[1-9]]$/s/^/0/')
17MONTH=`echo $E2FSPROGS_DATE | awk -F- '{print $2}'`
18YEAR=`echo $E2FSPROGS_DATE | awk -F- '{print $3}'`
19
20if expr $YEAR ">" 1900 > /dev/null ; then
21	E2FSPROGS_YEAR=$YEAR
22elif expr $YEAR ">" 90 >/dev/null ; then
23	E2FSPROGS_YEAR=19$YEAR
24else
25	E2FSPROGS_YEAR=20$YEAR
26fi
27
28case $MONTH in
29Jan)	MONTH_NUM=01; E2FSPROGS_MONTH="January" ;;
30Feb)	MONTH_NUM=02; E2FSPROGS_MONTH="February" ;;
31Mar)	MONTH_NUM=03; E2FSPROGS_MONTH="March" ;;
32Apr)	MONTH_NUM=04; E2FSPROGS_MONTH="April" ;;
33May)	MONTH_NUM=05; E2FSPROGS_MONTH="May" ;;
34Jun)	MONTH_NUM=06; E2FSPROGS_MONTH="June" ;;
35Jul)	MONTH_NUM=07; E2FSPROGS_MONTH="July" ;;
36Aug)	MONTH_NUM=08; E2FSPROGS_MONTH="August" ;;
37Sep)	MONTH_NUM=09; E2FSPROGS_MONTH="September" ;;
38Oct)	MONTH_NUM=10; E2FSPROGS_MONTH="October" ;;
39Nov)	MONTH_NUM=11; E2FSPROGS_MONTH="November" ;;
40Dec)	MONTH_NUM=12; E2FSPROGS_MONTH="December" ;;
41*)	AC_MSG_WARN([Unknown month $MONTH??]) ;;
42esac
43
44base_ver=`echo $E2FSPROGS_VERSION | \
45	       sed -e 's/-WIP//' -e 's/pre-//' -e 's/-PLUS//'`
46
47date_spec=${E2FSPROGS_YEAR}.${MONTH_NUM}.${E2FSPROGS_DAY}
48
49case $E2FSPROGS_VERSION in
50*-WIP|pre-*)
51	E2FSPROGS_PKGVER="$base_ver~WIP.$date_spec"
52	;;
53*)
54	E2FSPROGS_PKGVER="$base_ver"
55	;;
56esac
57
58unset DATE MONTH YEAR base_ver pre_vers date_spec
59AC_MSG_RESULT([Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION])
60AC_MSG_RESULT([Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}])
61AC_SUBST(E2FSPROGS_YEAR)
62AC_SUBST(E2FSPROGS_MONTH)
63AC_SUBST(E2FSPROGS_DAY)
64AC_SUBST(E2FSPROGS_VERSION)
65AC_SUBST(E2FSPROGS_PKGVER)
66AC_SUBST(E2FSPROGS_DATE)
67dnl
68dnl Use diet libc
69dnl
70WITH_DIET_LIBC=
71AC_ARG_WITH([diet-libc],
72AS_HELP_STRING([--with-diet-libc],[use diet libc]),
73CC="diet cc -nostdinc"
74WITH_DIET_LIBC=yes
75if test -z "$LIBS"
76then
77	LIBS="-lcompat"
78else
79	LIBS="$LIBS -lcompat"
80fi
81AC_MSG_RESULT(CC=$CC))dnl
82dnl
83AC_CANONICAL_HOST
84dnl
85dnl Check to see if libdl exists for the sake of dlopen
86dnl
87DLOPEN_LIB=''
88AC_CHECK_LIB(dl, dlopen,DLOPEN_LIB=-ldl)
89AC_SUBST(DLOPEN_LIB)
90dnl
91AC_ARG_WITH([cc],
92AS_HELP_STRING([--with-cc],[no longer supported, use CC= instead]),
93AC_MSG_ERROR([--with-cc no longer supported; use CC= instead]))
94dnl
95AC_ARG_WITH([ccopts],
96AS_HELP_STRING([--with-ccopts],[no longer supported, use CFLAGS= instead]),
97AC_MSG_ERROR([--with-ccopts no longer supported; use CFLAGS= instead]))
98dnl
99AC_ARG_WITH([ldopts],
100AS_HELP_STRING([--with-ldopts],[no longer supported, use LDFLAGS= instead]),
101AC_MSG_ERROR([--with-ldopts no longer supported; use LDFLAGS= instead]))
102dnl
103AC_PROG_CC
104if test "$GCC" = yes; then
105   RDYNAMIC="-rdynamic"
106   AC_SUBST(RDYNAMIC)
107fi
108AC_PROG_CPP
109dnl
110dnl Alpha computers use fast and imprecise floating point code that may
111dnl miss exceptions by default. Force sane options if we're using GCC.
112AC_MSG_CHECKING(for additional special compiler flags)
113if test "$GCC" = yes
114then
115    case "$host_cpu" in
116	alpha)		addcflags="-mieee" ;;
117    esac
118fi
119if test "x$addcflags" != x
120then
121    AC_MSG_RESULT($addcflags)
122    CFLAGS="$addcflags $CFLAGS"
123else
124    AC_MSG_RESULT([[(none)]])
125fi
126AC_USE_SYSTEM_EXTENSIONS
127dnl
128dnl Set default values for library extensions.  Will be dealt with after
129dnl parsing configuration options, which may modify these
130dnl
131LIB_EXT=.a
132STATIC_LIB_EXT=.a
133PROFILED_LIB_EXT=.a
134dnl
135dnl Allow separate `root_prefix' to be specified
136dnl
137AC_ARG_WITH([root-prefix],
138AS_HELP_STRING([--with-root-prefix=PREFIX],[override prefix variable for files to be placed in the root]),
139root_prefix=$withval,
140root_prefix=NONE)dnl
141dnl
142dnl handle --enable-maintainer-mode
143dnl
144AC_ARG_ENABLE([maintainer-mode],
145AS_HELP_STRING([--enable-maintainer-mode],[enable makefile rules useful for maintainers]),
146if test "$enableval" = "no"
147then
148	MAINTAINER_CMT=#
149	AC_MSG_RESULT([Disabling maintainer mode])
150else
151	MAINTAINER_CMT=
152	AC_MSG_RESULT([Enabling maintainer mode])
153fi
154,
155MAINTAINER_CMT=#
156AC_MSG_RESULT([Disabling maintainer mode by default])
157)
158AC_SUBST(MAINTAINER_CMT)
159dnl
160dnl handle --enable-symlink-install
161dnl
162AC_ARG_ENABLE([symlink-install],
163AS_HELP_STRING([--enable-symlink-install],[use symlinks when installing instead of hard links]),
164if test "$enableval" = "no"
165then
166	LINK_INSTALL_FLAGS=-f
167	AC_MSG_RESULT([Disabling symlinks for install])
168else
169	LINK_INSTALL_FLAGS=-sf
170	AC_MSG_RESULT([Enabling symlinks for install])
171fi
172,
173LINK_INSTALL_FLAGS=-f
174AC_MSG_RESULT([Disabling symlinks for install by default])
175)
176AC_SUBST(LINK_INSTALL_FLAGS)
177dnl
178dnl handle --enable-relative-symlinks
179dnl
180relative_symlink_defined=
181AC_ARG_ENABLE([relative-symlinks],
182AS_HELP_STRING([--enable-relative-symlinks],[use relative symlinks when installing]),
183if test "$enableval" = "no"
184then
185	SYMLINK_RELATIVE=
186	relative_symlink_defined=yes
187	AC_MSG_RESULT([Disabling relative symlinks for install])
188else
189	SYMLINK_RELATIVE=--relative
190	relative_symlink_defined=yes
191	AC_MSG_RESULT([Enabling relative symlinks for install])
192fi)
193AC_ARG_ENABLE([symlink-relative-symlinks],,
194if test "$enableval" = "no"
195then
196	SYMLINK_RELATIVE=yes
197	AC_MSG_RESULT([Disabling relative symlinks for install])
198else
199	SYMLINK_RELATIVE=--relative
200	AC_MSG_RESULT([Enabling relative symlinks for install])
201fi
202,
203if test -z "$relative_symlink_defined"
204then
205	SYMLINK_RELATIVE=
206AC_MSG_RESULT([Disabling relative symlinks for install by default])
207fi
208)
209AC_SUBST(SYMLINK_RELATIVE)
210dnl
211dnl handle --enable-symlink-build
212dnl
213AC_ARG_ENABLE([symlink-build],
214AS_HELP_STRING([--enable-symlink-build],[use symlinks while building instead of hard links]),
215if test "$enableval" = "no"
216then
217	LINK_BUILD_FLAGS=
218	AC_MSG_RESULT([Disabling symlinks for build])
219else
220	LINK_BUILD_FLAGS=-s
221	AC_MSG_RESULT([Enabling symlinks for build])
222fi
223,
224LINK_BUILD_FLAGS=
225AC_MSG_RESULT([Disabling symlinks for build by default])
226)
227AC_SUBST(LINK_BUILD_FLAGS)
228dnl
229dnl handle --enable-verbose-makecmds
230dnl
231AC_ARG_ENABLE([verbose-makecmds],
232AS_HELP_STRING([--enable-verbose-makecmds],[enable verbose make command output]),
233if test "$enableval" = "no"
234then
235	AC_MSG_RESULT([Disabling verbose make commands])
236	E=@echo
237	ES=echo
238	Q=@
239else
240	AC_MSG_RESULT([Enabling verbose make commands])
241	E=@\\#
242	ES=\\#
243	Q=
244fi
245,
246AC_MSG_RESULT([Disabling verbose make commands])
247E=@echo
248ES=echo
249Q=@
250)
251AC_SUBST(E)
252AC_SUBST(ES)
253AC_SUBST(Q)
254dnl
255dnl This needs to be before all of the --enable-*-shlibs options
256dnl
257E2_PKG_CONFIG_STATIC=--static
258LDFLAG_DYNAMIC=
259PRIVATE_LIBS_CMT=
260dnl
261dnl handle --enable-elf-shlibs
262dnl
263AC_ARG_ENABLE([elf-shlibs],
264AS_HELP_STRING([--enable-elf-shlibs],[select ELF shared libraries]),
265if test "$enableval" = "no"
266then
267	ELF_CMT=#
268	MAKEFILE_ELF=/dev/null
269	AC_MSG_RESULT([Disabling ELF shared libraries])
270else
271	E2_PKG_CONFIG_STATIC=
272	ELF_CMT=
273	MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
274	[case "$host_os" in
275	solaris2.*)
276		MAKEFILE_ELF=$srcdir/lib/Makefile.solaris-lib
277	;;
278	esac]
279	BINARY_TYPE=elfbin
280	LIB_EXT=.so
281	PRIVATE_LIBS_CMT=#
282	LDFLAG_DYNAMIC=['-Wl,-rpath-link,$(top_builddir)/lib']
283	AC_MSG_RESULT([Enabling ELF shared libraries])
284fi
285,
286MAKEFILE_ELF=/dev/null
287ELF_CMT=#
288AC_MSG_RESULT([Disabling ELF shared libraries by default])
289)
290AC_SUBST(ELF_CMT)
291AC_SUBST_FILE(MAKEFILE_ELF)
292dnl
293dnl handle --enable-bsd-shlibs
294dnl
295AC_ARG_ENABLE([bsd-shlibs],
296AS_HELP_STRING([--enable-bsd-shlibs],[select BSD shared libraries]),
297if test "$enableval" = "no"
298then
299	BSDLIB_CMT=#
300	MAKEFILE_BSDLIB=/dev/null
301	AC_MSG_RESULT([Disabling BSD shared libraries])
302else
303	E2_PKG_CONFIG_STATIC=
304	BSDLIB_CMT=
305	MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
306	LIB_EXT=.so
307	[case "$host_os" in
308	darwin*)
309		MAKEFILE_BSDLIB=$srcdir/lib/Makefile.darwin-lib
310		LIB_EXT=.dylib
311	;;
312	esac]
313	AC_MSG_RESULT([Enabling BSD shared libraries])
314fi
315,
316MAKEFILE_BSDLIB=/dev/null
317BSDLIB_CMT=#
318AC_MSG_RESULT([Disabling BSD shared libraries by default])
319)
320AC_SUBST(BSDLIB_CMT)
321AC_SUBST_FILE(MAKEFILE_BSDLIB)
322dnl
323dnl handle --enable-profile
324dnl
325AC_ARG_ENABLE([profile],
326AS_HELP_STRING([--enable-profile],[build profiling libraries]),
327if test "$enableval" = "no"
328then
329	PROFILE_CMT=#
330	MAKEFILE_PROFILE=/dev/null
331	AC_MSG_RESULT([Disabling profiling libraries])
332else
333	PROFILE_CMT=
334	MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
335	PROFILED_LIB_EXT=_p.a
336	AC_MSG_RESULT([Building profiling libraries])
337fi
338,
339PROFILE_CMT=#
340MAKEFILE_PROFILE=/dev/null
341AC_MSG_RESULT([Disabling profiling libraries by default])
342)
343AC_SUBST(PROFILE_CMT)
344AC_SUBST_FILE(MAKEFILE_PROFILE)
345dnl
346dnl handle --enable-gcov
347dnl
348AC_ARG_ENABLE([gcov],
349AS_HELP_STRING([--enable-gcov],[build for coverage testing using gcov]),
350if test "$enableval" = "yes"
351then
352	CFLAGS="-g -fprofile-arcs -ftest-coverage"
353	LDFLAGS="-fprofile-arcs -ftest-coverage"
354	AC_MSG_RESULT([Enabling gcov support])
355fi
356)
357dnl
358dnl handle --enable-hardening
359dnl
360CFLAGS_SHLIB="${CFLAGS_SHLIB:-$CFLAGS}"
361CFLAGS_STLIB="${CFLAGS_STLIB:-$CFLAGS}"
362LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS}
363LDFLAGS_STATIC=${LDFLAGS_STATIC:-$LDFLAGS}
364AC_ARG_ENABLE([hardening],
365AS_HELP_STRING([--enable-hardening],[build for coverage testing using gcov]),
366if test "$enableval" = "yes"
367then
368	HARDEN_CFLAGS="-D_FORTIFY_SOURCE=2 -fstack-protector-strong"
369	HARDEN_LDFLAGS=["-Wl,-z,relro -Wl,-z,now"]
370	CFLAGS="$CFLAGS $HARDEN_CFLAGS -fPIE"
371	CFLAGS_SHLIB="$CFLAGS_SHLIB $HARDEN_CFLAGS"
372	CFLAGS_STLIB="$CFLAGS_STLIB $HARDEN_CFLAGS -fPIE"
373	LDFLAGS="$LDFLAGS $HARDEN_LDFLAGS -fPIE -pie"
374	LDFLAGS_STATIC="$LDFLAGS_STATIC $HARDEN_LDFLAGS"
375	LDFLAGS_SHLIB="$LDFLAGS_SHLIB $HARDEN_LDFLAGS"
376	AC_MSG_RESULT([Enabling hardening support])
377fi
378)
379dnl
380dnl Substitute library extensions
381dnl
382AC_SUBST(LIB_EXT)
383AC_SUBST(STATIC_LIB_EXT)
384AC_SUBST(PROFILED_LIB_EXT)
385AC_SUBST(LDFLAG_DYNAMIC)
386AC_SUBST(PRIVATE_LIBS_CMT)
387dnl
388dnl handle --enable-jbd-debug
389dnl
390AC_ARG_ENABLE([jbd-debug],
391AS_HELP_STRING([--enable-jbd-debug],[enable journal debugging]),
392if test "$enableval" = "no"
393then
394	AC_MSG_RESULT([Disabling journal debugging])
395else
396	AC_DEFINE(CONFIG_JBD_DEBUG, 1,
397		[Define to 1 if debugging ext3/4 journal code])
398	AC_MSG_RESULT([Enabling journal debugging])
399fi
400,
401AC_MSG_RESULT([Disabling journal debugging by default])
402)
403dnl
404dnl handle --enable-blkid-debug
405dnl
406AC_ARG_ENABLE([blkid-debug],
407AS_HELP_STRING([--enable-blkid-debug],[enable blkid debugging]),
408if test "$enableval" = "no"
409then
410	AC_MSG_RESULT([Disabling blkid debugging])
411else
412	AC_DEFINE(CONFIG_BLKID_DEBUG, 1,
413		[Define to 1 if debugging the blkid library])
414	AC_MSG_RESULT([Enabling blkid debugging])
415fi
416,
417AC_MSG_RESULT([Disabling blkid debugging by default])
418)
419dnl
420dnl handle --enable-testio-debug
421dnl
422AC_ARG_ENABLE([testio-debug],
423AS_HELP_STRING([--disable-testio-debug],[disable the use of the test I/O manager for debugging]),
424AH_TEMPLATE([CONFIG_TESTIO_DEBUG],
425	[Define to 1 if the testio I/O manager should be enabled])
426if test "$enableval" = "no"
427then
428	AC_MSG_RESULT([Disabling testio debugging])
429	TEST_IO_CMT="#"
430else
431	TEST_IO_CMT=
432	AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
433	AC_MSG_RESULT([Enabling testio debugging])
434fi
435,
436AC_MSG_RESULT([Enabling testio debugging by default])
437AC_DEFINE(CONFIG_TESTIO_DEBUG, 1)
438TEST_IO_CMT=
439)
440AC_SUBST(TEST_IO_CMT)
441dnl
442dnl handle --enable-developer-features
443dnl
444AC_ARG_ENABLE([developer-features],
445AS_HELP_STRING([--enable-developer-features],[enable features for use by ext4 developers]),
446AH_TEMPLATE([CONFIG_DEVELOPER_FEATURES],
447	[Define to 1 for features for use by ext4 developers])
448if test "$enableval" = "yes"
449then
450	DEV_FEATURES_CMT=
451	AC_DEFINE(CONFIG_DEVELOPER_FEATURES, 1)
452	AC_MSG_RESULT([Enabling ext4 developer features])
453else
454	AC_MSG_RESULT([Disabling ext4 developer features])
455	DEV_FEATURES_CMT="#"
456fi
457,
458AC_MSG_RESULT([Disabling ext4 developer features by default])
459DEV_FEATURES_CMT=
460)
461AC_SUBST(DEV_FEATURES_CMT)
462dnl
463dnl handle --disable-libuuid
464dnl
465PKG_PROG_PKG_CONFIG
466LIBUUID=
467DEPLIBUUID=
468STATIC_LIBUUID=
469DEPSTATIC_LIBUUID=
470PROFILED_LIBUUID=
471DEPPROFILED_LIBUUID=
472UUID_CMT=
473AC_ARG_ENABLE([libuuid],
474AS_HELP_STRING([--enable-libuuid],[build and use private uuid library]),
475if test "$enableval" = "no"
476then
477	if test -z "$PKG_CONFIG"; then
478		AC_MSG_ERROR([pkg-config not installed; please install it.])
479	fi
480
481	AC_CHECK_LIB(uuid, uuid_generate,
482		[LIBUUID=`$PKG_CONFIG --libs uuid`;
483		 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`],
484		[AC_MSG_ERROR([external uuid library not found])])
485	PROFILED_LIBUUID=$LIBUUID
486	UUID_CMT=#
487	AC_MSG_RESULT([Disabling private uuid library])
488else
489	LIBUUID='$(LIB)/libuuid'$LIB_EXT
490	DEPLIBUUID=$LIBUUID
491	STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
492	DEPSTATIC_LIBUUID=$STATIC_LIBUUID
493	PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
494	DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
495	AC_MSG_RESULT([Enabling private uuid library])
496fi
497,
498if test -n "$PKG_CONFIG"; then
499	AC_CHECK_LIB(uuid, uuid_generate,
500		[LIBUUID=`$PKG_CONFIG --libs uuid`;
501		 STATIC_LIBUUID=`$PKG_CONFIG --static --libs uuid`])
502fi
503if test -n "$LIBUUID"; then
504	PROFILED_LIBUUID=$LIBUUID
505	UUID_CMT=#
506	AC_MSG_RESULT([Using system uuid by default])
507else
508	LIBUUID='$(LIB)/libuuid'$LIB_EXT
509	DEPLIBUUID=$LIBUUID
510	STATIC_LIBUUID='$(LIB)/libuuid'$STATIC_LIB_EXT
511	DEPSTATIC_LIBUUID=$STATIC_LIBUUID
512	PROFILED_LIBUUID='$(LIB)/libuuid'$PROFILED_LIB_EXT
513	DEPPROFILED_LIBUUID=$PROFILED_LIBUUID
514	AC_MSG_RESULT([Enabling private uuid library by default])
515fi
516)
517AC_SUBST(LIBUUID)
518AC_SUBST(DEPLIBUUID)
519AC_SUBST(STATIC_LIBUUID)
520AC_SUBST(DEPSTATIC_LIBUUID)
521AC_SUBST(PROFILED_LIBUUID)
522AC_SUBST(DEPPROFILED_LIBUUID)
523AC_SUBST(UUID_CMT)
524dnl
525dnl handle --disable-libblkid
526dnl
527PKG_PROG_PKG_CONFIG
528LIBBLKID=
529DEPLIBBLKID=
530STATIC_LIBBLKID=
531DEPSTATIC_LIBBLKID=
532PROFILED_LIBBLKID=
533DEPPROFILED_LIBBLKID=
534BLKID_CMT=
535AH_TEMPLATE([CONFIG_BUILD_FINDFS], [Define to 1 to compile findfs])
536AC_ARG_ENABLE([libblkid],
537AS_HELP_STRING([--enable-libblkid],[build and use private blkid library]),
538if test "$enableval" = "no"
539then
540	if test -z "$PKG_CONFIG"; then
541		AC_MSG_ERROR([pkg-config not installed; please install it.])
542	fi
543
544	AC_CHECK_LIB(blkid, blkid_get_cache,
545		[LIBBLKID=`$PKG_CONFIG --libs blkid`;
546		 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`],
547		[AC_MSG_ERROR([external blkid library not found])], -luuid)
548	BLKID_CMT=#
549	PROFILED_LIBBLKID=$LIBBLKID
550	AC_MSG_RESULT([Disabling private blkid library])
551else
552	LIBBLKID='$(LIB)/libblkid'$LIB_EXT
553	DEPLIBBLKID=$LIBBLKID
554	STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
555	DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
556	PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
557	DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
558	AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
559	AC_MSG_RESULT([Enabling private blkid library])
560fi
561,
562if test -n "$PKG_CONFIG"; then
563	AC_CHECK_LIB(blkid, blkid_get_cache,
564		[LIBBLKID=`$PKG_CONFIG --libs blkid`;
565		 STATIC_LIBBLKID=`$PKG_CONFIG --static --libs blkid`])
566fi
567if test -n "$LIBBLKID"; then
568	BLKID_CMT=#
569	PROFILED_LIBBLKID=$LIBBLKID
570	AC_MSG_RESULT([Using system blkid library by default])
571else
572	LIBBLKID='$(LIB)/libblkid'$LIB_EXT
573	DEPLIBBLKID=$LIBBLKID
574	STATIC_LIBBLKID='$(LIB)/libblkid'$STATIC_LIB_EXT
575	DEPSTATIC_LIBBLKID=$STATIC_LIBBLKID
576	PROFILED_LIBBLKID='$(LIB)/libblkid'$PROFILED_LIB_EXT
577	DEPPROFILED_LIBBLKID=$PROFILED_LIBBLKID
578	AC_DEFINE(CONFIG_BUILD_FINDFS, 1)
579	AC_MSG_RESULT([Enabling private blkid library by default])
580fi
581)
582AC_SUBST(LIBBLKID)
583AC_SUBST(DEPLIBBLKID)
584AC_SUBST(STATIC_LIBBLKID)
585AC_SUBST(DEPSTATIC_LIBBLKID)
586AC_SUBST(PROFILED_LIBBLKID)
587AC_SUBST(DEPPROFILED_LIBBLKID)
588AC_SUBST(BLKID_CMT)
589dnl
590dnl handle --enable-subset
591dnl
592ALL_CMT=
593SUBSET_CMT=
594AC_ARG_ENABLE([subset],
595AS_HELP_STRING([--enable-subset],[enable subset-only build]),
596if test "$enableval" = "no"
597then
598	SUBSET_CMT=#
599	AC_MSG_RESULT([Disabling subset-only build])
600else
601	ALL_CMT=#
602	AC_MSG_RESULT([Enabling subset-only-build])
603fi
604,)
605AC_SUBST(ALL_CMT)
606AC_SUBST(SUBSET_CMT)
607dnl
608dnl handle --disable-backtrace
609dnl
610AH_TEMPLATE([DISABLE_BACKTRACE], [Define to 1 to disable use of backtrace])
611AC_ARG_ENABLE([backtrace],
612AS_HELP_STRING([--disable-backtrace],[disable use backtrace]),
613if test "$enableval" = "no"
614then
615	AC_MSG_RESULT([Disabling use of backtrace])
616	AC_DEFINE(DISABLE_BACKTRACE, 1)
617else
618	AC_MSG_RESULT([Enabling use of backtrace])
619fi
620,
621AC_MSG_RESULT([Enabling use of backtrace by default])
622)
623dnl
624dnl handle --enable-debugfs
625dnl
626AC_ARG_ENABLE([debugfs],
627AS_HELP_STRING([--disable-debugfs],[disable support of debugfs program]),
628if test "$enableval" = "no"
629then
630	AC_MSG_RESULT([Disabling debugfs support])
631	DEBUGFS_CMT="#"
632else
633	DEBUGFS_CMT=
634	AC_MSG_RESULT([Enabling debugfs support])
635fi
636,
637AC_MSG_RESULT([Enabling debugfs support by default])
638DEBUGFS_CMT=
639)
640AC_SUBST(DEBUGFS_CMT)
641dnl
642dnl handle --enable-imager
643dnl
644AC_ARG_ENABLE([imager],
645AS_HELP_STRING([--disable-imager],[disable support of e2image program]),
646if test "$enableval" = "no"
647then
648	AC_MSG_RESULT([Disabling e2image support])
649	IMAGER_CMT="#"
650else
651	IMAGER_CMT=
652	AC_MSG_RESULT([Enabling e2image support])
653fi
654,
655AC_MSG_RESULT([Enabling e2image support by default])
656IMAGER_CMT=
657)
658AC_SUBST(IMAGER_CMT)
659dnl
660dnl handle --enable-resizer
661dnl
662AC_ARG_ENABLE([resizer],
663AS_HELP_STRING([--disable-resizer],[disable support of e2resize program]),
664if test "$enableval" = "no"
665then
666	AC_MSG_RESULT([Disabling e2resize support])
667	RESIZER_CMT="#"
668else
669	RESIZER_CMT=
670	AC_MSG_RESULT([Enabling e2resize support])
671fi
672,
673AC_MSG_RESULT([Enabling e2resize support by default])
674RESIZER_CMT=
675)
676AC_SUBST(RESIZER_CMT)
677dnl
678dnl handle --enable-defrag
679dnl
680AC_ARG_ENABLE([defrag],
681AS_HELP_STRING([--disable-defrag],[disable support of e4defrag program]),
682if test "$enableval" = "no"
683then
684	AC_MSG_RESULT([Disabling e4defrag support])
685	DEFRAG_CMT="#"
686else
687	DEFRAG_CMT=
688	AC_MSG_RESULT([Enabling e4defrag support])
689fi
690,
691if test -z "$WITH_DIET_LIBC"
692then
693	AC_MSG_RESULT([Enabling e4defrag support by default])
694	DEFRAG_CMT=
695else
696	AC_MSG_RESULT([Disabling e4defrag support by default])
697	DEFRAG_CMT="#"
698fi
699)
700AC_SUBST(DEFRAG_CMT)
701dnl
702dnl See whether to install the `fsck' wrapper program (that calls e2fsck)
703dnl
704AC_ARG_ENABLE([fsck],
705AS_HELP_STRING([--enable-fsck],[build fsck wrapper program]),
706[if test "$enableval" = "no"
707then
708	FSCK_PROG='' FSCK_MAN=''
709	AC_MSG_RESULT([Not building fsck wrapper])
710else
711	FSCK_PROG=fsck FSCK_MAN=fsck.8
712	AC_MSG_RESULT([Building fsck wrapper])
713fi]
714,
715[case "$host_os" in
716  gnu*)
717    FSCK_PROG='' FSCK_MAN=''
718    AC_MSG_RESULT([Not building fsck wrapper by default])
719    ;;
720  *)
721    FSCK_PROG=fsck FSCK_MAN=fsck.8
722    AC_MSG_RESULT([Building fsck wrapper by default])
723esac]
724)
725AC_SUBST(FSCK_PROG)
726AC_SUBST(FSCK_MAN)
727dnl
728dnl See whether to install the `e2initrd-helper' program
729dnl
730AC_ARG_ENABLE([e2initrd-helper],
731AS_HELP_STRING([--enable-e2initrd-helper],[build e2initrd-helper program]),
732[if test "$enableval" = "no"
733then
734	E2INITRD_PROG='' E2INITRD_MAN=''
735	AC_MSG_RESULT([Not building e2initrd helper])
736else
737	E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
738	AC_MSG_RESULT([Building e2initrd helper])
739fi]
740,
741E2INITRD_PROG=e2initrd_helper E2INITRD_MAN=e2initrd_helper.8
742AC_MSG_RESULT([Building e2initrd helper by default])
743)
744AC_SUBST(E2INITRD_PROG)
745AC_SUBST(E2INITRD_MAN)
746dnl
747dnl
748dnl
749AC_ARG_ENABLE([tls],
750AS_HELP_STRING([--disable-tls],[disable use of thread local support]),
751[if test "$enableval" = "no"
752then
753	try_tls=""
754	AC_MSG_RESULT([Disabling thread local support])
755else
756	try_tls="yes"
757	AC_MSG_RESULT([Enabling thread local support])
758fi]
759,
760if test -n "$WITH_DIET_LIBC"
761then
762	try_tls=""
763	AC_MSG_RESULT([Diet libc does not support thread local support])
764else
765	try_tls="yes"
766	AC_MSG_RESULT([Try using thread local support by default])
767fi
768)
769if test "$try_tls" = "yes"
770then
771AX_TLS
772fi
773dnl
774dnl
775dnl
776AC_ARG_WITH([pthread],
777AS_HELP_STRING([--without-pthread],[disable use of pthread support]),
778[if test "$withval" = "no"
779then
780	try_pthread=""
781	AC_MSG_RESULT([Disabling pthread support])
782else
783	try_pthread="yes"
784	AC_MSG_RESULT([Testing for pthread support])
785fi]
786,
787try_pthread="yes"
788AC_MSG_RESULT([Try testing for pthread support by default])
789)
790if test "$try_pthread" = "yes"
791then
792AX_PTHREAD
793else
794test -n "$PTHREAD_CC" || PTHREAD_CC="$CC"
795AC_SUBST([PTHREAD_CC])
796fi
797dnl
798dnl
799dnl
800AH_TEMPLATE([USE_UUIDD], [Define to 1 to build uuidd])
801AC_ARG_ENABLE([uuidd],
802AS_HELP_STRING([--disable-uuidd],[disable building the uuid daemon]),
803[if test "$enableval" = "no"
804then
805	AC_MSG_RESULT([Not building uuidd])
806	UUIDD_CMT="#"
807else
808	AC_DEFINE(USE_UUIDD, 1)
809	UUIDD_CMT=""
810	AC_MSG_RESULT([Building uuidd])
811fi]
812,
813AC_DEFINE(USE_UUIDD, 1)
814if test -z "$UUID_CMT"
815then
816	UUIDD_CMT=""
817	AC_MSG_RESULT([Building uuidd by default])
818else
819	UUIDD_CMT="#"
820	AC_MSG_RESULT([Disabling uuidd by default])
821fi
822)
823AC_SUBST(UUIDD_CMT)
824dnl
825dnl handle --disable-mmp
826dnl
827AH_TEMPLATE([CONFIG_MMP], [Define to 1 to enable mmp support])
828AC_ARG_ENABLE([mmp],
829AS_HELP_STRING([--disable-mmp],[disable support mmp, Multi Mount Protection]),
830if test "$enableval" = "no"
831then
832	AC_MSG_RESULT([Disabling mmp support])
833else
834	AC_MSG_RESULT([Enabling mmp support])
835	AC_DEFINE(CONFIG_MMP, 1)
836fi
837,
838AC_MSG_RESULT([Enabling mmp support by default])
839AC_DEFINE(CONFIG_MMP, 1)
840)
841dnl
842dnl handle --disable-tdb
843dnl
844AH_TEMPLATE([CONFIG_TDB], [Define to 1 to enable tdb support])
845AC_ARG_ENABLE([tdb],
846AS_HELP_STRING([--disable-tdb],[disable tdb support]),
847if test "$enableval" = "no"
848then
849	AC_MSG_RESULT([Disabling tdb support])
850	TDB_CMT="#"
851	TDB_MAN_COMMENT='.\"'
852else
853	AC_MSG_RESULT([Enabling tdb support])
854	AC_DEFINE(CONFIG_TDB, 1)
855	TDB_CMT=""
856	TDB_MAN_COMMENT=""
857fi
858,
859AC_MSG_RESULT([Enabling mmp support by default])
860AC_DEFINE(CONFIG_TDB, 1)
861TDB_CMT=""
862TDB_MAN_COMMENT=""
863)
864AC_SUBST(TDB_CMT)
865AC_SUBST(TDB_MAN_COMMENT)
866dnl
867dnl handle --disable-bmap-stats
868dnl
869AH_TEMPLATE([ENABLE_BMAP_STATS], [Define to 1 to enable bitmap stats.])
870AC_ARG_ENABLE([bmap-stats],
871AS_HELP_STRING([--disable-bmap-stats],[disable collection of bitmap stats]),
872if test "$enableval" = "no"
873then
874	AC_MSG_RESULT([Disabling bitmap statistics support])
875else
876	AC_MSG_RESULT([Enabling bitmap statistics support])
877	AC_DEFINE(ENABLE_BMAP_STATS, 1)
878fi
879,
880AC_MSG_RESULT([Enabling bitmap statistics support by default])
881AC_DEFINE(ENABLE_BMAP_STATS, 1)
882)
883dnl
884dnl handle --enable-bmap-stats-ops
885dnl
886AH_TEMPLATE([ENABLE_BMAP_STATS_OPS], [Define to 1 to enable bitmap stats.])
887AC_ARG_ENABLE([bmap-stats-ops],
888AS_HELP_STRING([--enable-bmap-stats-ops],[enable collection of additional bitmap stats]),
889if test "$enableval" = "no"
890then
891	AC_MSG_RESULT([Disabling additional bitmap statistics])
892else
893	dnl There has to be a better way!
894	AS_IF([test "x${enable_bmap_stats}" = "xno"],
895	 AC_MSG_FAILURE([Error --enable-bmap-stats-ops requires bmap-stats]))
896
897	AC_MSG_RESULT([Enabling additional bitmap statistics])
898	AC_DEFINE(ENABLE_BMAP_STATS_OPS, 1)
899fi
900,
901AC_MSG_RESULT([Disabling additional bitmap statistics by default])
902)
903dnl
904dnl
905dnl
906MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
907AC_SUBST_FILE(MAKEFILE_LIBRARY)
908dnl
909dnl Add internationalization support, using gettext.
910dnl
911GETTEXT_PACKAGE=e2fsprogs
912PACKAGE=e2fsprogs
913VERSION="$E2FSPROGS_VERSION"
914VERSION=0.14.1
915AC_DEFINE_UNQUOTED(PACKAGE, "$PACKAGE", [package name for gettext])
916AC_DEFINE_UNQUOTED(VERSION, "$VERSION", [version for gettext])
917AC_SUBST(GETTEXT_PACKAGE)
918AC_SUBST(PACKAGE)
919AC_SUBST(VERSION)
920
921AM_GNU_GETTEXT([external])
922dnl
923dnl End of configuration options
924dnl
925AC_SUBST(BINARY_TYPE)
926AC_PROG_MAKE_SET
927CHECK_GNU_MAKE
928AC_PATH_PROG(LN, ln, ln)
929AC_PROG_MKDIR_P
930dnl
931dnl @mkdir_p@ is used by po's Makefile.in
932dnl
933mkdir_p=$MKDIR_P
934AC_SUBST(mkdir_p)
935AC_PROG_LN_S
936AC_PATH_PROG(MV, mv, mv)
937AC_PATH_PROG(CP, cp, cp)
938AC_PATH_PROG(RM, rm, rm)
939AC_PATH_PROG(CHMOD, chmod, :)
940AC_PROG_AWK
941AC_PROG_EGREP
942AC_PATH_PROG(SED, sed, sed)
943AC_PATH_PROG(PERL, perl, perl)
944AC_PATH_PROG(LDCONFIG, ldconfig, :)
945AC_CHECK_TOOL(AR, ar, ar)
946AC_CHECK_TOOL(RANLIB, ranlib, :)
947AC_CHECK_TOOL(STRIP, strip, :)
948AC_CHECK_PROG(MAKEINFO, makeinfo, makeinfo, )
949if test "_$MAKEINFO" = "_"; then
950    MAKEINFO="echo Makeinfo is missing. Info documentation will not be built."
951else
952    case "$MAKEINFO" in
953      */missing.*)
954        AC_MSG_WARN([
955*** Makeinfo is missing. Info documentation will not be built.])
956        ;;
957      *)
958        ;;
959    esac
960fi
961AC_SUBST(MAKEINFO)
962AC_PROG_INSTALL
963# See if we need a separate native compiler.
964if test $cross_compiling = no; then
965  BUILD_CC="$CC"
966  AC_SUBST(BUILD_CC)
967else
968  AC_CHECK_PROGS(BUILD_CC, gcc cc)
969fi
970AC_CHECK_HEADERS(m4_flatten([
971	dirent.h
972	errno.h
973	execinfo.h
974	getopt.h
975	malloc.h
976	mntent.h
977	paths.h
978	pthread.h
979	semaphore.h
980	setjmp.h
981	signal.h
982	stdarg.h
983	stdint.h
984	stdlib.h
985	termios.h
986	termio.h
987	unistd.h
988	utime.h
989	attr/xattr.h
990	linux/falloc.h
991	linux/fd.h
992	linux/fsmap.h
993	linux/major.h
994	linux/loop.h
995	linux/types.h
996	net/if_dl.h
997	netinet/in.h
998	sys/acl.h
999	sys/disklabel.h
1000	sys/disk.h
1001	sys/file.h
1002	sys/ioctl.h
1003	sys/key.h
1004	sys/mkdev.h
1005	sys/mman.h
1006	sys/mount.h
1007	sys/prctl.h
1008	sys/resource.h
1009	sys/select.h
1010	sys/socket.h
1011	sys/sockio.h
1012	sys/stat.h
1013	sys/syscall.h
1014	sys/sysmacros.h
1015	sys/time.h
1016	sys/types.h
1017	sys/un.h
1018	sys/wait.h
1019	sys/xattr.h
1020]))
1021dnl Check where to find a dd(1) that supports iflag=fullblock
1022dnl and oflag=append
1023AC_MSG_CHECKING([for a dd(1) program that supports iflag=fullblock])
1024DD=
1025for i in dd gdd ; do
1026	if "$i" if=/dev/null of=/dev/null count=1 bs=10k 2>/dev/null iflag=fullblock oflag=append ; then
1027		DD=$i
1028		break
1029	fi
1030done
1031if test -n "$DD" ; then
1032	AC_MSG_RESULT([$DD])
1033else
1034	AC_MSG_RESULT([not found, using dd])
1035	DD=dd
1036	AC_MSG_WARN([No GNU-compatible dd(1) program found, expect some self-test failures.])
1037fi
1038AC_SUBST([DD])
1039
1040AC_CHECK_HEADERS(net/if.h,,,
1041[[
1042#if HAVE_SYS_TYPES_H
1043#include <sys/types.h>
1044#endif
1045#if HAVE_SYS_SOCKET
1046#include <sys/socket.h>
1047#endif
1048]])
1049AC_FUNC_VPRINTF
1050dnl Check to see if dirent has member d_reclen. On cygwin those d_reclen
1051dnl is not declared.
1052AC_CHECK_MEMBER(struct dirent.d_reclen,[AC_DEFINE(HAVE_RECLEN_DIRENT, 1,
1053		       [Define to 1 if dirent has d_reclen])],,
1054		[#include <dirent.h>])
1055AC_CHECK_MEMBERS([struct stat.st_atim])
1056dnl Check to see if ssize_t was declared
1057AC_CHECK_TYPE(ssize_t,[AC_DEFINE(HAVE_TYPE_SSIZE_T, 1,
1058		[Define to 1 if ssize_t declared])],,
1059	      [#include <sys/types.h>])
1060dnl
1061dnl Check to see if llseek() is declared in unistd.h.  On some libc's
1062dnl it is, and on others it isn't..... Thank you glibc developers....
1063dnl
1064AC_CHECK_DECL(llseek,[AC_DEFINE(HAVE_LLSEEK_PROTOTYPE, 1,
1065			[Define to 1 if llseek declared in unistd.h])],,
1066	      [#include <unistd.h>])
1067dnl
1068dnl Check to see if lseek64() is declared in unistd.h.  Glibc's header files
1069dnl are so convoluted that I can't tell whether it will always be defined,
1070dnl and if it isn't defined while lseek64 is defined in the library,
1071dnl disaster will strike.
1072dnl
1073dnl Warning!  Use of --enable-gcc-wall may throw off this test.
1074dnl
1075dnl
1076AC_CHECK_DECL(lseek64,[AC_DEFINE(HAVE_LSEEK64_PROTOTYPE, 1,
1077			[Define to 1 if lseek64 declared in unistd.h])],,
1078		[#define _LARGEFILE_SOURCE
1079		 #define _LARGEFILE64_SOURCE
1080		 #include <unistd.h>])
1081dnl
1082dnl Word sizes...
1083dnl
1084AC_CHECK_SIZEOF(short)
1085AC_CHECK_SIZEOF(int)
1086AC_CHECK_SIZEOF(long)
1087AC_CHECK_SIZEOF(long long)
1088AC_CHECK_SIZEOF(off_t)
1089AC_CHECK_SIZEOF(time_t)
1090SIZEOF_SHORT=$ac_cv_sizeof_short
1091SIZEOF_INT=$ac_cv_sizeof_int
1092SIZEOF_LONG=$ac_cv_sizeof_long
1093SIZEOF_LONG_LONG=$ac_cv_sizeof_long_long
1094SIZEOF_OFF_T=$ac_cv_sizeof_off_t
1095SIZEOF_TIME_T=$ac_cv_sizeof_time_t
1096AC_SUBST(SIZEOF_SHORT)
1097AC_SUBST(SIZEOF_INT)
1098AC_SUBST(SIZEOF_LONG)
1099AC_SUBST(SIZEOF_LONG_LONG)
1100AC_SUBST(SIZEOF_OFF_T)
1101AC_SUBST(SIZEOF_TIME_T)
1102AC_C_BIGENDIAN
1103if test $cross_compiling = no; then
1104  BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1105else
1106  CROSS_COMPILE="1" BUILD_CC="$BUILD_CC" CPP="$CPP" /bin/sh $ac_aux_dir/parse-types.sh
1107fi
1108ASM_TYPES_HEADER=./asm_types.h
1109AC_SUBST_FILE(ASM_TYPES_HEADER)
1110dnl
1111dnl Save the configuration #defines needed for the public ext2fs.h
1112dnl header file
1113dnl
1114echo "/* These defines are needed for the public ext2fs.h header file */" \
1115     > public_config.h
1116if grep HAVE_SYS_TYPES_H confdefs.h > tmp_config.$$; then
1117  uniq tmp_config.$$ >> public_config.h
1118else
1119  echo "#undef HAVE_SYS_TYPES_H" >> public_config.h
1120fi
1121if grep WORDS_BIGENDIAN confdefs.h > tmp_config.$$; then
1122  uniq tmp_config.$$ >> public_config.h
1123else
1124  echo "#undef WORDS_BIGENDIAN" >> public_config.h
1125fi
1126rm -f tmp_config.$$
1127PUBLIC_CONFIG_HEADER=./public_config.h
1128AC_SUBST_FILE(PUBLIC_CONFIG_HEADER)
1129dnl
1130dnl See if we have inttypes.h and if intptr_t is defined
1131dnl
1132AC_CHECK_HEADERS([inttypes.h])
1133AC_CHECK_TYPES(intptr_t)
1134dnl
1135dnl See if struct stat has a st_flags field, in which case we can get file
1136dnl flags somewhat portably.  Also check for the analogous setter, chflags().
1137dnl
1138AC_MSG_CHECKING(whether struct stat has a st_flags field)
1139AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags,
1140	AC_TRY_COMPILE([#include <sys/stat.h>],
1141		[struct stat stat; stat.st_flags = 0;],
1142		[e2fsprogs_cv_struct_st_flags=yes],
1143		[e2fsprogs_cv_struct_st_flags=no]))
1144AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags)
1145if test "$e2fsprogs_cv_struct_st_flags" = yes; then
1146  AC_MSG_CHECKING(whether st_flags field is useful)
1147  AC_CACHE_VAL(e2fsprogs_cv_struct_st_flags_immut,
1148	AC_TRY_COMPILE([#include <sys/stat.h>],
1149		[struct stat stat; stat.st_flags |= UF_IMMUTABLE;],
1150		[e2fsprogs_cv_struct_st_flags_immut=yes],
1151		[e2fsprogs_cv_struct_st_flags_immut=no]))
1152  AC_MSG_RESULT($e2fsprogs_cv_struct_st_flags_immut)
1153  if test "$e2fsprogs_cv_struct_st_flags_immut" = yes; then
1154	  AC_DEFINE(HAVE_STAT_FLAGS, 1,
1155		[Define to 1 if struct stat has st_flags])
1156  fi
1157fi
1158dnl
1159dnl Check for the presence of SA_LEN
1160dnl
1161AC_CHECK_MEMBER(struct sockaddr.sa_len,
1162		AC_DEFINE_UNQUOTED(HAVE_SA_LEN,1,
1163			[Define to 1 if if struct sockaddr contains sa_len]),,
1164	[#include <sys/types.h>
1165	 #include <sys/socket.h>])
1166dnl
1167dnl If we are using the system-provided blkid library, check for
1168dnl the functions added after migrating that library to util-linux
1169dnl
1170if test -n "$BLKID_CMT"; then
1171  AC_CHECK_LIB(blkid, blkid_probe_get_topology,
1172		      AC_DEFINE(HAVE_BLKID_PROBE_GET_TOPOLOGY, 1,
1173				[Define to 1 if blkid has blkid_probe_get_topology]))
1174  AC_CHECK_LIB(blkid, blkid_topology_get_dax,
1175		      AC_DEFINE(HAVE_BLKID_TOPOLOGY_GET_DAX, 1,
1176				[Define to 1 if blkid has blkid_topology_get_dax]))
1177  AC_CHECK_LIB(blkid, blkid_probe_enable_partitions,
1178		      AC_DEFINE(HAVE_BLKID_PROBE_ENABLE_PARTITIONS, 1,
1179				[Define to 1 if blkid has blkid_probe_enable_partitions]))
1180fi
1181dnl
1182if test -n "$DLOPEN_LIB" ; then
1183   ac_cv_func_dlopen=yes
1184fi
1185AC_CHECK_FUNCS(m4_flatten([
1186	__secure_getenv
1187	add_key
1188	backtrace
1189	chflags
1190	dlopen
1191	fadvise64
1192	fallocate
1193	fallocate64
1194	fchown
1195	fcntl
1196	fdatasync
1197	fstat64
1198	fsync
1199	ftruncate64
1200	futimes
1201	getcwd
1202	getdtablesize
1203	gethostname
1204	getmntinfo
1205	getpwuid_r
1206	getrlimit
1207	getrusage
1208	jrand48
1209	keyctl
1210	llistxattr
1211	llseek
1212	lseek64
1213	mallinfo
1214	mbstowcs
1215	memalign
1216	mempcpy
1217	mmap
1218	msync
1219	nanosleep
1220	open64
1221	pathconf
1222	posix_fadvise
1223	posix_fadvise64
1224	posix_memalign
1225	prctl
1226	pread
1227	pwrite
1228	pread64
1229	pwrite64
1230	secure_getenv
1231	setmntent
1232	setresgid
1233	setresuid
1234	snprintf
1235	srandom
1236	stpcpy
1237	strcasecmp
1238	strdup
1239	strnlen
1240	strptime
1241	strtoull
1242	sync_file_range
1243	sysconf
1244	usleep
1245	utime
1246	utimes
1247	valloc
1248]))
1249dnl
1250dnl Check to see if -lsocket is required (solaris) to make something
1251dnl that uses socket() to compile; this is needed for the UUID library
1252dnl
1253SOCKET_LIB=''
1254AC_CHECK_LIB(socket, socket, [SOCKET_LIB=-lsocket])
1255AC_SUBST(SOCKET_LIB)
1256dnl
1257dnl See if libmagic exists
1258dnl
1259AC_CHECK_LIB(magic, magic_file, [MAGIC_LIB=-lmagic
1260AC_CHECK_HEADERS([magic.h])])
1261if test "$ac_cv_func_dlopen" = yes ; then
1262   MAGIC_LIB=$DLOPEN_LIB
1263fi
1264AC_SUBST(MAGIC_LIB)
1265dnl
1266dnl Check to see if librt is required for clock_gettime() (glibc < 2.17)
1267dnl
1268AC_CHECK_LIB(rt, clock_gettime, [CLOCK_GETTIME_LIB=-lrt])
1269AC_SUBST(CLOCK_GETTIME_LIB)
1270dnl
1271dnl Check to see if the FUSE library is -lfuse or -losxfuse
1272dnl
1273FUSE_CMT=
1274FUSE_LIB=
1275dnl osxfuse.dylib supersedes fuselib.dylib
1276AC_ARG_ENABLE([fuse2fs],
1277AS_HELP_STRING([--disable-fuse2fs],[do not build fuse2fs]),
1278if test "$enableval" = "no"
1279then
1280	FUSE_CMT="#"
1281	AC_MSG_RESULT([Disabling fuse2fs])
1282else
1283	AC_CHECK_HEADERS([pthread.h fuse.h], [],
1284[AC_MSG_FAILURE([Cannot find fuse2fs headers.])],
1285[#define _FILE_OFFSET_BITS	64
1286#define FUSE_USE_VERSION 29])
1287
1288	AC_PREPROC_IFELSE(
1289[AC_LANG_PROGRAM([[#define FUSE_USE_VERSION 29
1290#ifdef __linux__
1291#include <linux/fs.h>
1292#include <linux/falloc.h>
1293#include <linux/xattr.h>
1294#endif
1295]], [])], [], [AC_MSG_FAILURE([Cannot find fuse2fs Linux headers.])])
1296
1297	AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse],
1298		[AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse],
1299			      [AC_MSG_FAILURE([Cannot find fuse library.])])])
1300	AC_MSG_RESULT([Enabling fuse2fs])
1301fi
1302,
1303AC_CHECK_HEADERS([pthread.h fuse.h], [], [FUSE_CMT="#"],
1304[#define _FILE_OFFSET_BITS	64
1305#define FUSE_USE_VERSION 29
1306#ifdef __linux__
1307# include <linux/fs.h>
1308# include <linux/falloc.h>
1309# include <linux/xattr.h>
1310#endif])
1311if test -z "$FUSE_CMT"
1312then
1313	AC_CHECK_LIB(osxfuse, fuse_main, [FUSE_LIB=-losxfuse],
1314[AC_CHECK_LIB(fuse, fuse_main, [FUSE_LIB=-lfuse], [FUSE_CMT="#"])])
1315fi
1316if test -z "$FUSE_CMT"
1317then
1318	AC_MSG_RESULT([Enabling fuse2fs by default.])
1319fi
1320)
1321AC_SUBST(FUSE_LIB)
1322AC_SUBST(FUSE_CMT)
1323dnl
1324dnl See if optreset exists
1325dnl
1326AC_MSG_CHECKING(for optreset)
1327AC_CACHE_VAL(ac_cv_have_optreset,
1328[AC_EGREP_HEADER(optreset, unistd.h,
1329  ac_cv_have_optreset=yes, ac_cv_have_optreset=no)])dnl
1330AC_MSG_RESULT($ac_cv_have_optreset)
1331if test $ac_cv_have_optreset = yes; then
1332  AC_DEFINE(HAVE_OPTRESET, 1, [Define to 1 if optreset for getopt is present])
1333fi
1334dnl
1335dnl Test for sem_init, and which library it might require:
1336dnl
1337AH_TEMPLATE([HAVE_SEM_INIT], [Define to 1 if sem_init() exists])
1338SEM_INIT_LIB=''
1339echo GL_THREADS_API: ${gl_threads_api}
1340if test "${gl_threads_api}" != none
1341then
1342  AC_CHECK_FUNC(sem_init, ,
1343    AC_CHECK_LIB(pthread, sem_init,
1344  	AC_DEFINE(HAVE_SEM_INIT, 1)
1345  	SEM_INIT_LIB=-lpthread,
1346    AC_CHECK_LIB(rt, sem_init,
1347  	AC_DEFINE(HAVE_SEM_INIT, 1)
1348  	SEM_INIT_LIB=-lrt,
1349    AC_CHECK_LIB(posix4, sem_init,
1350  	AC_DEFINE(HAVE_SEM_INIT, 1)
1351  	SEM_INIT_LIB=-lposix4))))dnl
1352fi
1353AC_SUBST(SEM_INIT_LIB)
1354dnl
1355dnl Check for unified diff
1356dnl
1357AC_MSG_CHECKING(for unified diff option)
1358if diff -u $0 $0 > /dev/null 2>&1 ; then
1359   UNI_DIFF_OPTS=-u
1360else
1361   UNI_DIFF_OPTS=-c
1362fi
1363AC_MSG_RESULT($UNI_DIFF_OPTS)
1364AC_SUBST(UNI_DIFF_OPTS)
1365dnl
1366dnl We use the EXT2 ioctls only under Linux
1367dnl
1368case "$host_os" in
1369linux*)
1370	AC_DEFINE(HAVE_EXT2_IOCTLS, 1, [Define to 1 if Ext2 ioctls present])
1371	;;
1372esac
1373dnl
1374dnl Check the available mount options
1375dnl
1376AX_CHECK_MOUNT_OPT(nosuid)
1377AX_CHECK_MOUNT_OPT(nodev)
1378dnl Enable LTO for all packages
1379dnl
1380AC_ARG_ENABLE([lto],
1381AS_HELP_STRING([--enable-lto],[enable link time optimization]),,
1382enable_lto=no)
1383if test "$enable_lto" = "yes" || test "$enable_lto" = "probe"; then
1384	AC_MSG_CHECKING([if C compiler supports LTO])
1385	OLD_CFLAGS="$CFLAGS"
1386	OLD_LDFLAGS="$LDFLAGS"
1387	LTO_FLAGS="-g -flto -ffat-lto-objects"
1388	CFLAGS="$CFLAGS $LTO_FLAGS"
1389	LDFLAGS="$LDFLAGS $LTO_FLAGS"
1390	AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1391		[AC_MSG_RESULT([yes])]
1392		[lto_cflags=$LTO_FLAGS]
1393		[lto_ldflags=$LTO_FLAGS]
1394		[AC_PATH_PROG(gcc_ar, gcc-ar,,)]
1395		[AC_PATH_PROG(gcc_ranlib, gcc-ranlib,,)],
1396		[AC_MSG_RESULT([no])])
1397	if test -x "$gcc_ar" && test -x "$gcc_ranlib"; then
1398		have_lto=yes
1399		AR="${gcc_ar}"
1400		RANLIB="${gcc_ranlib}"
1401	fi
1402	CFLAGS="${OLD_CFLAGS}"
1403	LDFLAGS="${OLD_LDFLAGS}"
1404	AC_SUBST(have_lto)
1405	AC_SUBST(lto_cflags)
1406	AC_SUBST(lto_ldflags)
1407fi
1408if test "$enable_lto" = "yes" && test "$have_lto" != "yes"; then
1409	AC_MSG_ERROR([LTO not supported by compiler.])
1410fi
1411dnl
1412dnl Enable UBSAN for all packages
1413dnl
1414AC_ARG_ENABLE([ubsan],
1415AS_HELP_STRING([--enable-ubsan],[enable undefined behavior sanitizer]),,
1416enable_ubsan=no)
1417if test "$enable_ubsan" = "yes" || test "$enable_ubsan" = "probe"; then
1418	AC_MSG_CHECKING([if C compiler supports UBSAN])
1419	OLD_CFLAGS="$CFLAGS"
1420	OLD_LDFLAGS="$LDFLAGS"
1421	UBSAN_FLAGS="-fsanitize=undefined"
1422	CFLAGS="$CFLAGS $UBSAN_FLAGS"
1423	LDFLAGS="$LDFLAGS $UBSAN_FLAGS"
1424	AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1425		[AC_MSG_RESULT([yes])]
1426		[ubsan_cflags=$UBSAN_FLAGS]
1427		[ubsan_ldflags=$UBSAN_FLAGS]
1428		[have_ubsan=yes],
1429		[AC_MSG_RESULT([no])])
1430	CFLAGS="${OLD_CFLAGS}"
1431	LDFLAGS="${OLD_LDFLAGS}"
1432	AC_SUBST(have_ubsan)
1433	AC_SUBST(ubsan_cflags)
1434	AC_SUBST(ubsan_ldflags)
1435fi
1436if test "$enable_ubsan" = "yes" && test "$have_ubsan" != "yes"; then
1437	AC_MSG_ERROR([UBSAN not supported by compiler.])
1438fi
1439dnl
1440dnl Enable ADDRSAN for all packages
1441dnl
1442AC_ARG_ENABLE([addrsan],
1443AS_HELP_STRING([--enable-addrsan],[enable address sanitizer]),,
1444enable_addrsan=no)
1445if test "$enable_addrsan" = "yes" || test "$enable_addrsan" = "probe"; then
1446	AC_MSG_CHECKING([if C compiler supports ADDRSAN])
1447	OLD_CFLAGS="$CFLAGS"
1448	OLD_LDFLAGS="$LDFLAGS"
1449	ADDRSAN_FLAGS="-fsanitize=address"
1450	CFLAGS="$CFLAGS $ADDRSAN_FLAGS"
1451	LDFLAGS="$LDFLAGS $ADDRSAN_FLAGS"
1452	AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1453		[AC_MSG_RESULT([yes])]
1454		[addrsan_cflags=$ADDRSAN_FLAGS]
1455		[addrsan_ldflags=$ADDRSAN_FLAGS]
1456		[have_addrsan=yes],
1457		[AC_MSG_RESULT([no])])
1458	CFLAGS="${OLD_CFLAGS}"
1459	LDFLAGS="${OLD_LDFLAGS}"
1460	AC_SUBST(have_addrsan)
1461	AC_SUBST(addrsan_cflags)
1462	AC_SUBST(addrsan_ldflags)
1463fi
1464if test "$enable_addrsan" = "yes" && test "$have_addrsan" != "yes"; then
1465	AC_MSG_ERROR([ADDRSAN not supported by compiler.])
1466fi
1467dnl
1468dnl Enable THREADSAN for all packages
1469dnl
1470AC_ARG_ENABLE([threadsan],
1471AS_HELP_STRING([--enable-threadsan],[enable thread sanitizer]),,
1472enable_threadsan=no)
1473if test "$enable_threadsan" = "yes" || test "$enable_threadsan" = "probe"; then
1474	AC_MSG_CHECKING([if C compiler supports THREADSAN])
1475	OLD_CFLAGS="$CFLAGS"
1476	OLD_LDFLAGS="$LDFLAGS"
1477	THREADSAN_FLAGS="-fsanitize=thread"
1478	CFLAGS="$CFLAGS $THREADSAN_FLAGS"
1479	LDFLAGS="$LDFLAGS $THREADSAN_FLAGS"
1480	AC_LINK_IFELSE([AC_LANG_PROGRAM([])],
1481		[AC_MSG_RESULT([yes])]
1482		[threadsan_cflags=$THREADSAN_FLAGS]
1483		[threadsan_ldflags=$THREADSAN_FLAGS]
1484		[have_threadsan=yes],
1485		[AC_MSG_RESULT([no])])
1486	CFLAGS="${OLD_CFLAGS}"
1487	LDFLAGS="${OLD_LDFLAGS}"
1488	AC_SUBST(have_threadsan)
1489	AC_SUBST(threadsan_cflags)
1490	AC_SUBST(threadsan_ldflags)
1491fi
1492if test "$enable_threadsan" = "yes" && test "$have_threadsan" != "yes"; then
1493	AC_MSG_ERROR([THREADSAN not supported by compiler.])
1494fi
1495if test "$have_threadsan" = "yes" && test "$have_addrsan" = "yes"; then
1496	AC_MSG_WARN([ADDRSAN and THREADSAN are not known to work together.])
1497fi
1498dnl
1499dnl OS-specific uncomment control
1500dnl
1501LINUX_CMT="#"
1502CYGWIN_CMT="#"
1503UNIX_CMT=
1504case "$host_os" in
1505linux*)
1506	LINUX_CMT=
1507	;;
1508cygwin)
1509	CYGWIN_CMT=
1510	UNIX_CMT="#"
1511	;;
1512esac
1513AC_SUBST(LINUX_CMT)
1514AC_SUBST(CYGWIN_CMT)
1515AC_SUBST(UNIX_CMT)
1516dnl
1517dnl e2scrub only builds on linux
1518dnl
1519E2SCRUB_CMT="$LINUX_CMT"
1520AC_SUBST(E2SCRUB_CMT)
1521dnl
1522dnl Linux and Hurd places root files in the / by default
1523dnl
1524case "$host_os" in
1525linux* | gnu* | k*bsd*-gnu)
1526	if test "$prefix" = NONE -a "$root_prefix" = NONE ; then
1527		root_prefix="";
1528		AC_MSG_RESULT([On $host_os systems, root_prefix defaults to ''])
1529	fi
1530	;;
1531esac
1532dnl
1533dnl On Linux/hurd, force the prefix to be /usr
1534dnl
1535case "$host_os" in
1536linux* | gnu* | k*bsd*-gnu)
1537	if test "$prefix" = NONE ; then
1538		prefix="/usr";
1539		AC_MSG_RESULT([On $host_os systems, prefix defaults to /usr])
1540		if test "$mandir" = '${prefix}/man' ; then
1541			AC_MSG_RESULT([...and mandir defaults to /usr/share/man])
1542			mandir=/usr/share/man
1543		fi
1544	fi
1545;;
1546esac
1547if test "$root_prefix" = NONE ; then
1548	if test "$prefix" = NONE ; then
1549		root_prefix="$ac_default_prefix"
1550	else
1551		root_prefix="$prefix"
1552	fi
1553	root_bindir=$bindir
1554	root_sbindir=$sbindir
1555	root_libdir=$libdir
1556	root_sysconfdir=$sysconfdir
1557else
1558	root_bindir='${root_prefix}/bin'
1559	root_sbindir='${root_prefix}/sbin'
1560	root_libdir='${root_prefix}/lib'
1561	root_sysconfdir='${root_prefix}/etc'
1562fi
1563if test "$bindir" != '${exec_prefix}/bin'; then
1564    root_bindir=$bindir
1565    AC_MSG_RESULT([Setting root_bindir to $root_bindir])
1566fi
1567if test "$sbindir" != '${exec_prefix}/sbin'; then
1568    root_sbindir=$sbindir
1569    AC_MSG_RESULT([Setting root_sbindir to $root_sbindir])
1570fi
1571if test "$libdir" != '${exec_prefix}/lib'; then
1572    root_libdir=$libdir
1573    AC_MSG_RESULT([Setting root_libdir to $root_libdir])
1574fi
1575if test "$sysconfdir" != '${prefix}/etc'; then
1576    root_sysconfdir=$sysconfdir
1577    AC_MSG_RESULT([Setting root_sysconfdir to $root_sysconfdir])
1578fi
1579AC_SUBST(root_prefix)
1580AC_SUBST(root_bindir)
1581AC_SUBST(root_sbindir)
1582AC_SUBST(root_libdir)
1583AC_SUBST(root_sysconfdir)
1584dnl
1585dnl Allow specification of the multiarch arch
1586dnl
1587AC_ARG_WITH([multiarch],
1588AS_HELP_STRING([--with-multiarch=ARCH],[specify the multiarch triplet]),
1589if test "$withval" = "lib64"; then
1590    libdir=/usr/lib64
1591    root_libdir=/lib64
1592else
1593    libdir=$libdir/$withval
1594    root_libdir=$root_libdir/$withval
1595fi
1596)
1597dnl
1598dnl
1599dnl See if -static works.  This could fail if the linker does not
1600dnl support -static, or if required external libraries are not available
1601dnl in static form.
1602dnl
1603AC_MSG_CHECKING([whether we can link with -static])
1604AC_CACHE_VAL(ac_cv_e2fsprogs_use_static,
1605[SAVE_LDFLAGS=$LDFLAGS; LDFLAGS="$LDFLAGS_STATIC -static"
1606AC_TRY_LINK([#include <stdio.h>],[fflush(stdout);],
1607 ac_cv_e2fsprogs_use_static=yes, ac_cv_e2fsprogs_use_static=no)
1608LDFLAGS=$SAVE_LDFLAGS])
1609dnl
1610dnl Regardless of how the test turns out, Solaris doesn't handle -static
1611dnl This is caused by the socket library requiring the nsl library, which
1612dnl requires the -dl library, which only works for dynamically linked
1613dnl programs.  It basically means you can't have statically linked programs
1614dnl which use the network under Solaris.
1615dnl
1616case "$host_os" in
1617solaris2.*)
1618	ac_cv_e2fsprogs_use_static=no
1619;;
1620esac
1621AC_MSG_RESULT($ac_cv_e2fsprogs_use_static)
1622if test $ac_cv_e2fsprogs_use_static = yes; then
1623	LDFLAGS_STATIC="$LDFLAGS_STATIC -static"
1624fi
1625AC_SUBST(LDFLAGS_STATIC)
1626dnl
1627dnl Work around mysterious Darwin / GNU libintl problem
1628dnl (__asm__ redirection doesn't work for some mysterious reason.  Looks like
1629dnl Apple hacked gcc somehow?)
1630dnl
1631case "$host_os" in
1632darwin*)
1633	AC_MSG_RESULT([Using Apple Darwin / GNU libintl workaround])
1634	AC_DEFINE(_INTL_REDIRECT_MACROS, 1,
1635		[Define to 1 if Apple Darwin libintl workaround is needed])
1636	;;
1637esac
1638dnl
1639dnl Only try to run the test suite if we're not cross compiling.
1640dnl
1641if test "$cross_compiling" = yes ; then
1642  DO_TEST_SUITE=
1643else
1644  DO_TEST_SUITE=check
1645fi
1646AC_SUBST(DO_TEST_SUITE)
1647dnl
1648dnl Only include the intl include files if we're building with them
1649dnl
1650INCLUDES='-I. -I$(top_builddir)/lib -I$(top_srcdir)/lib'
1651if test -n "$CPPFLAGS" ; then
1652	INCLUDES="$INCLUDES $CPPFLAGS"
1653fi
1654if test "$USE_INCLUDED_LIBINTL" = "yes" ; then
1655	INCLUDES=$INCLUDES' -I$(top_builddir)/intl -I$(top_srcdir)/intl'
1656fi
1657if test -n "$WITH_DIET_LIBC" ; then
1658	INCLUDES="$INCLUDES -D_REENTRANT"
1659fi
1660AC_SUBST(INCLUDES)
1661dnl
1662dnl Build CFLAGS
1663dnl
1664if test $cross_compiling = no; then
1665   BUILD_CFLAGS="$CFLAGS $CPPFLAGS $INCLUDES -DHAVE_CONFIG_H"
1666   BUILD_LDFLAGS="$LDFLAGS"
1667fi
1668AC_SUBST(BUILD_CFLAGS)
1669AC_SUBST(BUILD_LDFLAGS)
1670dnl
1671dnl Define CFLAGS and LDFLAGS for shared libraries
1672dnl
1673CFLAGS_SHLIB=${CFLAGS_SHLIB:-$CFLAGS}
1674CFLAGS_STLIB=${CFLAGS_STLIB:-$CFLAGS}
1675LDFLAGS_SHLIB=${LDFLAGS_SHLIB:-$LDFLAGS}
1676AC_SUBST(CFLAGS_SHLIB)
1677AC_SUBST(CFLAGS_STLIB)
1678AC_SUBST(LDFLAGS_SHLIB)
1679
1680dnl
1681dnl Where do udev rules go?
1682dnl
1683AC_ARG_WITH([udev_rules_dir],
1684  [AS_HELP_STRING([--with-udev-rules-dir@<:@=DIR@:>@],
1685	[Install udev rules into DIR.])],
1686  [],
1687  [with_udev_rules_dir=yes])
1688AS_IF([test "x${with_udev_rules_dir}" != "xno"],
1689  [
1690	AS_IF([test "x${with_udev_rules_dir}" = "xyes"],
1691	  [
1692		PKG_CHECK_MODULES([udev], [udev],
1693		  [
1694			with_udev_rules_dir="$($PKG_CONFIG --variable=udevdir udev)/rules.d"
1695		  ], [
1696			with_udev_rules_dir=""
1697		  ])
1698	  ])
1699	AC_MSG_CHECKING([for udev rules dir])
1700	pkg_udev_rules_dir="${with_udev_rules_dir}"
1701	AS_IF([test -n "${pkg_udev_rules_dir}"],
1702	  [
1703		AC_MSG_RESULT(${pkg_udev_rules_dir})
1704		have_udev="yes"
1705	  ],
1706	  [
1707		AC_MSG_RESULT(no)
1708		have_udev="no"
1709	  ])
1710  ],
1711  [
1712	have_udev="disabled"
1713  ])
1714AC_SUBST(have_udev)
1715AC_SUBST(pkg_udev_rules_dir)
1716
1717dnl
1718dnl Where do cron jobs go?
1719dnl
1720AC_ARG_WITH([crond_dir],
1721  [AS_HELP_STRING([--with-crond-dir@<:@=DIR@:>@],
1722	[Install system crontabs into DIR.])],
1723  [],
1724  [with_crond_dir=yes])
1725AS_IF([test "x${with_crond_dir}" != "xno"],
1726  [
1727	AS_IF([test "x${with_crond_dir}" = "xyes"],
1728	  [
1729		AS_IF([test -d "/etc/cron.d"],
1730		  [with_crond_dir="/etc/cron.d"],
1731		  [have_crond="no"; with_crond_dir=""])
1732	  ])
1733	AC_MSG_CHECKING([for system crontab dir])
1734	crond_dir="${with_crond_dir}"
1735	AS_IF([test -n "${crond_dir}"],
1736	  [
1737		AC_MSG_RESULT(${crond_dir})
1738		have_crond="yes"
1739	  ],
1740	  [
1741		AC_MSG_RESULT(no)
1742		have_crond="no"
1743	  ])
1744  ],
1745  [
1746	have_crond="disabled"
1747  ])
1748AC_SUBST(have_crond)
1749AC_SUBST(crond_dir)
1750
1751dnl
1752dnl Where do systemd services go?
1753dnl
1754AC_ARG_WITH([systemd_unit_dir],
1755  [AS_HELP_STRING([--with-systemd-unit-dir@<:@=DIR@:>@],
1756	[Install systemd system units into DIR.])],
1757  [],
1758  [with_systemd_unit_dir=yes])
1759AS_IF([test "x${with_systemd_unit_dir}" != "xno"],
1760  [
1761	AS_IF([test "x${with_systemd_unit_dir}" = "xyes"],
1762	  [
1763		PKG_CHECK_MODULES([systemd], [systemd],
1764		  [
1765			with_systemd_unit_dir="$($PKG_CONFIG --variable=systemdsystemunitdir systemd)"
1766		  ], [
1767			with_systemd_unit_dir=""
1768		  ])
1769		m4_pattern_allow([^PKG_(MAJOR|MINOR|BUILD|REVISION)$])
1770	  ])
1771	AC_MSG_CHECKING([for systemd system unit dir])
1772	systemd_system_unit_dir="${with_systemd_unit_dir}"
1773	AS_IF([test -n "${systemd_system_unit_dir}"],
1774	  [
1775		AC_MSG_RESULT(${systemd_system_unit_dir})
1776		have_systemd="yes"
1777	  ],
1778	  [
1779		AC_MSG_RESULT(no)
1780		have_systemd="no"
1781	  ])
1782  ],
1783  [
1784	have_systemd="disabled"
1785  ])
1786AC_SUBST(have_systemd)
1787AC_SUBST(systemd_system_unit_dir)
1788dnl Adjust the compiled files if we are on windows vs everywhere else
1789dnl
1790OS_IO_FILE=""
1791[case "$host_os" in
1792  cigwin*|mingw*|msys*)
1793    OS_IO_FILE=windows_io
1794  ;;
1795  *)
1796    OS_IO_FILE=unix_io
1797  ;;
1798esac]
1799AC_SUBST(OS_IO_FILE)
1800dnl
1801dnl Make our output files, being sure that we create the some miscellaneous
1802dnl directories
1803dnl
1804test -d lib || mkdir lib
1805test -d include || mkdir include
1806test -d include/linux || mkdir include/linux
1807test -d include/asm || mkdir include/asm
1808if test -z "$UUID_CMT" ; then
1809	uuid_out_list="lib/uuid/Makefile lib/uuid/uuid.pc \
1810		lib/uuid/uuid_types.h"
1811fi
1812if test -z "$BLKID_CMT" ; then
1813	blkid_out_list="lib/blkid/Makefile lib/blkid/blkid.pc \
1814		lib/blkid/blkid_types.h"
1815fi
1816for i in MCONFIG Makefile \
1817	util/Makefile util/subst.conf util/gen-tarball util/install-symlink \
1818	lib/et/Makefile lib/ss/Makefile lib/e2p/Makefile \
1819	lib/ext2fs/Makefile lib/ext2fs/ext2_types.h \
1820	$uuid_out_list $blkid_out_list lib/support/Makefile \
1821	lib/ss/ss.pc lib/et/com_err.pc lib/e2p/e2p.pc lib/ext2fs/ext2fs.pc \
1822	misc/Makefile ext2ed/Makefile e2fsck/Makefile \
1823	debugfs/Makefile tests/Makefile tests/progs/Makefile \
1824	resize/Makefile doc/Makefile po/Makefile.in scrub/Makefile; do
1825	if test -d `dirname ${srcdir}/$i` ; then
1826		outlist="$outlist $i"
1827	fi
1828done
1829AC_OUTPUT($outlist)
1830if test -f util/gen-tarball; then chmod +x util/gen-tarball; fi
1831