]> granicus.if.org Git - docbook-dsssl/commitdiff
Build system cleanup. devel
authorStefan Seefeld <stefan@seefeld.name>
Fri, 20 May 2016 19:12:55 +0000 (15:12 -0400)
committerStefan Seefeld <stefan@seefeld.name>
Sun, 22 May 2016 18:43:32 +0000 (14:43 -0400)
.travis.yml
.travis/CatalogManager.properties [new file with mode: 0644]
Makefile
README.md
building.md
xsl/Makefile
xsl/Makefile.tests
xsl/slides/schema/relaxng/Makefile
xsl/webhelp/Makefile
xsl/xhtml-1_1/Makefile
xsl/xhtml/Makefile

index 075f9e8b9002180f972b6640b16574ca10ce47e4..90c1fcd333c17aed7e0288d25a13e79df6c8673c 100644 (file)
@@ -1,5 +1,4 @@
 language: java
-
 branches:
   only:
   - master
@@ -8,8 +7,8 @@ branches:
 
 env:
   global:
-    - secure: o2OZl3EwpJmlNBqknmUjvORfsY3uKqBIx3PGfIdLggpdiouCvoJXqSGstUElkC0cj6EoMblo0mMYMtQkewu9cklg2+gaSLBgJD3zh0VL3ERo7ivC8mohTiJPRBvFVHmgazF9SwYli2VIMmIHdE/fmfQyJGs6hPM1m7d4xDh3prMOSLqJRktZk7gkhaT4nGYTv3eRrRVdS4/ni5KGDQ2w6p3TszOrTekxgNSLpPwRyxQlTNEOrOR0Woc+4rSWdIZAcGM6IjEpJ7QwCHWuCklHpnp9sw9lQuJm7ArcWE/moVGFGWNnwOA57aq0SXgWN4Da90eRELFTvFSWJuBI+/U2B6262zXWU6un3WFniQs+lCtRtD4G/6VkMmY4f15dCAJJkFM+6lA9LWpEo7ZpPCT0XuMS9K5lezGvZmXFV8t90GHmQnvYjL1D7PpuQH73D2p3pTdXTY8lfdNpDIfjSjUwvc7zZTdazvfuCJi/mo+h9SaqReaQygnYWSyQ04k2jTS6AeuNaKquEWEDdPfGcD3uFOR0PW9zAUHtrKy4gaS07Jq8k+a1qhTHj6HPnWThG8u3Mbfaua/LH5UP9AYQjstrqn/Y+LIwrWcQcVKMmizPpig9gO3vQOr8K2GiryZTwS00wzCOYpAMj90WX+8RtNsAdeiZgtsfzcQaMhOvulkOCE0=
-    - CLASSPATH=/usr/share/java/xalan-j2.jar:/usr/share/java/xercesImpl.jar:/usr/share/java/xml-resolver.jar
+  - CLASSPATH=/usr/share/java/xalan-j2.jar:/usr/share/java/xercesImpl.jar:/usr/share/java/xml-resolver.jar:$(pwd)/.travis
+  - secure: "CyGQbyoAoFmAst01IZtu3aGGVCTRN/oo8aMZJPwnDRi9F3q/ptueFKYoQEWWEzDYzPMPAtvbDVDx5lhfyZxlm6HwyvU8Frdt+3RTkn287EiDk0fnUhZGSasLaWwZ5SxGuRq/yonc/oLfktK1e6Z9ZUAD9q0GnWncI6ZiLeJussWpRIz5W88Jaz2VJKGdiiHZbQDmCE6b5Oe9Ucu8gYAnmHbz0QbxacPm58+D7rrWVwF9haH0oDlwlMCfM1lI0/GNJVMAREGYLFJBVsieSuDunYz9kZg3ewr0wKud4spy9qUMAGt5yEAn9I+vQYqTgzWpbLAP8cOgSxsVJWbBN8JXUuoQRh1Pu78J0phDII8YouYB98o1JdkQeytrUXJmzfdRtmw/iKKp4qAKHK7v6R0KkcpDhjeiVVWrptc4vXbkpm16EFgv3/d+Gs++M5s6fag60mlth9u6IwZ/tSJbafvUqvPn977YJbua40SSzwwF9/8GP0GGDTp7SoO7oKaIVN9Gv9qMANOYIqOGA/KCyzQ3oLuhD14P5Hy2Gdfa8S4o9UZI43QWURljWniN9ycyZb53px/4WZc2adAcxcB+V64M3UHkLGU+MH7mJWJtLE1v/32fBYaBGEkTch2Ghj/oKV89+rav40ssKyol6IYjKN7uVXh3R3t4kT8jJPbDmUBhFoo="
 
 install:
 - sudo apt-get update -q
