From 13aca089b924f6ac3cd598e17b471ab38a1e3e78 Mon Sep 17 00:00:00 2001 From: simonmar Date: Tue, 31 Aug 2004 09:48:29 +0000 Subject: [PATCH] [project @ 2004-08-31 09:48:28 by simonmar] Rationalise the install settings a bit. Before, if you had $OWNER or $GROUP set in your environment, then these would lead to options being given to install, possibly with unexpected results. This caused install to fail for at least one person. Now, $(INSTALL_OWNER) and $(INSTALL_GROUP) are set via config.mk/build.mk as with other settings. --- mk/config.mk.in | 52 ++++++++++++++++++++++++++++++++--- mk/paths.mk | 64 +++---------------------------------------- mk/target.mk | 81 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 134 insertions(+), 63 deletions(-) diff --git a/mk/config.mk.in b/mk/config.mk.in index 5d54685..f95d0c7 100644 --- a/mk/config.mk.in +++ b/mk/config.mk.in @@ -180,6 +180,12 @@ IncludeTestDirsInBuild=NO IncludeExampleDirsInBuild=NO # +# Which ways should SGML documents be built? +# options are: dvi ps pdf html rtf +# +SGMLDocWays= + +# # Which ways should DocBook XML documents be built? # options are: dvi ps pdf html # @@ -600,12 +606,31 @@ ifeq "$(strip $(mandir))" "" mandir = $(prefix)/man endif +#----------------------------------------------------------------------------- +# install configuration -################################################################################ # -# Utilities programs: flags +# Set this to have files installed with a specific owner # -################################################################################ +INSTALL_OWNER = + +# +# Set this to have files installed with a specific group +# +INSTALL_GROUP = + +# +# Invocations of `install' for the four different classes +# of targets: +# +INSTALL_PROGRAM = $(INSTALL) -m 755 +INSTALL_SCRIPT = $(INSTALL) -m 755 +INSTALL_SHLIB = $(INSTALL) -m 755 +INSTALL_DATA = $(INSTALL) -m 644 +INSTALL_DIR = $(MKDIRHIER) + +# ----------------------------------------------------------------------------- +# Utilities programs: flags # If you want to give any standard flags to pretty much any utility # (see utils.mk for a complete list), by adding a line here @@ -881,6 +906,27 @@ TROFF = troff UNAME = uname #----------------------------------------------------------------------------- +# SGML stuff + +JADE = @JadeCmd@ + +SGML2DVI = $(DOCBOOK_PREFIX)db2dvi +SGML2HTML = $(DOCBOOK_PREFIX)db2html +SGML2PS = $(DOCBOOK_PREFIX)db2ps +SGML2PDF = $(DOCBOOK_PREFIX)db2pdf +SGML2RTF = $(DOCBOOK_PREFIX)db2rtf + +SGMLSTYLESHEET = $(FPTOOLS_TOP_ABS)/docs/fptools-both.dsl + +SRC_SGML2DVI_OPTS = -d $(SGMLSTYLESHEET) +SRC_SGML2HTML_OPTS = -d $(SGMLSTYLESHEET) +SRC_SGML2PS_OPTS = -d $(SGMLSTYLESHEET) +SRC_SGML2RTF_OPTS = -d $(SGMLSTYLESHEET) +SRC_SGML2PDF_OPTS = -d $(SGMLSTYLESHEET) + +DOCBOOK_CATALOG = @Catalog@ + +#----------------------------------------------------------------------------- # DocBook XML stuff XSLTPROC = @XsltprocCmd@ diff --git a/mk/paths.mk b/mk/paths.mk index 9c51dcd..5c8e891 100644 --- a/mk/paths.mk +++ b/mk/paths.mk @@ -1,73 +1,17 @@ -################################################################################# +################################################################################ # # paths.mk # # This file defines Make variables for standard directories # and file lists # -################################################################################# +################################################################################ - -#----------------------------------------------------------------- -# -# Installation setup -# - -#----------------------------------------------------------------------------- -# install configuration -# -# The install standard target is guided by the following four variables -# -# INSTALL_PROGS (installed in $(bindir)) -# INSTALL_LIBS (installed in $(libdir)) -# INSTALL_LIBEXECS (installed in $(libexecdir)) -# INSTALL_DATAS (installed in $(datadir)) -# INSTALL_IFACES (installed in $(ifacedir)) -# -# see target.mk for more information. -# - -# -# Setting user/group ownership for the installed entities -# -# this stuff about "who" does the installing doesn't have make vars -# as it is not intended to be run-time changeable. -# -ifneq "$(OWNER)" "" -INSTALL_OWNER = -o $(OWNER) -else -INSTALL_OWNER = -endif - -ifneq "$(GROUP)" "" -INSTALL_GROUP = -g $(GROUP) -else -INSTALL_GROUP = -endif - -SRC_INSTALL_OPTS += $(INSTALL_OWNER) $(INSTALL_GROUP) - -# -# Invocations of `install' for the four different classes -# of targets: -# - -INSTALL_PROGRAM = $(INSTALL) -m 755 -INSTALL_SCRIPT = $(INSTALL) -m 755 -INSTALL_SHLIB = $(INSTALL) -m 755 -INSTALL_DATA = $(INSTALL) -m 644 -INSTALL_DIR = $(FPTOOLS_TOP)/glafp-utils/mkdirhier/mkdirhier - -# -# The install variables does not have any defaults, -# what files to install have to be specified in the Makefiles. -# - -################################################################################# +################################################################################ # # Standard variable names # -################################################################################# +################################################################################ # The fptools mk setup defines a set of standard names which are used # by the standard targets provided by mk. One example of this is the # use of standard names for specifying what files to compile, their diff --git a/mk/target.mk b/mk/target.mk index 2606667..ab4a899 100644 --- a/mk/target.mk +++ b/mk/target.mk @@ -681,6 +681,17 @@ install-dirs :: # within the various install targets instead. #install:: install-dirs +# +# Setting user/group ownership for the installed entities +# +ifneq "$(INSTALL_OWNER)" "" +SRC_INSTALL_OPTS += -o $(INSTALL_OWNER) +endif +ifneq "$(INSTALL_GROUP)" "" +SRC_INSTALL_OPTS += -g $(INSTALL_GROUP) +endif + + ifneq "$(INSTALL_PROGS)" "" # @@ -795,6 +806,13 @@ install:: $(INSTALL_INCLUDES) endif ifneq "$(INSTALL_DOCS)" "" +ifneq "$(SGMLDocWays)" "" +install-docs:: $(INSTALL_DOCS) + @$(INSTALL_DIR) $(datadir) + for i in $(INSTALL_DOCS); do \ + $(INSTALL_DATA) $(INSTALL_OPTS) $$i $(datadir); \ + done +endif ifneq "$(XMLDocWays)" "" install-docs:: $(INSTALL_DOCS) @$(INSTALL_DIR) $(datadir) @@ -826,6 +844,23 @@ install-docs:: $(foreach i,$(XMLDocWays),$(INSTALL_XML_DOC)$(patsubst %.html-no- endif endif +ifneq "$(INSTALL_SGML_DOC)" "" +ifneq "$(SGMLDocWays)" "" +install-docs:: $(foreach i,$(SGMLDocWays),$(INSTALL_SGML_DOC).$i) + @$(INSTALL_DIR) $(datadir) + @for i in $(SGMLDocWays); do \ + if [ $$i = "html" ]; then \ + $(INSTALL_DIR) $(datadir)/html; \ + echo $(CP) -r $(INSTALL_SGML_DOC) $(datadir)/html; \ + $(CP) -r $(INSTALL_SGML_DOC) $(datadir)/html; \ + else \ + echo $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_SGML_DOC).$$i $(datadir); \ + $(INSTALL_DATA) $(INSTALL_OPTS) $(INSTALL_SGML_DOC).$$i $(datadir); \ + fi \ + done +endif +endif + # # Use with care.. # @@ -909,6 +944,52 @@ show: ################################################################################ # +# SGML Documentation +# +################################################################################ + +.PHONY: dvi ps html pdf rtf + +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). + +ifeq "$(SGML_SRCS)" "" +SGML_SRCS = $(wildcard *.sgml) +endif + +SGML_TEX = $(addsuffix .tex,$(SGML_DOC)) +SGML_DVI = $(addsuffix .dvi,$(SGML_DOC)) +SGML_PS = $(addsuffix .ps,$(SGML_DOC)) +SGML_PDF = $(addsuffix .pdf,$(SGML_DOC)) +SGML_RTF = $(addsuffix .rtf,$(SGML_DOC)) +SGML_HTML = $(addsuffix .html,$(SGML_DOC)) +# HTML output goes in a subdirectory on its own. +SGML_TEXT = $(addsuffix .txt,$(SGML_DOC)) + +$(SGML_DVI) $(SGML_PS) $(SGML_HTML) $(SGML_TEXT) $(SGML_PDF) :: $(SGML_SRCS) + +dvi :: $(SGML_DVI) +ps :: $(SGML_PS) +pdf :: $(SGML_PDF) +rtf :: $(SGML_RTF) +html :: $(SGML_HTML) +txt :: $(SGML_TEXT) + +CLEAN_FILES += $(SGML_TEXT) $(SGML_TEX) $(SGML_PS) $(SGML_DVI) $(SGML_PDF) $(SGML_RTF) $(SGML_HTML) $(SGML_DOC)-*.html +# can't use $(SGML_SRCS) here, it was maybe used elsewhere + +extraclean :: + $(RM) -rf DBTOHTML_OUTPUT_* + $(RM) -rf *.junk/ + $(RM) -rf $(SGML_DOC) +endif + +################################################################################ +# # DocBook XML Documentation # ################################################################################ -- 1.7.10.4