summaryrefslogtreecommitdiff
path: root/dist.sh
diff options
context:
space:
mode:
Diffstat (limited to 'dist.sh')
-rwxr-xr-xdist.sh255
1 files changed, 255 insertions, 0 deletions
diff --git a/dist.sh b/dist.sh
new file mode 100755
index 0000000..69a1d9b
--- /dev/null
+++ b/dist.sh
@@ -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/