#! /usr/bin/env bash # Build ODB for MinGW # # -rebuild # -test # -db # trap 'exit 1' ERR function error () { echo "$*" 1>&2 } function clean () { if [ -f $1/Makefile ]; then make -C $1 distclean fi } ROOT=/c/projects MYSQL=$ROOT/mysql-mingw32 SQLITE=$ROOT/sqlite-mingw32 PGSQL=$ROOT/pgsql-mingw32 ORACLE=$ROOT/oracle-mingw32 BOOST=$ROOT/boost-mingw32 QTCORE=$ROOT/qtcore-mingw32 CPPFLAGS="-I$BOOST -I$QTCORE/include -I$QTCORE/include/QtCore -I$ORACLE/sdk/include -I$PGSQL/include -I$SQLITE -I$MYSQL/include" LDFLAGS="-L$BOOST/stage/lib -L$QTCORE/lib -L$ORACLE/sdk/lib -L$PGSQL/lib -L$SQLITE -L$MYSQL/lib -Wl,--enable-auto-import" PATH="$QTCORE/bin:$ORACLE:$PATH" mysql_options="--with-mysql-host=192.168.0.2 --with-mysql-client=$MYSQL/bin/mysql.exe" sqlite_options="--with-sqlite-db=c:\\projects\\odb\\odb_test.db" pgsql_options="--with-pgsql-host=192.168.0.2 --with-pgsql-client=$PGSQL/bin/psql.exe" oracle_options="--with-oracle-host=192.168.0.2 --with-oracle-service=xe --with-oracle-client=$ORACLE/sqlplus.exe" mssql_options="--with-mssql-server=windows2008r2\\ss2008r2,1435" test=n rebuild=n db= while [ $# -gt 0 ]; do case $1 in -rebuild) rebuild=y shift ;; -test) test=y shift ;; -db) shift db="$db $1" shift ;; *) error "unknown option: $1" exit 1 ;; esac done if [ "$db" = "" ]; then db="mssql oracle pgsql sqlite mysql" fi # Clean everything up if we are rebuilding. # if [ $rebuild = y ]; then clean libodb clean libodb-mssql clean libodb-oracle clean libodb-pgsql clean libodb-sqlite clean libodb-mysql clean libodb-boost clean libodb-qt for d in $db; do rm -rf odb-tests-$d rm -rf odb-examples-$d done fi # Build libodb # cd libodb if [ $rebuild = y -o ! -f Makefile ]; then ./configure CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" fi make cd .. # Build libodb- # for d in $db; do cd libodb-$d if [ $rebuild = y -o ! -f Makefile ]; then ./configure --with-libodb=../libodb CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" fi make cd .. done # Build libodb-boost # cd libodb-boost if [ $rebuild = y -o ! -f Makefile ]; then ./configure --with-libodb=../libodb CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" fi make cd .. # Build libodb-qt # cd libodb-qt if [ $rebuild = y -o ! -f Makefile ]; then ./configure --with-libodb=../libodb CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" fi make cd .. # Build odb-tests # for d in $db; do mkdir -p odb-tests-$d cd odb-tests-$d optvar=${d}_options if [ $rebuild = y -o ! -f Makefile ]; then ../odb-tests/configure \ --with-database=$d \ --with-libodb=../libodb \ --with-libodb-$d=../libodb-$d \ --with-libodb-boost=../libodb-boost \ --with-libodb-qt=../libodb-qt \ ${!optvar} \ CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" DIFFFLAGS=-ubB fi make if [ $test = y ]; then make check fi cd .. done # Build odb-examples # for d in $db; do mkdir -p odb-examples-$d cd odb-examples-$d optvar=${d}_options if [ $rebuild = y -o ! -f Makefile ]; then ../odb-examples/configure \ --with-database=$d \ --with-libodb=../libodb \ --with-libodb-$d=../libodb-$d \ --with-libodb-boost=../libodb-boost \ --with-libodb-qt=../libodb-qt \ ${!optvar} \ CPPFLAGS="$CPPFLAGS" LDFLAGS="$LDFLAGS" DIFFFLAGS=-ubB fi make if [ $test = y ]; then make check fi cd .. done