<?xml version="1.0"?>
<!DOCTYPE project [ <!ENTITY desc SYSTEM "../style/description.xml"> ]>

<!--
 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.
-->

<project name="manual" default="en" basedir=".">
<!-- for a description type 'build -projecthelp' -->
&desc;

<!-- load prerequisites and dependency defs -->
<import file="prereq.xml" />
<import file="deps.xml" />
<import file="../style/lang-targets.xml" />


<!-- #################################################################### -->
<!-- build targets                                                        -->
<!-- #################################################################### -->

<target name="dist-all" description="- builds all, zip-all and war-all"
    depends="all, zip-all, war-all" />


<pathconvert
    property="ap.docroot"
      dirsep="${file.separator}"
     pathsep=" ">
    <path><pathelement path="..${file.separator}" /></path>
</pathconvert>


<!-- help                                                                 -->
<!-- ==================================================================== -->
<target name="help" description="- use `build -projecthelp` instead!">
    <echo message="Try `build -projecthelp`" />
</target>


<!-- typemaps                                                             -->
<!-- ==================================================================== -->
<target name="typemaps" depends="metafiles" unless="typemaps.done"
        description="- (re-)builds all typemap files if necessary">
    <echo message="checking typemaps..." />

    <dependencies.typemaps />

    <!-- iterate over all desired files -->
    <xslt style="../style/xsl/typemap.xsl"
            basedir="${ap.docroot}" destdir="${ap.docroot}"
            includes="**/*.xml.meta">
        <patternset refid="excludes" />
        <patternset refid="scratch" />

        <mapper type="glob" from="*.xml.meta" to="*.html" />
        <xmlcatalog refid="w3c-catalog" />
    </xslt>

    <echo message="typemaps are up to date." />
    <property name="typemaps.done" value="yes!" />
</target>


<!-- convenience rewrite map                                              -->
<!-- ==================================================================== -->
<target name="convmap" depends="modulelists" unless="convmap.done"
        description="- (re-)builds convenience map file if necessary">
    <echo message="checking convenience map ..." />

    <!-- <dependencies.convmap /> -->

    <xslt style="../style/xsl/convmap.xsl"
            in="${ap.docroot}/mod/allmodules.xml"
            out="${ap.docroot}/convenience.map">
        <xmlcatalog refid="w3c-catalog" />
    </xslt>

    <echo message="convenience map is up to date." />
    <property name="convmap.done" value="yes!" />
</target>


<!-- XHTML validation.                                                    -->
<!-- The resulting output is intended to be valid (X)HTML. Check it from  -->
<!-- time to time...                                                      -->
<!-- ==================================================================== -->
<target name="validate-xhtml" description="- validates all (X)HTML result files">
    <xmlvalidate lenient="false" failonerror="false" warn="true">
        <xmlcatalog refid="w3c-catalog" />
        <fileset dir="../" includes="**/*.html.*">
            <patternset refid="scratch" />
        </fileset>
    </xmlvalidate>
</target>


<!-- metafiles maintenance target.                                        -->
<!-- If you're confused how to edit the *.xml.meta files, just run        -->
<!-- `build metafiles`, which checks and possibly rebuilds them           -->
<!-- automatically for you.                                               -->
<!-- ==================================================================== -->
<target name="metafiles" depends="modulelists" unless="metafiles.done"
        description="- (re-)builds all *.xml.meta files if necessary">

    <dependencies.perlcheck />

    <if><equals arg1="${perl.available}" arg2="yes" /><then>
        <echo message="checking metafiles..." />

        <delete>
            <fileset dir="../" includes=".outdated*" />
        </delete>

        <apply executable="perl" dir="../" parallel="false" failonerror="true">
            <env key="DOCROOT" value="${ap.docroot}" />

            <arg value="build/lib/metafile.pl" />
            <arg value="${inputext.en}" />
            <srcfile />

            <dirset dir="../">
                <patternset refid="scratch" />
                <patternset refid="baddirs" />
            </dirset>
        </apply>

        <echo message="metafiles are up to date." />
    </then>
    <else>
        <echo message="skipping metafiles (requires a working perl installation in PATH)." />
    </else></if>

    <property name="metafiles.done" value="yes!" />
