[97454] trunk/doc-new/Makefile
wsiegrist at apple.com
wsiegrist at apple.com
Thu Sep 6 15:00:15 PDT 2012
Revision: 97454
https://trac.macports.org/changeset/97454
Author: wsiegrist at apple.com
Date: 2012-09-06 15:00:13 -0700 (Thu, 06 Sep 2012)
Log Message:
-----------
Add Linux support to guide generation.
Modified Paths:
--------------
trunk/doc-new/Makefile
Modified: trunk/doc-new/Makefile
===================================================================
--- trunk/doc-new/Makefile 2012-09-06 21:21:08 UTC (rev 97453)
+++ trunk/doc-new/Makefile 2012-09-06 22:00:13 UTC (rev 97454)
@@ -6,9 +6,13 @@
# If your MacPorts isn't installed in /opt/local you have to change PREFIX
# here.
+UNAME := $(shell uname)
# Prefix of the MacPorts installation.
PREFIX = /opt/local
+ifeq ($(UNAME), Linux)
+PREFIX = /usr
+endif
# Command abstraction variables.
MKDIR = /bin/mkdir
@@ -16,6 +20,9 @@
RM = /bin/rm
LN = /bin/ln
SED = /usr/bin/sed
+ifeq ($(UNAME), Linux)
+SED = /bin/sed
+endif
TCLSH = /usr/bin/tclsh
XSLTPROC = $(PREFIX)/bin/xsltproc
XMLLINT = $(PREFIX)/bin/xmllint
@@ -37,6 +44,9 @@
# Path to the DocBook XSL files.
DOCBOOK = $(PREFIX)/share/xsl/docbook-xsl
+ifeq ($(UNAME), Linux)
+DOCBOOK = /usr/local/share/xsl/docbook-xsl
+endif
GUIDE_XSL = $(GUIDE)/resources/single-page.xsl
GUIDE_XSL_CHUNK = $(GUIDE)/resources/chunk.xsl
MAN_XSL = $(MAN)/resources/macports.xsl
@@ -53,30 +63,50 @@
$(MKDIR) -p $(GUIDE_RESULT)
$(CP) $(GUIDE)/resources/$(STYLESHEET) $(GUIDE_RESULT)/$(STYLESHEET)
$(CP) $(GUIDE)/resources/images/* $(GUIDE_RESULT)/
+ifeq ($(UNAME), Linux)
+ $(LN) -sfn $(DOCBOOK) $(GUIDE)/resources/xsl
+else
$(LN) -sfh $(DOCBOOK) $(GUIDE)/resources/xsl
+endif
$(XSLTPROC) --xinclude \
--output $(GUIDE_RESULT)/index.html \
$(GUIDE_XSL) $(GUIDE_SRC)/guide.xml
# 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.
+ifeq ($(UNAME), Linux)
+ $(SED) -i -r -e \
+ 's|(<h[0-9] [^>]*><a id="([^"]*)"></a>)([^<]*)(</h[0-9]>)|\1<a href="#\2">\3</a>\4|g' \
+ $(GUIDE_RESULT)/index.html
+else
$(SED) -i "" -E \
's|(<h[0-9] [^>]*><a id="([^"]*)"></a>)([^<]*)(</h[0-9]>)|\1<a href="#\2">\3</a>\4|g' \
$(GUIDE_RESULT)/index.html
+endif
# Generate the chunked HTML guide with one section per file.
guide-chunked:
$(MKDIR) -p $(GUIDE_RESULT_CHUNK)
$(CP) $(GUIDE)/resources/$(STYLESHEET) $(GUIDE_RESULT_CHUNK)/$(STYLESHEET)
$(CP) $(GUIDE)/resources/images/* $(GUIDE_RESULT_CHUNK)/
+ifeq ($(UNAME), Linux)
+ $(LN) -sfn $(DOCBOOK) $(GUIDE)/resources/xsl
+else
$(LN) -sfh $(DOCBOOK) $(GUIDE)/resources/xsl
+endif
$(XSLTPROC) --xinclude \
--output $(GUIDE_RESULT_CHUNK)/index.html \
$(GUIDE_XSL_CHUNK) $(GUIDE_SRC)/guide.xml
# 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.
+ifeq ($(UNAME), Linux)
+ $(SED) -i -r -e \
+ 's|(<h[0-9] [^>]*><a id="([^"]*)"></a>)([^<]*)(</h[0-9]>)|\1<a href="#\2">\3</a>\4|g' \
+ $(GUIDE_RESULT_CHUNK)/*.html
+else
$(SED) -i "" -E \
's|(<h[0-9] [^>]*><a id="([^"]*)"></a>)([^<]*)(</h[0-9]>)|\1<a href="#\2">\3</a>\4|g' \
$(GUIDE_RESULT_CHUNK)/*.html
+endif
# Add the table of contents to every junked HTML file.
# If someone knows a better way to do this please change it.
$(TCLSH) toc-for-chunked.tcl $(GUIDE_RESULT_CHUNK)
@@ -101,8 +131,13 @@
$(MKDIR) -p $(MAN_TMP)
$(CP) $(GUIDE_SRC)/portfile-*.xml $(MAN_TMP)
$(CP) $(GUIDE_SRC)/portgroup-*.xml $(MAN_TMP)
+ifeq ($(UNAME), Linux)
+ $(SED) -i -r -e 's|<section|<refsection|g' $(MAN_TMP)/*
+ $(SED) -i -r -e 's|</section>|</refsection>|g' $(MAN_TMP)/*
+else
$(SED) -i "" 's|<section|<refsection|g' $(MAN_TMP)/*
$(SED) -i "" 's|</section>|</refsection>|g' $(MAN_TMP)/*
+endif
$(XSLTPROC) --xinclude --output $(MAN_RESULT) $(MAN_XSL) \
$(MAN_SRC)/port.1.xml \
$(MAN_SRC)/portfile.7.xml \
@@ -112,7 +147,11 @@
# Create XSL from template for man pages.
$(MAN_XSL):
+ifeq ($(UNAME), Linux)
+ $(SED) -r -e 's:@PREFIX@:$(PREFIX):' $@.in > $@
+else
$(SED) 's:@PREFIX@:$(PREFIX):' $@.in > $@
+endif
# Remove all temporary files generated by guide: and man:.
clean:
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.macosforge.org/pipermail/macports-changes/attachments/20120906/f3e12157/attachment.html>
More information about the macports-changes
mailing list