summaryrefslogtreecommitdiff
path: root/examples/cxx/tree/custom/makefile
diff options
context:
space:
mode:
Diffstat (limited to 'examples/cxx/tree/custom/makefile')
-rw-r--r--examples/cxx/tree/custom/makefile38
1 files changed, 30 insertions, 8 deletions
diff --git a/examples/cxx/tree/custom/makefile b/examples/cxx/tree/custom/makefile
index c29fd03..961916e 100644
--- a/examples/cxx/tree/custom/makefile
+++ b/examples/cxx/tree/custom/makefile
@@ -5,18 +5,40 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
-examples := comments contacts double taxonomy wildcard
+all_examples := comments contacts double taxonomy wildcard calendar
+build_examples := comments contacts double taxonomy wildcard
ifeq ($(xsd_with_boost_date_time),y)
-examples += calendar
+build_examples += calendar
endif
-default := $(out_base)/
-clean := $(out_base)/.clean
+default := $(out_base)/
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+clean := $(out_base)/.clean
-.PHONY: $(default) $(clean)
+# Build.
+#
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(build_examples)))
-$(default): $(addprefix $(out_base)/,$(addsuffix /,$(examples)))
-$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(examples)))
+# Dist.
+#
+$(dist) $(dist-win): path := $(subst $(src_root)/,,$(src_base))
+
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(all_examples)))
+ $(call install-data,$(src_base)/README,$(dist_prefix)/$(path)/README)
+
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(all_examples)))
+ $(call install-data,$(src_base)/README,$(dist_prefix)/$(path)/README.txt)
+ $(call message,,unix2dos $(dist_prefix)/$(path)/README.txt)
+
+# Clean.
+#
+$(clean): $(addprefix $(out_base)/,$(addsuffix /.clean,$(build_examples)))
+
+ifneq ($(filter $(MAKECMDGOALS),dist dist-win),)
+$(foreach e,$(all_examples),$(call import,$(src_base)/$e/makefile))
+else
+$(foreach e,$(build_examples),$(call import,$(src_base)/$e/makefile))
+endif
-$(foreach e,$(examples),$(call import,$(src_base)/$e/makefile))