@@ -32,25 +31,25 @@ before_deploy:
 - git config --global user.name "Travis CI"
 - export GIT_TAG=snapshot/$TRAVIS_BRANCH-$(date -u "+%Y-%m-%d")-$TRAVIS_BUILD_NUMBER
 - git tag $GIT_TAG -a -m "Generated tag from TravisCI build $TRAVIS_BUILD_NUMBER"
-- git push https://$GITHUBTOKEN@github.com/stefanseefeld/docbook-xsl $GIT_TAG > /dev/null 2>&1
+- git push https://$GITHUBTOKEN@github.com/docbook/xslt10-stylesheets $GIT_TAG > /dev/null 2>&1
 
 deploy:
   provider: releases
   prerelease: true
   api_key:
-    secure: HxUw4mQagxEYvb/yHOjNykxik8w+GKgezb9qmqYg09LWKDmh+thYy1k9llaXDkkHrgki2suJs5auvczsYLzYtKRIF7CU+9UkqEJWU2910Vr4zv8XmClru/cH9/p0eKdOKZ9JRKsEuNyVriyQcwewCY8vA6VpAZYvvijBI7b/ByX8TXsDIJuJ0013t3SiOvQMBJV4Kp/ss3/p/m8dqAHWbi4/mRrNK084KlX597hfebyZ5tAFl38kPYCFy8l9XELCRaceuNSXailUBZaK1oBiVsyeY/dMBTVyiB3eTKVevye9+yf7M0YRFRaJZaV/MMaPFiD1yG+WBcQECfH/krGxxOvH/x4+zHQDB128imu2nL2OMBGbc5ynVxPlE88QUejb/jbE4OW5qmUTY0iaU5aBVQ2atmPS546oMI9xuBrGjVlMFH5ltEhpA4y9FG/MvImprk3gx/+1al2cq2Gttbsqe7Xhc57q3D5DpoMSJKNVXAbgfY9U9utREFV2y9j/0rcpYUMr8F/Uh+W7cdmTYBwPSgo9z+ktzeQ2IKUHdqzxXaRjyhjpKbiIo7t9M/mKGFPlHPX/7aquitO5Ct4VyFoONLkkzZ6BCad28+sHUgT0mi3ede5OPvllLXiDRiBCoowktfWF0mpBTbCeGzaWhBFVwktvmAqL7WxWvfEgEF/0/Jk=
+    secure: "VJAj9hVynNFo4A5G5E6/PbND0dE/NpV1tzhuEgP86RyK1O6CIdIgUMvhjtH2Nv1fuc1C7PdEwMsggNFIelquVIJfdfTSq1xvwYbuQV9djXGhnoDRZB99a8cTI9q7xJ9E4d5fZyLd+s93Pzh3yTUZY+BCaVohnoZPhkA09YqKu/B/XVCDN/Qb3S5rdI+sacGCJqAoXXVrlNn4WUNUBCshJ/o/9KzvdGs5AcVDB8n219CIK5Lw+bM7rV0ifnwcQyLyc2k5fJdQkDoXQwuoeZ9YpNi2Cqoe5NWPtZxzGB5jod21yyU6/QYzOxA/64aC/ZRhEIUMiAnP0gGqTkK+DHJwC+ficoh8iTzNiVNlBuoYqKxo7ErKJPFgpppfCh07SFy8alJ6h1zFeYYLxohqBI1KdfDpDtO5h3YzTm17pQZ8xtuca1U4FgaMnXVMgsvThEwoPgqnhN1ee57MUuwZPc6tc811fZRZcVzfyTIkmpn084Cxl3jk6ZLTF91da/X7FQB/SsKghY1NCpdIwU0oW0PC72fXdSRK+mOegh1Z5aL1unrYp7jVCHEgjHobbe9P5SpycJ3ndiMbTFcnQil/gc6C+7Z7IedE/mlaEtvlrYHtK4w8GNsNWCXfIY4bxZS3XugS43eZc09MTyTTqRHsIgRfsveERmzQRWLtN02VDMYmul4="
   file:
