aboutsummaryrefslogtreecommitdiff
path: root/tests
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2009-10-20 10:50:22 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2009-10-20 10:50:22 +0200
commitb135374d5e40df21871b3e0c9efc69ba2d8361cb (patch)
tree0f53bf8253ff16b7ce176f47b56e4ac879a768c6 /tests
parent54ed525e5b8680e8737b7750fd73458d9ef1d30c (diff)
Add tests to the distribution
The distribution makefiles for tests are automatically generated by the build/dist script. nmakefiles are not yet generated.
Diffstat (limited to 'tests')
-rw-r--r--tests/cxx/hashmap/makefile20
-rw-r--r--tests/cxx/hybrid/binary/cdr/makefile27
-rw-r--r--tests/cxx/hybrid/binary/xdr/makefile26
-rw-r--r--tests/cxx/hybrid/built-in/makefile24
-rw-r--r--tests/cxx/hybrid/choice/makefile25
-rw-r--r--tests/cxx/hybrid/default/makefile25
-rw-r--r--tests/cxx/hybrid/iterator/makefile23
-rw-r--r--tests/cxx/hybrid/list/makefile25
-rw-r--r--tests/cxx/hybrid/makefile36
-rw-r--r--tests/cxx/hybrid/polymorphism/makefile21
-rw-r--r--tests/cxx/hybrid/polymorphism/multischema/makefile30
-rw-r--r--tests/cxx/hybrid/recursive/makefile25
-rw-r--r--tests/cxx/hybrid/sequences/makefile20
-rw-r--r--tests/cxx/hybrid/test-template/makefile25
-rw-r--r--tests/cxx/hybrid/union/makefile25
-rw-r--r--tests/cxx/makefile25
-rw-r--r--tests/cxx/parser/built-in/makefile21
-rw-r--r--tests/cxx/parser/duplicate/makefile26
-rw-r--r--tests/cxx/parser/enumeration/makefile25
-rw-r--r--tests/cxx/parser/error-handling/codes/makefile25
-rw-r--r--tests/cxx/parser/error-handling/exceptions/makefile24
-rw-r--r--tests/cxx/parser/error-handling/makefile25
-rw-r--r--tests/cxx/parser/generated-impl/makefile26
-rw-r--r--tests/cxx/parser/list/makefile22
-rw-r--r--tests/cxx/parser/makefile47
-rw-r--r--tests/cxx/parser/name-clash/inheritance/makefile22
-rw-r--r--tests/cxx/parser/polymorphism/makefile23
-rw-r--r--tests/cxx/parser/recursive/makefile21
-rw-r--r--tests/cxx/parser/reset/makefile21
-rw-r--r--tests/cxx/parser/test-template/makefile22
-rw-r--r--tests/cxx/parser/union/makefile22
-rw-r--r--tests/cxx/parser/validation/all/makefile21
-rw-r--r--tests/cxx/parser/validation/any/makefile21
-rw-r--r--tests/cxx/parser/validation/attribute/makefile22
-rw-r--r--tests/cxx/parser/validation/built-in/any-type/makefile21
-rw-r--r--tests/cxx/parser/validation/built-in/binary/makefile20
-rw-r--r--tests/cxx/parser/validation/built-in/boolean/makefile20
-rw-r--r--tests/cxx/parser/validation/built-in/byte/makefile20
-rw-r--r--tests/cxx/parser/validation/built-in/date-time/makefile19
-rw-r--r--tests/cxx/parser/validation/built-in/float/makefile20
-rw-r--r--tests/cxx/parser/validation/built-in/int/makefile20
-rw-r--r--tests/cxx/parser/validation/built-in/integer/makefile20
-rw-r--r--tests/cxx/parser/validation/built-in/long-long/makefile20
-rw-r--r--tests/cxx/parser/validation/built-in/long/makefile20
-rw-r--r--tests/cxx/parser/validation/built-in/makefile30
-rw-r--r--tests/cxx/parser/validation/built-in/qname/makefile20
-rw-r--r--tests/cxx/parser/validation/built-in/short/makefile20
-rw-r--r--tests/cxx/parser/validation/built-in/string/makefile20
-rw-r--r--tests/cxx/parser/validation/built-in/uri/makefile20
-rw-r--r--tests/cxx/parser/validation/choice/makefile21
-rw-r--r--tests/cxx/parser/validation/makefile25
-rw-r--r--tests/cxx/parser/validation/restriction/makefile21
-rw-r--r--tests/cxx/parser/validation/sequence/makefile21
-rw-r--r--tests/cxx/serializer/all/makefile22
-rw-r--r--tests/cxx/serializer/built-in/driver.cxx18
-rw-r--r--tests/cxx/serializer/built-in/makefile21
-rw-r--r--tests/cxx/serializer/built-in/test-000.xml1
-rw-r--r--tests/cxx/serializer/built-in/test-001.xml1
-rw-r--r--tests/cxx/serializer/choice/makefile22
-rw-r--r--tests/cxx/serializer/complex/makefile22
-rw-r--r--tests/cxx/serializer/enumeration/makefile26
-rw-r--r--tests/cxx/serializer/error-handling/codes/makefile22
-rw-r--r--tests/cxx/serializer/error-handling/exceptions/makefile22
-rw-r--r--tests/cxx/serializer/error-handling/makefile25
-rw-r--r--tests/cxx/serializer/generated-driver/makefile29
-rw-r--r--tests/cxx/serializer/list/makefile22
-rw-r--r--tests/cxx/serializer/makefile49
-rw-r--r--tests/cxx/serializer/polymorphism/makefile23
-rw-r--r--tests/cxx/serializer/recursive/makefile22
-rw-r--r--tests/cxx/serializer/reset/makefile22
-rw-r--r--tests/cxx/serializer/restriction/makefile22
-rw-r--r--tests/cxx/serializer/sequence/makefile22
-rw-r--r--tests/cxx/serializer/test-template/makefile22
-rw-r--r--tests/cxx/serializer/union/makefile22
-rw-r--r--tests/cxx/serializer/validation/any/makefile22
-rw-r--r--tests/cxx/serializer/validation/attribute/makefile22
-rw-r--r--tests/cxx/serializer/validation/built-in/date-time/makefile20
-rw-r--r--tests/cxx/serializer/validation/built-in/decimal/makefile20
-rw-r--r--tests/cxx/serializer/validation/built-in/integer/makefile20
-rw-r--r--tests/cxx/serializer/validation/built-in/makefile22
-rw-r--r--tests/cxx/serializer/validation/built-in/qname/makefile20
-rw-r--r--tests/cxx/serializer/validation/built-in/string/makefile19
-rw-r--r--tests/cxx/serializer/validation/choice/makefile22
-rw-r--r--tests/cxx/serializer/validation/element/makefile22
-rw-r--r--tests/cxx/serializer/validation/makefile25
-rw-r--r--tests/cxx/serializer/validation/sequence/makefile22
-rw-r--r--tests/cxx/serializer/wildcard/makefile22
-rw-r--r--tests/cxx/string/makefile20
-rw-r--r--tests/makefile14
89 files changed, 1657 insertions, 348 deletions
diff --git a/tests/cxx/hashmap/makefile b/tests/cxx/hashmap/makefile
index 6334dc2..0438876 100644
--- a/tests/cxx/hashmap/makefile
+++ b/tests/cxx/hashmap/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/binary/cdr/makefile b/tests/cxx/hybrid/binary/cdr/makefile
index f5fa36f..684a63c 100644
--- a/tests/cxx/hybrid/binary/cdr/makefile
+++ b/tests/cxx/hybrid/binary/cdr/makefile
@@ -21,9 +21,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
#
@@ -41,8 +43,9 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(out_root)/xsde/xsde
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-parser --generate-serializer \
---generate-aggregate --generate-extraction CDR --generate-insertion CDR
+$(gen) $(dist) $(dist-win): xsde_options += --generate-parser \
+--generate-serializer --generate-aggregate --generate-extraction CDR \
+--generate-insertion CDR
$(call include-dep,$(dep))
@@ -57,6 +60,20 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-hybrid -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix) \
+-lib ACE
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/binary/xdr/makefile b/tests/cxx/hybrid/binary/xdr/makefile
index 348f3b9..28a1735 100644
--- a/tests/cxx/hybrid/binary/xdr/makefile
+++ b/tests/cxx/hybrid/binary/xdr/makefile
@@ -21,9 +21,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -42,8 +44,9 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(out_root)/xsde/xsde
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-parser --generate-serializer \
---generate-aggregate --generate-extraction XDR --generate-insertion XDR
+$(gen) $(dist) $(dist-win): xsde_options += --generate-parser \
+--generate-serializer --generate-aggregate --generate-extraction XDR \
+--generate-insertion XDR
$(call include-dep,$(dep))
@@ -58,6 +61,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-hybrid -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/built-in/makefile b/tests/cxx/hybrid/built-in/makefile
index d9531d5..c55e08a 100644
--- a/tests/cxx/hybrid/built-in/makefile
+++ b/tests/cxx/hybrid/built-in/makefile
@@ -21,9 +21,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -42,8 +44,8 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(out_root)/xsde/xsde
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-parser --generate-serializer \
---generate-aggregate
+$(gen) $(dist) $(dist-win): xsde_options += --generate-parser \
+--generate-serializer --generate-aggregate
$(call include-dep,$(dep))
@@ -58,6 +60,18 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-hybrid -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/choice/makefile b/tests/cxx/hybrid/choice/makefile
index 91c893a..47db413 100644
--- a/tests/cxx/hybrid/choice/makefile
+++ b/tests/cxx/hybrid/choice/makefile
@@ -21,9 +21,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -42,8 +44,8 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(out_root)/xsde/xsde
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-parser --generate-serializer \
---generate-aggregate
+$(gen) $(dist) $(dist-win): xsde_options += --generate-parser \
+--generate-serializer --generate-aggregate
$(call include-dep,$(dep))
@@ -58,6 +60,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-hybrid -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/default/makefile b/tests/cxx/hybrid/default/makefile
index 5dd5d04..b51a877 100644
--- a/tests/cxx/hybrid/default/makefile
+++ b/tests/cxx/hybrid/default/makefile
@@ -21,9 +21,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -42,8 +44,8 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(out_root)/xsde/xsde
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-parser --generate-serializer \
---generate-aggregate
+$(gen) $(dist) $(dist-win): xsde_options += --generate-parser \
+--generate-serializer --generate-aggregate
$(call include-dep,$(dep))
@@ -58,6 +60,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-hybrid -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/iterator/makefile b/tests/cxx/hybrid/iterator/makefile
index 74e62c3..ce418b5 100644
--- a/tests/cxx/hybrid/iterator/makefile
+++ b/tests/cxx/hybrid/iterator/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,7 +32,7 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(out_root)/xsde/xsde
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options +=
+$(gen) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -45,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-hybrid -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/list/makefile b/tests/cxx/hybrid/list/makefile
index a4f4de0..952caf7 100644
--- a/tests/cxx/hybrid/list/makefile
+++ b/tests/cxx/hybrid/list/makefile
@@ -21,9 +21,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -42,8 +44,8 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(out_root)/xsde/xsde
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-parser --generate-serializer \
---generate-aggregate
+$(gen) $(dist) $(dist-win): xsde_options += --generate-parser \
+--generate-serializer --generate-aggregate
$(call include-dep,$(dep))
@@ -58,6 +60,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-hybrid -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/makefile b/tests/cxx/hybrid/makefile
index a30ac41..426ad36 100644
--- a/tests/cxx/hybrid/makefile
+++ b/tests/cxx/hybrid/makefile
@@ -5,41 +5,55 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make
-tests := sequences
+# NOTE: remember to update dist/tests/cxx/hybrid/{makefile,nmakefile} if
+# you change anything here.
+#
+
+all_tests := sequences polymorphism iterator built-in default list \
+recursive test-template union binary/cdr binary/xdr choice
+
+build_tests := sequences
ifeq ($(xsde_polymorphic),y)
-tests += polymorphism
+build_tests += polymorphism
endif
ifeq ($(xsde_stl),y)
ifeq ($(xsde_stl_iterator),y)
-tests += iterator
+build_tests += iterator
endif
endif
ifeq ($(xsde_iostream),y)
-tests += built-in default list recursive test-template union
+build_tests += built-in default list recursive test-template union
ifeq ($(xsde_cdr),y)
-tests += binary/cdr
+build_tests += binary/cdr
endif
ifeq ($(xsde_xdr),y)
-tests += binary/xdr
+build_tests += binary/xdr
endif
ifeq ($(xsde_parser_validation),y)
-tests += choice
+build_tests += choice
endif
endif # xsde_iostream
default := $(out_base)/
test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
clean := $(out_base)/.clean
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_tests)))
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_tests)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_tests)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_tests)))
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach t,$(all_tests),$(call import,$(src_base)/$t/makefile))
+else
+$(foreach t,$(build_tests),$(call import,$(src_base)/$t/makefile))
+endif
diff --git a/tests/cxx/hybrid/polymorphism/makefile b/tests/cxx/hybrid/polymorphism/makefile
index 94bcc89..a1daa54 100644
--- a/tests/cxx/hybrid/polymorphism/makefile
+++ b/tests/cxx/hybrid/polymorphism/makefile
@@ -5,18 +5,27 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
-tests :=
+all_tests := multischema
+
+build_tests :=
ifeq ($(xsde_iostream),y)
-tests += multischema
+build_tests += multischema
endif
default := $(out_base)/
test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
clean := $(out_base)/.clean
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_tests)))
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_tests)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_tests)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_tests)))
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach t,$(all_tests),$(call import,$(src_base)/$t/makefile))
+else
+$(foreach t,$(build_tests),$(call import,$(src_base)/$t/makefile))
+endif
diff --git a/tests/cxx/hybrid/polymorphism/multischema/makefile b/tests/cxx/hybrid/polymorphism/multischema/makefile
index 96ce17f..1899fea 100644
--- a/tests/cxx/hybrid/polymorphism/multischema/makefile
+++ b/tests/cxx/hybrid/polymorphism/multischema/makefile
@@ -21,9 +21,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -42,10 +44,11 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(out_root)/xsde/xsde
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-parser --generate-serializer \
---generate-aggregate --generate-polymorphic --generate-typeinfo \
---polymorphic-type base --polymorphic-schema $(src_base)/type.xsd \
---include-regex '%.*/([^/]*)%$$$$1%'
+$(gen): xsde_options += --include-regex '%.*/([^/]*)%$$$$1%'
+$(gen) $(dist) $(dist-win): xsde_options += --generate-parser \
+--generate-serializer --generate-aggregate --generate-polymorphic \
+--generate-typeinfo --polymorphic-type base \
+--polymorphic-schema $(src_base)/type.xsd
$(call include-dep,$(dep))
@@ -60,6 +63,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-hybrid -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/recursive/makefile b/tests/cxx/hybrid/recursive/makefile
index b7975b6..f2cfac4 100644
--- a/tests/cxx/hybrid/recursive/makefile
+++ b/tests/cxx/hybrid/recursive/makefile
@@ -21,9 +21,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -42,8 +44,8 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(out_root)/xsde/xsde
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-parser --generate-serializer \
---generate-aggregate
+$(gen) $(dist) $(dist-win): xsde_options += --generate-parser \
+--generate-serializer --generate-aggregate
$(call include-dep,$(dep))
@@ -58,6 +60,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-hybrid -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/sequences/makefile b/tests/cxx/hybrid/sequences/makefile
index 3078125..f572df9 100644
--- a/tests/cxx/hybrid/sequences/makefile
+++ b/tests/cxx/hybrid/sequences/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/test-template/makefile b/tests/cxx/hybrid/test-template/makefile
index f4a22ed..9c71191 100644
--- a/tests/cxx/hybrid/test-template/makefile
+++ b/tests/cxx/hybrid/test-template/makefile
@@ -21,9 +21,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -42,8 +44,8 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(out_root)/xsde/xsde
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-parser --generate-serializer \
---generate-aggregate
+$(gen) $(dist) $(dist-win): xsde_options += --generate-parser \
+--generate-serializer --generate-aggregate
$(call include-dep,$(dep))
@@ -58,6 +60,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-hybrid -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/hybrid/union/makefile b/tests/cxx/hybrid/union/makefile
index e3ff63e..d41006c 100644
--- a/tests/cxx/hybrid/union/makefile
+++ b/tests/cxx/hybrid/union/makefile
@@ -21,9 +21,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -42,8 +44,8 @@ gen := $(addprefix $(out_base)/,$(genf))
$(gen): $(out_root)/xsde/xsde
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-parser --generate-serializer \
---generate-aggregate --generate-detach
+$(gen) $(dist) $(dist-win): xsde_options += --generate-parser \
+--generate-serializer --generate-aggregate --generate-detach
$(call include-dep,$(dep))
@@ -58,6 +60,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-hybrid -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/makefile b/tests/cxx/makefile
index 0105b47..e9ba41b 100644
--- a/tests/cxx/makefile
+++ b/tests/cxx/makefile
@@ -5,18 +5,31 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make
-tests := hybrid parser serializer string
+# NOTE: remember to update dist/tests/cxx/{makefile,nmakefile} if
+# you change anything here.
+#
+
+all_tests := hybrid parser serializer string hashmap
+
+build_tests := hybrid parser serializer string
ifeq ($(xsde_polymorphic),y)
-tests += hashmap
+build_tests += hashmap
endif
default := $(out_base)/
test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
clean := $(out_base)/.clean
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_tests)))
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_tests)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_tests)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_tests)))
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach t,$(all_tests),$(call import,$(src_base)/$t/makefile))
+else
+$(foreach t,$(build_tests),$(call import,$(src_base)/$t/makefile))
+endif
diff --git a/tests/cxx/parser/built-in/makefile b/tests/cxx/parser/built-in/makefile
index 49eb681..c6146e9 100644
--- a/tests/cxx/parser/built-in/makefile
+++ b/tests/cxx/parser/built-in/makefile
@@ -16,9 +16,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -32,6 +34,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -52,6 +55,18 @@ $(out_base)/.test-%: $(driver) $(src_base)/test.xsd $(src_base)/test-%.xml $(src
$(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xml | diff -u $(src_base)/test-$*.std -)
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/duplicate/makefile b/tests/cxx/parser/duplicate/makefile
index 8c7b717..1d3cfd4 100644
--- a/tests/cxx/parser/duplicate/makefile
+++ b/tests/cxx/parser/duplicate/makefile
@@ -5,6 +5,7 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
+cxx :=
xsd := test.xsd
obj := $(addprefix $(out_base)/,$(xsd:.xsd=-pskel.o) $(xsd:.xsd=-pimpl.o) $(xsd:.xsd=-pdriver.o))
@@ -13,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/$(xsd:.xsd=-pdriver)
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/$(xsd:.xsd=-pdriver)
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,8 +33,8 @@ genf := $(xsd:.xsd=-pskel.hxx) $(xsd:.xsd=-pskel.ixx) $(xsd:.xsd=-pskel.cxx) \
gen := $(addprefix $(out_base)/,$(genf))
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-print-impl --generate-test-driver \
---force-overwrite
+$(gen) $(dist) $(dist-win): xsde_options += --generate-print-impl \
+--generate-test-driver --force-overwrite
$(gen): $(out_root)/xsde/xsde
$(call include-dep,$(dep))
@@ -47,6 +50,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/enumeration/makefile b/tests/cxx/parser/enumeration/makefile
index 0997aab..91fa48b 100644
--- a/tests/cxx/parser/enumeration/makefile
+++ b/tests/cxx/parser/enumeration/makefile
@@ -7,6 +7,7 @@ include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
xsd := test.xsd
cxx := driver.cxx
+hxx := gender.hxx
obj := $(addprefix $(out_base)/,$(cxx:.cxx=.o) $(xsd:.xsd=-pskel.o))
dep := $(obj:.o=.o.d)
@@ -14,9 +15,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,7 +33,7 @@ skelf := $(xsd:.xsd=-pskel.hxx) $(xsd:.xsd=-pskel.ixx) $(xsd:.xsd=-pskel.cxx)
skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
-$(skel): xsde_options += --type-map $(src_base)/test.map
+$(skel) $(dist) $(dist-win): xsde_options += --type-map $(src_base)/test.map
$(skel): $(out_root)/xsde/xsde $(src_base)/test.map
@@ -48,6 +51,20 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -hxx "$(hxx)" -gen "$(skelf)" -opt "$(xsde_options)" \
+-out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/error-handling/codes/makefile b/tests/cxx/parser/error-handling/codes/makefile
index 370db75..444b46b 100644
--- a/tests/cxx/parser/error-handling/codes/makefile
+++ b/tests/cxx/parser/error-handling/codes/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -29,8 +31,8 @@ skelf := $(xsd:.xsd=-pskel.hxx) $(xsd:.xsd=-pskel.ixx) $(xsd:.xsd=-pskel.cxx)
skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
-$(skel): xsde_options += --no-exceptions --type-map $(src_base)/test.map
-
+$(skel) $(dist) $(dist-win): xsde_options += --no-exceptions \
+--type-map $(src_base)/test.map
$(skel): $(out_root)/xsde/xsde $(src_base)/test.map
$(call include-dep,$(dep))
@@ -46,6 +48,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/error-handling/exceptions/makefile b/tests/cxx/parser/error-handling/exceptions/makefile
index e1a038c..c347a1e 100644
--- a/tests/cxx/parser/error-handling/exceptions/makefile
+++ b/tests/cxx/parser/error-handling/exceptions/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -29,8 +31,7 @@ skelf := $(xsd:.xsd=-pskel.hxx) $(xsd:.xsd=-pskel.ixx) $(xsd:.xsd=-pskel.cxx)
skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
-$(skel): xsde_options += --type-map $(src_base)/test.map
-
+$(skel) $(dist) $(dist-win): xsde_options += --type-map $(src_base)/test.map
$(skel): $(out_root)/xsde/xsde $(src_base)/test.map
@@ -47,6 +48,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/error-handling/makefile b/tests/cxx/parser/error-handling/makefile
index a9eaa6f..739e16f 100644
--- a/tests/cxx/parser/error-handling/makefile
+++ b/tests/cxx/parser/error-handling/makefile
@@ -5,18 +5,31 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
+# NOTE: remember to update dist/tests/cxx/parser/error-handling/{makefile,
+# nmakefile} if you change anything here.
+#
+
+all_tests := codes exceptions
+
ifeq ($(xsde_exceptions),y)
-tests := exceptions
+build_tests := exceptions
else
-tests := codes
+build_tests := codes
endif
default := $(out_base)/
test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
clean := $(out_base)/.clean
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_tests)))
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_tests)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_tests)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_tests)))
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach t,$(all_tests),$(call import,$(src_base)/$t/makefile))
+else
+$(foreach t,$(build_tests),$(call import,$(src_base)/$t/makefile))
+endif
diff --git a/tests/cxx/parser/generated-impl/makefile b/tests/cxx/parser/generated-impl/makefile
index 7d5d6f6..aeda4a4 100644
--- a/tests/cxx/parser/generated-impl/makefile
+++ b/tests/cxx/parser/generated-impl/makefile
@@ -5,6 +5,7 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
+cxx :=
xsd := test.xsd
obj := $(addprefix $(out_base)/,$(xsd:.xsd=-pskel.o) $(xsd:.xsd=-pimpl.o) $(xsd:.xsd=-pdriver.o))
@@ -13,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/$(xsd:.xsd=-pdriver)
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/$(xsd:.xsd=-pdriver)
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,8 +33,8 @@ genf := $(xsd:.xsd=-pskel.hxx) $(xsd:.xsd=-pskel.ixx) $(xsd:.xsd=-pskel.cxx) \
gen := $(addprefix $(out_base)/,$(genf))
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-print-impl --generate-test-driver \
---force-overwrite
+$(gen) $(dist) $(dist-win): xsde_options += --generate-print-impl \
+--generate-test-driver --force-overwrite
$(gen): $(out_root)/xsde/xsde
$(call include-dep,$(dep))
@@ -47,6 +50,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(genf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/list/makefile b/tests/cxx/parser/list/makefile
index e709106..ce422ed 100644
--- a/tests/cxx/parser/list/makefile
+++ b/tests/cxx/parser/list/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/makefile b/tests/cxx/parser/makefile
index 1f749df..8b11959 100644
--- a/tests/cxx/parser/makefile
+++ b/tests/cxx/parser/makefile
@@ -5,19 +5,27 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make
-tests := generated-impl duplicate
+# NOTE: remember to update dist/tests/cxx/parser/{makefile,nmakefile} if
+# you change anything here.
+#
+
+all_tests := generated-impl duplicate built-in recursive test-template \
+union enumeration list polymorphism reset validation error-handling \
+name-clash/inheritance
+
+build_tests := generated-impl duplicate
ifeq ($(xsde_iostream),y)
ifeq ($(xsde_exceptions),y)
-tests += \
-built-in \
-recursive \
-test-template \
+build_tests += \
+built-in \
+recursive \
+test-template \
union
ifeq ($(xsde_reuse_style),tiein)
-tests += \
-enumeration \
+build_tests += \
+enumeration \
list
endif
@@ -25,33 +33,40 @@ endif # exceptions
ifeq ($(xsde_polymorphic),y)
ifeq ($(xsde_reuse_style),tiein)
-tests += polymorphism
+build_tests += polymorphism
endif
endif
-tests += reset
+build_tests += reset
endif # iostream
ifeq ($(xsde_parser_validation),y)
-tests += validation
+build_tests += validation
ifeq ($(xsde_iostream),y)
-tests += error-handling
+build_tests += error-handling
ifeq ($(xsde_exceptions),y)
-tests += name-clash/inheritance
+build_tests += name-clash/inheritance
endif
endif
endif
default := $(out_base)/
test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
clean := $(out_base)/.clean
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_tests)))
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_tests)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_tests)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_tests)))
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach t,$(all_tests),$(call import,$(src_base)/$t/makefile))
+else
+$(foreach t,$(build_tests),$(call import,$(src_base)/$t/makefile))
+endif
diff --git a/tests/cxx/parser/name-clash/inheritance/makefile b/tests/cxx/parser/name-clash/inheritance/makefile
index 56599cd..04127c4 100644
--- a/tests/cxx/parser/name-clash/inheritance/makefile
+++ b/tests/cxx/parser/name-clash/inheritance/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/polymorphism/makefile b/tests/cxx/parser/polymorphism/makefile
index e60f68e..14249b7 100644
--- a/tests/cxx/parser/polymorphism/makefile
+++ b/tests/cxx/parser/polymorphism/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -29,8 +31,8 @@ skelf := $(xsd:.xsd=-pskel.hxx) $(xsd:.xsd=-pskel.ixx) $(xsd:.xsd=-pskel.cxx)
skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
-$(skel): xsde_options += --generate-polymorphic
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options += --generate-polymorphic
$(call include-dep,$(dep))
@@ -45,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/recursive/makefile b/tests/cxx/parser/recursive/makefile
index 722bae6..a56168f 100644
--- a/tests/cxx/parser/recursive/makefile
+++ b/tests/cxx/parser/recursive/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -45,6 +48,18 @@ $(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/reset/makefile b/tests/cxx/parser/reset/makefile
index a89ff92..1453430 100644
--- a/tests/cxx/parser/reset/makefile
+++ b/tests/cxx/parser/reset/makefile
@@ -16,9 +16,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -32,6 +34,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -52,6 +55,18 @@ $(out_base)/.test-%: $(driver) $(src_base)/test.xsd $(src_base)/test-%.xml $(src
$(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xml | diff -u $(src_base)/test-$*.std -)
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/test-template/makefile b/tests/cxx/parser/test-template/makefile
index 3d95a16..f5b3846 100644
--- a/tests/cxx/parser/test-template/makefile
+++ b/tests/cxx/parser/test-template/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/union/makefile b/tests/cxx/parser/union/makefile
index 42a14e7..35351ed 100644
--- a/tests/cxx/parser/union/makefile
+++ b/tests/cxx/parser/union/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/all/makefile b/tests/cxx/parser/validation/all/makefile
index c16798c..bd73f30 100644
--- a/tests/cxx/parser/validation/all/makefile
+++ b/tests/cxx/parser/validation/all/makefile
@@ -16,9 +16,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -32,6 +34,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -53,6 +56,18 @@ $(out_base)/.test-%: $(driver) $(src_base)/test.xsd $(src_base)/test-%.xml $(src
$(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xml | diff -u $(src_base)/test-$*.std -)
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/any/makefile b/tests/cxx/parser/validation/any/makefile
index ffd3d07..11f3017 100644
--- a/tests/cxx/parser/validation/any/makefile
+++ b/tests/cxx/parser/validation/any/makefile
@@ -16,9 +16,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -32,6 +34,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -53,6 +56,18 @@ $(out_base)/.test-%: $(driver) $(src_base)/test.xsd $(src_base)/test-%.xml $(src
$(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xml | diff -u $(src_base)/test-$*.std -)
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/attribute/makefile b/tests/cxx/parser/validation/attribute/makefile
index 078ed49..58b13d6 100644
--- a/tests/cxx/parser/validation/attribute/makefile
+++ b/tests/cxx/parser/validation/attribute/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.xml $(src_base)/test-000.std
$(call message,test $$1,$$1 $(src_base)/test-000.xml | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/any-type/makefile b/tests/cxx/parser/validation/built-in/any-type/makefile
index a96c8b7..b76f236 100644
--- a/tests/cxx/parser/validation/built-in/any-type/makefile
+++ b/tests/cxx/parser/validation/built-in/any-type/makefile
@@ -16,9 +16,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -32,6 +34,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -53,6 +56,18 @@ $(out_base)/.test-%: $(driver) $(src_base)/test.xsd $(src_base)/test-%.xml $(src
$(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xml | diff -u $(src_base)/test-$*.std -)
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/binary/makefile b/tests/cxx/parser/validation/built-in/binary/makefile
index 4157bd0..8693be4 100644
--- a/tests/cxx/parser/validation/built-in/binary/makefile
+++ b/tests/cxx/parser/validation/built-in/binary/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/boolean/makefile b/tests/cxx/parser/validation/built-in/boolean/makefile
index 46adc3d..a4a7b2b 100644
--- a/tests/cxx/parser/validation/built-in/boolean/makefile
+++ b/tests/cxx/parser/validation/built-in/boolean/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/byte/makefile b/tests/cxx/parser/validation/built-in/byte/makefile
index 02e2641..265d7cd 100644
--- a/tests/cxx/parser/validation/built-in/byte/makefile
+++ b/tests/cxx/parser/validation/built-in/byte/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/date-time/makefile b/tests/cxx/parser/validation/built-in/date-time/makefile
index 00bceae..6fc6389 100644
--- a/tests/cxx/parser/validation/built-in/date-time/makefile
+++ b/tests/cxx/parser/validation/built-in/date-time/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,17 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/float/makefile b/tests/cxx/parser/validation/built-in/float/makefile
index c24330e..3668966 100644
--- a/tests/cxx/parser/validation/built-in/float/makefile
+++ b/tests/cxx/parser/validation/built-in/float/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/int/makefile b/tests/cxx/parser/validation/built-in/int/makefile
index 9ab788d..999250c 100644
--- a/tests/cxx/parser/validation/built-in/int/makefile
+++ b/tests/cxx/parser/validation/built-in/int/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/integer/makefile b/tests/cxx/parser/validation/built-in/integer/makefile
index d89e2f5..ce75af2 100644
--- a/tests/cxx/parser/validation/built-in/integer/makefile
+++ b/tests/cxx/parser/validation/built-in/integer/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/long-long/makefile b/tests/cxx/parser/validation/built-in/long-long/makefile
index c973217..aa4939f 100644
--- a/tests/cxx/parser/validation/built-in/long-long/makefile
+++ b/tests/cxx/parser/validation/built-in/long-long/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/long/makefile b/tests/cxx/parser/validation/built-in/long/makefile
index 2e63122..9816c09 100644
--- a/tests/cxx/parser/validation/built-in/long/makefile
+++ b/tests/cxx/parser/validation/built-in/long/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/makefile b/tests/cxx/parser/validation/built-in/makefile
index b5bbc4f..4c8638f 100644
--- a/tests/cxx/parser/validation/built-in/makefile
+++ b/tests/cxx/parser/validation/built-in/makefile
@@ -5,29 +5,43 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../../../build/bootstrap.make
-tests := binary boolean byte date-time float int integer qname short \
+# NOTE: remember to update dist/tests/cxx/parser/validation/built-in/
+# {makefile,nmakefile} if you change anything here.
+#
+
+all_tests := binary boolean byte date-time float int integer qname short \
+string uri any-type long long-long
+
+build_tests := binary boolean byte date-time float int integer qname short \
string uri
ifeq ($(xsde_iostream),y)
ifeq ($(xsde_exceptions),y)
ifeq ($(xsde_reuse_style),tiein)
-tests += any-type
+build_tests += any-type
endif
endif
endif
ifeq ($(xsde_longlong),y)
-tests += long-long
+build_tests += long-long
else
-tests += long
+build_tests += long
endif
default := $(out_base)/
test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
clean := $(out_base)/.clean
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_tests)))
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_tests)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_tests)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_tests)))
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach t,$(all_tests),$(call import,$(src_base)/$t/makefile))
+else
+$(foreach t,$(build_tests),$(call import,$(src_base)/$t/makefile))
+endif
diff --git a/tests/cxx/parser/validation/built-in/qname/makefile b/tests/cxx/parser/validation/built-in/qname/makefile
index e63b9cd..43ff0f6 100644
--- a/tests/cxx/parser/validation/built-in/qname/makefile
+++ b/tests/cxx/parser/validation/built-in/qname/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/short/makefile b/tests/cxx/parser/validation/built-in/short/makefile
index 5a0ae6e..115b462 100644
--- a/tests/cxx/parser/validation/built-in/short/makefile
+++ b/tests/cxx/parser/validation/built-in/short/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/string/makefile b/tests/cxx/parser/validation/built-in/string/makefile
index 0480486..be94ea0 100644
--- a/tests/cxx/parser/validation/built-in/string/makefile
+++ b/tests/cxx/parser/validation/built-in/string/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/built-in/uri/makefile b/tests/cxx/parser/validation/built-in/uri/makefile
index 2507214..d71acf9 100644
--- a/tests/cxx/parser/validation/built-in/uri/makefile
+++ b/tests/cxx/parser/validation/built-in/uri/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/choice/makefile b/tests/cxx/parser/validation/choice/makefile
index 3ef5134..3e13095 100644
--- a/tests/cxx/parser/validation/choice/makefile
+++ b/tests/cxx/parser/validation/choice/makefile
@@ -16,9 +16,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -32,6 +34,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -52,6 +55,18 @@ $(out_base)/.test-%: $(driver) $(src_base)/test.xsd $(src_base)/test-%.xml $(src
$(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xml | diff -u $(src_base)/test-$*.std -)
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/makefile b/tests/cxx/parser/validation/makefile
index 52ce503..9f674cd 100644
--- a/tests/cxx/parser/validation/makefile
+++ b/tests/cxx/parser/validation/makefile
@@ -5,20 +5,33 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
-tests := built-in
+# NOTE: remember to update dist/tests/cxx/parser/validation/{makefile,
+# nmakefile} if you change anything here.
+#
+
+all_tests := built-in all any attribute choice restriction sequence
+
+build_tests := built-in
ifeq ($(xsde_iostream),y)
ifeq ($(xsde_exceptions),y)
-tests += all any attribute choice restriction sequence
+build_tests += all any attribute choice restriction sequence
endif
endif
default := $(out_base)/
test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
clean := $(out_base)/.clean
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_tests)))
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_tests)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_tests)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_tests)))
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach t,$(all_tests),$(call import,$(src_base)/$t/makefile))
+else
+$(foreach t,$(build_tests),$(call import,$(src_base)/$t/makefile))
+endif
diff --git a/tests/cxx/parser/validation/restriction/makefile b/tests/cxx/parser/validation/restriction/makefile
index 33b6b03..0b73790 100644
--- a/tests/cxx/parser/validation/restriction/makefile
+++ b/tests/cxx/parser/validation/restriction/makefile
@@ -16,9 +16,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -32,6 +34,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -52,6 +55,18 @@ $(out_base)/.test-%: $(driver) $(src_base)/test.xsd $(src_base)/test-%.xml $(src
$(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xml | diff -u $(src_base)/test-$*.std -)
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/parser/validation/sequence/makefile b/tests/cxx/parser/validation/sequence/makefile
index 1483c97..c86ccbc 100644
--- a/tests/cxx/parser/validation/sequence/makefile
+++ b/tests/cxx/parser/validation/sequence/makefile
@@ -16,9 +16,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -32,6 +34,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -52,6 +55,18 @@ $(out_base)/.test-%: $(driver) $(src_base)/test.xsd $(src_base)/test-%.xml $(src
$(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xml | diff -u $(src_base)/test-$*.std -)
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-parser -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/all/makefile b/tests/cxx/serializer/all/makefile
index 260cc30..c023eb9 100644
--- a/tests/cxx/serializer/all/makefile
+++ b/tests/cxx/serializer/all/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/built-in/driver.cxx b/tests/cxx/serializer/built-in/driver.cxx
index 453fd29..9798659 100644
--- a/tests/cxx/serializer/built-in/driver.cxx
+++ b/tests/cxx/serializer/built-in/driver.cxx
@@ -969,6 +969,8 @@ struct root_simpl: root_sskel
case 2:
return gday (15, 0, 0);
}
+
+ return gday (0);
}
virtual bool
@@ -989,6 +991,8 @@ struct root_simpl: root_sskel
case 1:
return gmonth (12, 2, 30);
}
+
+ return gmonth (0);
}
virtual bool
@@ -1009,6 +1013,8 @@ struct root_simpl: root_sskel
case 1:
return gyear (-2007, -2, -30);
}
+
+ return gyear (0);
}
virtual bool
@@ -1029,6 +1035,8 @@ struct root_simpl: root_sskel
case 1:
return gmonth_day (12, 31, 2, 30);
}
+
+ return gmonth_day (0, 0);
}
virtual bool
@@ -1049,6 +1057,8 @@ struct root_simpl: root_sskel
case 1:
return gyear_month (-2007, 12, -2, -30);
}
+
+ return gyear_month (0, 0);
}
virtual bool
@@ -1069,6 +1079,8 @@ struct root_simpl: root_sskel
case 1:
return date (-2007, 12, 31, -2, -30);
}
+
+ return date (0, 0, 0);
}
virtual bool
@@ -1089,6 +1101,8 @@ struct root_simpl: root_sskel
case 1:
return time (23, 59, 59.55, 2, 30);
}
+
+ return time (0, 0, 0);
}
virtual bool
@@ -1109,6 +1123,8 @@ struct root_simpl: root_sskel
case 1:
return date_time (-2007, 12, 31, 23, 59, 59.55, -2, -30);
}
+
+ return date_time (0, 0, 0, 0, 0, 0);
}
virtual bool
@@ -1139,6 +1155,8 @@ struct root_simpl: root_sskel
case 6:
return duration (false, 1, 2, 3, 4, 5, 6.7);
}
+
+ return duration (false, 0, 0, 0, 0, 0, 0);
}
private:
diff --git a/tests/cxx/serializer/built-in/makefile b/tests/cxx/serializer/built-in/makefile
index c0f3c84..5029c5c 100644
--- a/tests/cxx/serializer/built-in/makefile
+++ b/tests/cxx/serializer/built-in/makefile
@@ -16,9 +16,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -32,6 +34,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -55,6 +58,18 @@ $(out_base)/.test-%: $(driver) $(src_base)/test.xsd $(src_base)/test-%.std
$(call message,test $(out_base)/$*,$(driver) $(src_base)/test-$*.xml | diff -u $(src_base)/test-$*.std -)
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/built-in/test-000.xml b/tests/cxx/serializer/built-in/test-000.xml
new file mode 100644
index 0000000..421376d
--- /dev/null
+++ b/tests/cxx/serializer/built-in/test-000.xml
@@ -0,0 +1 @@
+dummy
diff --git a/tests/cxx/serializer/built-in/test-001.xml b/tests/cxx/serializer/built-in/test-001.xml
new file mode 100644
index 0000000..421376d
--- /dev/null
+++ b/tests/cxx/serializer/built-in/test-001.xml
@@ -0,0 +1 @@
+dummy
diff --git a/tests/cxx/serializer/choice/makefile b/tests/cxx/serializer/choice/makefile
index 964345a..c1f958c 100644
--- a/tests/cxx/serializer/choice/makefile
+++ b/tests/cxx/serializer/choice/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/complex/makefile b/tests/cxx/serializer/complex/makefile
index fddcbc4..51f95e9 100644
--- a/tests/cxx/serializer/complex/makefile
+++ b/tests/cxx/serializer/complex/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/enumeration/makefile b/tests/cxx/serializer/enumeration/makefile
index 33e5594..8e8d663 100644
--- a/tests/cxx/serializer/enumeration/makefile
+++ b/tests/cxx/serializer/enumeration/makefile
@@ -7,6 +7,7 @@ include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
xsd := test.xsd
cxx := driver.cxx
+hxx := boolean.hxx
obj := $(addprefix $(out_base)/,$(cxx:.cxx=.o) $(xsd:.xsd=-sskel.o))
dep := $(obj:.o=.o.d)
@@ -14,9 +15,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,8 +33,7 @@ skelf := $(xsd:.xsd=-sskel.hxx) $(xsd:.xsd=-sskel.ixx) $(xsd:.xsd=-sskel.cxx)
skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
-$(skel): xsde_options += --type-map $(src_base)/test.map
-
+$(skel) $(dist) $(dist-win): xsde_options += --type-map $(src_base)/test.map
$(skel): $(out_root)/xsde/xsde $(src_base)/test.map
$(call include-dep,$(dep))
@@ -47,6 +49,20 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer \
+-xsd "$(xsd)" -cxx "$(cxx)" -hxx "$(hxx)" -gen "$(skelf)" \
+-opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/error-handling/codes/makefile b/tests/cxx/serializer/error-handling/codes/makefile
index 3985a4b..a2a67c9 100644
--- a/tests/cxx/serializer/error-handling/codes/makefile
+++ b/tests/cxx/serializer/error-handling/codes/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/error-handling/exceptions/makefile b/tests/cxx/serializer/error-handling/exceptions/makefile
index eed922f..c32c51c 100644
--- a/tests/cxx/serializer/error-handling/exceptions/makefile
+++ b/tests/cxx/serializer/error-handling/exceptions/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/error-handling/makefile b/tests/cxx/serializer/error-handling/makefile
index 360faac..8141718 100644
--- a/tests/cxx/serializer/error-handling/makefile
+++ b/tests/cxx/serializer/error-handling/makefile
@@ -5,18 +5,31 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
+# NOTE: remember to update dist/tests/cxx/serializer/error-handling/
+# {makefile,nmakefile} if you change anything here.
+#
+
+all_tests := codes exceptions
+
ifeq ($(xsde_exceptions),y)
-tests := exceptions
+build_tests := exceptions
else
-tests := codes
+build_tests := codes
endif
default := $(out_base)/
test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
clean := $(out_base)/.clean
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_tests)))
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_tests)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_tests)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_tests)))
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach t,$(all_tests),$(call import,$(src_base)/$t/makefile))
+else
+$(foreach t,$(build_tests),$(call import,$(src_base)/$t/makefile))
+endif
diff --git a/tests/cxx/serializer/generated-driver/makefile b/tests/cxx/serializer/generated-driver/makefile
index 0e043b2..497ee15 100644
--- a/tests/cxx/serializer/generated-driver/makefile
+++ b/tests/cxx/serializer/generated-driver/makefile
@@ -6,16 +6,20 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
xsd := test.xsd
+cxx := test-simpl.cxx
+hxx := test-simpl.hxx
-obj := $(addprefix $(out_base)/,$(xsd:.xsd=-sskel.o) $(xsd:.xsd=-simpl.o) $(xsd:.xsd=-sdriver.o))
+obj := $(addprefix $(out_base)/,$(cxx:.cxx=.o) $(xsd:.xsd=-sskel.o) $(xsd:.xsd=-sdriver.o))
dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/$(xsd:.xsd=-sdriver)
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/$(xsd:.xsd=-sdriver)
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,8 +34,9 @@ genf := $(xsd:.xsd=-sskel.hxx) $(xsd:.xsd=-sskel.ixx) $(xsd:.xsd=-sskel.cxx) \
gen := $(addprefix $(out_base)/,$(genf))
$(gen): xsde := $(out_root)/xsde/xsde
-$(gen): xsde_options += --generate-test-driver --force-overwrite
$(gen): $(out_root)/xsde/xsde
+$(gen) $(dist) $(dist-win): xsde_options += --generate-test-driver \
+--force-overwrite
$(call include-dep,$(dep))
@@ -46,6 +51,20 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer \
+-xsd "$(xsd)" -cxx "$(cxx)" -hxx "$(hxx)" -gen "$(genf)" \
+-opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/list/makefile b/tests/cxx/serializer/list/makefile
index cef767c..3c87bea 100644
--- a/tests/cxx/serializer/list/makefile
+++ b/tests/cxx/serializer/list/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/makefile b/tests/cxx/serializer/makefile
index dcb27f0..577fb26 100644
--- a/tests/cxx/serializer/makefile
+++ b/tests/cxx/serializer/makefile
@@ -5,11 +5,35 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../build/bootstrap.make
-tests := generated-driver generated-impl
+# NOTE: remember to update dist/tests/cxx/serializer/{makefile,nmakefile} if
+# you change anything here.
+#
+
+all_tests := \
+generated-driver \
+generated-impl \
+all \
+built-in \
+choice \
+error-handling \
+recursive \
+reset \
+restriction \
+sequence \
+test-template \
+wildcard \
+complex \
+enumeration \
+list \
+union \
+polymorphism \
+validation
+
+build_tests := generated-driver generated-impl
ifeq ($(xsde_iostream),y)
-tests += \
+build_tests += \
all \
built-in \
choice \
@@ -22,7 +46,7 @@ test-template \
wildcard
ifeq ($(xsde_reuse_style),tiein)
-tests += \
+build_tests += \
complex \
enumeration \
list \
@@ -31,22 +55,29 @@ endif
ifeq ($(xsde_polymorphic),y)
ifeq ($(xsde_reuse_style),tiein)
-tests += polymorphism
+build_tests += polymorphism
endif
endif
endif # xsde_iostream
ifeq ($(xsde_serializer_validation),y)
-tests += validation
+build_tests += validation
endif
default := $(out_base)/
test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
clean := $(out_base)/.clean
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_tests)))
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_tests)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_tests)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_tests)))
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach t,$(all_tests),$(call import,$(src_base)/$t/makefile))
+else
+$(foreach t,$(build_tests),$(call import,$(src_base)/$t/makefile))
+endif
diff --git a/tests/cxx/serializer/polymorphism/makefile b/tests/cxx/serializer/polymorphism/makefile
index d13f8c8..f909ea2 100644
--- a/tests/cxx/serializer/polymorphism/makefile
+++ b/tests/cxx/serializer/polymorphism/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -29,8 +31,8 @@ skelf := $(xsd:.xsd=-sskel.hxx) $(xsd:.xsd=-sskel.ixx) $(xsd:.xsd=-sskel.cxx)
skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
-$(skel): xsde_options += --generate-polymorphic
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options += --generate-polymorphic
$(call include-dep,$(dep))
@@ -45,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/recursive/makefile b/tests/cxx/serializer/recursive/makefile
index 7000f22..2c6d7c1 100644
--- a/tests/cxx/serializer/recursive/makefile
+++ b/tests/cxx/serializer/recursive/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/reset/makefile b/tests/cxx/serializer/reset/makefile
index 7906a09..686ff81 100644
--- a/tests/cxx/serializer/reset/makefile
+++ b/tests/cxx/serializer/reset/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/restriction/makefile b/tests/cxx/serializer/restriction/makefile
index 3b738f0..ae36c46 100644
--- a/tests/cxx/serializer/restriction/makefile
+++ b/tests/cxx/serializer/restriction/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/sequence/makefile b/tests/cxx/serializer/sequence/makefile
index 6c33dba..df1d32e 100644
--- a/tests/cxx/serializer/sequence/makefile
+++ b/tests/cxx/serializer/sequence/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/test-template/makefile b/tests/cxx/serializer/test-template/makefile
index 295fbf5..3dde195 100644
--- a/tests/cxx/serializer/test-template/makefile
+++ b/tests/cxx/serializer/test-template/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/union/makefile b/tests/cxx/serializer/union/makefile
index 24a007d..d8c18fb 100644
--- a/tests/cxx/serializer/union/makefile
+++ b/tests/cxx/serializer/union/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/validation/any/makefile b/tests/cxx/serializer/validation/any/makefile
index 53e61cb..3d848d5 100644
--- a/tests/cxx/serializer/validation/any/makefile
+++ b/tests/cxx/serializer/validation/any/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/validation/attribute/makefile b/tests/cxx/serializer/validation/attribute/makefile
index 4fafac8..9763ed8 100644
--- a/tests/cxx/serializer/validation/attribute/makefile
+++ b/tests/cxx/serializer/validation/attribute/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/validation/built-in/date-time/makefile b/tests/cxx/serializer/validation/built-in/date-time/makefile
index 7a8eaa6..1d069a1 100644
--- a/tests/cxx/serializer/validation/built-in/date-time/makefile
+++ b/tests/cxx/serializer/validation/built-in/date-time/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/validation/built-in/decimal/makefile b/tests/cxx/serializer/validation/built-in/decimal/makefile
index eed1012..e893e78 100644
--- a/tests/cxx/serializer/validation/built-in/decimal/makefile
+++ b/tests/cxx/serializer/validation/built-in/decimal/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/validation/built-in/integer/makefile b/tests/cxx/serializer/validation/built-in/integer/makefile
index 72e5152..00b11af 100644
--- a/tests/cxx/serializer/validation/built-in/integer/makefile
+++ b/tests/cxx/serializer/validation/built-in/integer/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/validation/built-in/makefile b/tests/cxx/serializer/validation/built-in/makefile
index 7ea3cd4..99b8603 100644
--- a/tests/cxx/serializer/validation/built-in/makefile
+++ b/tests/cxx/serializer/validation/built-in/makefile
@@ -5,14 +5,26 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../../../build/bootstrap.make
-tests := date-time decimal integer qname string
+# NOTE: remember to update dist/tests/cxx/serializer/validation/built-in/
+# {makefile,nmakefile} if you change anything here.
+#
+
+all_tests := date-time decimal integer qname string
+build_tests := date-time decimal integer qname string
default := $(out_base)/
test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
clean := $(out_base)/.clean
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_tests)))
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_tests)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_tests)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_tests)))
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach t,$(all_tests),$(call import,$(src_base)/$t/makefile))
+else
+$(foreach t,$(build_tests),$(call import,$(src_base)/$t/makefile))
+endif
diff --git a/tests/cxx/serializer/validation/built-in/qname/makefile b/tests/cxx/serializer/validation/built-in/qname/makefile
index 025dab3..3dd483c 100644
--- a/tests/cxx/serializer/validation/built-in/qname/makefile
+++ b/tests/cxx/serializer/validation/built-in/qname/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/validation/built-in/string/makefile b/tests/cxx/serializer/validation/built-in/string/makefile
index b51efbb..7e2deb4 100644
--- a/tests/cxx/serializer/validation/built-in/string/makefile
+++ b/tests/cxx/serializer/validation/built-in/string/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -38,6 +40,17 @@ $(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/validation/choice/makefile b/tests/cxx/serializer/validation/choice/makefile
index 1ab62d6..4e95726 100644
--- a/tests/cxx/serializer/validation/choice/makefile
+++ b/tests/cxx/serializer/validation/choice/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/validation/element/makefile b/tests/cxx/serializer/validation/element/makefile
index 7c061d0..b8166b9 100644
--- a/tests/cxx/serializer/validation/element/makefile
+++ b/tests/cxx/serializer/validation/element/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/validation/makefile b/tests/cxx/serializer/validation/makefile
index f72083e..f6408a4 100644
--- a/tests/cxx/serializer/validation/makefile
+++ b/tests/cxx/serializer/validation/makefile
@@ -5,18 +5,31 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
-tests := built-in
+# NOTE: remember to update dist/tests/cxx/serializer/validation/{makefile,
+# nmakefile} if you change anything here.
+#
+
+all_tests := built-in any attribute choice element sequence
+
+build_tests := built-in
ifeq ($(xsde_iostream),y)
-tests += any attribute choice element sequence
+build_tests += any attribute choice element sequence
endif
default := $(out_base)/
test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
clean := $(out_base)/.clean
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(tests)))
-$(test): $(addprefix $(out_base)/,$(addsuffix /.test,$(tests)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(tests)))
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_tests)))
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_tests)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_tests)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_tests)))
-$(foreach t,$(tests),$(call import,$(src_base)/$t/makefile))
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach t,$(all_tests),$(call import,$(src_base)/$t/makefile))
+else
+$(foreach t,$(build_tests),$(call import,$(src_base)/$t/makefile))
+endif
diff --git a/tests/cxx/serializer/validation/sequence/makefile b/tests/cxx/serializer/validation/sequence/makefile
index 5667564..014eec3 100644
--- a/tests/cxx/serializer/validation/sequence/makefile
+++ b/tests/cxx/serializer/validation/sequence/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/serializer/wildcard/makefile b/tests/cxx/serializer/wildcard/makefile
index 1a5e2e9..dc49910 100644
--- a/tests/cxx/serializer/wildcard/makefile
+++ b/tests/cxx/serializer/wildcard/makefile
@@ -14,9 +14,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -30,6 +32,7 @@ skel := $(addprefix $(out_base)/,$(skelf))
$(skel): xsde := $(out_root)/xsde/xsde
$(skel): $(out_root)/xsde/xsde
+$(skel) $(dist) $(dist-win): xsde_options +=
$(call include-dep,$(dep))
@@ -44,6 +47,19 @@ $(test): driver := $(driver)
$(test): $(driver) $(src_base)/test-000.std
$(call message,test $$1,$$1 | diff -u $(src_base)/test-000.std -,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cmd cxx-serializer -xsd "$(xsd)" \
+-cxx "$(cxx)" -gen "$(skelf)" -opt "$(xsde_options)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/cxx/string/makefile b/tests/cxx/string/makefile
index 2ae888e..be8ba29 100644
--- a/tests/cxx/string/makefile
+++ b/tests/cxx/string/makefile
@@ -13,9 +13,11 @@ dep := $(obj:.o=.o.d)
xsde.l := $(out_root)/libxsde/xsde/xsde.l
xsde.l.cpp-options := $(out_root)/libxsde/xsde/xsde.l.cpp-options
-driver := $(out_base)/driver
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+driver := $(out_base)/driver
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
# Build.
@@ -37,6 +39,18 @@ $(test): driver := $(driver)
$(test): $(driver)
$(call message,test $$1,$$1,$(driver))
+
+# Dist.
+#
+$(dist) $(dist-win): opt := -src $(src_base) -cxx "$(cxx)" -out $(dist_prefix)
+
+$(dist):
+ $(call message,install $(src_base),$(scf_root)/dist $(opt))
+
+$(dist-win):
+ $(call message,install $(src_base),$(scf_root)/dist -win $(opt))
+
+
# Clean.
#
$(clean): $(driver).o.clean \
diff --git a/tests/makefile b/tests/makefile
index 67f6e37..b3a9530 100644
--- a/tests/makefile
+++ b/tests/makefile
@@ -5,12 +5,20 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make
-default := $(out_base)/
-test := $(out_base)/.test
-clean := $(out_base)/.clean
+# NOTE: remember to update dist/tests/{makefile,nmakefile} if
+# you change anything here.
+#
+
+default := $(out_base)/
+test := $(out_base)/.test
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
$(default): $(out_base)/cxx/
$(test): $(out_base)/cxx/.test
+$(dist): $(out_base)/cxx/.dist
+$(dist-win): $(out_base)/cxx/.dist-win
$(clean): $(out_base)/cxx/.clean
$(call import,$(src_base)/cxx/makefile)