<!-- importing.xml --> <project name="jdk" basedir=".."> <script language="javascript" classpath=".idea/classes"> var JdkLogger = Java.type("idea.JdkIdeaAntLogger"); new JdkLogger(project) </script> <!-- java.marker is set to a marker file to check for within a Java install dir. The best file to check for across Solaris/Linux/Windows/MacOS is one of the executables; regrettably, that is OS-specific. --> <condition property="java.marker" value="bin/java"> <os family="unix"/> </condition> <condition property="java.marker" value="bin/java.exe"> <os family="windows"/> </condition> <target name="-check-jtreg.home" depends="-def-check"> <check name="jtreg" property="jtreg.home" marker="lib/jtreg.jar"/> </target> <property name="test.dir" value="${basedir}/jdk/test"/> <macrodef name="call-make"> <attribute name="dir"/> <attribute name="args"/> <sequential> <exec executable="make" dir="@{dir}" failonerror="true"> <arg line="@{args}"/> <env key="CLASSPATH" value = ""/> </exec> </sequential> </macrodef> <target name="post-make" depends="build-module"/> <!-- **** Global JDK Build Targets --> <target name="clean" depends="-do-configure"> <echo message="base = ${basedir}"/> <call-make dir = "${build.target.dir}" args = "clean"/> </target> <target name="-do-configure"> <echo message="base = ${basedir}"/> <fail message="Not part of a full JDK forest"> <condition> <not> <available file="${basedir}/configure" /> </not> </condition> </fail> <exec executable="sh" dir="${basedir}" failonerror="true"> <arg line="configure --with-boot-jdk=${boot.java.home}"/> </exec> </target> <target name="images"> <call-make dir = "${build.target.dir}" args = "images"/> </target> <target name="jimages"> <call-make dir = "${build.target.dir}" args = "jimages"/> </target> <target name="check-env"> <exec executable="env" dir="${basedir}"/> </target> <target name="build-module"> <call-make dir = "${build.target.dir}" args = "${module.name}"/> </target> <target name="-check-boot.java.home" depends="-def-check"> <check name="bootstrap java" property="boot.java.home" marker="${java.marker}"/> </target> <target name="-def-check"> <macrodef name="check"> <attribute name="name"/> <attribute name="property"/> <attribute name="marker" default=""/> <sequential> <fail message="Cannot locate @{name}: please set @{property} to its location"> <condition> <not> <isset property="@{property}"/> </not> </condition> </fail> <fail message="@{name} is not installed in ${@{property}}"> <condition> <and> <not> <equals arg1="@{marker}" arg2=""/> </not> <not> <available file="${@{property}}/@{marker}"/> </not> </and> </condition> </fail> </sequential> </macrodef> </target> <macrodef name="exec-target"> <attribute name="antfile" default="${ant.file}" /> <attribute name="target" /> <sequential> <java classname="org.apache.tools.ant.Main" fork="true" spawn="true"> <arg value="-f"/> <arg value="@{antfile}"/> <arg value="-Dbuild.target.dir=${build.target.dir}"/> <arg value="-Djtreg.home=${jtreg.home}"/> <arg value="-Djtreg.tests=${jtreg.tests}"/> <arg value="-Djtreg.jpda.jvmargs=${jtreg.jpda.jvmargs}"/> <arg value="@{target}"/> <classpath> <pathelement path="${java.class.path}"/> </classpath> </java> </sequential> </macrodef> <target name="jtreg" depends="images,-def-jtreg"> <jtreg-tool name="all" tests="${jtreg.tests}"/> </target> <target name="-def-jtreg" unless="jtreg.defined" depends="-check-jtreg.home"> <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant"> <classpath> <pathelement location="${jtreg.home}/lib/jtreg.jar"/> <pathelement location="${jtreg.home}/lib/javatest.jar"/> </classpath> </taskdef> <macrodef name="jtreg-tool"> <attribute name="name"/> <attribute name="tests"/> <attribute name="jdk" default="${build.target.dir}/images/jdk"/> <attribute name="agentvm" default="true"/> <attribute name="verbose" default="${default.jtreg.verbose}"/> <attribute name="options" default="${other.jtreg.options}"/> <attribute name="keywords" default="-keywords:!ignore"/> <attribute name="jpda.jvmargs" default=""/> <attribute name="extra.jvmargs" default=""/> <attribute name="build.modules" default="${build.modules}"/> <sequential> <property name="coverage.options" value=""/> <!-- default --> <property name="coverage.classpath" value=""/> <!-- default --> <property name="default.jtreg.verbose" value="summary"/> <!-- default --> <property name="other.jtreg.options" value=""/> <!-- default --> <property name="jtreg.classfiles.to.modules" value="@{agentvm}"/> <jtreg dir="${test.dir}" workDir="${build.target.dir}/idea/@{name}/work" reportDir="${build.target.dir}/idea/@{name}/report" jdk="@{jdk}" agentvm="@{agentvm}" verbose="@{verbose}" failonerror="false" resultproperty="jtreg.@{name}.result"> <arg value="-debug:@{jpda.jvmargs}"/> <arg line="@{keywords}"/> <arg line="@{options}"/> <arg line="@{tests}"/> </jtreg> </sequential> </macrodef> <property name="jtreg.defined" value="true"/> </target> </project>