aboutsummaryrefslogblamecommitdiffstats
path: root/trunk/infrastructure/rhino1_7R1/xmlimplsrc/build.xml
blob: 1aedecef2efe64e3442642e4d8c3d59ec3b825be (plain) (tree)




































































































































































                                                                                                                                           
<?xml version="1.0" encoding="utf-8"?>
<!-- ***** BEGIN LICENSE BLOCK *****
   - Version: MPL 1.1/GPL 2.0
   -
   - The contents of this file are subject to the Mozilla Public License Version
   - 1.1 (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.mozilla.org/MPL/
   -
   - Software distributed under the License is distributed on an "AS IS" basis,
   - WITHOUT WARRANTY OF ANY KIND, either express or implied. See the License
   - for the specific language governing rights and limitations under the
   - License.
   -
   - The Original Code is Rhino code, released May 6, 1999.
   -
   - The Initial Developer of the Original Code is
   - Netscape Communications Corporation.
   - Portions created by the Initial Developer are Copyright (C) 1997-1999
   - the Initial Developer. All Rights Reserved.
   -
   - Contributor(s):
   -
   - Alternatively, the contents of this file may be used under the terms of
   - the GNU General Public License Version 2 or later (the "GPL"), in which
   - case the provisions of the GPL are applicable instead of those above. If
   - you wish to allow use of your version of this file only under the terms of
   - the GPL and not to allow others to use your version of this file under the
   - MPL, indicate your decision by deleting the provisions above and replacing
   - them with the notice and other provisions required by the GPL. If you do
   - not delete the provisions above, a recipient may use your version of this
   - file under either the MPL or the GPL.
   -
   - ***** END LICENSE BLOCK ***** -->

<project name="xmlimplsrc" basedir=".." default="compile">
	<!--
		Properties which affect this build file:
		
		no-e4x: Will cause E4X not to be built
		no-xmlbeans: Will cause the old, XMLBeans-based implementation of E4X not to be built
	-->
	
	<property file="build.local.properties"/>
	<property file="build.properties"/>
	
	<!--
		Provide support for the old name for skipping E4X compilation, in case someone is still using it
	-->
	<condition property="no-e4x">
		<isset property="without-xmlimpl" />
	</condition>

	<path id="xmlbeans.classpath">
		<pathelement location="${xbean.jar}"/>
		<pathelement location="${jsr173.jar}"/>
	</path>

	<target name="compile" unless="no-e4x">
		<antcall target="e4x-compile" />
		<antcall target="no-e4x-compile" />
		
		<antcall target="old-e4x" />
	</target>
	
	<available property="jdk1.5?" classname="java.lang.ProcessBuilder" />
	
	<target name="e4x-compile" if="jdk1.5?">
		<javac
			srcdir="xmlimplsrc"
			destdir="${classes}"
			deprecation="on"
			debug="${debug}"
			target="${target-jvm}"
			source="${source-level}"
		/>		
	</target>
	
	<target name="no-e4x-compile" unless="jdk1.5?">
		<echo>
			Skipping DOM E4X implementation; JDK 1.5+ currently required for compilation.
			<!--
				If the compiler is outfitted with DOM3 using the endorsed standards override mechanism, presumably the code
				could be built under 1.4.  Not tested.
			-->
		</echo>
	</target>
	
	<target name="old-e4x" unless="no-xmlbeans">
		<antcall target="old-e4x-compile" />
		<antcall target="no-old-e4x-compile" />		
	</target>
	
	<target name="old-e4x-compile" depends="xmlbeans-unzip">
		<echo>Compiling XMLBeans E4X implementation using ${xbean.jar} and ${jsr173.jar}</echo>
		<javac 
			srcdir="deprecatedsrc"
			destdir="${classes}"
			includes="org/mozilla/javascript/xml/impl/xmlbeans/*.java"
			deprecation="on"
			debug="${debug}"
			classpathref="xmlbeans.classpath"
			failonerror="${xmlimpl.compile.failonerror}"
			target="${target-jvm}"
			source="${source-level}"
		/>
	</target>

	<target name="no-old-e4x-compile" if="no-xmlbeans">
		<echo>
			Skipping compilation of XMLBeans E4X implementation due to missing XMLBeans files
		</echo>
	</target>

	<target name="copy-source">
		<mkdir dir="${dist.dir}/xmlimplsrc"/>
		<copy todir="${dist.dir}/xmlimplsrc">
			<fileset 
				dir="xmlimplsrc"
				includes="**/*.java,**/*.properties,**/*.xml"
			/>
		</copy>
	</target>

	<target name="clean">
		<delete includeEmptyDirs="true">
			<fileset 
				dir="${classes}"
				includes="org/mozilla/javascript/xmlimpl/**"
			/>
		</delete>
	</target>
	
	<property name="xmlbeans.tmp" location="${build.dir}/tmp-xbean" /> 
	<property name="xmlbeans.zip" location="${xmlbeans.tmp}/xbean.zip" /> 
	
	<condition property="xmlbeans-present?">
		<and>
			<available file="${xbean.jar}" />
			<available file="${jsr173.jar}" />			
		</and>
	</condition>
	
	<condition property="xmlbeans-zip-present?">
		<available file="${xmlbeans.zip}" />
	</condition>

	<target name="xmlbeans-get" unless="xmlbeans-zip-present?">
		<property 
			name="xmlbeans.url" 
			value="http://www.apache.org/dist/xmlbeans/binaries/xmlbeans-2.2.0.zip"
		/>

		<mkdir dir="${xmlbeans.tmp}" />
		<get src="${xmlbeans.url}" dest="${xmlbeans.zip}" ignoreerrors="true" />
	</target>

	<target name="xmlbeans-unzip" unless="xmlbeans-present?">
		<antcall target="xmlbeans-get" />
		<unzip src="${xmlbeans.zip}" dest="${xmlbeans.tmp}" />
		<copy tofile="${xbean.jar}" file="${xmlbeans.tmp}/xmlbeans-2.2.0/lib/xbean.jar" />
		<copy tofile="${jsr173.jar}" file="${xmlbeans.tmp}/xmlbeans-2.2.0/lib/jsr173_1.0_api.jar" />
		<delete dir="${xmlbeans.tmp}" />
	</target>
</project>