summaryrefslogtreecommitdiff
path: root/test/windows/mingw/build
diff options
context:
space:
mode:
Diffstat (limited to 'test/windows/mingw/build')
-rwxr-xr-xtest/windows/mingw/build185
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