-    - dist/docbook-xsl-snapshot.tar.bz2
-    - dist/docbook-xsl-snapshot.tar.gz
-    - dist/docbook-xsl-snapshot.zip
-    - dist/docbook-xsl-ns-snapshot.tar.bz2
-    - dist/docbook-xsl-ns-snapshot.tar.gz
-    - dist/docbook-xsl-ns-snapshot.zip
-    - dist/docbook-xsl-doc-snapshot.tar.bz2
-    - dist/docbook-xsl-doc-snapshot.tar.gz
-    - dist/docbook-xsl-doc-snapshot.zip
+  - dist/docbook-xsl-snapshot.tar.bz2
+  - dist/docbook-xsl-snapshot.tar.gz
+  - dist/docbook-xsl-snapshot.zip
+  - dist/docbook-xsl-ns-snapshot.tar.bz2
+  - dist/docbook-xsl-ns-snapshot.tar.gz
+  - dist/docbook-xsl-ns-snapshot.zip
+  - dist/docbook-xsl-doc-snapshot.tar.bz2
+  - dist/docbook-xsl-doc-snapshot.tar.gz
+  - dist/docbook-xsl-doc-snapshot.zip
   on:
-    repo: stefanseefeld/docbook-xsl
+    repo: docbook/xslt10-stylesheets
     branch: devel
 
 notifications:
diff --git a/.travis/CatalogManager.properties b/.travis/CatalogManager.properties
new file mode 100644 (file)
index 0000000..93922d0
--- /dev/null
@@ -0,0 +1,76 @@
+# Licensed to the Apache Software Foundation (ASF) under one or more
+# contributor license agreements.  See the NOTICE file distributed with
+# this work for additional information regarding copyright ownership.
+# The ASF licenses this file to You under the Apache License, Version 2.0
+# (the "License"); you may not use this file except in compliance with
+# the License.  You may obtain a copy of the License at
+#
+#     http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing, software
+# distributed under the License is distributed on an "AS IS" BASIS,
+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+# See the License for the specific language governing permissions and
+# limitations under the License.
+
+######################################################################## 
+# CatalogManager provides an interface to the catalog properties.
+# Properties can come from two places: from system properties or
+# from a CatalogManager.properties file. This class provides a
+# transparent interface to both, with system properties preferred 
+# over property file values.
+
+#######################################################################
+# Catalog Files:
+# The semicolon-delimited list of catalog files.
+# Example: catalogs=./xcatalog;/share/doctypes/catalog
+
+catalogs=/etc/xml/catalog
+
+#######################################################################
+# Relative Catalogs:
+# If false, relative catalog URIs are made absolute with respect to the
+# base URI of the CatalogManager.properties file. This setting only 
+# applies to catalog URIs obtained from the catalogs property in the
+# CatalogManager.properties file
+# Example: relative-catalogs = [yes|no]
+
+relative-catalogs=yes
+
+#######################################################################
+# Verbosity:
+# If non-zero, the Catalog classes will print informative and debugging
+# messages. The higher the number, the more messages.
+# Example: verbosity = [0..99]
+
+#verbosity=99
+
+#######################################################################
+# Prefer:
+# Which identifier is preferred, "public" or "system"?
+# Example: xml.catalog.prefer = [public|system]
+
+prefer=system
+
+#######################################################################
+# Static-catalog:
+# Should a single catalog be constructed for all parsing, or should a
+# different catalog be created for each parser?
+# Example: static-catalog = [yes|no]
+
+static-catalog=yes
+
+#######################################################################
+# Allow-oasis-xml-catalog-pi
+# If the source document contains "oasis-xml-catalog" processing 
+# instructions, should they be used?
+# Example: allow-oasis-xml-catalog-pi = [yes|no]
+
+allow-oasis-xml-catalog-pi=yes
+
+#######################################################################
+# catalog-class-name
+# If you're using the convenience classes 
+# org.apache.xml.resolver.tools.*, this setting allows you to specify
+# an alternate class name to use for the underlying catalog.
+# Example: catalog-class-name=org.apache.xml.resolver.Resolver
index 8979a8b83b7441bb82a1666b3be21eca74f233f9..af9fd758d4097a3df5af662765d3f214be6dbcb6 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,10 +1,17 @@
 export repo_dir ?= $(abspath .)
 
 all:
