2007-09-19 20:21:29 +00:00
|
|
|
# $Id$
|
2007-12-19 19:54:42 +00:00
|
|
|
|
2015-09-15 16:58:39 +00:00
|
|
|
# Makefile to generate the MacPorts HTML guide pages.
|
2008-07-16 09:57:27 +00:00
|
|
|
# The ports 'docbook-xsl', 'docbook-xml' and 'libxslt' have to be installed.
|
2012-10-19 07:37:59 +00:00
|
|
|
# For the guide-dblatex target, the 'dblatex' port is also required.
|
2007-09-19 20:21:29 +00:00
|
|
|
|
2008-10-18 12:04:29 +00:00
|
|
|
# If your MacPorts isn't installed in /opt/local you have to change PREFIX
|
2008-07-16 09:57:27 +00:00
|
|
|
# here.
|
2007-09-19 20:21:29 +00:00
|
|
|
|
2012-09-06 22:00:13 +00:00
|
|
|
UNAME := $(shell uname)
|
2008-07-16 09:57:27 +00:00
|
|
|
|
2008-10-18 12:04:29 +00:00
|
|
|
# Prefix of the MacPorts installation.
|
2013-04-22 06:57:59 +00:00
|
|
|
PREFIX = /opt/local
|
2012-09-06 22:00:13 +00:00
|
|
|
ifeq ($(UNAME), Linux)
|
|
|
|
|
PREFIX = /usr
|
|
|
|
|
endif
|
2007-09-19 20:21:29 +00:00
|
|
|
|
2008-07-16 09:57:27 +00:00
|
|
|
# Command abstraction variables.
|
2007-12-19 19:54:42 +00:00
|
|
|
MKDIR = /bin/mkdir
|
|
|
|
|
CP = /bin/cp
|
|
|
|
|
RM = /bin/rm
|
2008-10-18 12:04:29 +00:00
|
|
|
LN = /bin/ln
|
2012-09-06 22:00:13 +00:00
|
|
|
ifeq ($(UNAME), Linux)
|
|
|
|
|
SED = /bin/sed
|
2017-06-26 22:52:42 +02:00
|
|
|
REINPLACE = $(SED) -i -r
|
|
|
|
|
else
|
|
|
|
|
SED = /usr/bin/sed
|
|
|
|
|
REINPLACE = $(SED) -i '' -E
|
2012-09-06 22:00:13 +00:00
|
|
|
endif
|
2008-07-16 13:09:17 +00:00
|
|
|
TCLSH = /usr/bin/tclsh
|
2007-12-18 21:55:06 +00:00
|
|
|
XSLTPROC = $(PREFIX)/bin/xsltproc
|
2008-01-14 21:26:33 +00:00
|
|
|
XMLLINT = $(PREFIX)/bin/xmllint
|
2012-06-15 18:05:26 +00:00
|
|
|
DBLATEX = $(PREFIX)/bin/dblatex
|
2007-12-18 21:55:06 +00:00
|
|
|
|
2008-07-16 09:57:27 +00:00
|
|
|
# Data directories.
|
2007-12-19 19:54:42 +00:00
|
|
|
GUIDE = guide
|
2008-07-16 09:57:27 +00:00
|
|
|
# Source directories.
|
2008-10-18 12:59:23 +00:00
|
|
|
GUIDE_SRC = $(GUIDE)/xml
|
2008-07-16 09:57:27 +00:00
|
|
|
# Result directories.
|
2012-06-15 18:05:26 +00:00
|
|
|
GUIDE_RESULT = $(GUIDE)/html
|
|
|
|
|
GUIDE_RESULT_DBLATEX = $(GUIDE)/dblatex
|
2007-09-19 20:21:29 +00:00
|
|
|
|
2008-10-18 12:04:29 +00:00
|
|
|
# Path to the DocBook XSL files.
|
2008-07-16 13:09:17 +00:00
|
|
|
DOCBOOK = $(PREFIX)/share/xsl/docbook-xsl
|
2012-09-06 22:00:13 +00:00
|
|
|
ifeq ($(UNAME), Linux)
|
2017-12-17 15:42:36 -08:00
|
|
|
DOCBOOK = $(PREFIX)/share/xml/docbook/stylesheet/docbook-xsl
|
2012-09-06 22:00:13 +00:00
|
|
|
endif
|
2008-10-18 12:59:23 +00:00
|
|
|
GUIDE_XSL = $(GUIDE)/resources/single-page.xsl
|
|
|
|
|
GUIDE_XSL_CHUNK = $(GUIDE)/resources/chunk.xsl
|
2007-09-19 20:21:29 +00:00
|
|
|
|
2008-10-18 12:04:29 +00:00
|
|
|
# DocBook HTML stylesheet for the guide.
|
2007-12-19 19:54:42 +00:00
|
|
|
STYLESHEET = docbook.css
|
2007-09-19 20:21:29 +00:00
|
|
|
|
2018-04-11 22:37:21 +02:00
|
|
|
.PHONY: all guide guide-chunked guide-dblatex clean validate
|
2007-09-19 20:21:29 +00:00
|
|
|
|
2018-04-11 22:37:21 +02:00
|
|
|
all: guide guide-chunked
|
2007-09-19 20:21:29 +00:00
|
|
|
|
2018-03-28 07:29:08 +02:00
|
|
|
# Generate the HTML guide using DocBook from the XML sources
|
|
|
|
|
guide: GUIDE_OUTDIR= $(GUIDE_RESULT)
|
|
|
|
|
guide-chunked: GUIDE_OUTDIR = $(GUIDE_RESULT)/chunked
|
2018-04-11 22:37:21 +02:00
|
|
|
guide-chunked: GUIDE_XSL = $(GUIDE_XSL_CHUNK)
|
2018-03-28 07:29:08 +02:00
|
|
|
|
2018-03-28 07:29:41 +02:00
|
|
|
$(GUIDE)/resources/xsl:
|
2012-09-06 22:00:13 +00:00
|
|
|
ifeq ($(UNAME), Linux)
|
|
|
|
|
$(LN) -sfn $(DOCBOOK) $(GUIDE)/resources/xsl
|
|
|
|
|
else
|
2008-07-20 16:12:27 +00:00
|
|
|
$(LN) -sfh $(DOCBOOK) $(GUIDE)/resources/xsl
|
2012-09-06 22:00:13 +00:00
|
|
|
endif
|
2018-03-28 07:29:41 +02:00
|
|
|
|
2018-04-11 22:37:21 +02:00
|
|
|
guide guide-chunked:: $(GUIDE)/resources/xsl
|
2018-03-28 07:29:41 +02:00
|
|
|
$(MKDIR) -p $(GUIDE_OUTDIR)
|
|
|
|
|
$(CP) $(GUIDE)/resources/$(STYLESHEET) $(GUIDE_OUTDIR)/$(STYLESHEET)
|
|
|
|
|
$(CP) $(GUIDE)/resources/images/* $(GUIDE_OUTDIR)/
|
|
|
|
|
$(CP) $(GUIDE)/resources/*.js $(GUIDE_OUTDIR)/
|
2008-07-20 16:12:27 +00:00
|
|
|
$(XSLTPROC) --xinclude \
|
2018-03-28 07:29:08 +02:00
|
|
|
--output $(GUIDE_OUTDIR)/index.html \
|
2008-10-18 12:59:23 +00:00
|
|
|
$(GUIDE_XSL) $(GUIDE_SRC)/guide.xml
|
2008-03-20 13:32:48 +00:00
|
|
|
# Convert all sections (h1-h9) to a link so it's easy to link to them.
|
|
|
|
|
# If someone knows a better way to do this please change it.
|
2017-06-26 22:52:42 +02:00
|
|
|
$(REINPLACE) \
|
2017-11-16 20:44:52 +01:00
|
|
|
's|(<h[0-9] [^>]*><a id="([^"]*)"></a>)([^<]*)(</h[0-9]>)|\1<a href="#\2">\3</a>\4|g' \
|
2018-03-28 07:29:08 +02:00
|
|
|
$(GUIDE_OUTDIR)/index.html
|
2007-09-19 20:21:29 +00:00
|
|
|
|
2018-04-11 22:37:21 +02:00
|
|
|
guide-chunked::
|
2018-03-28 07:29:08 +02:00
|
|
|
# Add the table of contents to every chunked HTML file.
|
2008-07-16 13:09:17 +00:00
|
|
|
# If someone knows a better way to do this please change it.
|
2018-03-28 07:29:08 +02:00
|
|
|
$(TCLSH) toc-for-chunked.tcl $(GUIDE_OUTDIR)
|
2008-07-16 13:09:17 +00:00
|
|
|
|
2012-10-19 07:37:59 +00:00
|
|
|
# Generate the guide as a PDF.
|
2012-06-15 18:05:26 +00:00
|
|
|
guide-dblatex: SUFFIX = pdf
|
2018-04-11 22:37:21 +02:00
|
|
|
guide-dblatex:
|
2012-06-15 18:05:26 +00:00
|
|
|
$(MKDIR) -p $(GUIDE_RESULT_DBLATEX)
|
|
|
|
|
$(DBLATEX) \
|
|
|
|
|
--fig-path="$(GUIDE)/resources/images" \
|
|
|
|
|
--type="$(SUFFIX)" \
|
|
|
|
|
--param='toc.section.depth=2' \
|
|
|
|
|
--param='doc.section.depth=3' \
|
|
|
|
|
--output="$(GUIDE_RESULT_DBLATEX)/macports-guide.$(SUFFIX)" \
|
2018-04-11 22:37:21 +02:00
|
|
|
$(GUIDE_SRC)/guide.xml
|
2008-07-16 13:09:17 +00:00
|
|
|
|
2015-09-15 16:58:39 +00:00
|
|
|
# Remove all temporary files generated by guide:.
|
2007-09-19 20:21:29 +00:00
|
|
|
clean:
|
2018-03-28 07:29:41 +02:00
|
|
|
$(RM) -f $(GUIDE)/resources/xsl
|
2008-10-18 12:59:23 +00:00
|
|
|
$(RM) -rf $(GUIDE_RESULT)
|
2012-10-19 07:37:59 +00:00
|
|
|
$(RM) -rf $(GUIDE_RESULT_DBLATEX)
|
2008-01-14 21:26:33 +00:00
|
|
|
$(RM) -f guide.tmp.xml
|
|
|
|
|
|
2008-10-18 12:04:29 +00:00
|
|
|
# Validate the XML files for the guide.
|
2008-01-14 21:26:33 +00:00
|
|
|
validate:
|
2011-04-23 19:01:10 +00:00
|
|
|
$(XMLLINT) --xinclude --loaddtd --postvalid --noout $(GUIDE_SRC)/guide.xml
|