summaryrefslogtreecommitdiff
path: root/odb/makefile
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2011-10-24 16:32:51 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2011-10-24 16:32:51 +0200
commit08a47c70ad517b80b72914d47d547463f576bcd3 (patch)
tree8a6ab07cf05e8668ea3c91735dfe97e2a98f3f05 /odb/makefile
parenta976183dc95a8b7a9bd7a308c3ea94f08982c426 (diff)
Generate database schema from database model instead of C++ model
We now first create the so-called database model from C++ model and then use that to generate the database schema. The new approach also adds more general support for primary/foreign keys, including multi- column keys. Finally, for MySQL we now generate out-of-line foreign key definitions. Because MySQL does not support deferred constraints checking, deferred foreign keys are written commented out, for documentation.
Diffstat (limited to 'odb/makefile')
-rw-r--r--odb/makefile167
1 files changed, 96 insertions, 71 deletions
diff --git a/odb/makefile b/odb/makefile
index bd47cc2..dd277de 100644
--- a/odb/makefile
+++ b/odb/makefile
@@ -7,101 +7,126 @@ include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make
# Plugin units.
#
-cxx_ptun := \
-cxx-lexer.cxx \
-sql-token.cxx \
-sql-lexer.cxx \
-context.cxx \
-common.cxx \
-diagnostics.cxx \
-emitter.cxx \
-lookup.cxx \
-include.cxx \
-header.cxx \
-inline.cxx \
-validator.cxx \
-processor.cxx \
-generator.cxx \
-parser.cxx \
-plugin.cxx \
+cxx_ptun := \
+cxx-lexer.cxx \
+sql-token.cxx \
+sql-lexer.cxx \
+context.cxx \
+common.cxx \
+diagnostics.cxx \
+emitter.cxx \
+lookup.cxx \
+include.cxx \
+header.cxx \
+inline.cxx \
+validator.cxx \
+processor.cxx \
+generator.cxx \
+parser.cxx \
+plugin.cxx \
pragma.cxx
-# Tracer
+# Tracer.
#
-cxx_ptun += \
-tracer/header.cxx \
-tracer/inline.cxx \
+cxx_ptun += \
+tracer/header.cxx \
+tracer/inline.cxx \
tracer/source.cxx
-# Relational
+# Relational.
#
-cxx_ptun += \
-relational/common.cxx \
-relational/context.cxx \
-relational/processor.cxx \
-relational/header.cxx \
-relational/inline.cxx \
-relational/source.cxx \
+cxx_ptun += \
+relational/common.cxx \
+relational/context.cxx \
+relational/processor.cxx \
+relational/header.cxx \
+relational/inline.cxx \
+relational/source.cxx \
+relational/model.cxx \
relational/schema.cxx
-# Relational/MySQL
+# Relational/MySQL.
#
-cxx_ptun += \
-relational/mysql/common.cxx \
-relational/mysql/context.cxx \
-relational/mysql/header.cxx \
-relational/mysql/source.cxx \
+cxx_ptun += \
+relational/mysql/common.cxx \
+relational/mysql/context.cxx \
+relational/mysql/header.cxx \
+relational/mysql/source.cxx \
+relational/mysql/model.cxx \
relational/mysql/schema.cxx
# Relational/Oracle
#
-cxx_ptun += \
-relational/oracle/common.cxx \
-relational/oracle/context.cxx \
-relational/oracle/header.cxx \
-relational/oracle/source.cxx \
+cxx_ptun += \
+relational/oracle/common.cxx \
+relational/oracle/context.cxx \
+relational/oracle/header.cxx \
+relational/oracle/source.cxx \
+relational/oracle/model.cxx \
relational/oracle/schema.cxx
# Relational/PostgreSQL
#
-cxx_ptun += \
-relational/pgsql/common.cxx \
-relational/pgsql/context.cxx \
-relational/pgsql/header.cxx \
-relational/pgsql/schema.cxx \
-relational/pgsql/source.cxx
-
-# Relational/SQLite
+cxx_ptun += \
+relational/pgsql/common.cxx \
+relational/pgsql/context.cxx \
+relational/pgsql/header.cxx \
+relational/pgsql/source.cxx \
+relational/pgsql/model.cxx \
+relational/pgsql/schema.cxx
+
+# Relational/SQLite.
#
-cxx_ptun += \
-relational/sqlite/common.cxx \
-relational/sqlite/context.cxx \
-relational/sqlite/header.cxx \
-relational/sqlite/source.cxx \
+cxx_ptun += \
+relational/sqlite/common.cxx \
+relational/sqlite/context.cxx \
+relational/sqlite/header.cxx \
+relational/sqlite/source.cxx \
+relational/sqlite/model.cxx \
relational/sqlite/schema.cxx
-cxx_ptun += \
-semantics/class.cxx \
-semantics/class-template.cxx \
-semantics/derived.cxx \
-semantics/elements.cxx \
-semantics/enum.cxx \
-semantics/fundamental.cxx \
-semantics/namespace.cxx \
-semantics/template.cxx \
-semantics/union.cxx \
-semantics/union-template.cxx \
+# Semantics.
+#
+cxx_ptun += \
+semantics/class.cxx \
+semantics/class-template.cxx \
+semantics/derived.cxx \
+semantics/elements.cxx \
+semantics/enum.cxx \
+semantics/fundamental.cxx \
+semantics/namespace.cxx \
+semantics/template.cxx \
+semantics/union.cxx \
+semantics/union-template.cxx \
semantics/unit.cxx
-cxx_ptun += \
-traversal/class.cxx \
-traversal/class-template.cxx \
-traversal/derived.cxx \
-traversal/elements.cxx \
-traversal/enum.cxx \
-traversal/template.cxx \
+# Semantics/Relational.
+#
+cxx_ptun += \
+semantics/relational/column.cxx \
+semantics/relational/elements.cxx \
+semantics/relational/foreign-key.cxx \
+semantics/relational/index.cxx \
+semantics/relational/key.cxx \
+semantics/relational/model.cxx \
+semantics/relational/primary-key.cxx \
+semantics/relational/table.cxx
+
+# Traversal.
+#
+cxx_ptun += \
+traversal/class.cxx \
+traversal/class-template.cxx \
+traversal/derived.cxx \
+traversal/elements.cxx \
+traversal/enum.cxx \
+traversal/template.cxx \
traversal/union-template.cxx
+# Traversal.
+#
+cxx_ptun += \
+traversal/relational/elements.cxx
# Driver units.
#