diff options
Diffstat (limited to 'test/windows/mingw/build')
-rwxr-xr-x | test/windows/mingw/build | 185 |
1 files changed, 185 insertions, 0 deletions
diff --git a/test/windows/mingw/build b/test/windows/mingw/build new file mode 100755 index 0000000..6394fdf --- /dev/null +++ b/test/windows/mingw/build @@ -0,0 +1,185 @@ +#! /usr/bin/env bash + +# Build ODB for MinGW +# +# -rebuild +# -test +# -db <database> +# +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-<db> +# +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 |