aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-03-21 17:25:58 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-03-21 17:25:58 +0200
commitec564b14a5f4558d34578a1e10129f910539fa49 (patch)
tree6094727331c44dab4974e7c11397b48b12ec0148
parent9106867c0c70bae196c1b38e9594f0340dcc9698 (diff)
Add developer build system SQLite infrastructure
-rw-r--r--build/bootstrap.make2
-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/configure28
7 files changed, 143 insertions, 2 deletions
diff --git a/build/bootstrap.make b/build/bootstrap.make
index 4359a32..c6039eb 100644
--- a/build/bootstrap.make
+++ b/build/bootstrap.make
@@ -55,7 +55,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..64b4f1b
--- /dev/null
+++ b/build/sqlite/configure
@@ -0,0 +1,28 @@
+#! /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
+drv=$dcf_root/db-driver
+
+echo "--database '$db'" >$opt
+
+echo "#!/bin/sh" >$drv
+echo "# dummy" >>$drv
+chmod 755 $drv