From a6c93092cdaa0ad38ec5285097e66c71e0a128ba Mon Sep 17 00:00:00 2001 From: vboxsync Date: Fri, 5 May 2023 08:53:50 +0000 Subject: manual: Kicked out the dita 1.8.5 related stuff to reduce the makefile messyness. bugref:10302 git-svn-id: https://www.virtualbox.org/svn/vbox/trunk@99617 cfe28804-0f27-0410-a406-dd0f0b0b656f --- doc/manual/Config.kmk | 16 ++-- doc/manual/Makefile.kmk | 191 ++++++++++++++----------------------- doc/manual/dita-ot-copy-exec.sh | 205 ---------------------------------------- 3 files changed, 82 insertions(+), 330 deletions(-) delete mode 100755 doc/manual/dita-ot-copy-exec.sh (limited to 'doc') diff --git a/doc/manual/Config.kmk b/doc/manual/Config.kmk index 10230b8b27b..898898cd98f 100644 --- a/doc/manual/Config.kmk +++ b/doc/manual/Config.kmk @@ -39,8 +39,12 @@ ifndef VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED # # DITA stuff. - VBOX_DITA_CONVERTER_PATH ?= $(PATH_ROOT)/src/libs/dbdita-1.0 - VBOX_DITA_ORIGINAL_PATH ?= $(PATH_ROOT)/src/libs/dita-ot-1.8.5 + VBOX_DITA_OT_PATH ?= $(PATH_ROOT)/src/libs/dita-ot-1.8.5 + ifneq ($(VBOX_DITA_OT_PATH),) + VBOX_DITA_OT_PATH := $(firstfile \ + $(rversortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/common/dita-ot/v[4-9].*)) \ + $(KBUILD_DEVTOOLS)/common/dita-ot/v4.0.2-r1) + endif # Source location. @@ -383,14 +387,14 @@ ifndef VBOX_DOC_MANUAL_CONFIG_KMK_INCLUDED if 0 # Enable to see the full combined document. $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT,,$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat) \ --path "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/topics" \ - --path "$(VBOX_DITA_ORIGINAL_PATH)/dtd/bookmap/dtd" \ - --path "$(VBOX_DITA_ORIGINAL_PATH)/dtd/technicalContent/dtd" \ + --path "$(VBOX_DITA_OT_PATH)/dtd/bookmap/dtd" \ + --path "$(VBOX_DITA_OT_PATH)/dtd/technicalContent/dtd" \ --output "$$@.tmp2.xml" "$$(VBOX_PATH_MANUAL_SRC)/ditamap-to-single-xml.xsl" "$$@.tmp.xml" endif $$(QUIET)$$(call VBOX_XSLTPROC_WITH_CAT,,$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/$$(VBOX_XML_XREF_TO_TEXT).cat) \ --path "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/topics" \ - --path "$(VBOX_DITA_ORIGINAL_PATH)/dtd/bookmap/dtd" \ - --path "$(VBOX_DITA_ORIGINAL_PATH)/dtd/technicalContent/dtd" \ + --path "$(VBOX_DITA_OT_PATH)/dtd/bookmap/dtd" \ + --path "$(VBOX_DITA_OT_PATH)/dtd/technicalContent/dtd" \ --stringparam 'g_sMode' 'first' \ --output "$$@" \ "$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita-refentry-link-replacement-xsl-gen.xsl" \ diff --git a/doc/manual/Makefile.kmk b/doc/manual/Makefile.kmk index da606d2a108..00bf3765699 100644 --- a/doc/manual/Makefile.kmk +++ b/doc/manual/Makefile.kmk @@ -106,100 +106,65 @@ if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DO VBOX_PDFLATEX_CMD = pdflatex $(VBOX_PDFLATEX_HALT) -interaction $(VBOX_PDFLATEX_INTERACTION) endif + # + # Java v17 or later (JAVA_HOME), used by DITA-OT. + # + ifeq ($(VBOX_JAVA17PLUS_HOME),) + if defined(VBOX_JAVA_VERSION) && $(VBOX_JAVA_VERSION) >= 170000 && "$(VBOX_JAVA_BIN_PATH)" != "" + VBOX_JAVA17PLUS_HOME := $(qabspath ,$(VBOX_JAVA_BIN_PATH)/..) + else + VBOX_JAVA17PLUS_HOME := $(firstfile \ + $(rversortfiles $(qwildcard , $(KBUILD_DEVTOOLS_HST)/jdk/v1[789].* $(KBUILD_DEVTOOLS_HST)/jdk/v[2-9][0-9].* )) \ + $(rversortfiles $(qwildcard ,$(KBUILD_DEVTOOLS_HST_ALT)/jdk/v1[789].* $(KBUILD_DEVTOOLS_HST_ALT)/jdk/v[2-9][0-9].* )) \ + ) + if "$(KBUILD_HOST)" == "darwin" && "$(VBOX_JAVA17PLUS_HOME)" != "" + VBOX_JAVA17PLUS_HOME := $(VBOX_JAVA17PLUS_HOME)/Contents/Home + endif + endif + endif # # DITA-OT related globals. # - VBOX_DITA_TECHNICAL_CONTENT_DTD_PATH = $(VBOX_DITA_ORIGINAL_PATH)/dtd/technicalContent/dtd + VBOX_DITA_TECHNICAL_CONTENT_DTD_PATH = $(VBOX_DITA_OT_PATH)/plugins/org.oasis-open.dita.v1_2/dtd/technicalContent/dtd ## # Copies DITA-OT to $1, runs the dost.jar with /ditadir given and nukes $1 when done. # # Additional options for dost.jar can be specified following the call to VBOX_DITA_RUN_DOST # - # @param 1 Temporary+unique DITA-OT path. - # @param 2 Additional kmk_redirect options. - # @param 3 Parameters for the invoker. - # @param 4 Parameters only for 1.8.5. - # @param 5 Parameters only for 4.0.2. + # @param 1 Additional kmk_redirect options. + # @param 2 Parameters for the invoker. # - VBOX_DITA_RUN_DOST ?= $(REDIRECT) \ - -E 'ANT_OPTS=-Xmx512m -Djavax.xml.transform.TransformerFactory=net.sf.saxon.TransformerFactoryImpl' \ - -E 'ANT_HOME=$1/tools/ant' \ - -E 'DITA_DIR=$1' \ - -E 'JAVA_HOME=$(VBOX_JAVA_HOME)' \ - -A 'PATH=$(HOST_PATH_SEP)$1/tools/ant/bin' \ - -E 'CLASSPATH=$1/lib/dost.jar' \ - -A 'CLASSPATH=$(HOST_PATH_SEP)$1/lib' \ - -A 'CLASSPATH=$(HOST_PATH_SEP)$1/lib/commons-codec-1.4.jar' \ - -A 'CLASSPATH=$(HOST_PATH_SEP)$1/lib/resolver.jar' \ - -A 'CLASSPATH=$(HOST_PATH_SEP)$1/lib/icu4j.jar' \ - -A 'CLASSPATH=$(HOST_PATH_SEP)$1/lib/xercesImpl.jar' \ - -A 'CLASSPATH=$(HOST_PATH_SEP)$1/lib/xml-apis.jar' \ - -A 'CLASSPATH=$(HOST_PATH_SEP)$1/lib/saxon/saxon9.jar' \ - -A 'CLASSPATH=$(HOST_PATH_SEP)$1/lib/saxon/saxon9-dom.jar' \ - $2 \ - -- $(ASH) $(VBOX_PATH_MANUAL_SRC)/dita-ot-copy-exec.sh "$(VBOX_DITA_ORIGINAL_PATH)" "$1" \ - -- $(VBOX_JAVA) -jar "$1/lib/dost.jar" "/ditadir:$1" \ - $(if-expr defined(VBOX_DITA_DEBUG),"/cleantemp:no" "/debug:yes",) \ - $3 $4 # "/outercontrol:fail" ? - - if1of ($(KBUILD_HOST), darwin linux win) - VBOX_DITA_USING_LATEST := 1 - endif - ifdef VBOX_DITA_USING_LATEST - VBOX_DITA_USING_LATEST := 1 - ifeq ($(VBOX_JAVA17PLUS_HOME),) - if defined(VBOX_JAVA_VERSION) && $(VBOX_JAVA_VERSION) >= 170000 && "$(VBOX_JAVA_BIN_PATH)" != "" - VBOX_JAVA17PLUS_HOME := $(qabspath ,$(VBOX_JAVA_BIN_PATH)/..) - else - VBOX_JAVA17PLUS_HOME := $(firstfile \ - $(rversortfiles $(qwildcard , $(KBUILD_DEVTOOLS_HST)/jdk/v1[789].* $(KBUILD_DEVTOOLS_HST)/jdk/v[2-9][0-9].* )) \ - $(rversortfiles $(qwildcard ,$(KBUILD_DEVTOOLS_HST_ALT)/jdk/v1[789].* $(KBUILD_DEVTOOLS_HST_ALT)/jdk/v[2-9][0-9].* )) \ - ) - if "$(KBUILD_HOST)" == "darwin" && "$(VBOX_JAVA17PLUS_HOME)" != "" - VBOX_JAVA17PLUS_HOME := $(VBOX_JAVA17PLUS_HOME)/Contents/Home - endif - endif - endif - VBOX_DITA_ORIGINAL_PATH := $(firstfile $(rversortfiles $(qwildcard ,$(KBUILD_DEVTOOLS)/common/dita-ot/v[4-9].*)) \ - $(KBUILD_DEVTOOLS)/common/dita-ot/v4.0.2-r1) - - VBOX_DITA_TECHNICAL_CONTENT_DTD_PATH = $(VBOX_DITA_ORIGINAL_PATH)/plugins/org.oasis-open.dita.v1_2/dtd/technicalContent/dtd - VBOX_DITA_CLASSPATH = \ - $(subst $(SP),$(HOST_PATH_SEP),$(strip \ - $(VBOX_DITA_ORIGINAL_PATH)/lib/ant-launcher.jar \ - $(VBOX_DITA_ORIGINAL_PATH)/config \ - $(VBOX_DITA_ORIGINAL_PATH)/lib \ - $(wildcard \ - $(VBOX_DITA_ORIGINAL_PATH)/lib/*.jar \ - $(VBOX_DITA_ORIGINAL_PATH)/plugins/*/lib/*.jar))) - VBOX_DITA_RUN_DOST = $(REDIRECT_EXT) \ - -E 'ANT_HOME=$(VBOX_DITA_ORIGINAL_PATH)' \ - -E 'DITA_DIR=$(VBOX_DITA_ORIGINAL_PATH)' \ - -E 'JAVA_HOME=$(VBOX_JAVA17PLUS_HOME)' \ - -E 'CLASSPATH=$(VBOX_DITA_CLASSPATH)' \ - $2 \ - -- \ - $(VBOX_JAVA17PLUS_HOME)/bin/java \ - "-Djava.awt.headless=true" \ - "-Dsun.io.useCanonCaches=true" \ - "-Dant.home=$(VBOX_DITA_ORIGINAL_PATH)" \ - "-Ddita.dir=$(VBOX_DITA_ORIGINAL_PATH)" \ - org.apache.tools.ant.launch.Launcher \ - -cp "$(VBOX_DITA_CLASSPATH)" \ - -buildfile "$(VBOX_DITA_ORIGINAL_PATH)/build.xml" \ - -main "org.dita.dost.invoker.Main" \ - --args.grammar.cache=yes \ - $(patsubst "/i:%,"--input=%, \ - $(patsubst "/transtype:%,"--format=%, \ - $(patsubst "/outdir:%,"--output=%, \ - $(patsubst "/tempdir:%,"--temp=%, \ - $(patsubst "/filter:%,"--filter=%, \ - $(patsubst "/debug","--debug",$3)))))) \ - $(if-expr defined(VBOX_DITA_DEBUG),"--clean.temp=no" "--debug",) \ - $5 --verbose - endif + VBOX_DITA_RUN_DOST = $(REDIRECT_EXT) \ + -E 'ANT_HOME=$(VBOX_DITA_OT_PATH)' \ + -E 'DITA_DIR=$(VBOX_DITA_OT_PATH)' \ + -E 'JAVA_HOME=$(VBOX_JAVA17PLUS_HOME)' \ + -E 'CLASSPATH=$(VBOX_DITA_CLASSPATH)' \ + $1 \ + -- \ + "$(VBOX_JAVA17PLUS_HOME)/bin/java" \ + "-Djava.awt.headless=true" \ + "-Dsun.io.useCanonCaches=true" \ + "-Dant.home=$(VBOX_DITA_OT_PATH)" \ + "-Ddita.dir=$(VBOX_DITA_OT_PATH)" \ + org.apache.tools.ant.launch.Launcher \ + -cp "$(VBOX_DITA_CLASSPATH)" \ + -buildfile "$(VBOX_DITA_OT_PATH)/build.xml" \ + -main "org.dita.dost.invoker.Main" \ + --args.grammar.cache=yes \ + --verbose \ + $(if-expr defined(VBOX_DITA_DEBUG),"--clean.temp=no" "--debug",) \ + $2 + + VBOX_DITA_CLASSPATH = \ + $(subst $(SP),$(HOST_PATH_SEP),$(strip \ + $(VBOX_DITA_OT_PATH)/lib/ant-launcher.jar \ + $(VBOX_DITA_OT_PATH)/config \ + $(VBOX_DITA_OT_PATH)/lib \ + $(wildcard \ + $(VBOX_DITA_OT_PATH)/lib/*.jar \ + $(VBOX_DITA_OT_PATH)/plugins/*/lib/*.jar))) # @@ -810,7 +775,7 @@ if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DO # # 4a. UserManual.pdf - Run dost.jar from DITA-OT to produce the PDF version. # - # Note! The /tempdir is deleted, recreated, used and deleted again for each + # Note! The --temp (dir) is deleted, recreated, used and deleted again for each # run. So, be careful where you point it. # Note! This crappy utility may fail to find files (or fail to parse the # command line) and still return a successfully (0) exit code. @@ -831,15 +796,12 @@ if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DO "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/temp_pdf" \ $$(if-expr defined(VBOX_DITA_USING_LATEST),,"$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/UserManual_pdf.log") $$(QUIET)$$(RM) -Rf -- "$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita-ot-pdf/" - $$(QUIET)$$(call VBOX_DITA_RUN_DOST,$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita-ot-pdf,, \ - "/i:$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/UserManual.ditamap" \ - "/transtype:pdf" \ - "/filter:$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/ohc.ditaval" \ - "/outdir:$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)" \ - "/tempdir:$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/temp_pdf" \ - , \ - "/grammarcache:yes" \ - , \ + $$(QUIET)$$(call VBOX_DITA_RUN_DOST,, \ + "--input=$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/UserManual.ditamap" \ + "--format=pdf" \ + "--filter=$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/ohc.ditaval" \ + "--output=$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)" \ + "--temp=$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/temp_pdf" \ "--theme=$$(VBOX_PATH_MANUAL_SRC)/pdf-theme-UserManual.yaml" \ "--logfile=$$(@D)/UserManual_pdf.log" \ ) @@ -870,15 +832,12 @@ if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DO $(if-expr defined(VBOX_DITA_USING_LATEST),,"$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita-ot-html-chunks/") $(call MSG_L1,Building html chunks $@ ($(@D)/UserManual_xhtml.log)) $(QUIET)$(MKDIR) -- "$(@D)" - $(QUIET)$(call VBOX_DITA_RUN_DOST,$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita-ot-html-chunks,, \ - "/i:$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/UserManual.ditamap" \ - "/transtype:xhtml" \ - "/filter:$(VBOX_PATH_MANUAL_SRC)/en_US/dita/htmlhelp.ditaval" \ - "/outdir:$(@D)" \ - "/tempdir:$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/temp_xhtml_chunks" \ - , \ - "/grammarcache:yes" \ - , \ + $(QUIET)$(call VBOX_DITA_RUN_DOST,, \ + "--input=$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/UserManual.ditamap" \ + "--format=xhtml" \ + "--filter=$(VBOX_PATH_MANUAL_SRC)/en_US/dita/htmlhelp.ditaval" \ + "--output=$(@D)" \ + "--temp=$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/temp_xhtml_chunks" \ "--logfile=$(@D)/UserManual_xhtml.log" \ "--store-type=memory" \ ) @@ -926,14 +885,11 @@ if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DO "$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/UserManual.ditamap" $(QUIET)$(RM) -Rf -- "$(@D)" "$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita-ot-html-single/" $(QUIET)$(MKDIR) -- "$(@D)" - $(QUIET)$(call VBOX_DITA_RUN_DOST,$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita-ot-html-single,, \ - "/i:$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/UserManual-Single.ditamap" \ - "/transtype:xhtml" \ - "/outdir:$(@D)" \ - "/tempdir:$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/temp_xhtml_single" \ - , \ - "/grammarcache:yes" \ - , \ + $(QUIET)$(call VBOX_DITA_RUN_DOST,, \ + "--input=$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/UserManual-Single.ditamap" \ + "--format=xhtml" \ + "--output=$(@D)" \ + "--temp=$(VBOX_PATH_MANUAL_OUTBASE)/en_US/dita/temp_xhtml_single" \ "--logfile=$(@D)/UserManual-Single_xhtml.log" \ "--store-type=memory" \ ) @@ -1036,15 +992,12 @@ if defined(VBOX_WITH_DOCS) && (!defined(VBOX_ONLY_BUILD) || defined(VBOX_ONLY_DO $(if-expr defined(VBOX_DITA_USING_LATEST),,"$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita-ot-qhelp/") $$(call MSG_L1,dita-ot-qhelp, => $$@ ($(2)/UserManual_htmlhelp.log)) $$(QUIET)$$(MKDIR) -- "$$(@D)" - $$(call VBOX_DITA_RUN_DOST,$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita-ot-qhelp, -EHHCDIR="$$(@D)", \ - "/i:$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/UserManual.ditamap" \ - "/transtype:htmlhelp" \ - "/filter:$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/htmlhelp.ditaval" \ - "/outdir:$(2)" \ - "/tempdir:$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/temp_qhelp" \ - , \ - "/grammarcache:yes" \ - , \ + $$(call VBOX_DITA_RUN_DOST, -EHHCDIR="$$(@D)", \ + "--input=$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/UserManual.ditamap" \ + "--format=htmlhelp" \ + "--filter=$$(VBOX_PATH_MANUAL_SRC)/$(1)/dita/htmlhelp.ditaval" \ + "--output=$(2)" \ + "--temp=$$(VBOX_PATH_MANUAL_OUTBASE)/$(1)/dita/temp_qhelp" \ "--logfile=$(2)/UserManual_htmlhelp.log" \ "-Ddita.output.dir=$(2)" \ ) diff --git a/doc/manual/dita-ot-copy-exec.sh b/doc/manual/dita-ot-copy-exec.sh deleted file mode 100755 index f917258fecc..00000000000 --- a/doc/manual/dita-ot-copy-exec.sh +++ /dev/null @@ -1,205 +0,0 @@ -#!/usr/bin/env kmk_ash -# $Id$ -## @file -# Helper Script for copying the DITA-OT toolkit from $1 to $2, -# run the following command line, nuke $2. -# -# DITA-OT-1.8.5 updates around 40 files everytime it is started in an manner -# that will cause race conditions when starting multiple dost.jar instances -# concurrently. So, we work around that by running each job of a unqiue and -# temporary copy. Extra effort is taken to using hardlinking when possible -# and to reduce the number of files and directory we copy. -# - -# -# Copyright (C) 2023 Oracle and/or its affiliates. -# -# This file is part of VirtualBox base platform packages, as -# available from https://www.virtualbox.org. -# -# This program is free software; you can redistribute it and/or -# modify it under the terms of the GNU General Public License -# as published by the Free Software Foundation, in version 3 of the -# License. -# -# This program is distributed in the hope that it will be useful, but -# WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -# General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, see . -# -# SPDX-License-Identifier: GPL-3.0-only -# - -# -# Some constants. -# -MY_INSTALL="kmk_install" -MY_MKDIR="kmk_mkdir" -MY_RM="kmk_rm" -MY_SED="kmk_sed" -MY_CP="kmk_cp" - -# Debug -MY_DEBUG_INSTALL="-v" -MY_DEBUG_INSTALL="" - -MY_DEBUG_MKDIR="-v" -MY_DEBUG_MKDIR="" - -MY_DEBUG_RM="-v" -MY_DEBUG_RM="" - -# -# Pop off the source and target directories from the input arguments. -# We're not trying to be very userfriendly here, just reasonably safe. -# -if test $# -lt 5; then - echo "syntax error: too few arguments" 1>&2; - exit 2; -fi -MY_SRCDIR="$1" -MY_DSTDIR="$2" -if test "$3" != "--"; then - echo "syntax error: Expected '--' as the 3rd parameter, got: $3" 1>&2; - exit 2; -fi -shift 3 -if ! test -d "${MY_SRCDIR}"; then - echo "error: Source directory does not exists or is not a directory: ${MY_SRCDIR}" 1>&2; - exit 1; -fi -if test -e "${MY_DSTDIR}"; then - echo "error: Destination directory already exists: ${MY_DSTDIR}" 1>&2; - exit 1; -fi - -# -# Helper. -# -CopyTree() -{ - MY_SRCTREE="$1" - MY_DSTTREE="$2" - - # Gather files and directories. - cd "${MY_SRCTREE}" - MY_DIRS="" - MY_DIRS_PAIRS="" - MY_FILES="" - MY_EXEC_FILES="" - for MY_FILE in *; - do - if test "${MY_FILE}" = "*"; then - # For empty directories we get '*' back. Ignore it. - elif test -d "${MY_SRCTREE}/${MY_FILE}"; then - case "${MY_SRCTREE}/${MY_FILE}" in - *\ *) - echo "Unexpected space in dir/subdir: ${MY_SRCTREE}/${MY_FILE}" 1>&2; - exit 1 - ;; - esac - MY_DIRS="${MY_DIRS} ${MY_FILE}" - MY_DIRS_PAIRS="${MY_DIRS_PAIRS} ${MY_SRCTREE}/${MY_FILE} ${MY_DSTTREE}/${MY_FILE}" - elif test -f "${MY_SRCTREE}/${MY_FILE}"; then - case "${MY_SRCTREE}/${MY_FILE}" in - *\ *) - echo "Unexpected space in dir/filename: ${MY_SRCTREE}/${MY_FILE}" 1>&2; - exit 1 - ;; - - *org.dita.dost.platform/plugin.properties) - ;; - *_template.xml) - MY_FILES="${MY_FILES} ${MY_FILE}" - MY_TEMPLATED_FILES="${MY_TEMPLATED_FILES} ${MY_DSTTREE}/${MY_FILE%_template.xml}.xml" - ;; - *_template.xsl) - MY_FILES="${MY_FILES} ${MY_FILE}" - MY_TEMPLATED_FILES="${MY_TEMPLATED_FILES} ${MY_DSTTREE}/${MY_FILE%_template.xsl}.xsl" - ;; - *) - if test -x "${MY_SRCTREE}/${MY_FILE}"; then - MY_EXEC_FILES="${MY_EXEC_FILES} ${MY_FILE}" - else - MY_FILES="${MY_FILES} ${MY_FILE}" - fi - ;; - esac - else - echo "Unexpected file type: ${MY_SRCTREE}/${MY_FILE}" 1>&2; - exit 1 - fi - done - - # Install all the files in one go. - if test -n "${MY_FILES}"; then - "${MY_INSTALL}" ${MY_DEBUG_INSTALL} --hard-link-files-when-possible -m644 -- ${MY_FILES} "${MY_DSTTREE}/" - fi - if test -n "${MY_EXEC_FILES}"; then - "${MY_INSTALL}" ${MY_DEBUG_INSTALL} --hard-link-files-when-possible -m755 -- ${MY_EXEC_FILES} "${MY_DSTTREE}/" - fi - - # Create all subdirs and recurse into each. - if test -n "${MY_DIRS}"; then - cd "${MY_DSTTREE}" - "${MY_MKDIR}" -p ${MY_DEBUG_MKDIR} -- ${MY_DIRS} - - # Now transfer MY_DIRS_PAIRS to the argument list, so they're preseved across recursive calls. - # (the local command/keyword is busted in current binaries, though fixed in kBuild svn.) - set -- ${MY_DIRS_PAIRS}; - while test "$#" -ge 2; - do - CopyTree "${1}" "${2}" - shift 2 - done - fi -} - -# -# Copy the files over. -# -set -e -MY_SAVED_CWD=`pwd` -"${MY_MKDIR}" -p ${MY_DEBUG_MKDIR} -- "${MY_DSTDIR}" - -# Selected root files. -"${MY_INSTALL}" ${MY_DEBUG_INSTALL} --hard-link-files-when-possible -m644 -- \ - "${MY_SRCDIR}/build_template.xml" \ - "${MY_SRCDIR}/catalog-dita.txt" \ - "${MY_SRCDIR}/catalog-dita_template.xml" \ - "${MY_SRCDIR}/integrator.properties" \ - "${MY_SRCDIR}/integrator.xml" \ - "${MY_DSTDIR}/" - -# Selected directory trees. -MY_TEMPLATED_FILES="" -for MY_SUBDIR in css dtd lib plugins resource schema tools xsl; -do - "${MY_MKDIR}" -p ${MY_DEBUG_MKDIR} -- "${MY_DSTDIR}/${MY_SUBDIR}" - CopyTree "${MY_SRCDIR}/${MY_SUBDIR}" "${MY_DSTDIR}/${MY_SUBDIR}" -done - -# Now remove all files that has a _template.xml/xsl variant, just to ensure -# that if hardlinked the copy in the tree won't be modified. -if test -n "${MY_TEMPLATED_FILES}"; then - "${MY_RM}" -f ${MY_DEBUG_RM} -- ${MY_TEMPLATED_FILES} -fi - -cd "${MY_SAVED_CWD}" -set +e - -# -# Execute the command. -# -"$@" -MY_EXITCODE=$? - -# -# Cleanup and exit. -# -#"${MY_RM}" -Rf ${MY_DEBUG_RM} -- "${MY_DSTDIR}" -exit ${MY_EXITCODE} - -- cgit v1.2.1