<?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>


<!-- ready to use list of directives for prettify.js                      -->
<!-- ==================================================================== -->
<target name="prettify" depends="modulelists" unless="prettify.done"
        description="- (re-)builds convenience map file if necessary">
    <echo message="checking convenience map ..." />

    <!-- <dependencies.prettify /> -->

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

    <echo message="List of directives for prettify.js are up to date." />
    <echo message="They now have to be copy/pasted into it (see comments in list_for_prettify.txt)." />
    <property name="prettify.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" />
        <param name="retired" expression="${ap.retired}" />
    </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}}" excludes="mod/*${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>

        <for param="srcfile">
            <path>
                <fileset dir="../" includes="mod/*${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
                                     ${@{srcfile}.basename}.xml" />
                    <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}" />

        <for param="section" list="1, 8" trim="true">
            <sequential>
                <for param="file" list="${ap.manpages.@{section}}" delimiter=" " trim="true">
                    <sequential>
                        <nroff.generic.loop lang="@{lang}" section="@{section}"
                            files="@{file}${inputext.@{lang}}" />
                    </sequential>
                </for>
            </sequential>
        </for>

        <!-- 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/en-us/library/windows/desktop/ms669985%28v=vs.85%29.aspx -->
<!--                                                                      -->
<!-- (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/lang/**/*
                          style/man/**/*
                          style/w3c/**/*
                          style/xsl/**/*
                          style/zip/**/*
                          style/latex/**/*
                          style/*.dtd style/*.xsl style/*.xml
                          style/_generated/**/*
                          style/scripts/MINIFY
                          style/build.properties
                          style/version.ent
                          images/apache_header*
                          images/favicon.ico
                          images/home* images/index*
                          images/sub*  images/pixel*
                          **/.*
                         "/>
        </delete>

        <delete includeemptydirs="true">
            <fileset dir="../@{dir}/@{lang}">
                <and>
                    <size value="0" />
                    <type type="dir" />
                </and>
            </fileset>
        </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>
