1 --- misc/src/build.xml 2008-07-11 12:11:50.079281000 +0200
2 +++ misc/build/src/build.xml 2008-07-11 12:17:29.848740000 +0200
5 +<?xml version="1.0" encoding="UTF-8"?>
7 +<project basedir="." default="all" name="Saxon-B The XSLT and XQuery Processor"
8 + xmlns:dn="antlib:org.apache.ant.dotnet">
11 + <!-- TODO *really* Must publish NOTICES directory with patch releases. Should also
12 + publish doc directory, and add a notice concerning Saxon/MPL itself, as per section 3.6 of MPL 1.0 -->
14 + <!--TODO: 1: ensure saxon9api.netmodule is included in the build
15 + 2: remove the archive target before shipping this file-->
17 + <!-- note : Ant 1.7 is needed for this script -->
19 + <!-- Ant 1.7 introduces a <service> element to allow META-INF/services
20 + directories to be created in JAR files. Unfortunately it is broken,
21 + see http://issues.apache.org/bugzilla/show_bug.cgi?id=41201. The relevant
22 + code here is retained in the form of comments, and can be reinstated
23 + when the bug is fixed. Meanwhile the directories are created manually -->
25 + <!-- Build file for Saxon. This builds all four for the released products:
26 + Saxon-B and Saxon-SA, on both the Java and .NET platforms. It also builds
27 + the released resources file. A full build requires access to Saxonica
28 + proprietary source code. The open source Saxon-B product can be built for
29 + Java using target "bj"; but building Saxon-B for .NET may require some
30 + disentangling of tasks that depend on Saxon-SA being present. -->
32 + <!-- Useful targets:
34 + clean clears temporary directories
35 + bj builds executables for Saxon-B
36 + saj builds executables for Saxon-B and Saxon-SA
37 + n builds executables for Saxon on .NET
38 + build builds all executables
39 + resources builds samples and documentation
40 + release builds ZIP files for published downloads
41 + archive produces a back-up archive -->
44 + <!-- Naming conventions:
49 + combined as appropriate, so -bj denotes Saxon-B on the Java platform
52 + <property name="version" value="9.0.0.7"/>
53 + <property name="versionh" value="9-0-0-7"/>
54 + <property name="release.date" value="2008-07-03"/>
56 + <!-- following locations are specific to the machine -->
58 + <!-- root drive for input files-->
59 + <property name="root" value="."/>
61 + <!-- root drive for generated files-->
62 + <property name="troot" value="."/>
64 + <!-- directory holding Java source code -->
65 + <property name="development-j.dir" value="${root}/MyJava/saxon8.x"/>
67 + <!-- directory holding Java source code as in Subversion -->
68 + <property name="subversion-j.dir" value="${root}"/>
70 + <!-- directory holding latest patch state of Saxon-SA Java code -->
71 + <property name="saj-patch.dir" value="${root}/saxon-90-patch"/>
73 + <!-- directory holding Java test drivers -->
74 + <property name="drivers-j.dir" value="${root}/MyJava/test"/>
76 + <!-- directories holding C# source code -->
77 + <property name="vss-n.dir" value="${root}/Documents and Settings/Mike/My Documents/Visual Studio 2005/Projects/Saxon.Api"/>
79 + <!-- directory holding C# source code as in Subversion -->
80 + <property name="subversion-n.dir" value="${root}/saxon-svn/latest9.0/bn/csource"/>
82 + <!-- directory holding XML user documentation -->
83 + <property name="userdoc.dir" value="${root}/MyJava/doc/saxon8"/>
85 + <!-- directory holding .NET API documentation (which is built manually using NDOC -->
86 + <property name="dotnetdoc.dir" value="${root}/MyDotNet/dotnetdoc"/>
88 + <!-- directories holding use cases and sample applications -->
89 + <property name="usercases.dir" value="${root}/MyJava/use-cases"/>
90 + <property name="samples.dir" value="${root}/MyJava/samples"/>
92 + <!-- directory in which to build the product for release -->
93 + <property name="product.dir" value="${troot}/saxon-build/${version}"/>
95 + <!-- directory in which to build the issued .ZIP files -->
96 + <property name="issue.dir" value="${troot}/saxon-issues/saxon-issue-${release.date} (${version})"/>
98 + <!-- location of the C# compiler -->
99 + <property name="csharp.compiler" value="c:/Windows/Microsoft.NET/Framework/v1.1.4322/csc.exe"/>
102 + <!-- following locations are for IKVMC code used to build the .NET product -->
104 + <property name="development-ikvm.dir" value="${root}/MyDotNet"/>
105 + <property name="ikvm.dir" value="${development-ikvm.dir}/ikvm-0.32.0.0"/>
106 + <property name="generated.stubs.dir" value="${development-ikvm.dir}/stubs"/>
107 + <property name="saxondotnet.snk" value="${development-ikvm.dir}/make/saxondotnet.snk"/>
109 + <!-- Precondition for .NET compilation: IKVM is installed.
110 + * Download from www.ikvm.net
111 + * Unzip into ${development-ikvm.dir}
112 + * Register in the GAC (access the Microsoft .NET Framework Configuration item in the
113 + Windows Control Panel, and add the assemblies to the Assembly Cache.
114 + At a minimum, install the IKVM.GNU.Classpath.dll and IKVM.Runtime.dll)
115 + * Generate stubs in ${generated.stubs.dir}
116 + for System.Xml.dll, System.Security.dll, and IKVM.GNU.Classpath.dll
119 + <!-- following locations are relative to the build file -->
121 + <property name="lib.dir" value="libs"/>
122 + <property name="temp.dir" value="temp"/>
123 + <property name="archive.dir" value="archive"/>
124 + <property name="services.dir" value="services"/>
125 + <property name="temp-src-j.dir" value="${temp.dir}/j/source"/>
126 + <property name="temp-src-nj.dir" value="${temp.dir}/n/jsource"/>
127 + <property name="temp-src-nc.dir" value="${temp.dir}/n/csource"/>
128 + <property name="classes-j.dir" value="${temp.dir}/j/classes"/>
129 + <property name="classes-n.dir" value="${temp.dir}/n/classes"/>
130 + <property name="jar-n.dir" value="${temp.dir}/n/jar"/>
131 + <property name="dll-n.dir" value="${temp.dir}/n/dll"/>
133 + <!-- following locations are relative to the destination directory -->
135 + <property name="build-bj.dir" value="${product.dir}/bj"/>
136 + <property name="build-saj.dir" value="${product.dir}/saj"/>
137 + <property name="build-bn.dir" value="${product.dir}/bn"/>
138 + <property name="build-san.dir" value="${product.dir}/san"/>
139 + <property name="build-resources.dir" value="${product.dir}/resources"/>
140 + <property name="javadoc.dir" value="${build-resources.dir}/doc/javadoc"/>
143 + <property name="build.debug" value="true"/>
144 + <property name="build.debuglevel" value="source,lines,vars"/>
145 + <property name="build.deprecation" value="true"/>
146 + <property name="build.optimize" value="true"/>
147 + <property name="build.compiler.source" value="1.4"/>
148 + <property name="build.compiler.target" value="1.4"/>
149 + <property name="build.s9api.compiler.source" value="1.5"/>
150 + <property name="build.s9api.compiler.target" value="1.5"/>
151 + <property name="build.compress" value="false"/>
153 + <!-- following properties can be switched to determine whether to build from patch source
154 + or from development source -->
156 + <!-- patch source -->
158 + <property name="source-bj.dir" value="${subversion-j.dir}"/>
159 + <property name="source-saj.dir" value="${saj-patch.dir}"/>
160 + <property name="source-api-n.dir" value="${subversion-n.dir}/api/Saxon.Api"/>
161 + <property name="source-cmd-n.dir" value="${subversion-n.dir}/cmd"/>
162 + <property name="source-samples-n.dir" value="${subversion-n.dir}/samples"/>
164 + <!-- development source -->
166 + <property name="source-bj.dir" value="${development-j.dir}"/>
167 + <property name="source-saj.dir" value="${development-j.dir}"/>
168 + <property name="source-api-n.dir" value="${vss-n.dir}"/>
169 + <property name="source-cmd-n.dir" value="${vss-n.dir}"/>
170 + <property name="source-samples-n.dir" value="${vss-n.dir}"/>
173 + <property name="solar.bin" value="${solarbindir}"/>
174 + <path id="classpath-j">
175 + <fileset dir="${solar.bin}">
176 + <include name="jsr173_1.0_api.jar"/>
180 + <path id="classpath-n">
181 + <fileset dir="${lib.dir}">
182 + <include name="*.jar"/>
184 + <fileset dir="${ikvm.dir}">
185 + <include name="classpath/mscorlib.jar"/>
186 + <include name="classpath/System.jar"/>
187 + <include name="bin/IKVM.GNU.Classpath.jar"/>
188 + <include name="bin/IKVM.Runtime.jar"/>
190 + <fileset dir="${generated.stubs.dir}">
191 + <include name="System.Xml.jar"/>
192 + <include name="System.Security.jar"/>
196 + <path id="classpath-samples">
197 + <fileset dir="${lib.dir}">
198 + <include name="*.jar"/>
200 + <fileset dir="${build-saj.dir}">
201 + <include name="*.jar"/>
203 + <!-- Substitute build-bj.dir if there is no requirement to compile the sample applications
204 + that depend on Saxon-SA -->
207 + <target name="clean" description="Clean all files other than source code and downloaded jars.">
208 + <delete dir="${temp.dir}"/>
209 + <delete dir="${product.dir}"/>
210 + <mkdir dir="${product.dir}"/>
213 + <target name="download" description="Download third-party jar files.">
214 + <get src="http://mirrors.ibiblio.org/pub/mirrors/maven2/dom4j/dom4j/1.6.1/dom4j-1.6.1.jar"
215 + dest="${lib.dir}/dom4j-1.6.1.jar" verbose="true"/>
217 + <get src="http://www.ibiblio.org/maven/jdom/jars/jdom-1.0.jar"
218 + dest="${lib.dir}/jdom-1.0.jar" verbose="true"/>
220 + <get src="http://www.cafeconleche.org/XOM/xom-1.1.jar" dest="${lib.dir}/xom-1.1.jar"
223 + <get src="http://dist.codehaus.org/stax/jars/stax-api-1.0.1.jar" dest="${lib.dir}/stax-api-1.0.1.jar"
226 + <!-- TODO: add servlet.jar, ant.jar -->
231 + <target name="copysource-development" description="Copy relevant source files from development directory">
232 + <copy todir="${temp-src-j.dir}">
233 + <fileset dir="${source-bj.dir}">
234 + <include name="net/sf/saxon/**/*.java"/>
235 + <exclude name="**/dotnet/**"/>
236 + <!--<exclude name="**/s9api/**"/> s9api needs Java 5 -->
237 + <include name="net/sf/saxon/**/package.html"/>
240 + <fileset dir="${source-saj.dir}">
241 + <include name="com/saxonica/**/*.java"/>
242 + <exclude name="com/saxonica/validate/DotNetVerifier.java"/>
243 + <include name="com/saxonica/**/package.html"/>
248 + <replace file="${temp-src-j.dir}/com/saxonica/validate/SchemaAwareConfiguration.java"
249 + token="/*DOTNETONLY*/"
253 + <replace file="${temp-src-j.dir}/net/sf/saxon/Configuration.java"
254 + token="/*DOTNETONLY*/"
257 + <copy todir="${temp-src-nj.dir}">
258 + <fileset dir="${source-bj.dir}">
259 + <include name="net/sf/saxon/**/*.java"/>
260 + <exclude name="**/ant/**"/>
261 + <exclude name="**/dom/**"/>
262 + <exclude name="**/dom4j/**"/>
263 + <exclude name="**/java/**"/>
264 + <exclude name="**/javax/**"/>
265 + <exclude name="**/jdom/**"/>
266 + <exclude name="**/pull/PullToStax.java"/>
267 + <exclude name="**/pull/StaxBridge.java"/>
268 + <!-- <exclude name="**/s9api/**"/> s9api needs Java 5 -->
269 + <exclude name="**/xom/**"/>
270 + <exclude name="**/xpath/**"/>
271 + <exclude name="**/xqj/**"/>
274 + <fileset dir="${source-saj.dir}">
275 + <include name="com/saxonica/extra/*.java"/>
276 + <include name="com/saxonica/fsa/*.java"/>
277 + <include name="com/saxonica/ptree/*.java"/>
278 + <include name="com/saxonica/schema/*.java"/>
279 + <include name="com/saxonica/sdoc/*.java"/>
280 + <include name="com/saxonica/validate/*.java"/>
281 + <include name="com/saxonica/Validate.java"/>
285 + <replace file="${temp-src-nj.dir}/com/saxonica/validate/SchemaAwareConfiguration.java"
286 + token="/*JAVAONLY*/"
290 + <replace file="${temp-src-nj.dir}/net/sf/saxon/Configuration.java"
291 + token="/*JAVAONLY*/"
294 + <!-- when building from development source
295 + <copy todir="${temp-src-nc.dir}/api">
296 + <fileset dir="${source-api-n.dir}">
297 + <include name="Saxon.Api/*.cs"/>
301 + <copy todir="${temp-src-nc.dir}/cmd">
302 + <fileset dir="${source-cmd-n.dir}/Transform">
303 + <include name="*.cs"/>
305 + <fileset dir="${source-cmd-n.dir}/Query">
306 + <include name="*.cs"/>
308 + <fileset dir="${source-cmd-n.dir}/Validate">
309 + <include name="*.cs"/>
312 + <copy todir="${temp-src-nc.dir}/samples">
313 + <fileset dir="${source-samples-n.dir}/XQueryExamples">
314 + <include name="*.cs"/>
316 + <fileset dir="${source-samples-n.dir}/XPathExample">
317 + <include name="*.cs"/>
319 + <fileset dir="${source-samples-n.dir}/XsltExamples">
320 + <include name="*.cs"/>
322 + <fileset dir="${source-samples-n.dir}/SchemaExamples">
323 + <include name="*.cs"/>
325 + <fileset dir="${source-samples-n.dir}/XsltTestSuiteDriver">
326 + <include name="*.cs"/>
328 + <fileset dir="${source-samples-n.dir}/XQueryTestSuiteDriver">
329 + <include name="*.cs"/>
331 + <fileset dir="${source-samples-n.dir}/SampleExtensions">
332 + <include name="*.cs"/>
336 + <!-- when building from patch source
337 + <copy todir="${temp-src-nc.dir}/api/Saxon.Api">
338 + <fileset dir="${source-api-n.dir}">
339 + <include name="*.cs"/>
342 + <copy todir="${temp-src-nc.dir}/cmd" >
343 + <fileset dir="${source-cmd-n.dir}">
344 + <include name="*.cs"/>
347 + <copy todir="${temp-src-nc.dir}/samples">
348 + <fileset dir="${source-samples-n.dir}">
349 + <include name="*.cs"/>
357 + <target name="create-meta-inf" description="Create contents of META-INF/services files">
359 + <!-- given the Ant 1.7.0 bug, create the services files here for copying into the JARS -->
360 + <mkdir dir="${services.dir}/saxon9/META-INF/services"/>
361 + <echo file="${services.dir}/saxon9/META-INF/services/javax.xml.transform.TransformerFactory"
362 + message="net.sf.saxon.TransformerFactoryImpl"/>
363 + <mkdir dir="${services.dir}/saxon9-xpath/META-INF/services"/>
364 + <echo file="${services.dir}/saxon9-xpath/META-INF/services/javax.xml.xpath.XPathFactory"
365 +>net.sf.saxon.xpath.XPathFactoryImpl
366 +http\://java.sun.com/jaxp/xpath/dom: net.sf.saxon.xpath.XPathFactoryImpl
367 +http\://saxon.sf.net/jaxp/xpath/om: net.sf.saxon.xpath.XPathFactoryImpl
368 +http\://www.xom.nu/jaxp/xpath/xom: net.sf.saxon.xpath.XPathFactoryImpl
369 +http\://jdom.org/jaxp/xpath/jdom: net.sf.saxon.xpath.XPathFactoryImpl
370 +http\://www.dom4j.org/jaxp/xpath/dom4j: net.sf.saxon.xpath.XPathFactoryImpl
372 + <mkdir dir="${services.dir}/saxon9sa/META-INF/services"/>
373 + <echo file="${services.dir}/saxon9sa/META-INF/services/javax.xml.transform.TransformerFactory"
374 + message="com.saxonica.SchemaAwareTransformerFactory"/>
375 + <mkdir dir="${services.dir}/saxon9sa-jaxp/META-INF/services"/>
376 + <echo file="${services.dir}/saxon9sa-jaxp/META-INF/services/javax.xml.validation.SchemaFactory"
377 +>com.saxonica.jaxp.SchemaFactoryImpl
378 +http\://www.w3.org/2001/XMLSchema: com.saxonica.jaxp.SchemaFactoryImpl
384 + <target name="compile-bj" description="Compile Saxon-B classes for Java." depends="copysource-development">
385 + <mkdir dir="${classes-j.dir}"/>
386 + <javac encoding="ISO-8859-1" debug="${build.debug}" debuglevel="${build.debuglevel}"
387 + deprecation="${build.deprecation}" destdir="${classes-j.dir}"
388 + optimize="${build.optimize}" srcdir="${temp-src-j.dir}" source="${build.compiler.source}"
389 + target="${build.compiler.target}">
391 + <include name="net/**"/>
392 + <exclude name="**/dom/**"/>
393 + <exclude name="**/dom4j/**"/>
394 + <exclude name="**/javax/**"/>
395 + <exclude name="**/jdom/**"/>
396 + <exclude name="**/sql/**"/>
397 + <exclude name="**/xom/**"/>
398 + <exclude name="**/xpath/**"/>
399 + <exclude name="**/xqj/**"/>
400 + <exclude name="**/dotnet/**"/>
401 + <exclude name="**/s9api/**"/>
403 + <exclude name="**/ant/**"/>
404 + <exclude name="**/dotnet/**"/>
405 + <exclude name="**/s9api/**"/>
407 + <path refid="classpath-j"/>
412 + <target name="compile-saj" description="Compile Saxon-SA classes for Java." depends="copysource-development">
413 + <mkdir dir="${classes-j.dir}"/>
414 + <javac debug="${build.debug}" debuglevel="${build.debuglevel}"
415 + deprecation="${build.deprecation}" destdir="${classes-j.dir}"
416 + optimize="${build.optimize}" srcdir="${temp-src-j.dir}" source="${build.compiler.source}"
417 + target="${build.compiler.target}">
419 + <include name="com/saxonica/**"/>
420 + <include name="net/sf/saxon/ant/**"/>
421 + <exclude name="com/saxonica/validate/DotNetVerifier.java"/>
423 + <path refid="classpath-j"/>
428 + <target name="compile-s9api" description="Compile s9api classes for Java."
429 + depends="compile-bj, compile-saj, copysource-development">
430 + <!-- Compiling the s9api package requires JDK 1.5 -->
431 + <!-- The bj and saj source must be compiled first to ensure that it is done using 1.4, otherwise
432 + it will be compiled in 1.5 mode because the classes are referenced from the s9api package -->
433 + <javac debug="${build.debug}" debuglevel="${build.debuglevel}"
434 + deprecation="${build.deprecation}" destdir="${classes-j.dir}"
435 + optimize="${build.optimize}" srcdir="${temp-src-j.dir}" source="${build.s9api.compiler.source}"
436 + target="${build.s9api.compiler.target}">
438 + <include name="**/s9api/**"/>
440 + <path refid="classpath-j"/>
445 + <target name="compile-bn" description="Compile Saxon-B classes for .NET" depends="copysource-development">
446 + <mkdir dir="${classes-n.dir}"/>
447 + <javac debug="${build.debug}" debuglevel="${build.debuglevel}"
448 + deprecation="${build.deprecation}" destdir="${classes-n.dir}"
449 + optimize="${build.optimize}" srcdir="${temp-src-nj.dir}" source="${build.compiler.source}"
450 + target="${build.compiler.target}">
452 + <include name="net/**"/>
453 + <exclude name="**/s9api/**"/>
455 + <path refid="classpath-n"/>
460 + <target name="compile-san" description="Compile Saxon-SA classes for .NET" depends="copysource-development">
461 + <mkdir dir="${classes-n.dir}"/>
462 + <javac debug="${build.debug}" debuglevel="${build.debuglevel}"
463 + deprecation="${build.deprecation}" destdir="${classes-n.dir}"
464 + optimize="${build.optimize}" srcdir="${temp-src-nj.dir}" source="${build.compiler.source}"
465 + target="${build.compiler.target}">
467 + <include name="com/saxonica/**"/>
468 + <exclude name="com/saxonica/validate/JavaVerifier.java"/>
470 + <path refid="classpath-n"/>
475 + <target name="jar-bj" description="Create Saxon-B jar files for Java" depends="create-meta-inf, compile-bj">
476 + <mkdir dir="${product.dir}/bj"/>
477 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/bj/saxon9.jar">
478 + <include name="net/**/*.class"/>
479 + <exclude name="**/ant/**/*.class"/>
480 + <exclude name="**/dom/**/*.class"/>
481 + <exclude name="**/dom4j/**/*.class"/>
482 + <exclude name="**/javax/**/*.class"/>
483 + <exclude name="**/jdom/**/*.class"/>
484 + <exclude name="**/sql/**/*.class"/>
485 + <exclude name="**/xom/**/*.class"/>
486 + <exclude name="**/xpath/**/*.class"/>
487 + <exclude name="**/xqj/**/*.class"/>
488 + <exclude name="**/s9api/**/*.class"/>
489 + <include name="META-INF/**"/>
491 + <attribute name="Project-Name" value="Saxon-B"/>
492 + <attribute name="Main-Class" value="net.sf.saxon.Transform"/>
494 + <metainf dir="${services.dir}/saxon9/META-INF"/>
496 + <service type="javax.xml.transform.TransformerFactory"
497 + provider="net.sf.saxon.TransformerFactoryImpl"/>
501 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/bj/saxon9-dom.jar">
502 + <include name="net/sf/saxon/dom/*.class"/>
504 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/bj/saxon9-dom4j.jar">
505 + <include name="net/sf/saxon/dom4j/*.class"/>
507 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/bj/saxon9-jdom.jar">
508 + <include name="net/sf/saxon/jdom/*.class"/>
510 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/bj/saxon9-s9api.jar">
511 + <include name="net/sf/saxon/s9api/*.class"/>
513 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/bj/saxon9-sql.jar">
514 + <include name="net/sf/saxon/sql/*.class"/>
516 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/bj/saxon9-xom.jar">
517 + <include name="net/sf/saxon/xom/*.class"/>
519 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/bj/saxon9-xpath.jar">
520 + <include name="net/sf/saxon/xpath/*.class"/>
521 + <metainf dir="${services.dir}/saxon9-xpath/META-INF"/>
523 + <service type="javax.xml.xpath.XPathFactory">
524 + <provider classname="net.sf.saxon.xpath.XPathFactoryImpl"/>
525 + <provider classname="http\://java.sun.com/jaxp/xpath/dom: net.sf.saxon.xpath.XPathFactoryImpl"/>
526 + <provider classname="http\://saxon.sf.net/jaxp/xpath/om: net.sf.saxon.xpath.XPathFactoryImpl"/>
527 + <provider classname="http\://www.xom.nu/jaxp/xpath/xom: net.sf.saxon.xpath.XPathFactoryImpl"/>
528 + <provider classname="http\://jdom.org/jaxp/xpath/jdom: net.sf.saxon.xpath.XPathFactoryImpl"/>
529 + <provider classname="http\://www.dom4j.org/jaxp/xpath/dom4j: net.sf.saxon.xpath.XPathFactoryImpl"/>
532 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/bj/saxon9-xqj.jar">
533 + <include name="net/sf/saxon/xqj/*.class"/>
534 + <include name="net/sf/saxon/javax/xml/namespace/*.class"/>
535 + <include name="net/sf/saxon/javax/xml/xquery/*.class"/>
540 + <target name="jar-saj" description="Create Saxon-SA jar files for Java" depends="compile-s9api, jar-bj">
541 + <mkdir dir="${product.dir}/saj"/>
542 + <copy todir="${product.dir}/saj">
543 + <fileset dir="${product.dir}/bj">
544 + <include name="*.jar"/>
547 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/saj/saxon9sa.jar">
548 + <include name="net/**/*.class"/>
549 + <exclude name="**/dom/**/*.class"/>
550 + <exclude name="**/dom4j/**/*.class"/>
551 + <exclude name="**/javax/**/*.class"/>
552 + <exclude name="**/jdom/**/*.class"/>
553 + <exclude name="**/s9api/**/*.class"/>
554 + <exclude name="**/sql/**/*.class"/>
555 + <exclude name="**/xom/**/*.class"/>
556 + <exclude name="**/xpath/**/*.class"/>
557 + <exclude name="**/xqj/**/*.class"/>
558 + <include name="com/saxonica/**/*.class"/>
559 + <exclude name="com/saxonica/jaxp/*.class"/>
560 + <exclude name="com.saxonica.CompileQuery.class"/>
562 + <attribute name="Project-Name" value="Saxon-SA"/>
564 + <metainf dir="${services.dir}/saxon9sa/META-INF"/>
566 + <service type="javax.xml.transform.TransformerFactory"
567 + provider="com.saxonica.SchemaAwareTransformerFactory"/>
570 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/saj/saxon9sa-jaxp.jar">
571 + <include name="com/saxonica/jaxp/*.class"/>
572 + <include name="net/sf/saxon/dom/TypeInfoImpl.class"/>
573 + <metainf dir="${services.dir}/saxon9sa-jaxp/META-INF"/>
575 + <service type="javax.xml.validation.SchemaFactory">
576 + <provider classname="com.saxonica.jaxp.SchemaFactoryImpl"/>
577 + <provider classname="http\://www.w3.org/2001/XMLSchema: com.saxonica.jaxp.SchemaFactoryImpl"/>
581 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/saj/saxon9sa-qc.jar">
582 + <include name="com/saxonica/codegen/*.class"/>
583 + <include name="com.saxonica.CompileQuery.class"/>
585 + <!-- The Saxon-Ant task is delivered with Saxon-B but it won't compile without Saxon-SA present,
586 + unless modified -->
587 + <jar basedir="${classes-j.dir}" compress="${build.compress}" jarfile="${product.dir}/bj/saxon9-ant.jar">
588 + <include name="net/sf/saxon/ant/*.class"/>
592 + <target name="jar-bn" description="Create Saxon-B jar files for .NET" depends="compile-bn">
593 + <mkdir dir="${jar-n.dir}"/>
594 + <jar basedir="${classes-n.dir}" compress="${build.compress}" jarfile="${jar-n.dir}/saxon9.jar">
595 + <include name="net/**/*.class"/>
599 + <target name="jar-san" description="Create Saxon-SA jar files for .NET" depends="compile-san">
600 + <mkdir dir="${jar-n.dir}"/>
601 + <jar basedir="${classes-n.dir}" compress="${build.compress}" jarfile="${jar-n.dir}/saxon9sa.jar">
602 + <include name="com/saxonica/**/*.class"/>
606 + <target name="dll-n" description="Create DLLs for .NET" depends="jar-bn, jar-san">
607 + <mkdir dir="${dll-n.dir}"/>
608 + <copy todir="${dll-n.dir}">
609 + <fileset dir="${ikvm.dir}/bin">
610 + <include name="IKVM.GNU.Classpath.dll"/>
611 + <include name="IKVM.Runtime.dll"/>
614 + <copy file="${saxondotnet.snk}" todir="${basedir}"/>
616 + Invoke IKVMC to cross-compile the JAR files into DLLs
618 + <exec dir="." executable="ikvmc.cmd" >
619 + <arg line="live"/> <!-- set to 'debug' for testing, 'live' for final build -->
620 + <arg line="${basedir}/${jar-n.dir}"/>
621 + <arg line="${basedir}/${dll-n.dir}"/>
622 + <arg line="${version}"/>
626 + <target name="csharp-n" description="Compile C# source for .NET commands and API library"
629 + <mkdir dir="${dll-n.dir}/samples"/>
630 + <mkdir dir="${dll-n.dir}/tests"/>
632 + <exec dir="." executable="csharp-compile.cmd" >
633 + <arg line="${basedir}/${temp-src-nc.dir}"/>
634 + <arg line="${basedir}/${dll-n.dir}"/>
635 + <arg line="${version}"/>
640 + uri="antlib:org.apache.ant.dotnet">
642 + <pathelement location="c:/javalib/ant-dotnet-1.0/ant-dotnet-1.0.jar"/>
645 + <dn:csc xmlns:dn="antlib:org.apache.ant.dotnet"
646 + executable="${csharp.compiler}"
647 + srcdir="${temp-src-nc.dir}/cmd"
649 + win32icon="c:\MyDotNet\icons\gyfu.ico"
650 + destdir="${dll-n.dir}">
651 + <reference file="${dll-n.dir}/IKVM.GNU.Classpath.dll"/>
652 + <reference file="${dll-n.dir}/IKVM.Runtime.dll"/>
653 + <reference file="${dll-n.dir}/saxon9.dll"/>
654 + <reference file="${dll-n.dir}/saxon9sa.dll"/>
656 + <dn:csc xmlns:dn="antlib:org.apache.ant.dotnet"
657 + executable="${csharp.compiler}"
658 + srcdir="${temp-src-nc.dir}/api"
659 + targettype="module"
660 + win32icon="c:\MyDotNet\icons\gyfu.ico"
661 + destdir="${dll-n.dir}">
662 + <reference file="${dll-n.dir}/IKVM.GNU.Classpath.dll"/>
663 + <reference file="${dll-n.dir}/IKVM.Runtime.dll"/>
664 + <reference file="${dll-n.dir}/saxon9.dll"/>
665 + <reference file="${dll-n.dir}/saxon9sa.dll"/>
670 + <target name="basic-userdoc" description="Generate Basic Documentation for release with executable">
671 + <mkdir dir="${product.dir}/bj"/>
672 + <copy todir="${product.dir}/bj">
673 + <fileset dir="${userdoc.dir}/welcome">
674 + <include name="doc/**"/>
675 + <include name="notices/**"/>
678 + <mkdir dir="${product.dir}/saj"/>
679 + <copy todir="${product.dir}/saj">
680 + <fileset dir="${userdoc.dir}/welcome">
681 + <include name="doc/**"/>
682 + <include name="notices/**"/>
685 + <mkdir dir="${product.dir}/bn"/>
686 + <copy todir="${product.dir}/bn">
687 + <fileset dir="${userdoc.dir}/welcome">
688 + <include name="doc/**"/>
689 + <include name="notices/**"/>
692 + <mkdir dir="${product.dir}/san"/>
693 + <copy todir="${product.dir}/san">
694 + <fileset dir="${userdoc.dir}/welcome">
695 + <include name="doc/**"/>
696 + <include name="notices/**"/>
701 + <target name="product-bn" description="Assemble product.directory for Saxon-B on .NET"
702 + depends="csharp-n, dll-n, basic-userdoc">
703 + <mkdir dir="${build-bn.dir}/bin"/>
704 + <copy todir="${build-bn.dir}/bin">
705 + <fileset dir="${dll-n.dir}">
706 + <include name="IKVM.GNU.Classpath.dll"/>
707 + <include name="IKVM.Runtime.dll"/>
708 + <include name="saxon9.dll"/>
709 + <include name="saxon9api.dll"/>
710 + <include name="saxon9api.netmodule"/>
711 + <include name="Query.exe"/>
712 + <include name="Transform.exe"/>
715 + <echo file="${build-bn.dir}/bin/install-gac.cmd">
716 + set NET="%PROGRAMFILES%\Microsoft.NET\SDK\v1.1\Bin"
717 + %NET%\gacutil /if IKVM.Runtime.dll
718 + %NET%\gacutil /if IKVM.GNU.Classpath.dll
719 + %NET%\gacutil /if saxon9.dll
720 + %NET%\gacutil /if saxon9api.dll
724 + <target name="product-san" description="Assemble product.directory for Saxon-SA on .NET"
725 + depends="csharp-n, dll-n, basic-userdoc">
726 + <copy todir="${build-san.dir}/bin">
727 + <fileset dir="${dll-n.dir}">
728 + <include name="IKVM.GNU.Classpath.dll"/>
729 + <include name="IKVM.Runtime.dll"/>
730 + <include name="saxon9.dll"/>
731 + <include name="saxon9sa.dll"/>
732 + <include name="saxon9api.dll"/>
733 + <include name="saxon9api.netmodule"/>
734 + <include name="Query.exe"/>
735 + <include name="Transform.exe"/>
736 + <include name="Validate.exe"/>
739 + <echo file="${build-san.dir}/bin/install-gac.cmd">
740 + set NET="%PROGRAMFILES%\Microsoft.NET\SDK\v1.1\Bin"
741 + %NET%\gacutil /if IKVM.Runtime.dll
742 + %NET%\gacutil /if IKVM.GNU.Classpath.dll
743 + %NET%\gacutil /if saxon9.dll
744 + %NET%\gacutil /if saxon9sa.dll
745 + %NET%\gacutil /if saxon9api.dll
749 + <target name="samples" description="Assemble Cross-Platform Samples and Use-Cases">
750 + <mkdir dir="${build-resources.dir}/samples"/>
751 + <copy todir="${product.dir}/resources/use-cases">
752 + <fileset dir="${usercases.dir}"/>
754 + <copy todir="${product.dir}/resources/samples">
755 + <fileset dir="${samples.dir}">
756 + <include name="analysis/timing-profile.xsl"/>
757 + <include name="data/*.xml"/>
758 + <include name="data/*.xsd"/>
759 + <include name="data/*.dtd"/>
760 + <include name="query/*.xq"/>
761 + <include name="styles/*.xsl"/>
762 + <include name="trax/xml/**/*.xml"/>
763 + <include name="trax/xsl/**/*.xsl"/>
764 + <include name="trax/xsl/**/preamble.txt"/>
769 + <target name="samples-j" description="Copy and Compile Java Samples"
771 + <mkdir dir="${product.dir}/resources/samples/java"/>
772 + <mkdir dir="${product.dir}/resources/samples/java/classes"/>
773 + <copy todir="${product.dir}/resources/samples/java">
774 + <fileset dir="${samples.dir}/java">
775 + <include name="ApplyXPathJAXP.java"/>
776 + <include name="ExampleContentHandler.java"/>
777 + <include name="JDOMExample.java"/>
778 + <include name="PullExamples.java"/>
779 + <include name="QueryAPIExamples.java"/>
780 + <include name="QuickValidator.java"/>
781 + <include name="SaxonServlet.java"/>
782 + <include name="SaxonSAServlet.java"/>
783 + <include name="SchemaValidatorExample.java"/>
784 + <include name="SchemaValidatorHandlerExample.java"/>
785 + <include name="TraxExamples.java"/>
786 + <include name="XMarkBenchmark.java"/>
787 + <include name="XPathExample.java"/>
788 + <include name="XPathExampleDOM.java"/>
789 + <include name="XPathExampleSA.java"/>
790 + <include name="XPathExampleServlet.java"/>
791 + <include name="XQJExamples.java"/>
794 + <javac debug="true" debuglevel="source, lines"
795 + destdir="${product.dir}/resources/samples/java/classes"
796 + srcdir="${product.dir}/resources/samples/java"
797 + source="${build.compiler.source}"
798 + target="${build.compiler.target}">
799 + <include name="*.java"/>
801 + <path refid="classpath-samples"/>
806 + <target name="testdrivers-j" description="Copy Java Test Drivers">
807 + <mkdir dir="${product.dir}/resources/drivers/java/test"/>
808 + <copy todir="${product.dir}/resources/drivers/java/test">
809 + <fileset dir="${drivers-j.dir}">
810 + <include name="XQueryTestSuiteDriver.java"/>
811 + <include name="XsltTestSuiteDriver.java"/>
812 + <include name="CanonicalXML.java"/>
813 + <include name="XQTSModuleURIResolver.java"/>
814 + <include name="XQTSCollectionURIResolver.java"/>
815 + <include name="SchemaTestSuiteDriver.java"/>
820 + <target name="samples-n" description="Assemble release samples for .NET"
821 + depends="csharp-n">
822 + <mkdir dir="${build-resources.dir}/samples/cs"/>
823 + <copy todir="${build-resources.dir}/samples/cs">
824 + <fileset dir="${temp-src-nc.dir}/samples">
825 + <include name="*.cs"/>
828 + <mkdir dir="${build-resources.dir}/samples/cs/bin"/>
829 + <copy todir="${build-resources.dir}/samples/cs/bin">
830 + <fileset dir="${dll-n.dir}/samples">
831 + <include name="*.exe"/>
832 + <include name="*.dll"/>
833 + <include name="*.pdb"/>
836 + <copy todir="${build-resources.dir}/samples/cs/bin">
837 + <fileset dir="${dll-n.dir}/tests">
838 + <include name="*.exe"/>
839 + <include name="*.dll"/>
840 + <include name="*.pdb"/>
845 + <target name="product-javadoc" description="Generate Javadoc.">
846 + <javadoc bottom="Copyright (C) Michael H. Kay. All rights reserved."
847 + destdir="${javadoc.dir}" doctitle="saxon9 Javadocs"
848 + noindex="true" notree="true" access="public"
849 + maxmemory="512M" source="1.5">
850 + <packageset dir="${temp-src-j.dir}">
851 + <include name="net/**"/>
852 + <include name="com/**"/>
853 + <exclude name="**/dotnet/**"/>
854 + <exclude name="**/DotNetVerifier.java"/>
857 + <path refid="classpath-j"/>
860 + <link href="http://java.sun.com/j2se/1.5.0/docs/api/"/>
861 + <link href="http://www.xom.nu/apidocs/"/>
864 + <copy file="${userdoc.dir}/fixed/javadoc/stylesheet.css"
865 + tofile="${javadoc.dir}/stylesheet.css"
869 + <target name="product-dotnetdoc" description="Copy .NET API documentation">
870 + <mkdir dir="${build-resources.dir}/doc/dotnetdoc"/>
871 + <copy todir="${build-resources.dir}/doc/dotnetdoc">
872 + <fileset dir="${dotnetdoc.dir}"/>
877 + <target name="release-userdoc" description="Generate User Documentation">
878 + <taskdef name="saxon-xslt"
879 + classname="net.sf.saxon.ant.AntTransform"
880 + classpath="c:\saxon-build\9.0.0.1\saj\saxon9sa.jar;c:\saxon-licenses"/>
881 + <copy todir="${build-resources.dir}/doc">
882 + <fileset dir="${userdoc.dir}/fixed"/>
884 + <copy todir="${product.dir}/bj">
885 + <fileset dir="${userdoc.dir}/welcome">
886 + <include name="doc/**"/>
887 + <include name="notices/**"/>
890 + <copy todir="${product.dir}/saj">
891 + <fileset dir="${userdoc.dir}/welcome">
892 + <include name="doc/**"/>
893 + <include name="notices/**"/>
896 + <copy todir="${product.dir}/bn">
897 + <fileset dir="${userdoc.dir}/welcome">
898 + <include name="doc/**"/>
899 + <include name="notices/**"/>
902 + <copy todir="${product.dir}/san">
903 + <fileset dir="${userdoc.dir}/welcome">
904 + <include name="doc/**"/>
905 + <include name="notices/**"/>
908 + <saxon-xslt in="${userdoc.dir}/catalog.xml"
909 + style="${userdoc.dir}/render-page2.xsl"
912 + schemaValidation="strict"
913 + out="${product.dir}/resources/doc/dummy.html"><!--validation="strict" -->
914 + <param name="destination" expression="offline"/>
916 + <zip zipfile="${build-resources.dir}/source-userdoc.zip">
917 + <fileset dir="${userdoc.dir}">
918 + <include name="**/*.xml"/>
919 + <include name="**/*.xsl"/>
920 + <include name="**/*.xsd"/>
921 + <include name="**/*.css"/>
922 + <include name="fixed/**"/>
923 + <include name="welcome/**"/>
928 + <target name="release-source" description="Generate Zip file containing issued Source Code">
929 + <mkdir dir="${build-resources.dir}"/>
930 + <zip zipfile="${build-resources.dir}/source.zip">
931 + <fileset dir="${source-bj.dir}">
932 + <include name="net/**/*.java"/>
933 + <include name="net/**/package.html"/>
935 + <fileset dir="${source-bj.dir}">
936 + <include name="net/sf/saxon/dotnet/*.java"/>
937 + <include name="net/sf/saxon/dotnet/package.html"/>
939 + <fileset dir="${temp-src-nc.dir}">
940 + <include name="api/**/*.cs"/>
941 + <include name="cmd/**/*.cs"/>
944 + <zip zipfile="${build-resources.dir}/sa-source.zip">
945 + <fileset dir="${source-saj.dir}">
946 + <include name="com/saxonica/**/*.java"/>
947 + <include name="com/saxonica/**/package.html"/>
952 + <target name="resources" description="Generate contents of released resources file"
953 + depends="release-userdoc, product-javadoc, product-dotnetdoc,
954 + samples, samples-j, testdrivers-j, samples-n, release-source">
955 + <mkdir dir="${product.dir}/resources/build"/>
956 + <copy todir="${product.dir}/resources/build">
957 + <fileset dir="${basedir}">
958 + <include name="build.xml"/>
959 + <include name="ikvmc.cmd"/>
960 + <include name="csharp-compile.cmd"/>
963 + <copy todir="${product.dir}/resources">
964 + <fileset dir="${userdoc.dir}/welcome">
965 + <include name="notices/**"/>
970 + <target name="bj" depends="compile-bj, jar-bj, basic-userdoc"
971 + description="Generate Saxon-B for the Java platform"/>
973 + <target name="saj" depends="bj, jar-saj, basic-userdoc"
974 + description="Generate Saxon-SA for the Java platform"/>
976 + <target name="n" depends="product-bn, product-san"
977 + description="Generate Saxon for the .NET platform"/>
979 + <target name="build" description="Complete Saxon product build"
980 + depends="bj, saj, n"/> <!-- add resources -->
982 + <target name="release" description="Create .ZIP files for release" depends="build"
983 + > <!--depends="build, resources"-->
984 + <mkdir dir="${issue.dir}"/>
985 + <zip zipfile="${issue.dir}/saxonb${versionh}j.zip">
986 + <fileset dir="${product.dir}/bj"/>
988 + <zip zipfile="${issue.dir}/saxonb${versionh}n.zip">
989 + <fileset dir="${product.dir}/bn"/>
991 + <zip zipfile="${issue.dir}/saxonsa${versionh}j.zip">
992 + <fileset dir="${product.dir}/saj"/>
994 + <zip zipfile="${issue.dir}/saxonsa${versionh}n.zip">
995 + <fileset dir="${product.dir}/san"/>
998 + <zip zipfile="${issue.dir}/saxon-resources${versionh}.zip">
999 + <fileset dir="${product.dir}/resources"/>
1004 + <target name="archive" description="Archive everything needed for backup">
1005 + <mkdir dir="${archive.dir}"/>
1006 + <copy todir="${archive.dir}">
1007 + <fileset dir="${issue.dir}"/>
1008 + <fileset dir="${development-j.dir}" includes="sa-source.zip"/>
1009 + <fileset dir="${build-resources.dir}" includes="source.zip"/>
1011 + <zip zipfile="${archive.dir}/saxontests.zip">
1012 + <fileset dir="e:/tests">
1013 + <include name="testsuite/*.*"/>
1014 + <include name="java/**/*.java"/>
1015 + <include name="xqts-current/SaxonDriver/**"/>
1016 + <include name="xqts-extra/**"/>
1017 + <include name="xslts_1_0_4/**/SaxonDriver/**"/>
1019 + <fileset dir="e:/tests/java" includes ="**/*.java"/>
1021 + <zip zipfile="${archive.dir}/licensetool.zip">
1022 + <fileset dir="c:/MyJava/licensetool"/>
1024 + <zip zipfile="${archive.dir}/licenses.zip">
1025 + <fileset dir="c:/saxon-licenses"/>