</target>


<!-- modulelists maintenance target.                                      -->
<!-- If you're confused how to edit the allmodules.xml* files, just run   -->
<!-- `build modulelists`, which checks and possibly rebuilds them         -->
<!-- automatically for you. It's not invoked by default, because it       -->
<!-- needs a perl installation in PATH.                                   -->
<!-- ==================================================================== -->
<target name="modulelists" unless="modulelists.done"
        description="- (re-)builds all allmodules.xml* files if necessary">

    <dependencies.perlcheck />

    <if><equals arg1="${perl.available}" arg2="yes" />
    <then>
        <echo message="checking modulelists..." />

        <exec dir="../" executable="perl">
            <env key="DOCROOT" value="${ap.docroot}" />

            <arg line="build/lib/allmodules.pl" />
        </exec>

        <echo message="modulelists are up to date." />
    </then>
    <else>
        <echo message="skipping modulelists (requires a working perl installation in PATH)." />
    </else>
    </if>

    <property name="modulelists.done" value="yes!" />
</target>


<!-- Pack the buildtools                                                  -->
<!--                                                                      -->
<!-- This target is mostly useful for the website maintainers to provide  -->
<!-- a zipped package of the build tool stuff for users without cvs.      -->
<!-- ==================================================================== -->
<target name="tools" description="- builds the zipped tool package">

    <dependencies.tools />

    <!-- Convenience for windows users -->
    <copy file="../_tools/lib/LICENSE" tofile="../_tools/lib/LICENSE.txt" />
    <copy file="../_tools/lib/README" tofile="../_tools/lib/README.txt" />
    <copy file="../_tools/lib/NOTICE" tofile="../_tools/lib/NOTICE.txt" />

    <!-- newline issues -->
    <fixcrlf srcdir="../_tools" eol="crlf" encoding="iso-8859-1"
        includes="**/*.txt **/*.bat" />
    <fixcrlf srcdir="../_tools" eol="lf" encoding="iso-8859-1"
        includes="**/*.sh **/*.pl
                  **/*.pm **/README
                  **/LICENSE **/NOTICE
                  **/*.xml **/*.dtd **/*.ent" />

    <!-- get the current date -->
    <tstamp>
        <format property="tools.date" pattern="yyyy-MM-dd" timezone="UTC" />
    </tstamp>

    <!-- and zzzzzzip -->
    <delete file="${distdir}/tools-${tools.date}.zip" />
    <zip destfile="${distdir}/tools-${tools.date}.zip"
         compress="true"
         encoding="ASCII">
        <zipfileset prefix="build"
                       dir="../_tools"
                  includes="**/*">
        </zipfileset>
    </zip>
</target>


<!-- clean up scratch directories and files                               -->
<!--                                                                      -->
<target name="clean"
        description="- cleans up most generated files and directories">
    <delete dir="../_chm" />
    <delete dir="../_off" />
    <delete dir="../_tools" />
    <delete dir="../_dist" />
    <delete dir="../style/_generated" />
    <delete>
        <fileset dir="../" includes="**/*.tex **/*.aux **/*.out **/*.log
                                     **/*.pdf **/*.toc .outdated*
                                     mod/.translated.*" />
    </delete>
</target>

<!-- clean up scratch directories and files                               -->
<!--                                                                      -->
<target name="extraclean" depends="clean"
        description="- 'clean' plus the perl generated files (metafiles)">
    <delete>
        <fileset dir="../" includes="**/*.xml.meta mod/allmodules.xml*" />
    </delete>

    <!-- this forces a rebuild of all files next time -->
    <touch>
        <fileset dir="../style/lang" includes="*.xml" />
    </touch>
