1# file : examples/cxx/tree/streaming/makefile 2# copyright : Copyright (c) 2005-2017 Code Synthesis Tools CC 3# license : GNU GPL v2 + exceptions; see accompanying LICENSE file 4 5include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make 6 7xsd := position.xsd 8cxx := driver.cxx parser.cxx serializer.cxx grammar-input-stream.cxx 9 10obj := $(addprefix $(out_base)/,$(cxx:.cxx=.o) $(xsd:.xsd=.o)) 11dep := $(obj:.o=.o.d) 12 13driver := $(out_base)/driver 14install := $(out_base)/.install 15dist := $(out_base)/.dist 16dist-win := $(out_base)/.dist-win 17clean := $(out_base)/.clean 18 19 20# Import. 21# 22$(call import,\ 23 $(scf_root)/import/libxerces-c/stub.make,\ 24 l: xerces_c.l,cpp-options: xerces_c.l.cpp-options) 25 26 27# Build. 28# 29$(driver): $(obj) $(xerces_c.l) 30 31$(obj) $(dep): cpp_options := -I$(out_base) -I$(src_base) -I$(src_root)/libxsd 32$(obj) $(dep): $(xerces_c.l.cpp-options) 33 34genf := $(xsd:.xsd=.hxx) $(xsd:.xsd=.ixx) $(xsd:.xsd=.cxx) 35gen := $(addprefix $(out_base)/,$(genf)) 36 37$(gen): xsd := $(out_root)/xsd/xsd 38$(gen): xsd_options += --generate-serialization 39$(gen): $(out_root)/xsd/xsd 40 41$(call include-dep,$(dep),$(obj),$(gen)) 42 43# Convenience alias for default target. 44# 45$(out_base)/: $(driver) 46 47 48# Install & Dist. 49# 50dist-common := $(out_base)/.dist-common 51 52$(install) $(dist) $(dist-win) $(dist-common): path := $(subst $(src_root)/,,$(src_base)) 53 54$(install): 55 $(call install-data,$(src_base)/README,$(install_doc_dir)/xsd/$(path)/README) 56 $(call install-data,$(src_base)/driver.cxx,$(install_doc_dir)/xsd/$(path)/driver.cxx) 57 $(call install-data,$(src_base)/parser.cxx,$(install_doc_dir)/xsd/$(path)/parser.cxx) 58 $(call install-data,$(src_base)/parser.hxx,$(install_doc_dir)/xsd/$(path)/parser.hxx) 59 $(call install-data,$(src_base)/serializer.cxx,$(install_doc_dir)/xsd/$(path)/serializer.cxx) 60 $(call install-data,$(src_base)/serializer.hxx,$(install_doc_dir)/xsd/$(path)/serializer.hxx) 61 $(call install-data,$(src_base)/grammar-input-stream.cxx,$(install_doc_dir)/xsd/$(path)/grammar-input-stream.cxx) 62 $(call install-data,$(src_base)/grammar-input-stream.hxx,$(install_doc_dir)/xsd/$(path)/grammar-input-stream.hxx) 63 $(call install-data,$(src_base)/position.xsd,$(install_doc_dir)/xsd/$(path)/position.xsd) 64 $(call install-data,$(src_base)/position.xml,$(install_doc_dir)/xsd/$(path)/position.xml) 65 66$(dist-common): 67 $(call install-data,$(src_base)/driver.cxx,$(dist_prefix)/$(path)/driver.cxx) 68 $(call install-data,$(src_base)/parser.cxx,$(dist_prefix)/$(path)/parser.cxx) 69 $(call install-data,$(src_base)/parser.hxx,$(dist_prefix)/$(path)/parser.hxx) 70 $(call install-data,$(src_base)/serializer.cxx,$(dist_prefix)/$(path)/serializer.cxx) 71 $(call install-data,$(src_base)/serializer.hxx,$(dist_prefix)/$(path)/serializer.hxx) 72 $(call install-data,$(src_base)/grammar-input-stream.cxx,$(dist_prefix)/$(path)/grammar-input-stream.cxx) 73 $(call install-data,$(src_base)/grammar-input-stream.hxx,$(dist_prefix)/$(path)/grammar-input-stream.hxx) 74 $(call install-data,$(src_base)/position.xsd,$(dist_prefix)/$(path)/position.xsd) 75 $(call install-data,$(src_base)/position.xml,$(dist_prefix)/$(path)/position.xml) 76 77$(dist): $(dist-common) 78 $(call install-data,$(src_base)/README,$(dist_prefix)/$(path)/README) 79 80$(dist-win): $(dist-common) 81 $(call install-data,$(src_base)/README,$(dist_prefix)/$(path)/README.txt) 82 $(call message,,todos $(dist_prefix)/$(path)/README.txt) 83 84 85# Clean. 86# 87$(clean): $(driver).o.clean \ 88 $(addsuffix .cxx.clean,$(obj)) \ 89 $(addsuffix .cxx.clean,$(dep)) \ 90 $(addprefix $(out_base)/,$(xsd:.xsd=.cxx.xsd.clean)) 91 $(call message,rm $$1,rm -f $$1,$(out_base)/out.xml) 92 93# Generated .gitignore. 94# 95ifeq ($(out_base),$(src_base)) 96$(gen): | $(out_base)/.gitignore 97$(driver): | $(out_base)/.gitignore 98 99$(out_base)/.gitignore: files := driver out.xml $(genf) 100$(clean): $(out_base)/.gitignore.clean 101 102$(call include,$(bld_root)/git/gitignore.make) 103endif 104 105# How to. 106# 107$(call include,$(bld_root)/cxx/o-e.make) 108$(call include,$(bld_root)/cxx/cxx-o.make) 109$(call include,$(bld_root)/cxx/cxx-d.make) 110$(call include,$(bld_root)/install.make) 111$(call include,$(scf_root)/xsd/tree/xsd-cxx.make) 112 113# Dependencies. 114# 115$(call import,$(src_root)/xsd/makefile) 116