[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