</target>


<!-- bootstrap                                                            -->
<!-- Boostrap languages                                                   -->
<!-- ==================================================================== -->
<target name="bootstrap"
        description="- boostraps languages from style/lang/*.xml">
    <echo message="starting bootstrap..." />

    <dependencies.bootstrap />

    <!-- Look for the languages -->
    <property name="styledir" location="../style/" />
    <property name="langdir" location="${styledir}/lang" />
    <fileset dir="${langdir}" includes="**/*.xml" id="languagefiles" />
    <pathconvert pathsep=" " dirsep="" refid="languagefiles"
            property="languages">
        <mapper type="glob" from="${langdir}/*.xml" to="*" />
    </pathconvert>
    <echo message="Found languages: ${languages}" />

    <!-- create basic styles -->
    <xslt style="../style/xsl/language.xsl" force="yes"
            basedir="${langdir}" destdir="${styledir}" includes="*.xml">
        <mapper type="glob" from="*.xml" to="manual.*.xsl"/>
        <param name="type" expression="manual" />
    </xslt>

    <!-- create language list (in is unused -> arbitrary xml file) -->
    <xslt in="../style/lang/en.xml"
         out="../style/_generated/list.xml"
       style="../style/xsl/language.xsl" force="yes">
        <param name="type" expression="list" />
        <param name="langs" expression="${languages}" />
    </xslt>

    <!-- create typemap designation data -->
    <xslt in="../style/_generated/list.xml"
         out="../style/xsl/util/designations.xml"
       style="../style/xsl/language.xsl">
        <param name="type" expression="design" />
    </xslt>

    <!-- create language targets -->
    <xslt in="../style/_generated/list.xml"
         out="../style/lang-targets.xml"
       style="../style/xsl/language.xsl">
        <param name="type" expression="targets" />
    </xslt>

    <!-- create list of allmodules.xml.* files -->
    <xslt in="../style/_generated/list.xml"
         out="../style/xsl/util/allmodules.xml"
       style="../style/xsl/language.xsl">
        <param name="type" expression="modlists" />
    </xslt>

    <!-- create project description -->
    <xslt in="../style/_generated/list.xml"
         out="../style/description.xml"
       style="../style/xsl/language.xsl">
        <param name="type" expression="desc" />
    </xslt>

    <echo message="bootstrap done." />
</target>


<!-- #################################################################### -->
<!-- helper targets, not intended to be called from commandline           -->
<!-- #################################################################### -->


<!-- Generic html transformation task.                                    -->
<!-- checks and transforms all files of one language variant to HTML      -->
<!--                                                                      -->
<macrodef name="html.generic">
    <attribute name="lang" />

    <sequential>
        <echo message="checking HTML documentation (@{lang})..." />

        <runtarget target="metafiles" />
        <dependencies.html lang="@{lang}" />

        <!-- iterate over all desired files -->
        <for param="srcfile">
            <path>
                <fileset dir="../" includes="**/*${inputext.@{lang}}">
                    <patternset refid="excludes" />
                    <patternset refid="scratch" />
                </fileset>
            </path>

            <sequential>
                <basename property="@{srcfile}.basename" file="@{srcfile}"
                            suffix="${inputext.@{lang}}" />
                <dirname  property="@{srcfile}.dirname"  file="@{srcfile}" />

                <!-- depends on the accompanying metafile -->
                <dependset>
                    <srcfileset dir="${@{srcfile}.dirname}"
                           includes="${@{srcfile}.basename}.xml.meta" />
                    <targetfileset dir="${@{srcfile}.dirname}"
                       includes="${@{srcfile}.basename}${outputext.@{lang}}" />
                </dependset>

                <xslt in="@{srcfile}"
                     out="${@{srcfile}.dirname}/${@{srcfile}.basename}${outputext.@{lang}}"
                   style="../style/manual.@{lang}.xsl">
                    <xmlcatalog refid="w3c-catalog" />
                </xslt>
            </sequential>
        </for>

        <if><not><available file="../.outdated.@{lang}" /></not><then>
            <echo message="HTML documentation (@{lang}) is up to date." />
        </then></if>

        <!-- for convenience -->
        <runtarget target="typemaps" />

        <!-- for caution -->
        <show.outdated lang="@{lang}" />

    </sequential>
