aboutsummaryrefslogtreecommitdiff
path: root/documentation
diff options
context:
space:
mode:
authorBoris Kolpackov <boris@codesynthesis.com>2009-03-02 12:14:54 +0200
committerBoris Kolpackov <boris@codesynthesis.com>2009-03-02 12:14:54 +0200
commit6c63b913179127e09ed7d9da8920493ccceec6ce (patch)
tree95684b51b4ab60e6468a592a53e33c2cf00027ab /documentation
parent3fd3cfc36784be43f545f2f0973e3dc58f475996 (diff)
Add make support for creating binary distributions
Two new make targets, dist and dist-win, were added that allow one to create a binary distribution from the current build. The dist target creates a UNIX distribution while dist-win -- Windows. The simplified build systems for the runtime library and examples that were kept separately are now part of the project (the dist/ subdirectory).
Diffstat (limited to 'documentation')
-rw-r--r--documentation/cxx/hybrid/guide/makefile55
-rw-r--r--documentation/cxx/makefile22
-rw-r--r--documentation/cxx/parser/guide/makefile55
-rw-r--r--documentation/cxx/serializer/guide/makefile55
-rw-r--r--documentation/makefile35
5 files changed, 193 insertions, 29 deletions
diff --git a/documentation/cxx/hybrid/guide/makefile b/documentation/cxx/hybrid/guide/makefile
index d476fb9..74cc909 100644
--- a/documentation/cxx/hybrid/guide/makefile
+++ b/documentation/cxx/hybrid/guide/makefile
@@ -1,12 +1,49 @@
-.PHONY: all
-all: cxx-hybrid-e-guide.ps cxx-hybrid-e-guide.pdf
+# file : documentation/cxx/hybrid/guide/makefile
+# author : Boris Kolpackov <boris@codesynthesis.com>
+# copyright : Copyright (c) 2006-2009 Code Synthesis Tools CC
+# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-cxx-hybrid-e-guide.pdf: cxx-hybrid-e-guide.ps
- ps2pdf14 $<
+include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
-cxx-hybrid-e-guide.ps: index.xhtml guide.html2ps
- html2ps -f guide.html2ps -o $@ $<
+default := $(out_base)/
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+cleandoc := $(out_base)/.cleandoc
-.PHONY: clean
-clean:
- rm -f cxx-hybrid-e-guide.ps cxx-hybrid-e-guide.pdf
+.PHONY: $(default) $(dist) $(dist-win) $(cleandoc)
+
+# Build.
+#
+$(default): $(out_base)/cxx-hybrid-e-guide.ps \
+ $(out_base)/cxx-hybrid-e-guide.pdf
+
+
+$(out_base)/cxx-hybrid-e-guide.ps: $(src_base)/index.xhtml \
+ $(src_base)/figure-1.png \
+ $(src_base)/guide.html2ps
+ $(call message,html2ps $<,html2ps -f $(src_base)/guide.html2ps -o $@ $<)
+
+$(out_base)/cxx-hybrid-e-guide.pdf: $(out_base)/cxx-hybrid-e-guide.ps
+ $(call message,ps2pdf $<,ps2pdf14 $< $@)
+
+# Dist.
+#
+$(dist): path := $(subst $(src_root)/,,$(src_base))
+$(dist): $(out_base)/cxx-hybrid-e-guide.ps $(out_base)/cxx-hybrid-e-guide.pdf
+ $(call install-data,$(src_base)/figure-1.png,$(dist_prefix)/$(path)/figure-1.png)
+ $(call install-data,$(src_base)/index.xhtml,$(dist_prefix)/$(path)/index.xhtml)
+ $(call install-data,$(out_base)/cxx-hybrid-e-guide.ps,$(dist_prefix)/$(path)/cxx-hybrid-e-guide.ps)
+ $(call install-data,$(out_base)/cxx-hybrid-e-guide.pdf,$(dist_prefix)/$(path)/cxx-hybrid-e-guide.pdf)
+
+$(dist-win): $(dist)
+
+
+# Clean.
+#
+$(cleandoc):
+ $(call message,rm $$1,rm -f $$1,$(out_base)/cxx-hybrid-e-guide.ps)
+ $(call message,rm $$1,rm -f $$1,$(out_base)/cxx-hybrid-e-guide.pdf)
+
+# How to.
+#
+$(call include,$(bld_root)/install.make)
diff --git a/documentation/cxx/makefile b/documentation/cxx/makefile
new file mode 100644
index 0000000..2fa5998
--- /dev/null
+++ b/documentation/cxx/makefile
@@ -0,0 +1,22 @@
+# file : documentation/cxx/makefile
+# author : Boris Kolpackov <boris@codesynthesis.com>
+# copyright : Copyright (c) 2006-2009 Code Synthesis Tools CC
+# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
+
+include $(dir $(lastword $(MAKEFILE_LIST)))../../build/bootstrap.make
+
+mappings := hybrid/guide parser/guide serializer/guide
+
+default := $(out_base)/
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+cleandoc := $(out_base)/.cleandoc
+
+.PHONY: $(default) $(dist) $(dist-win) $(test) $(cleandoc)
+
+$(default): $(addprefix $(out_base)/,$(addsuffix /,$(mappings)))
+$(dist): $(addprefix $(out_base)/,$(addsuffix /.dist,$(mappings)))
+$(dist-win): $(addprefix $(out_base)/,$(addsuffix /.dist-win,$(mappings)))
+$(cleandoc): $(addprefix $(out_base)/,$(addsuffix /.cleandoc,$(mappings)))
+
+$(foreach m,$(mappings),$(call import,$(src_base)/$m/makefile))
diff --git a/documentation/cxx/parser/guide/makefile b/documentation/cxx/parser/guide/makefile
index 964b626..4b01826 100644
--- a/documentation/cxx/parser/guide/makefile
+++ b/documentation/cxx/parser/guide/makefile
@@ -1,12 +1,49 @@
-.PHONY: all
-all: cxx-parser-e-guide.ps cxx-parser-e-guide.pdf
+# file : documentation/cxx/parser/guide/makefile
+# author : Boris Kolpackov <boris@codesynthesis.com>
+# copyright : Copyright (c) 2006-2009 Code Synthesis Tools CC
+# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-cxx-parser-e-guide.pdf: cxx-parser-e-guide.ps
- ps2pdf14 $<
+include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
-cxx-parser-e-guide.ps: index.xhtml guide.html2ps
- html2ps -f guide.html2ps -o $@ $<
+default := $(out_base)/
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+cleandoc := $(out_base)/.cleandoc
-.PHONY: clean
-clean:
- rm -f cxx-parser-e-guide.ps cxx-parser-e-guide.pdf
+.PHONY: $(default) $(dist) $(dist-win) $(cleandoc)
+
+# Build.
+#
+$(default): $(out_base)/cxx-parser-e-guide.ps \
+ $(out_base)/cxx-parser-e-guide.pdf
+
+
+$(out_base)/cxx-parser-e-guide.ps: $(src_base)/index.xhtml \
+ $(src_base)/figure-1.png \
+ $(src_base)/guide.html2ps
+ $(call message,html2ps $<,html2ps -f $(src_base)/guide.html2ps -o $@ $<)
+
+$(out_base)/cxx-parser-e-guide.pdf: $(out_base)/cxx-parser-e-guide.ps
+ $(call message,ps2pdf $<,ps2pdf14 $< $@)
+
+# Dist.
+#
+$(dist): path := $(subst $(src_root)/,,$(src_base))
+$(dist): $(out_base)/cxx-parser-e-guide.ps $(out_base)/cxx-parser-e-guide.pdf
+ $(call install-data,$(src_base)/figure-1.png,$(dist_prefix)/$(path)/figure-1.png)
+ $(call install-data,$(src_base)/index.xhtml,$(dist_prefix)/$(path)/index.xhtml)
+ $(call install-data,$(out_base)/cxx-parser-e-guide.ps,$(dist_prefix)/$(path)/cxx-parser-e-guide.ps)
+ $(call install-data,$(out_base)/cxx-parser-e-guide.pdf,$(dist_prefix)/$(path)/cxx-parser-e-guide.pdf)
+
+$(dist-win): $(dist)
+
+
+# Clean
+#
+$(cleandoc):
+ $(call message,rm $$1,rm -f $$1,$(out_base)/cxx-parser-e-guide.ps)
+ $(call message,rm $$1,rm -f $$1,$(out_base)/cxx-parser-e-guide.pdf)
+
+# How to.
+#
+$(call include,$(bld_root)/install.make)
diff --git a/documentation/cxx/serializer/guide/makefile b/documentation/cxx/serializer/guide/makefile
index 8524f4f..9230398 100644
--- a/documentation/cxx/serializer/guide/makefile
+++ b/documentation/cxx/serializer/guide/makefile
@@ -1,12 +1,49 @@
-.PHONY: all
-all: cxx-serializer-e-guide.ps cxx-serializer-e-guide.pdf
+# file : documentation/cxx/serializer/guide/makefile
+# author : Boris Kolpackov <boris@codesynthesis.com>
+# copyright : Copyright (c) 2006-2009 Code Synthesis Tools CC
+# license : GNU GPL v2 + exceptions; see accompanying LICENSE file
-cxx-serializer-e-guide.pdf: cxx-serializer-e-guide.ps
- ps2pdf14 $<
+include $(dir $(lastword $(MAKEFILE_LIST)))../../../../build/bootstrap.make
-cxx-serializer-e-guide.ps: index.xhtml guide.html2ps
- html2ps -f guide.html2ps -o $@ $<
+default := $(out_base)/
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+cleandoc := $(out_base)/.cleandoc
-.PHONY: clean
-clean:
- rm -f cxx-serializer-e-guide.ps cxx-serializer-e-guide.pdf
+.PHONY: $(default) $(dist) $(dist-win) $(cleandoc)
+
+# Build.
+#
+$(default): $(out_base)/cxx-serializer-e-guide.ps \
+ $(out_base)/cxx-serializer-e-guide.pdf
+
+
+$(out_base)/cxx-serializer-e-guide.ps: $(src_base)/index.xhtml \
+ $(src_base)/figure-1.png \
+ $(src_base)/guide.html2ps
+ $(call message,html2ps $<,html2ps -f $(src_base)/guide.html2ps -o $@ $<)
+
+$(out_base)/cxx-serializer-e-guide.pdf: $(out_base)/cxx-serializer-e-guide.ps
+ $(call message,ps2pdf $<,ps2pdf14 $< $@)
+
+# Dist.
+#
+$(dist): path := $(subst $(src_root)/,,$(src_base))
+$(dist): $(out_base)/cxx-serializer-e-guide.ps $(out_base)/cxx-serializer-e-guide.pdf
+ $(call install-data,$(src_base)/figure-1.png,$(dist_prefix)/$(path)/figure-1.png)
+ $(call install-data,$(src_base)/index.xhtml,$(dist_prefix)/$(path)/index.xhtml)
+ $(call install-data,$(out_base)/cxx-serializer-e-guide.ps,$(dist_prefix)/$(path)/cxx-serializer-e-guide.ps)
+ $(call install-data,$(out_base)/cxx-serializer-e-guide.pdf,$(dist_prefix)/$(path)/cxx-serializer-e-guide.pdf)
+
+$(dist-win): $(dist)
+
+
+# Clean.
+#
+$(cleandoc):
+ $(call message,rm $$1,rm -f $$1,$(out_base)/cxx-serializer-e-guide.ps)
+ $(call message,rm $$1,rm -f $$1,$(out_base)/cxx-serializer-e-guide.pdf)
+
+# How to.
+#
+$(call include,$(bld_root)/install.make)
diff --git a/documentation/makefile b/documentation/makefile
index 420cbcc..056e540 100644
--- a/documentation/makefile
+++ b/documentation/makefile
@@ -5,14 +5,45 @@
include $(dir $(lastword $(MAKEFILE_LIST)))../build/bootstrap.make
-install := $(out_base)/.install
+default := $(out_base)/
+dist := $(out_base)/.dist
+dist-win := $(out_base)/.dist-win
+install := $(out_base)/.install
+cleandoc := $(out_base)/.cleandoc
-.PHONY: $(install)
+.PHONY: $(default) $(dist) $(dist-win) $(install) $(cleandoc)
+$(default): $(src_base)/cxx/
+
+
+# Dist.
+#
+dist-common := $(out_base)/.dist-common
+.PHONY: $(dist-common)
+
+$(dist-common):
+ $(call install-data,$(src_base)/default.css,$(dist_prefix)/documentation/default.css)
+ $(call install-data,$(src_base)/xsde.xhtml,$(dist_prefix)/documentation/xsde.xhtml)
+ $(call install-data,$(src_base)/xsde.1,$(dist_prefix)/documentation/xsde.1)
+
+$(dist): $(dist-common) $(src_base)/cxx/.dist
+$(dist-win): $(dist-common) $(src_base)/cxx/.dist
+
+
+# Install.
+#
$(install):
$(call install-dir,$(src_base)/cxx,$(install_doc_dir)/xsde/cxx)
$(call install-data,$(src_base)/default.css,$(install_doc_dir)/xsde/default.css)
$(call install-data,$(src_base)/xsde.xhtml,$(install_doc_dir)/xsde/xsde.xhtml)
$(call install-data,$(src_base)/xsde.1,$(install_man_dir)/man1/xsde.1)
+
+# Clean.
+#
+$(cleandoc): $(src_base)/cxx/.cleandoc
+
+
$(call include,$(bld_root)/install.make)
+
+$(call import,$(src_base)/cxx/makefile)