From 6c63b913179127e09ed7d9da8920493ccceec6ce Mon Sep 17 00:00:00 2001 From: Boris Kolpackov Date: Mon, 2 Mar 2009 12:14:54 +0200 Subject: 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). --- documentation/cxx/hybrid/guide/makefile | 55 ++++++++++++++++++++++++----- documentation/cxx/makefile | 22 ++++++++++++ documentation/cxx/parser/guide/makefile | 55 ++++++++++++++++++++++++----- documentation/cxx/serializer/guide/makefile | 55 ++++++++++++++++++++++++----- documentation/makefile | 35 ++++++++++++++++-- 5 files changed, 193 insertions(+), 29 deletions(-) create mode 100644 documentation/cxx/makefile (limited to 'documentation') 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 +# 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 +# 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 +# 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 +# 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) -- cgit v1.1