</macrodef>

<macrodef name="show.outdated">
    <attribute name="lang" />

    <sequential>
        <if><available file="../.outdated.@{lang}" /><then>
        <concat>
            <header>
================================================================
===== NOTE: The following translations are NOT UP TO DATE: =====
================================================================
            </header>

            <filelist dir="../" files=".outdated.@{lang}" />
        </concat></then>
        </if>
    </sequential>
</macrodef>


<!-- Generic manpage transformation target.                               -->
<!-- checks and transforms all files of one language variant to nroff     -->
<!--                                                                      -->
<macrodef name="nroff.generic">
    <attribute name="lang" />

    <sequential>
        <echo message="checking nroff man pages (@{lang})..." />

        <!-- <runtarget target="metafiles" /> -->
        <dependencies.nroff lang="@{lang}" />

        <!-- iterate over all (8) files -->
        <nroff.generic.loop lang="@{lang}" section="8"
                files="ab${inputext.@{lang}}
                       apachectl${inputext.@{lang}}
                       apxs${inputext.@{lang}}
                       httpd${inputext.@{lang}}
                       htcacheclean${inputext.@{lang}}
                       logresolve${inputext.@{lang}}
                       rotatelogs${inputext.@{lang}}
                       suexec${inputext.@{lang}}"/>

        <!-- iterate over all (1) files -->
        <nroff.generic.loop lang="@{lang}" section="1"
                files="dbmmanage${inputext.@{lang}}
                       htdbm${inputext.@{lang}}
                       htdigest${inputext.@{lang}}
                       htpasswd${inputext.@{lang}}"/>

        <!-- cleanup -->
        <delete>
            <fileset dir="../../man" includes="*.tmp *.old" />
        </delete>

        <echo message="nroff manpages (@{lang}) are up to date." />
    </sequential>
</macrodef>


<!-- nroff generation of a single section                                 -->
<!--                                                                      -->
<macrodef name="nroff.generic.loop">
    <attribute name="lang" />
    <attribute name="section" />
    <attribute name="files" />

    <sequential>
        <if><equals arg1="@{lang}" arg2="en" />
            <then>
                <property name="mandir" location="../../man" />
            </then>
            <else>
                <property name="mandir" location="../../man/@{lang}" />
            </else>
        </if>
        <for param="srcfile">
            <path>
                <fileset dir="../programs/" includes="@{files}" />
            </path>

            <sequential>
                <basename property="@{srcfile}.basename" file="@{srcfile}"
                            suffix="${inputext.@{lang}}"/>
                <dirname  property="@{srcfile}.dirname"  file="@{srcfile}"/>

                <dependset>
                    <srcfileset dir="${@{srcfile}.dirname}"
                           includes="${@{srcfile}.basename}.xml.meta" />
                    <targetfileset dir="${mandir}/"
                           includes="${@{srcfile}.basename}.@{section}" />
                </dependset>

                <if>
                    <not>
                        <uptodate
                            srcfile="@{srcfile}"
                         targetfile="${mandir}/${@{srcfile}.basename}.@{section}"
                        />
                    </not>
                <then>
                    <if>
                        <available
                            file="${mandir}/${@{srcfile}.basename}.@{section}.tmp"
                        />
                    <then>
                        <copy file="${mandir}/${@{srcfile}.basename}.@{section}.tmp"
                            tofile="${mandir}/${@{srcfile}.basename}.@{section}.old"
                            preservelastmodified="true" overwrite="true" />

                        <!-- sample line:                                         -->
                        <!-- .TH "AB" 8 "2004-01-04" "Apache HTTP Server" "ab"    -->
                        <!-- we replace  ^^^^^^^^^^ the date with @@date@@        -->
                        <!--                                                      -->
                        <replaceregexp
                             file="${mandir}/${@{srcfile}.basename}.@{section}.tmp"
                            match='^(\.TH\s+"[^"]*"\s+\d\s+)"[^"]+"'
                          replace='\1"@@date@@"'
                           byline="true"
                        />
                    </then></if>

                    <xslt in="@{srcfile}"
                         out="${mandir}/${@{srcfile}.basename}.@{section}"
                       style="../style/_generated/man.@{lang}.xsl">
                        <xmlcatalog refid="w3c-catalog" />
                        <param name="section" expression="@{section}" />
                        <param name="date" expression="@@date@@" />
                    </xslt>

                    <if>
                        <and>
                            <available
                                file="${mandir}/${@{srcfile}.basename}.@{section}.old"
                            />
                            <filesmatch
                                file1="${mandir}/${@{srcfile}.basename}.@{section}.tmp"
                                file2="${mandir}/${@{srcfile}.basename}.@{section}"
                            />
                        </and>
                    <then>
                        <copy file="${mandir}/${@{srcfile}.basename}.@{section}.old"
                            tofile="${mandir}/${@{srcfile}.basename}.@{section}"
                            preservelastmodified="false" overwrite="true" />
                    </then>
                    <else>
                        <replaceregexp
                               file="${mandir}/${@{srcfile}.basename}.@{section}"
                              match="@@date@@"
                            replace="${nroff.date}"
                        />
                    </else></if>
                </then></if>
            </sequential>
        </for>
    </sequential>
