diff options
Diffstat (limited to 'xsd/build/xsd/tree/xsd-cxx.make')
-rw-r--r-- | xsd/build/xsd/tree/xsd-cxx.make | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/xsd/build/xsd/tree/xsd-cxx.make b/xsd/build/xsd/tree/xsd-cxx.make new file mode 100644 index 0000000..0411820 --- /dev/null +++ b/xsd/build/xsd/tree/xsd-cxx.make @@ -0,0 +1,47 @@ +# file : build/xsd/tree/xsd-cxx.make +# copyright : Copyright (c) 2005-2014 Code Synthesis Tools CC +# license : GNU GPL v2 + exceptions; see accompanying LICENSE file + +#@@ Need to use extensions from cxx config. +# + +# C++/Tree mapping. +# +xsd_tree_pattern := \ +$(out_base)/%$(xsd_tree_suffix).cxx \ +$(out_base)/%$(xsd_tree_suffix).hxx \ +$(out_base)/%$(xsd_tree_suffix).ixx \ +$(out_base)/%$(xsd_tree_suffix)-fwd.hxx + +$(xsd_tree_pattern): xsd := xsd +$(xsd_tree_pattern): xsd_command := cxx-tree +$(xsd_tree_pattern): xsd_options := --generate-inline + +.PRECIOUS: $(xsd_tree_pattern) + +ifeq ($(out_base),$(src_base)) + +$(xsd_tree_pattern): $(src_base)/%.xsd + $(call message,xsd $<,$(xsd) $(xsd_command) $(xsd_options) --output-dir $(dir $@) $<) + +else + +$(xsd_tree_pattern): $(src_base)/%.xsd | $$(dir $$@). + $(call message,xsd $<,$(xsd) $(xsd_command) $(xsd_options) --output-dir $(dir $@) $<) + +$(xsd_tree_pattern): $(out_base)/%.xsd | $$(dir $$@). + $(call message,xsd $<,$(xsd) $(xsd_command) $(xsd_options) --output-dir $(dir $@) $<) + +endif + +.PHONY: $(out_base)/%$(xsd_tree_suffix).cxx.xsd.clean + +$(out_base)/%$(xsd_tree_suffix).cxx.xsd.clean: + $(call message,rm $(@:.cxx.xsd.clean=.cxx),rm -f $(@:.cxx.xsd.clean=.cxx)) + $(call message,rm $(@:.cxx.xsd.clean=.hxx),rm -f $(@:.cxx.xsd.clean=.hxx)) + $(call message,rm $(@:.cxx.xsd.clean=.ixx),rm -f $(@:.cxx.xsd.clean=.ixx)) + $(call message,rm $(@:.cxx.xsd.clean=-fwd.hxx),rm -f $(@:.cxx.xsd.clean=-fwd.hxx)) + +# Reset the config variables so they won't take effect in other places. +# +xsd_tree_suffix := |