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