</macrodef>


<!-- Generic chm transformation target.                                   -->
<!-- checks and transforms all files of one language variant to           -->
<!-- MS compiled html format (chm). The HTML files are different from     -->
<!-- the normal manual output, so don't worry that everything is          -->
<!-- compiled again.                                                      -->
<!--                                                                      -->
<!-- REQUIREMENTS:                                                        -->
<!-- (1) You must have the hhc.exe compiler in your PATH. It is part of   -->
<!--     the HTML Help Workshop which is freely available and can be      -->
<!--     downloaded from                                                  -->
<!--     http://msdn.microsoft.com/library/default.asp?url=/library/en-us/htmlhelp/html/hwMicrosoftHTMLHelpDownloads.asp -->
<!--                                                                      -->
<!-- (2) Before you run `build chm-$lang` you MUST switch to the          -->
<!--     appropriate locale. Otherwise the output of hhc.exe will         -->
<!--     probably be garbled.                                             -->
<!--                                                                      -->
<macrodef name="chm.generic">
    <attribute name="lang" />

    <sequential>
        <echo message="building CHM file (@{lang})..." />

        <runtarget target="metafiles" />
        <dependencies.chm lang="@{lang}" />

        <!-- build project file from sitemap -->
        <xslt in="../_chm/@{lang}/sitemap${inputext.@{lang}}"
             out="../_chm/@{lang}/manual.hhp"
           style="../_chm/@{lang}/style/_generated/hhp.@{lang}.xsl">
            <param name="httpd.version" expression="${ap.httpd.version}" />
            <xmlcatalog refid="w3c-catalog" />
        </xslt>
        <fixcrlf srcdir="../_chm/@{lang}" eol="crlf" encoding="iso-8859-1"
            includes="manual.hhp" />

        <!-- build toc from sitemap -->
        <xslt in="../_chm/@{lang}/sitemap${inputext.@{lang}}"
             out="../_chm/@{lang}/toc.hhc"
           style="../_chm/@{lang}/style/_generated/hhc.@{lang}.xsl">
            <xmlcatalog refid="w3c-catalog" />
        </xslt>
        <fixcrlf srcdir="../_chm/@{lang}" eol="crlf" encoding="iso-8859-1"
            includes="toc.hhc" />

        <!-- build not-yet-translated documents -->
        <if><not><equals arg1="@{lang}" arg2="en" /></not><then>
            <chm.generic.loop lang="en" target="@{lang}" />
        </then></if>

         <!-- iterate over all documents -->
        <chm.generic.loop lang="@{lang}" target="@{lang}" />

        <!-- compile it -->
        <if><not><equals arg1="${chm.prepare}" arg2="yes" /></not><then>
            <exec dir="../_chm/@{lang}" executable="hhc.exe">
                <arg line="manual.hhp" />
            </exec>

            <copy file="../_chm/@{lang}/httpd-docs-${ap.httpd.version}.@{lang}.chm"
                tofile="${distdir}/httpd-docs-${ap.httpd.version}.@{lang}.chm"
             overwrite="true" />
        </then>
        <else>
            <echo message="This is a preparation run only. To actually compile" />
            <echo message="the CHM file you need to go into the _chm/@{lang}" />
            <echo message="directory and run 'hhc.exe manual'. Don't forget the" />
            <echo message="appropriate locale (see `build -projecthelp`)" />
        </else></if>
    </sequential>
