AC_INIT(version.h)
MCONFIG=./MCONFIG
AC_SUBST_FILE(MCONFIG)
+BINARY_TYPE=bin
+dnl
+dnl This is to figure out the version number and the date....
+dnl
+E2FSPROGS_VERSION=`grep E2FSPROGS_VERSION ${srcdir}/version.h \
+ | awk '{print $3}' | tr \" " " | awk '{print $1}'`
+DATE=`grep E2FSPROGS_DATE ${srcdir}/version.h | awk '{print $3}' \
+ | tr \" " "`
+MONTH=`echo $DATE | awk -F- '{print $2}'`
+YEAR=`echo $DATE | awk -F- '{print $3}'`
+
+if expr $YEAR ">" 90 >/dev/null ; then
+ E2FSPROGS_YEAR=19$YEAR
+else
+ E2FSPROGS_YEAR=20$YEAR
+fi
+
+case $MONTH in
+Jan) E2FSPROGS_MONTH="January" ;;
+Feb) E2FSPROGS_MONTH="February" ;;
+Mar) E2FSPROGS_MONTH="March" ;;
+Apr) E2FSPROGS_MONTH="April" ;;
+May) E2FSPROGS_MONTH="May" ;;
+Jun) E2FSPROGS_MONTH="June" ;;
+Jul) E2FSPROGS_MONTH="July" ;;
+Aug) E2FSPROGS_MONTH="August" ;;
+Sep) E2FSPROGS_MONTH="September" ;;
+Oct) E2FSPROGS_MONTH="October" ;;
+Nov) E2FSPROGS_MONTH="November" ;;
+Dec) E2FSPROGS_MONTH="December" ;;
+*) echo "Unknown month $MONTH??" ;;
+esac
+
+unset DATE MONTH YEAR
+echo "Generating configuration file for e2fsprogs version $E2FSPROGS_VERSION"
+echo "Release date is ${E2FSPROGS_MONTH}, ${E2FSPROGS_YEAR}"
+AC_SUBST(E2FSPROGS_YEAR)
+AC_SUBST(E2FSPROGS_MONTH)
+AC_SUBST(E2FSPROGS_VERSION)
+dnl
+dnl set $(CC) from --with-cc=value
+dnl
+AC_ARG_WITH([cc],
+[ --with-cc=COMPILER select compiler to use],
+AC_MSG_RESULT(CC=$withval)
+CC=$withval,
+if test -z "$CC" ; then CC=cc; fi
+[AC_MSG_RESULT(CC defaults to $CC)])dnl
+export CC
+AC_SUBST([CC])
+dnl
+dnl set $(LD) from --with-linker=value
+dnl
+AC_ARG_WITH([linker],
+[ --with-linker=LINKER select linker to use],
+AC_MSG_RESULT(LD=$withval)
+LD=$withval,
+if test -z "$LD" ; then LD=$CC; fi
+[AC_MSG_RESULT(LD defaults to $LD)])dnl
+export LD
+AC_SUBST([LD])
+dnl
+dnl set $(CCOPTS) from --with-ccopts=value
+dnl
+AC_ARG_WITH([ccopts],
+[ --with-ccopts=CCOPTS select compiler command line options],
+AC_MSG_RESULT(CCOPTS is $withval)
+CCOPTS=$withval
+CFLAGS="$CFLAGS $withval",
+CCOPTS=)dnl
+AC_SUBST(CCOPTS)
+dnl
+dnl Set default values for library extentions. Will be dealt with after
+dnl parsing configuration opions, which may modify these
+dnl
+LIB_EXT=.a
+STATIC_LIB_EXT=.a
+PROFILE_LIB_EXT=.a
+dnl
+dnl set $(LDFLAGS) from --with-ldopts=value
+dnl
+AC_ARG_WITH([ldopts],
+[ --with-ldopts=LDOPTS select linker command line options],
+AC_MSG_RESULT(LDFLAGS is $withval)
+LDFLAGS=$withval,
+LDFLAGS=)dnl
+AC_SUBST(LDFLAGS)
dnl
dnl handle --enable-dll-shlibs
dnl
AC_ARG_ENABLE([dll-shlibs],
-[ --enable-dll-shlibs select DLL libraries],
+[ --enable-dll-shlibs select DLL libraries],
if test "$enableval" = "no"
then
DLL_CMT=#
else
DLL_CMT=
MAKEFILE_DLL=$srcdir/lib/Makefile.dll-lib
+ BINARY_TYPE=dllbin
+ LIB_EXT=.sa
echo "Enabling DLL shared libraries"
fi
,
dnl handle --enable-elf-shlibs
dnl
AC_ARG_ENABLE([elf-shlibs],
-[ --enable-elf-shlibs select ELF shared libraries],
+[ --enable-elf-shlibs select ELF shared libraries],
if test "$enableval" = "no"
then
ELF_CMT=#
else
ELF_CMT=
MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
+ BINARY_TYPE=elfbin
+ LIB_EXT=.so
echo "Enabling ELF shared libraries"
fi
,
dnl handle --enable-bsd-shlibs
dnl
AC_ARG_ENABLE([bsd-shlibs],
-[ --enable-bsd-shlibs select BSD shared libraries],
+[ --enable-bsd-shlibs select BSD shared libraries],
if test "$enableval" = "no"
then
BSDLIB_CMT=#
else
BSDLIB_CMT=
MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
+ LIB_EXT=.so
echo "Enabling BSD shared libraries"
fi
,
dnl handle --enable-profile
dnl
AC_ARG_ENABLE([profile],
-[ --enable-profile build profiling libraries],
+[ --enable-profile build profiling libraries],
if test "$enableval" = "no"
then
PROFILE_CMT=#
else
PROFILE_CMT=
MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
+ PROFILED_LIB_EXT=_p.a
echo "Building profiling libraries"
fi
,
dnl handle --enable-checker
dnl
AC_ARG_ENABLE([checker],
-[ --enable-checker build checker libraries],
+[ --enable-checker build checker libraries],
if test "$enableval" = "no"
then
CHECKER_CMT=#
AC_SUBST(CHECKER_CMT)
AC_SUBST_FILE(MAKEFILE_CHECKER)
dnl
+dnl Substitute library extensions
+dnl
+AC_SUBST(LIB_EXT)
+AC_SUBST(STATIC_LIB_EXT)
+AC_SUBST(PROFILED_LIB_EXT)
+dnl
dnl handle --enable-gcc-wall
dnl
AC_ARG_ENABLE([gcc-wall],
-[ --enable-gcc-wall enable GCC anal warnings],
+[ --enable-gcc-wall enable GCC anal warnings],
if test "$enableval" = "no"
then
W=#
echo "Disabling GCC warnings by default"
)
AC_SUBST(W)
+AC_ARG_ENABLE([dynamic-e2fsck],
+[ --enable-dynamic-e2fsck build e2fsck dynamically],
+if test "$enableval" = "no"
+then
+ E2FSCK_TYPE=static
+ echo "Building e2fsck statically"
+else
+ E2FSCK_TYPE=shared
+ echo "Building e2fsck dynamically"
+fi
+,
+E2FSCK_TYPE=static
+echo "Building e2fsck statically by default"
+)
+AC_SUBST(E2FSCK_TYPE)
dnl
dnl
MAKEFILE_LIBRARY=$srcdir/lib/Makefile.library
dnl
dnl End of configuration options
dnl
+AC_SUBST(BINARY_TYPE)
AC_PROG_MAKE_SET
AC_PATH_PROG(LN, ln, ln)
AC_PATH_PROG(MV, mv, mv)
AC_PROG_CC
AC_PROG_INSTALL
AC_C_CROSS
-AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.h errno.h mntent.h dirent.h getopt.h linux/fd.h sys/disklabel.h)
+AC_CHECK_HEADERS(stdlib.h unistd.h stdarg.h errno.h mntent.h dirent.h getopt.h linux/fd.h linux/major.h sys/disklabel.h)
AC_FUNC_VPRINTF
dnl
dnl See if struct dirent has a d_namlen field (like bsd systems), implying
dnl XXX for now, assume that only Linux systems support -static
dnl
AC_REQUIRE([AC_CANONICAL_HOST])
-LDFALG_STATIC=
+LDFLAG_STATIC=
case "$host_os" in
linux*)
LDFLAG_STATIC=-static
fi
AC_SUBST(DO_TEST_SUITE)
dnl
+dnl
+dnl
+DO_SUBSTITUTE_SCRIPT=$srcdir/lib/do_substitute
+AC_SUBST_FILE(DO_SUBSTITUTE_SCRIPT)
+dnl
dnl Make our output files, being sure that we create the some miscellaneous
dnl directories
dnl
test -d lib || mkdir lib
test -d include || mkdir include
test -d include/linux || mkdir include/linux
-AC_OUTPUT(MCONFIG include/linux/types.h Makefile lib/et/Makefile
- lib/et/compile_et.sh lib/ss/Makefile lib/ss/mk_cmds.sh
- lib/ext2fs/Makefile lib/e2p/Makefile misc/Makefile
+AC_OUTPUT(MCONFIG lib/substitute_sh Makefile lib/et/Makefile
+ lib/ss/Makefile lib/ext2fs/Makefile lib/e2p/Makefile misc/Makefile
e2fsck/Makefile debugfs/Makefile tests/Makefile)