Whamcloud - gitweb
Many files:
[tools/e2fsprogs.git] / configure.in
index 5349abc..7d134b6 100644 (file)
@@ -1,11 +1,98 @@
 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=#
@@ -14,6 +101,8 @@ then
 else
        DLL_CMT=
        MAKEFILE_DLL=$srcdir/lib/Makefile.dll-lib
+       BINARY_TYPE=dllbin
+       LIB_EXT=.sa
        echo "Enabling DLL shared libraries"
 fi
 ,
@@ -27,7 +116,7 @@ dnl
 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=#
@@ -36,6 +125,8 @@ then
 else
        ELF_CMT=
        MAKEFILE_ELF=$srcdir/lib/Makefile.elf-lib
+       BINARY_TYPE=elfbin
+       LIB_EXT=.so
        echo "Enabling ELF shared libraries"
 fi
 ,
@@ -49,7 +140,7 @@ dnl
 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=#
@@ -58,6 +149,7 @@ then
 else
        BSDLIB_CMT=
        MAKEFILE_BSDLIB=$srcdir/lib/Makefile.bsd-lib
+       LIB_EXT=.so
        echo "Enabling BSD shared libraries"
 fi
 ,
@@ -71,7 +163,7 @@ dnl
 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=#
@@ -80,6 +172,7 @@ then
 else
        PROFILE_CMT=
        MAKEFILE_PROFILE=$srcdir/lib/Makefile.profile
+       PROFILED_LIB_EXT=_p.a
        echo "Building profiling libraries"
 fi
 ,
@@ -93,7 +186,7 @@ dnl
 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=#
@@ -112,10 +205,16 @@ echo "Disabling checker libraries by default"
 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=#
@@ -129,6 +228,21 @@ 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
@@ -136,6 +250,7 @@ AC_SUBST_FILE(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)
@@ -150,7 +265,7 @@ AC_CHECK_TOOL(STRIP, strip, :)
 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
@@ -276,7 +391,7 @@ dnl See if -static works.
 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
@@ -310,13 +425,17 @@ else
 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)