</macrodef>

<macrodef name="chm.generic.loop">
    <attribute name="lang" />
    <attribute name="target" />

    <sequential>
        <for param="srcfile">
            <path>
                <fileset dir="../_chm/@{target}" includes="**/*${inputext.@{lang}}">
                    <patternset refid="excludes" />
                </fileset>
            </path>

            <sequential>
                <basename property="@{srcfile}.basename" file="@{srcfile}"
                            suffix="${inputext.@{lang}}"/>
                <dirname  property="@{srcfile}.dirname"  file="@{srcfile}"/>

                <!-- just do it -->
                <xslt in="@{srcfile}"
                     out="${@{srcfile}.dirname}/${@{srcfile}.basename}.html"
                   style="../_chm/@{target}/style/_generated/chm.@{lang}.xsl"
                   force="yes">
                    <xmlcatalog refid="w3c-catalog" />
                </xslt>

                <fixcrlf srcdir="${@{srcfile}.dirname}" eol="crlf"
                    encoding="iso-8859-1"
                    includes="${@{srcfile}.basename}.html" />
            </sequential>
        </for>
    </sequential>
</macrodef>


<!-- Generic zip package transformation target.                           -->
<!-- checks and transforms all files of one language variant to           -->
<!-- simple html files and zips the resulting directory. The HTML files   -->
<!-- are different from the normal manual output, so don't worry that     -->
<!-- everything is transformed again.                                     -->
<!--                                                                      -->
<macrodef name="offline.generic">
    <attribute name="lang" />
    <attribute name="style" />
    <attribute name="dir" />

    <sequential>
        <if><available file="../index${inputext.@{lang}}" />
        <then>
        <echo message="building offline version (@{lang})..." />

        <!-- build not-yet-translated documents -->
        <if><not><equals arg1="@{lang}" arg2="en" /></not><then>
            <offline.generic.loop lang="en" target="@{lang}" style="@{style}"
                                   dir="@{dir}" />
        </then></if>

        <!-- iterate over our documents -->
        <offline.generic.loop lang="@{lang}" target="@{lang}" style="@{style}"
                               dir="@{dir}" />

        <!-- Newline issues -->
        <fixcrlf srcdir="../@{dir}/@{lang}" eol="lf" encoding="iso-8859-1"
            includes="**/*.html **/*.css" />

        <!-- delete undistributed files -->
        <delete>
            <fileset dir="../@{dir}/@{lang}"
                includes="**/*.xml **/*${inputext.@{lang}}
                          **/*.xml.meta
                          style/chm style/chm/**/*
                          style/lang style/lang/**/*
                          style/man style/man/**/*
                          style/w3c style/w3c/**/*
                          style/xsl style/xsl/**/*
                          style/zip style/zip/**/*
                          style/latex style/latex/**/*
                          style/*.dtd style/*.xsl style/*.xml
                          style/_generated style/_generated/**/*
                          style/build.properties
                          images/apache_header*
                          images/favicon.ico
                          images/home* images/index*
                          images/sub*  images/pixel*
                          **/.*
                         "/>
        </delete>
        </then></if>
    </sequential>
