1# file : tests/cxx/parser/enumeration/makefile 2# copyright : Copyright (c) 2006-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 := test.xsd 8cxx := driver.cxx 9 10obj := $(addprefix $(out_base)/,$(cxx:.cxx=.o) $(xsd:.xsd=-pskel.o)) 11dep := $(obj:.o=.o.d) 12 13driver := $(out_base)/driver 14test := $(out_base)/.test 15clean := $(out_base)/.clean 16 17# Import. 18# 19$(call import,\ 20 $(scf_root)/import/libxerces-c/stub.make,\ 21 l: xerces_c.l,cpp-options: xerces_c.l.cpp-options) 22 23# Build. 24# 25$(driver): $(obj) $(xerces_c.l) 26 27$(obj) $(dep): cpp_options := -I$(out_base) -I$(src_base) -I$(src_root)/libxsd 28$(obj) $(dep): $(xerces_c.l.cpp-options) 29 30genf := $(xsd:.xsd=-pskel.hxx) $(xsd:.xsd=-pskel.ixx) $(xsd:.xsd=-pskel.cxx) 31gen := $(addprefix $(out_base)/,$(genf)) 32 33$(gen): xsd := $(out_root)/xsd/xsd 34$(gen): xsd_options += --type-map $(src_base)/test.map 35$(gen): $(out_root)/xsd/xsd $(src_base)/test.map 36 37$(call include-dep,$(dep),$(obj),$(gen)) 38 39# Convenience alias for default target. 40# 41$(out_base)/: $(driver) 42 43 44# Test. 45# 46$(test): driver := $(driver) 47$(test): $(driver) $(src_base)/test.xml $(src_base)/output 48 $(call message,test $$1,$$1 $(src_base)/test.xml | diff -u $(src_base)/output -,$(driver)) 49 50# Clean. 51# 52$(clean): $(driver).o.clean \ 53 $(addsuffix .cxx.clean,$(obj)) \ 54 $(addsuffix .cxx.clean,$(dep)) \ 55 $(addprefix $(out_base)/,$(xsd:.xsd=-pskel.cxx.xsd.clean)) 56 57# Generated .gitignore. 58# 59ifeq ($(out_base),$(src_base)) 60$(gen): | $(out_base)/.gitignore 61$(driver): | $(out_base)/.gitignore 62 63$(out_base)/.gitignore: files := driver $(genf) 64$(clean): $(out_base)/.gitignore.clean 65 66$(call include,$(bld_root)/git/gitignore.make) 67endif 68 69# How to. 70# 71$(call include,$(bld_root)/cxx/o-e.make) 72$(call include,$(bld_root)/cxx/cxx-o.make) 73$(call include,$(bld_root)/cxx/cxx-d.make) 74 75$(call include,$(bld_root)/cxx/standard.make) # cxx_standard 76ifdef cxx_standard 77$(gen): xsd_options += --std $(cxx_standard) 78$(call include,$(scf_root)/xsd/parser/xsd-cxx.make) 79endif 80 81 82# Dependencies. 83# 84$(call import,$(src_root)/xsd/makefile) 85