aboutsummaryrefslogtreecommitdiff
path: root/build
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-03-27 15:38:42 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-03-27 15:38:42 +0200
commitcd1deec2f13b6976fb3aac0e5e8d42a79875aef1 (patch)
treee56e97b86e800f4173ba433b9ba76480d0f18d5b /build
parent2b3b6f26e5125bdc23d07c88c369b5c6ce070a61 (diff)
Build infrastructure for SQLite
Diffstat (limited to 'build')
-rw-r--r--build/bootstrap.make4
-rwxr-xr-xbuild/configure3
-rw-r--r--build/import/libodb-sqlite/LICENSE12
-rw-r--r--build/import/libodb-sqlite/configuration-rules.make15
-rwxr-xr-xbuild/import/libodb-sqlite/configure55
-rw-r--r--build/import/libodb-sqlite/stub.make30
-rwxr-xr-xbuild/sqlite/configure23
7 files changed, 140 insertions, 2 deletions
diff --git a/build/bootstrap.make b/build/bootstrap.make
index 8ec887b..07296c3 100644
--- a/build/bootstrap.make
+++ b/build/bootstrap.make
@@ -47,8 +47,10 @@ endif
# Database schema creation.
#
+ifeq ($(filter $(db_id),sqlite),)
$(out_base)/.test: schema = \
$(call message,sql $$1,$(dcf_root)/db-driver $$1,$(out_base)/test.sql)
+endif
# Dist setup.
#
@@ -60,7 +62,7 @@ ifeq ($(dist_prefix),)
$(error dist_prefix is not set)
endif
-databases := mysql
+databases := mysql sqlite
$(dist): databases := $(databases)
# $1 project template without the -vcN.vc[x]proj suffix.
diff --git a/build/configure b/build/configure
index bc57e61..2fc7846 100755
--- a/build/configure
+++ b/build/configure
@@ -23,9 +23,10 @@ $echo
$echo "Please select the database you would like to use:"
$echo
$echo "(1) MySQL"
+$echo "(2) SQLite"
$echo
-db_id=`read_option "mysql" "mysql"`
+db_id=`read_option "mysql sqlite"`
echo "db_id := $db_id" >$1
diff --git a/build/import/libodb-sqlite/LICENSE b/build/import/libodb-sqlite/LICENSE
new file mode 100644
index 0000000..ed9c55c
--- /dev/null
+++ b/build/import/libodb-sqlite/LICENSE
@@ -0,0 +1,12 @@
+This program is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License version 2 as
+published by the Free Software Foundation.
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for details.
+
+You should have received a copy of the GNU General Public License
+along with this program; if not, write to the Free Software
+Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
diff --git a/build/import/libodb-sqlite/configuration-rules.make b/build/import/libodb-sqlite/configuration-rules.make
new file mode 100644
index 0000000..420f1ef
--- /dev/null
+++ b/build/import/libodb-sqlite/configuration-rules.make
@@ -0,0 +1,15 @@
+# file : build/import/libodb-sqlite/configuration-rules.make
+# author : Boris Kolpackov <boris@codesynthesis.com>
+# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
+# license : GNU GPL v2; see accompanying LICENSE file
+
+$(dcf_root)/import/libodb-sqlite/configuration-dynamic.make: | $(dcf_root)/import/libodb-sqlite/.
+ $(call message,,$(scf_root)/import/libodb-sqlite/configure $@)
+
+ifndef %foreign%
+
+$(dcf_root)/.disfigure::
+ $(call message,rm $(dcf_root)/import/libodb-sqlite/configuration-dynamic.make,\
+rm -f $(dcf_root)/import/libodb-sqlite/configuration-dynamic.make)
+
+endif
diff --git a/build/import/libodb-sqlite/configure b/build/import/libodb-sqlite/configure
new file mode 100755
index 0000000..ee067ca
--- /dev/null
+++ b/build/import/libodb-sqlite/configure
@@ -0,0 +1,55 @@
+#! /usr/bin/env bash
+
+# file : build/import/libodb-sqlite/configure
+# author : Boris Kolpackov <boris@codesynthesis.com>
+# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
+# license : GNU GPL v2; see accompanying LICENSE file
+
+
+# $1 - out file
+#
+# bld_root - build root
+# project_name - project name
+#
+
+source $bld_root/dialog.bash
+
+
+$echo
+$echo "Configuring external dependency on 'libodb-sqlite' for '$project_name'."
+$echo
+
+$echo
+$echo "Would you like to configure dependency on the installed version"
+$echo "of 'libodb-sqlite' as opposed to the development build?"
+$echo
+
+installed=`read_y_n y`
+
+path=
+
+if [ "$installed" = "n" ]; then
+
+$echo
+$echo "Please enter the src_root for 'libodb-sqlite'."
+$echo
+
+src_root=`read_path --directory --exist`
+
+$echo
+$echo "Please enter the out_root for 'libodb-sqlite'."
+$echo
+
+out_root=`read_path --directory $src_root`
+
+fi
+
+echo libodb_sqlite_installed := $installed >$1
+
+if [ "$installed" = "n" ]; then
+
+echo src_root := $src_root >>$1
+echo scf_root := \$\(src_root\)/build >>$1
+echo out_root := $out_root >>$1
+
+fi
diff --git a/build/import/libodb-sqlite/stub.make b/build/import/libodb-sqlite/stub.make
new file mode 100644
index 0000000..43f0e11
--- /dev/null
+++ b/build/import/libodb-sqlite/stub.make
@@ -0,0 +1,30 @@
+# file : build/import/libodb-sqlite/stub.make
+# author : Boris Kolpackov <boris@codesynthesis.com>
+# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
+# license : GNU GPL v2; see accompanying LICENSE file
+
+$(call include-once,$(scf_root)/import/libodb-sqlite/configuration-rules.make,$(dcf_root))
+
+libodb_sqlite_installed :=
+
+$(call -include,$(dcf_root)/import/libodb-sqlite/configuration-dynamic.make)
+
+ifdef libodb_sqlite_installed
+
+ifeq ($(libodb_sqlite_installed),y)
+
+$(call export,l: -lodb-sqlite -lodb -lsqlite3,cpp-options: )
+
+else
+
+# Include export stub.
+#
+$(call include,$(scf_root)/export/libodb-sqlite/stub.make)
+
+endif
+
+else
+
+.NOTPARALLEL:
+
+endif
diff --git a/build/sqlite/configure b/build/sqlite/configure
new file mode 100755
index 0000000..621d582
--- /dev/null
+++ b/build/sqlite/configure
@@ -0,0 +1,23 @@
+#! /usr/bin/env bash
+
+# file : build/sqlite/configure
+# author : Boris Kolpackov <boris@codesynthesis.com>
+# copyright : Copyright (c) 2009-2011 Code Synthesis Tools CC
+# license : GNU GPL v2; see accompanying LICENSE file
+
+#
+# dcf_root - dynamic configuration root
+#
+
+$echo
+$echo "Please enter the SQLite database file name. Note that it WILL"
+$echo "BE MODIFIED by the tests. If you do not specify a name, then a"
+$echo "temporary on-disk database will be created. You can also specify"
+$echo "':memory:' as a file name to use a temporary in-memory database."
+$echo
+
+db=`read_value`
+
+opt=$dcf_root/db.options
+
+echo "--database '$db'" >$opt