ledger/acprep
2008-05-12 05:10:08 -04:00

144 lines
3.6 KiB
Bash
Executable file

#!/bin/sh
# acprep, version 3.0
#
# This script configures my ledger source tree on my Mac OS/X machine.
# This is not necessary, however, since I keep all the files necessary
# for building checked in to the source tree. Users can just type
# './configure && make'. This script simply sets up the compiler and
# linker flags for all the various build permutations I use for testing
# and profiling.
export AUTOCONF_VERSION=2.61
export AUTOMAKE_VERSION=1.9
touch AUTHORS COPYING
cmd=$(which glibtoolize 2>&1)
if [ -x "$cmd" ]; then
export LIBTOOLIZE="$cmd"
fi
cat configure.tmpl | sed "s/%VERSION%/$(git describe)/" > configure.in
autoreconf --force --install
INCDIRS="-I/sw/include -I/opt/local/include"
INCDIRS="$INCDIRS -I/usr/local/include"
INCDIRS="$INCDIRS -I/usr/local/include/boost-1_35"
LIBDIRS="-L/sw/lib -L/opt/local/lib"
LIBDIRS="$LIBDIRS -L/usr/local/lib"
PYTHON_HOME="/usr"
SYSTEM=`uname -s`
if [ $SYSTEM = Linux ]; then
CXXFLAGS="-pthread"
elif [ $SYSTEM = Solaris ]; then
CXXFLAGS="-pthreads"
elif [ $SYSTEM = Darwin ]; then
#CXXFLAGS="-arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
CXXFLAGS="$CXXFLAGS -Wno-long-double"
#LIBDIRS="$LIBDIRS -arch i386 -arch ppc -isysroot /Developer/SDKs/MacOSX10.4u.sdk"
else
CXXFLAGS=""
fi
# Building the command-line tool as a shared library is a luxury,
# since there are no clients except a GUI tool which might use it (and
# that is built again anyway by Xcode).
SWITCHES=""
CPPFLAGS="$INCDIRS"
CXXFLAGS="-pipe"
LDFLAGS="$LIBDIRS"
LOCAL=false
# Warning flags
CXXFLAGS="$CXXFLAGS -Wall -ansi -Winvalid-pch"
#CXXFLAGS="$CXXFLAGS -Wextra"
#CXXFLAGS="$CXXFLAGS -Weffc++"
#CXXFLAGS="$CXXFLAGS -Wcast-align"
#CXXFLAGS="$CXXFLAGS -Wcast-qual"
#CXXFLAGS="$CXXFLAGS -Wconversion"
#CXXFLAGS="$CXXFLAGS -Wfloat-equal"
#CXXFLAGS="$CXXFLAGS -Wmissing-field-initializers"
#CXXFLAGS="$CXXFLAGS -Wno-endif-labels"
#CXXFLAGS="$CXXFLAGS -Wold-style-cast"
#CXXFLAGS="$CXXFLAGS -Woverloaded-virtual"
#CXXFLAGS="$CXXFLAGS -Wshorten-64-to-32"
#CXXFLAGS="$CXXFLAGS -Wsign-compare"
#CXXFLAGS="$CXXFLAGS -Wsign-promo"
#CXXFLAGS="$CXXFLAGS -Wstrict-null-sentinel"
#CXXFLAGS="$CXXFLAGS -Wwrite-strings"
while [ -n "$1" ]; do
case "$1" in
--devel)
#SWITCHES="$SWITCHES --disable-shared --enable-pch"
SWITCHES="$SWITCHES --disable-shared"
CPPFLAGS="$CPPFLAGS -DBOOST_MULTI_INDEX_ENABLE_INVARIANT_CHECKING=1"
CPPFLAGS="$CPPFLAGS -DBOOST_MULTI_INDEX_ENABLE_SAFE_MODE=1"
;;
--debug)
SWITCHES="$SWITCHES --enable-debug"
#CPPFLAGS="$CPPFLAGS -D_GLIBCXX_DEBUG=1"
CXXFLAGS="$CXXFLAGS -g" ;;
--boost)
shift 1
SWITCHES="$SWITCHES --with-boost-suffix=$1"
;;
--gcov)
CXXFLAGS="$CXXFLAGS -fprofile-arcs -ftest-coverage" ;;
--gprof)
CXXFLAGS="$CXXFLAGS -g -pg" ;;
--python)
if [ -d "$PYTHON_HOME" ]; then
SWITCHES="$SWITCHES --enable-python"
CPPFLAGS="$CPPFLAGS -I$PYTHON_HOME/include/python2.5"
LDFLAGS="$LDFLAGS -L$PYTHON_HOME/lib/python2.5/config"
fi ;;
--pic)
CXXFLAGS="$CXXFLAGS -fPIC" ;;
--opt)
CXXFLAGS="$CXXFLAGS -fomit-frame-pointer -O3" ;;
--local)
LOCAL=true ;;
*)
break ;;
esac
shift 1
done
HERE="$PWD"
if [ "$LOCAL" = "false" -a -d "$HOME/Products" ]; then
version=""
if [ -x version ]; then
version="-$(./version)"
fi
projdir="$HOME/Products/$(basename $HERE)"
rm -fr ${projdir}*
projdir="$projdir$version"
if [ ! -d "$projdir" ]; then
mkdir -p "$projdir"
fi
cd "$projdir" || (echo "Cannot change to $projdir"; exit 1)
fi
"$HERE/configure" --srcdir="$HERE" CXX="$CXX" \
CPPFLAGS="$CPPFLAGS" CXXFLAGS="$CXXFLAGS $local_cxxflags" \
LDFLAGS="$LDFLAGS" LIBS="$LIBS" $SWITCHES "$@"