summaryrefslogtreecommitdiff
path: root/binary/linux-gnu/build-dist
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2013-02-15 09:00:28 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2013-02-15 09:00:28 +0200
commitd1b1d1f6b9583cd4fb08fb2995a2209cfdf627d2 (patch)
treeb0638edb95713d97945ba2baefffe86b8c0cee83 /binary/linux-gnu/build-dist
parentd845f920ec1f5cd6ef5a95366383e74725912441 (diff)
Add GNU/Linux ODB binary build scripts
Diffstat (limited to 'binary/linux-gnu/build-dist')
-rwxr-xr-xbinary/linux-gnu/build-dist194
1 files changed, 194 insertions, 0 deletions
diff --git a/binary/linux-gnu/build-dist b/binary/linux-gnu/build-dist
new file mode 100755
index 0000000..3dfbd62
--- /dev/null
+++ b/binary/linux-gnu/build-dist
@@ -0,0 +1,194 @@
+#! /usr/bin/env bash
+
+# Create ODB compiler Linux distribution.
+#
+# -rebuild
+# -arch
+#
+trap 'exit 1' ERR
+
+function error ()
+{
+ echo "$*" 1>&2
+}
+
+rebuild=n
+
+arch=x86_64-linux-gnu
+rebuild=n
+
+while [ $# -gt 0 ]; do
+ case $1 in
+ -rebuild)
+ rebuild=y
+ shift
+ ;;
+ -arch)
+ shift
+ arch=$1
+ shift
+ ;;
+ *)
+ error "unknown option: $1"
+ exit 1
+ ;;
+ esac
+done
+
+wd=`pwd`
+cpu=`echo $arch | sed -e 's/^\([^-]*\)-.*$/\1/'`
+
+cver=`echo libcutl-?.*.tar.gz | sed -e "s%libcutl-\(.*\).tar.gz%\1%"`
+over=`echo odb-?.*.tar.gz | sed -e "s%odb-\(.*\).tar.gz%\1%"`
+mver=`echo $over | sed -e 's%\([0-9]*\.[0-9]*\).*%\1%'`
+
+install_root="/tmp/odb-$over-$cpu-linux-gnu"
+
+export PATH=/$arch/bin:$PATH
+
+# Clean everything up if we are rebuilding.
+#
+if [ $rebuild = y ]; then
+ rm -rf libcutl
+ rm -rf odb
+ rm -rf $install_root
+ rm -rf libodb
+ rm -rf libodb-boost
+ rm -rf libodb-qt
+
+ if [ ! -d ../boost-binary ]; then
+ error "no boost distribution in ../boost-binary"
+ exit 1
+ fi
+
+ tar xfz libcutl-$cver.tar.gz
+ mv libcutl-$cver libcutl
+
+ tar xfz odb-$over.tar.gz
+ mv odb-$over odb
+
+ libodb=`echo libodb-$mver.*.tar.gz | sed -e 's%\(.*\)\.tar\.gz%\1%'`
+ tar xfz $libodb.tar.gz
+ mv $libodb libodb
+
+ libodb_boost=`echo libodb-boost-$mver.*.tar.gz | sed -e 's%\(.*\)\.tar\.gz%\1%'`
+ tar xfz $libodb_boost.tar.gz
+ mv $libodb_boost libodb-boost
+
+ libodb_qt=`echo libodb-qt-$mver.*.tar.gz | sed -e 's%\(.*\)\.tar\.gz%\1%'`
+ tar xfz $libodb_qt.tar.gz
+ mv $libodb_qt libodb-qt
+fi
+
+rm -f /tmp/odb-$over-$cpu-linux-gnu.tar.bz2
+
+# Build libcutl
+#
+cd libcutl
+
+if [ $rebuild = y ]; then
+ ../libcutl-configure
+fi
+
+make
+cd ..
+
+# Build odb
+#
+cd odb
+
+if [ $rebuild = y ]; then
+ ../odb-configure $over $arch $install_root
+fi
+
+make
+make install-strip
+cd ..
+
+# Build libodb
+#
+cd libodb
+
+if [ $rebuild = y ]; then
+ ../libodb-configure $install_root/lib/odb/$arch
+fi
+
+make
+cd odb
+make install-data
+cd ../..
+
+# Build libodb-boost
+#
+cd libodb-boost
+
+if [ $rebuild = y ]; then
+ ../libodb-boost-configure $install_root/lib/odb/$arch
+fi
+
+make
+make install-data
+cd ..
+
+# Build libodb-qt
+#
+cd libodb-qt
+
+if [ $rebuild = y ]; then
+ ../libodb-qt-configure $install_root/lib/odb/$arch
+fi
+
+make
+make install-data
+cd ..
+
+# Copy /$arch over to installation
+#
+cp -r /$arch $install_root/lib/odb/
+
+# Copy the default options file.
+#
+mkdir -p $install_root/etc/odb
+cp -L ./default.options $install_root/etc/odb/
+
+f="$install_root/etc/odb/default.options"
+
+echo '' >>$f
+echo '# Debian/Ubuntu new multiarch support places certain headers into' >>$f
+echo '# /usr/include/<arch>. Add that path to the search list but use' >>$f
+echo '# -idirafter to make sure it is used as a last resort only.' >>$f
+echo '#' >>$f
+if [ "$arch" = "x86_64-linux-gnu" ]; then
+ echo '-idirafter /usr/include/x86_64-linux-gnu' >> $f
+else
+ echo '-idirafter /usr/include/i386-linux-gnu' >> $f
+fi
+
+# Copy manifest and README.
+#
+cp -L manifest $install_root/lib/odb/$arch/
+cp -L README $install_root/
+
+# Move doc and man out of share/
+#
+rm -rf $install_root/doc $install_root/man
+mv $install_root/share/man $install_root/
+mv $install_root/share/doc/odb $install_root/doc
+rm -r $install_root/share
+
+
+# Clean some things up.
+#
+rm -f `find $install_root -name '*.la'`
+
+# Remove features.h from include-fixed. This file causes trouble on newer
+# distributions.
+#
+include_fixed=`find $install_root/lib/odb/$arch -type d -name include-fixed`
+rm $include_fixed/features.h
+
+# Pack it up.
+#
+cd /tmp
+tar cfj $wd/test/odb-$over-$cpu-linux-gnu.tar.bz2 odb-$over-$cpu-linux-gnu
+cd $wd