diff options
Diffstat (limited to 'dist.sh')
-rwxr-xr-x | dist.sh | 255 |
1 files changed, 255 insertions, 0 deletions
@@ -0,0 +1,255 @@ +#! /usr/bin/env bash + +# Create ODB source distributions +# +# -rebuild +# -complete package/build libcutl and the ODB compiler; implies -rebuild +# -test +# -odb +# +trap 'exit 1' ERR + +function error () +{ + echo "$*" 1>&2 +} + +wd=`pwd` +out_root=/tmp +src_root=$HOME/work/odb +ver=`cat $src_root/odb/version` + +test=n +rebuild=n +complete=n +odb=$src_root/odb/odb/odb + +CXXFLAGS="-W -Wall -Wno-unknown-pragmas" + +while [ $# -gt 0 ]; do + case $1 in + -rebuild) + rebuild=y + shift + ;; + -complete) + rebuild=y + complete=y + shift + ;; + -test) + test=y + shift + ;; + -odb) + shift + odb=$1 + shift + ;; + *) + error "unknown option: $1" + exit 1 + ;; + esac +done + +# Clean everything up if we are rebuilding. +# +if [ $rebuild = y ]; then + rm -rf $out_root/libodb/* + rm -rf $out_root/libodb-mysql/* + rm -rf $out_root/libodb-tracer/* + rm -rf $out_root/libodb-boost/* + rm -rf $out_root/odb-tests/* + rm -rf $out_root/odb-examples/* + + if [ $complete = y ]; then + rm -rf $out_root/libcutl/* + rm -rf $out_root/odb/* + fi + + rm -rf $out_root/pack +fi + +mkdir -p $out_root/libodb +mkdir -p $out_root/libodb-mysql +mkdir -p $out_root/libodb-tracer +mkdir -p $out_root/libodb-boost +mkdir -p $out_root/odb-tests +mkdir -p $out_root/odb-examples + +if [ $complete = y ]; then + mkdir -p $out_root/libcutl + mkdir -p $out_root/odb +fi + +mkdir -p $out_root/pack + +# Build libcutl +# +if [ $complete = y ]; then + cd $src_root/../cutl + ./dist.sh $out_root/libcutl + cd $wd +fi + +# Build ODB compiler +# +if [ $complete = y ]; then + make -C $src_root/odb dist dist_prefix=$out_root/odb + + cd $out_root/odb + + ./bootstrap + ./configure --with-libcutl=../libcutl CXX=g++-4.5 CXXFLAGS="$CXXFLAGS" + + make -j 8 + make dist + + cd $wd + + cp $out_root/odb/odb-$ver.zip $out_root/pack/ + cp $out_root/odb/odb-$ver.tar.gz $out_root/pack/ + cp $out_root/odb/odb-$ver.tar.bz2 $out_root/pack/ + + odb=$out_root/odb/odb/odb +fi + +# Build libodb +# +make -C $src_root/libodb dist dist_prefix=$out_root/libodb + +cd $out_root/libodb + +if [ $rebuild = y ]; then + ./bootstrap + ./configure CXXFLAGS="$CXXFLAGS" +fi + +make -j 8 +make dist + +cd $wd + +cp $out_root/libodb/libodb-$ver.zip $out_root/pack/ +cp $out_root/libodb/libodb-$ver.tar.gz $out_root/pack/ +cp $out_root/libodb/libodb-$ver.tar.bz2 $out_root/pack/ + + +# Build libodb-mysql +# +make -C $src_root/libodb-mysql dist dist_prefix=$out_root/libodb-mysql + +cd $out_root/libodb-mysql + +if [ $rebuild = y ]; then + ./bootstrap + ./configure --with-libodb=../libodb CXXFLAGS="$CXXFLAGS" +fi + +make -j 8 +make dist + +cd $wd + +cp $out_root/libodb-mysql/libodb-mysql-$ver.zip $out_root/pack/ +cp $out_root/libodb-mysql/libodb-mysql-$ver.tar.gz $out_root/pack/ +cp $out_root/libodb-mysql/libodb-mysql-$ver.tar.bz2 $out_root/pack/ + +# Build libodb-tracer +# +make -C $src_root/libodb-tracer dist dist_prefix=$out_root/libodb-tracer + +cd $out_root/libodb-tracer + +if [ $rebuild = y ]; then + ./bootstrap + ./configure --with-libodb=../libodb CXXFLAGS="$CXXFLAGS" +fi + +make -j 8 +make dist + +cd $wd + +cp $out_root/libodb-tracer/libodb-tracer-$ver.zip $out_root/pack/ +cp $out_root/libodb-tracer/libodb-tracer-$ver.tar.gz $out_root/pack/ +cp $out_root/libodb-tracer/libodb-tracer-$ver.tar.bz2 $out_root/pack/ + +# Build libodb-boost +# +make -C $src_root/libodb-boost dist dist_prefix=$out_root/libodb-boost + +cd $out_root/libodb-boost + +if [ $rebuild = y ]; then + ./bootstrap + ./configure --with-libodb=../libodb CXXFLAGS="$CXXFLAGS" +fi + +make -j 8 +make dist + +cd $wd + +cp $out_root/libodb-boost/libodb-boost-$ver.zip $out_root/pack/ +cp $out_root/libodb-boost/libodb-boost-$ver.tar.gz $out_root/pack/ +cp $out_root/libodb-boost/libodb-boost-$ver.tar.bz2 $out_root/pack/ + +# Build odb-tests +# +make -C $src_root/tests dist dist_prefix=$out_root/odb-tests + +cd $out_root/odb-tests + +if [ $rebuild = y ]; then + ./bootstrap + ./configure \ +--with-database=mysql \ +--with-libodb=../libodb \ +--with-libodb-tracer=../libodb-tracer \ +--with-libodb-mysql=../libodb-mysql \ +CXXFLAGS="$CXXFLAGS" \ +ODB=$odb +fi + +if [ $test = y ]; then + make -j 8 check +fi + +make dist + +cd $wd + +cp $out_root/odb-tests/odb-tests-$ver.zip $out_root/pack/ +cp $out_root/odb-tests/odb-tests-$ver.tar.gz $out_root/pack/ +cp $out_root/odb-tests/odb-tests-$ver.tar.bz2 $out_root/pack/ + +# Build odb-examples +# +make -C $src_root/examples dist dist_prefix=$out_root/odb-examples + +cd $out_root/odb-examples + +if [ $rebuild = y ]; then + ./bootstrap + ./configure \ +--with-database=mysql \ +--with-libodb=../libodb \ +--with-libodb-mysql=../libodb-mysql \ +--with-libodb-boost=../libodb-boost \ +CXXFLAGS="$CXXFLAGS" \ +ODB=$odb +fi + +if [ $test = y ]; then + make -j 8 check +fi + +make dist + +cd $wd + +cp $out_root/odb-examples/odb-examples-$ver.zip $out_root/pack/ +cp $out_root/odb-examples/odb-examples-$ver.tar.gz $out_root/pack/ +cp $out_root/odb-examples/odb-examples-$ver.tar.bz2 $out_root/pack/ |