summaryrefslogtreecommitdiff
path: root/dist/examples/cxx/tree/custom/taxonomy/makefile
blob: 11fa6efda1372bd85718ecaa412c6f32e45252ad (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
root := ../../../..

include $(root)/build/cxx/rules.make
include $(root)/build/xsd/tree-rules.make


override XSDFLAGS += --generate-inline --generate-forward \
--generate-polymorphic \
--polymorphic-type person \
--custom-type "person=person_impl<person_base>/person_base" \
--custom-type "superman=superman_impl<superman_base>/superman_base" \
--custom-type "batman=batman_impl<batman_base>/batman_base" \
--fwd-prologue '\#include "people-custom-fwd.hxx"' \
--hxx-prologue '\#include "people-custom.hxx"'


# Build.
#
driver: driver.o people.o people-custom.o

people.o: people.cxx people.ixx people.hxx people-custom.hxx people-custom-fwd.hxx
driver.o: driver.cxx people.ixx people.hxx people-custom.hxx people-custom-fwd.hxx
people-custom.o: people-custom.cxx people.ixx people.hxx people-custom.hxx people-custom-fwd.hxx

people.cxx people.ixx people.hxx people-fwd.hxx: people.xsd


# Test
#
.PHONY: test
test: driver people.xml
	./driver people.xml


# Clean.
#
.PHONY: clean
clean:
	rm -f people-custom.o people.o people-fwd.hxx people.?xx driver.o driver