-       $(MAKE) -C xsl release
+       $(MAKE) -C xsl
+
+doc:
+       $(MAKE) -C xsl doc
 
 check:
        $(MAKE) -C xsl check
 
 dist:
+       $(MAKE) -C xsl release
        $(MAKE) -C xsl zip-ns TMP=$(repo_dir)/dist
+
+clean:
+       $(MAKE) -C xsl clean
index 1f1efe62732b8735078aa4d398f8f7720e8e7c4c..288f9484bd7050bb083c1f0ee5de5468268fe0db 100644 (file)
--- a/README.md
+++ b/README.md
@@ -1,6 +1,6 @@
 ## DocBook XSLT 1.0 Stylesheets
 
-[![Build Status](https://travis-ci.org/stefanseefeld/docbook-xsl.svg)](https://travis-ci.org/stefanseefeld/docbook-xsl)
+[![Build Status](https://travis-ci.org/docbook/xslt10-stylesheets.svg)](https://travis-ci.org/docbook/xslt10-stylesheets)
 
 This repository contains the DocBook XSLT 1.0 Stylesheets, now
 migrated away from SourceForge.
index 185a51b0a96a005a09a89446342aa65d4a6e10c0..775d9996a04950ceeb65605c37636ecd1140c96a 100644 (file)
@@ -6,6 +6,7 @@ Prerequisites
 
 TBD
 
+
 Building
 --------
 
@@ -13,6 +14,7 @@ Run
 
   `make`
 
+
 Testing
 -------
 
@@ -20,9 +22,11 @@ Run
 
   `make check`
 
+
 Packaging
 ---------
 
 Run
 
   `make dist`
+
index d33271c68ac92422d83b106df34510e57da9437b..aa9fbfc77a7ec1a8e503fe1821519a732bfe16f0 100644 (file)
@@ -82,11 +82,7 @@ ifeq (,$(findstring xsltproc,$(XSLT)))
 endif
 
 base:
-       for i in $(DIRS) __bogus__; do \
-               if [ $$i != __bogus__ ] ; then \
-                       echo "$(MAKE) -C $$i"; $(MAKE) -C $$i; \
-               fi \
-       done
+       for d in $(DIRS) ; do $(MAKE) -C $$d; done
 
 xhtml:
        $(MAKE) -C xhtml
@@ -99,11 +95,7 @@ doc: docsrc
        $(MAKE) -C doc RELVER=$(RELVER)
 
 clean:
-       for i in $(DIRS) __bogus__; do \
-               if [ $$i != __bogus__ ] ; then \
-                       echo "$(MAKE) clean -C $$i"; $(MAKE) clean -C $$i; \
-               fi \
-       done
+       for d in $(DIRS) ; do $(MAKE) -C $$d clean; done
        $(MAKE) clean -C xhtml
        $(MAKE) clean -C xhtml-1_1
        $(MAKE) clean -C doc
index fdb8456ec908a0fe2e58594b3ecc010d22acb046..8c0cef20a13534ec6e1198dfe2ecfbde76742b4d 100644 (file)
@@ -38,7 +38,11 @@ TMP_OUTPUT_DIR=/tmp/smoketest-output/
 # SMOKETEST_CLEAN_TARGET; e.g. "make check SMOKETEST_CLEAN_TARGET=''"
 SMOKETEST_CLEAN_TARGET=smoketest-clean
 
-check: smoketest-make-tmp-dir smoketest-normal smoketest-normal-profile smoketest-chunk smoketest-chunk-profile smoketest-man smoketest-man-profile smoketest-two-profile $(SMOKETEST_CLEAN_TARGET)
+check: tests smoketest-make-tmp-dir smoketest-normal smoketest-normal-profile smoketest-chunk smoketest-chunk-profile smoketest-man smoketest-man-profile smoketest-two-profile $(SMOKETEST_CLEAN_TARGET)
+
+.PHONY: tests
+tests:
+       $(MAKE) -C tests
 
 smoketest-make-tmp-dir:
        $(RM) -r $(TMP_OUTPUT_DIR)
index 817734043cd9f167b63dd64316b37271e80a72b9..5fffd33ba25c90649d0b327eff15e52c496ea69e 100644 (file)
@@ -6,6 +6,4 @@ all: slides.rng
        trang $< $@
 
 clean:
-
-maintainer-clean: clean
-       rm -f slides.rng
+       rm -f *.rng
index 5b75d4f620febb5fa19b0b57a97a91d6fbad0971..42af9f529405b35615bdf7aa356aeac55d347ce1 100644 (file)
@@ -1,53 +1,38 @@
 # Configuration\r
-DOCBOOK_DIST := ../$(pwd)\r
-\r
-DOCBOOK_EXTENSIONS_DIR = $(DOCBOOK_DIST)/extensions\r
-\r
-INPUT_XML = docsrc/readme.xml\r
-USER_IMAGES_PARENT_DIR=docsrc\r
-OUTPUT_DIR = docs\r
-INDEXER_EXCLUDED_FILES = ix01.html\r
-\r
-INDEXER_JAR   := $(DOCBOOK_EXTENSIONS_DIR)/webhelpindexer.jar\r
-TAGSOUP_JAR   := $(DOCBOOK_EXTENSIONS_DIR)/tagsoup-1.2.1.jar\r
-LUCENE_ANALYZER_JAR   := $(DOCBOOK_EXTENSIONS_DIR)/lucene-analyzers-3.0.0.jar\r
-LUCENE_CORE_JAR   := $(DOCBOOK_EXTENSIONS_DIR)/lucene-core-3.0.0.jar\r
+INDEXER_JAR   := ../extensions/webhelpindexer.jar\r
+TAGSOUP_JAR   := ../extensions/tagsoup-1.2.1.jar\r
+LUCENE_ANALYZER_JAR   := ../extensions/lucene-analyzers-3.0.0.jar\r
+LUCENE_CORE_JAR   := ../extensions/lucene-core-3.0.0.jar\r
 \r
 classpath := $(INDEXER_JAR):$(TAGSOUP_JAR):$(LUCENE_ANALYZER_JAR):$(LUCENE_CORE_JAR)\r
 \r
 all: webhelp\r
 \r
-webhelp: $(INPUT_XML) copyfiles chunk index\r
-\r
-copyfiles:\r
-       -rm -rf $(OUTPUT_DIR)\r
-       mkdir -p $(OUTPUT_DIR)\r
-       cp -r template/common ${OUTPUT_DIR}\r
-       test ! -d $(USER_IMAGES_PARENT_DIR)/images/ || cp -r $(USER_IMAGES_PARENT_DIR)/images ${OUTPUT_DIR}/images\r
-       cp template/favicon.ico ${OUTPUT_DIR}/\r
+webhelp: docs/index.html\r
 \r
-chunk:\r
+docs/index.html: docsrc/readme.xml\r
+       -rm -rf docs\r
+       mkdir -p docs\r
+       cp -r template/common docs/\r
+       test ! -d docsrc/images/ || cp -r docsrc/images docs/images\r
+       cp template/favicon.ico docs/\r
        xsltproc  --xinclude --output  xincluded-profiled.xml  \\r
-                  --stringparam  profile.os  "linux" \\r
-                  ../profiling/profile.xsl  \\r
-                  ${INPUT_XML}\r
-\r
-       xsltproc xsl/webhelp.xsl xincluded-profiled.xml      \r
-\r
+          --stringparam  profile.os  "linux" \\r
+          ../profiling/profile.xsl  \\r
+           $<\r
+       xsltproc xsl/webhelp.xsl xincluded-profiled.xml\r
        rm xincluded-profiled.xml\r
-index:\r
        java \\r
-                -DhtmlDir=$(OUTPUT_DIR) \\r
-                -DindexerLanguage=en \\r
-                -DhtmlExtension=html \\r
-                -DdoStem=true \\r
-                -DindexerExcludedFiles=$(INDEXER_EXCLUDED_FILES) \\r
-                -Dorg.xml.sax.driver=org.ccil.cowan.tagsoup.Parser \\r
-                -Djavax.xml.parsers.SAXParserFactory=org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl \\r
-                -classpath $(classpath) \\r
-                com.nexwave.nquindexer.IndexerMain\r
-\r
-       cp -r template/search/* ${OUTPUT_DIR}/search\r
+          -DhtmlDir=docs \\r
+          -DindexerLanguage=en \\r
+          -DhtmlExtension=html \\r
+          -DdoStem=true \\r
+          -DindexerExcludedFiles=ix01.html \\r
+          -Dorg.xml.sax.driver=org.ccil.cowan.tagsoup.Parser \\r
+          -Djavax.xml.parsers.SAXParserFactory=org.ccil.cowan.tagsoup.jaxp.SAXFactoryImpl \\r
+          -classpath $(classpath) \\r
+          com.nexwave.nquindexer.IndexerMain\r
+       cp -r template/search/* docs/search\r
 \r
 clean:\r
        $(RM) -r docs/*\r
index 0e30596558ccc7e516aec2538195786575de9675..bb59bace27f6f15ca472e92fb71f49f22f9d95f8 100644 (file)
@@ -3,33 +3,18 @@ ALLTARGETS=param.xml
 
 include $(repo_dir)/buildtools/Makefile.incl
 
-all: xsl-files profile-docbook.xsl profile-chunk.xsl profile-onechunk.xsl
+profile_files:=$(patsubst %, profile-%.xsl, docbook chunk onechunk)
+upstream_xsl:=$(wildcard ../html/*.xsl)
+xsl_files:=$(patsubst ../html/%.xsl, %.xsl, $(upstream_xsl))
+xsl_files:=$(filter-out html2xhtml.xsl $(profile_files), $(xsl_files))
 
-remove-old:
-       for f in *.xsl; do if [ ! -f ../html/$$f -a "$$f" != "html2xhtml.xsl" ]; then rm $$f; fi; done
-       $(RM) docbook.css.xml
+all: $(xsl_files) $(profile_files)
 
-add-new:
-       for f in ../html/*.xsl; do if [ ! -f `basename $$f` ]; then \
-          echo $$f; \
-          cp $$f .; \
-          touch -t 197001010000 `basename $$f`; fi; done
-       cp ../html/docbook.css.xml .
+clean:
+       $(RM) $(xsl_files) $(profile_files)
 
-# Oh, come on! It must be possible to do this in Make, but I can't figure out how (ndw)
+$(xsl_files): %.xsl: ../html/%.xsl
+       $(XSLT) $< html2xhtml.xsl $@
 
-xsl-files: remove-old add-new
-       for f in *.xsl; do if [ ../html/$$f -nt $$f ]; then $(XSLT) ../html/$$f html2xhtml.xsl $$f; fi; done
-
-profile-docbook.xsl: docbook.xsl ../profiling/xsl2profile.xsl
-       $(XSLT) $< ../profiling/xsl2profile.xsl $@
-
-profile-chunk.xsl: chunk.xsl ../profiling/xsl2profile.xsl
+$(profile_files): profile-%.xsl: %.xsl
        $(XSLT) $< ../profiling/xsl2profile.xsl $@
-
-profile-onechunk.xsl: onechunk.xsl ../profiling/xsl2profile.xsl
-       $(XSLT) $< ../profiling/xsl2profile.xsl $@
-
-clean: remove-old
-       $(RM) profile-docbook.xsl profile-chunk.xsl profile-onechunk.xsl
-       for f in ../html/*.xsl; do $(RM) `basename $$f`; done
index 389879ffde860695afa9403fab3ef8f12b069a4a..5e47f0fe3bf6c71441f9049c7da42c06afde3efd 100644 (file)
@@ -2,42 +2,22 @@ include $(repo_dir)/buildtools/Makefile.incl
 
 TARGETNS=http://www.w3.org/1999/xhtml
 
-all: xsl-files profile-docbook.xsl profile-chunk.xsl profile-onechunk.xsl
-
-remove-old:
-       for f in *.xsl; do if [ ! -f ../html/$$f -a "$$f" != "html2xhtml.xsl" ]; then rm $$f; fi; done
-       $(RM) docbook.css.xml
-
-add-new:
-       for f in ../html/*.xsl; do if [ ! -f `basename $$f` ]; then \
-          echo "copying $$f"; \
-          cp $$f .; \
-          touch -t 197001010000 `basename $$f`; fi; done
-       cp ../html/docbook.css.xml .
-
-# Oh, come on! It must be possible to do this in Make, but I can't figure out how (ndw)
-
-xsl-files: remove-old add-new
-       for f in *.xsl; do \
-         if [ ../html/$$f -nt $$f ]; then \
-           echo "transforming $$f"; \
-           $(XSLT) ../html/$$f html2xhtml.xsl $$f; \
-        fi; \
-       done
-
-       # Also Generate special docbook-no-doctype.xsl file
-       $(XSLT) ../html/docbook.xsl html2xhtml.xsl docbook-no-doctype.xsl \
-               include.output.doctype=0 ;  \
-
-profile-docbook.xsl: docbook.xsl ../profiling/xsl2profile.xsl
-       $(XSLT) $< ../profiling/xsl2profile.xsl $@
+profile_files:=$(patsubst %, profile-%.xsl, docbook chunk onechunk)
+upstream_xsl:=$(wildcard ../html/*.xsl)
+xsl_files:=$(patsubst ../html/%.xsl, %.xsl, $(upstream_xsl))
+xsl_files:=$(filter-out html2xhtml.xsl $(profile_files), $(xsl_files))
 
-profile-chunk.xsl: chunk.xsl ../profiling/xsl2profile.xsl
-       $(XSLT) $< ../profiling/xsl2profile.xsl $@
+all: $(xsl_files) $(profile_files) docbook-no-doctype.xsl
+
+clean:
+       $(RM) $(xsl_files) $(profile_files)
 
-profile-onechunk.xsl: onechunk.xsl ../profiling/xsl2profile.xsl
+$(xsl_files): %.xsl: ../html/%.xsl
+       $(XSLT) $< html2xhtml.xsl $@
+
+$(profile_files): profile-%.xsl: %.xsl
        $(XSLT) $< ../profiling/xsl2profile.xsl $@
 
-clean: remove-old
-       $(RM) profile-docbook.xsl profile-chunk.xsl profile-onechunk.xsl
-       for f in ../html/*.xsl; do $(RM) `basename $$f`; done
+docbook-no-doctype.xsl: ../html/docbook.xsl
+       $(XSLT) $< html2xhtml.xsl docbook-no-doctype.xsl include.output.doctype=0
+