From 60d2f3342c472e3afa7be738d562632ae25e5696 Mon Sep 17 00:00:00 2001 From: rrt Date: Tue, 23 Oct 2001 14:34:24 +0000 Subject: [PATCH] [project @ 2001-10-23 14:34:24 by rrt] Add rules for building and installing documentation. The story is as follows: GhcDocWays is set to a list of ways to build SGML docs (typically in build.mk; it defaults to empty). SGML_DOC = foo causes foo to be built for each way. SGML_INSTALL_DOCS are then installed for each way; INSTALL_DOCS are just taken as literal filenames. make install-docs causes documents to be installed. Also some other clearups: Use $(if ...) where a comment lamented its non-existence. Remove a comment about a "weird" use of exit which has vanished. --- mk/target.mk | 38 +++++++++++++++++++++++++------------- 1 file changed, 25 insertions(+), 13 deletions(-) diff --git a/mk/target.mk b/mk/target.mk index fd0502b..f48ebbd 100644 --- a/mk/target.mk +++ b/mk/target.mk @@ -16,6 +16,7 @@ # 2. GNU standard targets # all* # install* uninstall installcheck installdirs +# install-docs* # clean* distclean* mostlyclean* maintainer-clean* # tags* # dvi ps (no info) FPTOOLS adds: pdf rtf html @@ -73,10 +74,6 @@ # the --no-print-directory flag which is passed to recursive # invocations of make. # -# NOTE: Truly weird use of exit below to stop the for loop dead in -# its tracks should any of the sub-makes fail. By my reckoning, -# "cmd || exit $?" should be equivalent to "cmd" - ifneq "$(SUBDIRS)" "" # we override the 'boot', 'all' and 'install' targets in the top @@ -96,11 +93,13 @@ endif ifeq "$(NO_INSTALL_TARGET)" "YES" INSTALL_TARGET = +INSTALL_DOCS_TARGET = else INSTALL_TARGET = install +INSTALL_DOCS_TARGET = install-docs endif -$(ALL_TARGET) docs runtests $(BOOT_TARGET) TAGS clean distclean mostlyclean maintainer-clean $(INSTALL_TARGET) html ps dvi txt:: +$(ALL_TARGET) docs runtests $(BOOT_TARGET) TAGS clean distclean mostlyclean maintainer-clean $(INSTALL_TARGET) $(INSTALL_DOCS_TARGET) html ps dvi txt:: @echo "------------------------------------------------------------------------" @echo "===fptools== Recursively making \`$@' in $(SUBDIRS) ..." @echo "PWD = $(shell pwd)" @@ -834,7 +833,7 @@ endif # LINK # friends can be overridden from their original settings in mk/config.mk.in # || mk/build.mk # -.PHONY: install installdirs install-strip install-dirs uninstall install-docs show-install +.PHONY: install install-docs installdirs install-strip install-dirs uninstall install-docs show-install show-install : @echo "bindir = $(bindir)" @@ -878,13 +877,7 @@ ifneq "$(INSTALL_PROGS)" "" # entry in the INSTALL_PROGS list. If there's no suffix, use # $(exeext). # -# This is bit of a pain to express since GNU make doesn't have -# something like $(if ...), but possible using $(subst ...) -# [Aside: I added support for $(if ...) to my local copy of GNU -# make at one stage, perhaps I should propagate the patch to -# the GNU make maintainers...] -# -INSTALL_PROGS := $(foreach p, $(INSTALL_PROGS), $(addsuffix $(subst _,,$(subst __,$(exeext),_$(suffix $(p))_)), $(basename $(p)))) +INSTALL_PROGS := $(foreach p, $(INSTALL_PROGS), $(addsuffix $(if $(suffix $(p)),,$(exeext)), $(basename $(p)))) install:: $(INSTALL_PROGS) @$(INSTALL_DIR) $(bindir) @@ -968,6 +961,23 @@ install:: $(INSTALL_INCLUDES) done endif +ifneq "$(INSTALL_DOCS) $(INSTALL_SGML_DOCS)" "" +install-docs:: $(INSTALL_DOCS) $(foreach i,$(INSTALL_SGML_DOCS),$(foreach j,$(SGMLDocWays),$i.$j)) + @$(INSTALL_DIR) $(datadir) + for i in $(INSTALL_DOCS); do \ + $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(datadir); \ + done + for i in $(INSTALL_SGML_DOCS); do \ + for j in $(SGMLDocWays); do \ + if [ $$j = "html" ]; then \ + $(CP) -r $$i $(datadir); \ + else \ + $(INSTALL_DATA) $(INSTALL_OPTS) $$i.$$j $(datadir); \ + fi \ + done \ + done +endif + # # Use with care.. # @@ -1059,6 +1069,8 @@ show: ifneq "$(SGML_DOC)" "" +all :: $(SGMLDocWays) + # multi-file SGML document: main document name is specified in $(SGML_DOC), # sub-documents (.sgml files) listed in $(SGML_SRCS). -- 1.7.10.4