</macrodef>

<macrodef name="offline.generic.loop">
    <attribute name="lang" />
    <attribute name="target" />
    <attribute name="style" />
    <attribute name="dir" />

    <sequential>
        <for param="srcfile">
            <path>
                <fileset dir="../@{dir}/@{target}" includes="**/*${inputext.@{lang}}">
                    <patternset refid="excludes" />
                </fileset>
            </path>

            <sequential>
                <basename property="@{srcfile}.basename" file="@{srcfile}"
                        suffix="${inputext.@{lang}}"/>
                <dirname  property="@{srcfile}.dirname"  file="@{srcfile}"/>

                <xslt in="@{srcfile}"
                     out="${@{srcfile}.dirname}/${@{srcfile}.basename}.html"
                   style="../@{dir}/@{target}/style/_generated/@{style}.@{lang}.xsl"
                   force="yes">
                    <xmlcatalog refid="w3c-catalog" />
                </xslt>
            </sequential>
        </for>
    </sequential>
</macrodef>

<macrodef name="war.generic">
    <attribute name="lang" />

    <sequential>
        <if><available file="../index${inputext.@{lang}}" />
        <then>
        <echo message="building Konqueror Web Archive package (@{lang})..." />

        <!-- pack it -->
        <delete file="${distdir}/httpd-docs-${ap.httpd.version}.@{lang}.war" />
        <tar destfile="${distdir}/httpd-docs-${ap.httpd.version}.@{lang}.war"
            compression="gzip">
            <tarfileset dir="../_off/@{lang}"
                   includes="**/*"
                   excludes="index.rdf" />
        </tar>
        </then></if>
    </sequential>
</macrodef>

<macrodef name="zip.generic">
    <attribute name="lang" />

    <sequential>
        <if><available file="../index${inputext.@{lang}}" />
        <then>
        <echo message="building ZIP package (@{lang})..." />

        <!-- pack it -->
        <delete file="${distdir}/httpd-docs-${ap.httpd.version}.@{lang}.zip" />
        <zip destfile="${distdir}/httpd-docs-${ap.httpd.version}.@{lang}.zip"
            compress="true"
            encoding="ASCII">
            <zipfileset prefix="httpd-docs-${ap.httpd.version}.@{lang}"
                           dir="../_off/@{lang}"
                      includes="**/*" />
        </zip>
        </then></if>
    </sequential>
</macrodef>

<!-- Generation of a single latex file; for now, en only.                 -->
<!--                                                                      -->
<!-- You'll have to run another tool to post-process the resulting latex  -->
<!-- files into a usable PDF file. For example pdflatex together with     -->
<!-- sitemap.tex can be used for this: just call 'pdflatex sitemap' in    -->
<!-- the manual dir.                                                      -->
<!-- ==================================================================== -->
<macrodef name="latex.generic">
    <attribute name="lang" />

    <sequential>
        <for param="srcfile">
            <path>
                <fileset dir="../" includes="**/*${inputext.@{lang}}">
                    <patternset refid="excludes" />
                    <patternset refid="scratch" />
                </fileset>
            </path>

            <sequential>
                <basename property="@{srcfile}.basename" file="@{srcfile}"
                            suffix="${inputext.@{lang}}"/>
                <dirname  property="@{srcfile}.dirname"  file="@{srcfile}"/>

                <xslt in="@{srcfile}"
                     out="${@{srcfile}.dirname}/${@{srcfile}.basename}.tex"
                   style="../style/latex/latex.xsl">
                    <xmlcatalog refid="w3c-catalog" />
                </xslt>
            </sequential>
        </for>
    </sequential>
</macrodef>

</project>
