Files
findcrcs/crcutil-1.0/autogen.sh

111 lines
2.7 KiB
Bash
Executable File

#!/bin/bash
# See http://mij.oltrelinux.com/devel/autoconf-automake/
if [ -f "Makefile" ] && [ -f "Makefile.am" ] && [ -f "Makefile.in" ] && [ -d ".deps" ] ; then
make clean
fi
echo "Removing old garbage"
if [ "${1}" != "clean" ] || [ "${2}" == "clean" ]; then
# "./mk.sh clean" leave all the files needed for "./configure && make".
# "./mk.sh clean clean" deletes them as well.
# Full clean build starts from removing all generated files.
rm -f Makefile
rm -f Makefile.am
rm -f Makefile.in
rm -f aclocal.m4
rm -f config.h.in
rm -f configure
rm -f configure.ac
rm -f depcomp
rm -f install-sh
rm -f missing
fi
rm -f autoscan.log
rm -f config.h
rm -f config.log
rm -f config.status
rm -f stamp-h1
if [ -d "autom4te.cache" ]; then
rm -r autom4te.cache
fi
if [ -d ".deps" ]; then
rm -r .deps
fi
if [ "${1}" == "clean" ]; then
exit
fi
echo "Generating preliminary configure.ac"
autoscan
sed 's/^AC_INIT(.*$/AC_INIT(crcutil, 1.0, crcutil@googlegroups.com)\
AM_INIT_AUTOMAKE(crcutil, 1.0)\
AC_CONFIG_FILES([Makefile]) \
AC_OUTPUT()/' configure.scan >configure.ac
# AC_OUTPUT(Makefile)/' configure.scan >configure.ac
rm -f configure.scan
echo "Generating final configure.ac"
aclocal
autoconf
echo "Generating config.h.in"
autoheader
target=./Makefile.am
echo "Generating ${target}"
echo>${target} "AUTOMAKE_OPTIONS=foreign"
# --pedantic -std=c99?
crcutil_flags="-DCRCUTIL_USE_MM_CRC32=1 -Wall -msse2 -Icode"
echo>${target} "AM_CXXFLAGS=${crcutil_flags}"
if [ "$(uname -a | grep ^Darwin)" == "" ] && [[ "$(c++ -dumpversion)" > "4.4.9" ]]; then
# Static linking is not supported on Mac OS X.
# Use static linking on Linux, otherwise GCC 4.5.0 linker produces
# obscure warning (well, the code works but nevertheless).
echo>>${target} "AM_LDFLAGS=-static"
fi
echo>>${target} 'AM_CFLAGS=$(AM_CXXFLAGS)'
echo>>${target} "check_PROGRAMS=crcutil_ut"
echo>>${target} "TESTS=crcutil_ut"
sources=$(ls tests/*.cc tests/*.c tests/*.h code/*.cc code/*.h | grep -v intrinsic | tr "\n" " ")
echo>>${target} "crcutil_ut_SOURCES=${sources}"
echo>>${target} "tmpdir=/tmp"
echo>>${target} "tmp_PROGRAMS=usage"
echo>>${target} 'usage_CXXFLAGS=$(AM_CXXFLAGS) -Itests'
sources=$(ls examples/*.cc examples/*.h code/*.cc code/*.h tests/aligned_alloc.h | grep -v intrinsic | tr "\n" " ")
echo>>${target} "usage_SOURCES=${sources}"
echo "Creating Makefile.in"
aclocal
automake --add-missing
autoconf
cflags="-O3"
if [[ "$(c++ -dumpversion)" > "4.4.9" ]]; then
cflags="${cflags} -mcrc32"
fi
cflags="${cflags} $2"
./configure CXXFLAGS="${cflags}" CFLAGS="${cflags}"
echo ""
echo "Configured the library. Compiler flags:"
echo " ${cflags}"
echo "Library configuration flags:"
echo " ${crcutil_flags}"
echo ""
if [ "${1}" == "configure" ]; then
exit
fi
make $1