summaryrefslogtreecommitdiff
path: root/xsd/xsd/makefile
diff options
context:
space:
mode:
authorJörg Frings-Fürst <debian@jff-webhosting.net>2014-07-23 15:21:29 +0200
committerJörg Frings-Fürst <debian@jff-webhosting.net>2014-07-23 15:21:29 +0200
commitbada6666c70977a058755ccf232e7d67b24adeed (patch)
tree1e92d50cebce96abaf9bce19e36026c47f77b9ba /xsd/xsd/makefile
parenteaf34adcbd8095bc6d1f3371b1227f654c7b19fc (diff)
New upstream release
Diffstat (limited to 'xsd/xsd/makefile')
-rw-r--r--xsd/xsd/makefile90
1 files changed, 64 insertions, 26 deletions
diff --git a/xsd/xsd/makefile b/xsd/xsd/makefile
index cc04568..d57022d 100644
--- a/xsd/xsd/makefile
+++ b/xsd/xsd/makefile
@@ -1,6 +1,5 @@
# file : xsd/makefile
-# author : Boris Kolpackov <boris@codesynthesis.com>
-# copyright : Copyright (c) 2005-2010 Code Synthesis Tools CC
+# copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC
# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make
@@ -8,7 +7,8 @@ include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make
cxx_tun := xsd.cxx
cxx_tun += cxx/elements.cxx \
- cxx/literal-map.cxx
+ cxx/literal-map.cxx \
+ cxx/option-types.cxx
cxx_tun += cxx/parser/elements.cxx \
cxx/parser/validator.cxx \
@@ -31,6 +31,7 @@ cxx_tun += cxx/tree/elements.cxx \
cxx/tree/validator.cxx \
cxx/tree/counter.cxx \
cxx/tree/name-processor.cxx \
+ cxx/tree/order-processor.cxx \
cxx/tree/polymorphism-processor.cxx \
cxx/tree/default-value.cxx \
cxx/tree/generator.cxx \
@@ -49,18 +50,24 @@ cxx_tun += cxx/tree/elements.cxx \
cxx/tree/stream-extraction-source.cxx
-# Type map
+# Type map.
#
cxx_tun += type-map/lexer.cxx \
type-map/parser.cxx
-# Processing
+# Processing.
#
cxx_tun += processing/cardinality/processor.cxx \
processing/inheritance/processor.cxx
+# Options file.
+#
+cli_tun := options.cli \
+ cxx/options.cli \
+ cxx/tree/options.cli \
+ cxx/parser/options.cli
-cxx_obj := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o))
+cxx_obj := $(addprefix $(out_base)/,$(cxx_tun:.cxx=.o) $(cli_tun:.cli=.o))
cxx_od := $(cxx_obj:.o=.o.d)
xsd := $(out_base)/xsd
@@ -72,20 +79,12 @@ clean := $(out_base)/.clean
# Import.
#
$(call import,\
- $(scf_root)/import/libcult/stub.make,\
- l: cult.l,cpp-options: cult.l.cpp-options)
-
-$(call import,\
- $(scf_root)/import/libbackend-elements/stub.make,\
- l: be.l,cpp-options: be.l.cpp-options)
-
-$(call import,\
- $(scf_root)/import/libboost/regex/stub.make,\
- l: re.l,cpp-options: re.l.cpp-options)
+ $(scf_root)/import/cli/stub.make,\
+ cli: cli,cli-rules: cli_rules)
$(call import,\
- $(scf_root)/import/libboost/filesystem/stub.make,\
- l: fs.l,cpp-options: fs.l.cpp-options)
+ $(scf_root)/import/libcutl/stub.make,\
+ l: cutl.l,cpp-options: cutl.l.cpp-options)
$(call import,\
$(scf_root)/import/libxsd-frontend/stub.make,\
@@ -97,18 +96,52 @@ $(call import,\
# Build.
#
-$(xsd): $(cxx_obj) $(xsd_fe.l) $(be.l) $(cult.l) $(fs.l) $(re.l) $(xerces_c.l)
+$(xsd): $(cxx_obj) $(xsd_fe.l) $(cutl.l) $(xerces_c.l)
-$(cxx_obj) $(cxx_od): cpp_options := -I$(src_base)
+$(cxx_obj) $(cxx_od): cpp_options := -I$(out_base) -I$(src_base)
$(cxx_obj) $(cxx_od): \
$(xsd_fe.l.cpp-options) \
- $(be.l.cpp-options) \
- $(cult.l.cpp-options) \
- $(fs.l.cpp-options) \
- $(re.l.cpp-options) \
+ $(cutl.l.cpp-options) \
$(xerces_c.l.cpp-options)
-$(call include-dep,$(cxx_od))
+genf := $(cli_tun:.cli=.hxx) $(cli_tun:.cli=.ixx) $(cli_tun:.cli=.cxx)
+gen := $(addprefix $(out_base)/,$(genf))
+
+# Don't depend on installed executable since it may not exist.
+#
+ifneq ($(cli),cli)
+$(gen): $(cli)
+endif
+$(gen): cli := $(cli)
+$(gen): cli_options += \
+-I $(src_base) \
+--generate-specifier \
+--ostream-type ::std::wostream \
+--exclude-base \
+--suppress-undocumented \
+--generate-file-scanner \
+--include-with-brackets \
+--option-length 28 \
+--cxx-prologue '\#include <options-parser.hxx>'
+
+#--include-prefix xsd
+#--guard-prefix XSD
+
+$(addprefix $(out_base)/cxx/options,.hxx .ixx .cxx): $(src_base)/options.cli
+$(addprefix $(out_base)/cxx/options,.hxx .ixx .cxx): cli_options += \
+--include-prefix cxx --guard-prefix CXX
+
+$(addprefix $(out_base)/cxx/tree/options,.hxx .ixx .cxx): \
+$(src_base)/options.cli $(src_base)/cxx/options.cli
+$(addprefix $(out_base)/cxx/tree/options,.hxx .ixx .cxx): cli_options += \
+--include-prefix cxx/tree --guard-prefix CXX_TREE
+
+$(addprefix $(out_base)/cxx/parser/options,.hxx .ixx .cxx): \
+$(src_base)/options.cli $(src_base)/cxx/options.cli
+$(addprefix $(out_base)/cxx/parser/options,.hxx .ixx .cxx): cli_options += \
+--include-prefix cxx/parser --guard-prefix CXX_PARSER
+
+$(call include-dep,$(cxx_od),$(cxx_obj),$(gen))
# Alias for default target.
#
@@ -134,12 +167,16 @@ $(clean): \
$(addsuffix .cxx.clean,$(cxx_obj)) \
$(addsuffix .cxx.clean,$(cxx_od))
+ifneq ($(xsd_clean_gen),n)
+$(clean): $(addprefix $(out_base)/,$(cli_tun:.cli=.cxx.cli.clean))
+endif
+
# Generated .gitignore.
#
ifeq ($(out_base),$(src_base))
$(xsd): | $(out_base)/.gitignore
-$(out_base)/.gitignore: files := xsd
+$(out_base)/.gitignore: files := xsd $(genf)
$(clean): $(out_base)/.gitignore.clean
$(call include,$(bld_root)/git/gitignore.make)
@@ -147,6 +184,7 @@ endif
# How to.
#
+$(call include,$(cli_rules))
$(call include,$(bld_root)/cxx/o-e.make)
$(call include,$(bld_root)/cxx/cxx-o.make)
$(call include,$(bld_root)/cxx/cxx-d.make)