build.xml revision 2055:95b270614957
1<!-- importing.xml -->
2<project name="jdk" basedir="..">
3
4    <script language="javascript" classpath=".idea/classes">
5        var JdkLogger = Java.type("idea.JdkIdeaAntLogger");
6        new JdkLogger(project)
7    </script>
8
9     <!-- java.marker is set to a marker file to check for within a Java install dir.
10         The best file to check for across Solaris/Linux/Windows/MacOS is one of the
11         executables; regrettably, that is OS-specific. -->
12    <condition property="java.marker" value="bin/java">
13        <os family="unix"/>
14    </condition>
15    <condition property="java.marker" value="bin/java.exe">
16        <os family="windows"/>
17    </condition>
18
19    <property name="test.dir" value="${basedir}/jdk/test"/>
20
21    <macrodef name="call-make">
22            <attribute name="dir"/>
23            <attribute name="args"/>
24            <sequential>
25                <exec executable="make" dir="@{dir}" failonerror="true">
26                    <arg line="@{args}"/>
27                    <env key="CLASSPATH" value = ""/>
28                </exec>
29            </sequential>
30        </macrodef>
31
32    <macrodef name="exec-target">
33        <attribute name="antfile" default="${ant.file}" />
34        <attribute name="target" />
35        <sequential>
36            <java classname="org.apache.tools.ant.Main" fork="true" spawn="true">
37                <arg value="-f"/>
38                <arg value="@{antfile}"/>  
39                <arg value="-Dboot.java.home=${boot.java.home}"/>
40                <arg value="-Dbuild.target.dir=${build.target.dir}"/>
41                <arg value="-Djtreg.home=${jtreg.home}"/>
42                <arg value="-Djtreg.tests=${jtreg.tests}"/>
43                <arg value="-Djtreg.jpda.jvmargs=${jtreg.jpda.jvmargs}"/>
44                <arg value="@{target}"/>
45                <classpath>           
46                    <pathelement path="${java.class.path}"/>
47                </classpath>
48            </java>
49        </sequential>
50    </macrodef>
51
52    <target name="post-make" depends="build-module"/>
53
54    <!--
55        **** Global JDK Build Targets
56    -->
57
58    <target name="clean" depends="-do-configure">
59        <echo message="base = ${basedir}"/>
60        <call-make dir = "${build.target.dir}" args = "clean"/>
61    </target>
62    
63    <target name="-do-configure">
64        <echo message="base = ${basedir}"/>
65        <fail message="Not part of a full JDK forest">
66            <condition>
67                <not>
68                    <available file="${basedir}/configure" />
69                </not>
70            </condition>
71        </fail>
72        <exec executable="sh" dir="${basedir}" failonerror="true">
73            <arg line="configure --with-boot-jdk=${boot.java.home}"/>
74        </exec>
75    </target>
76
77    <target name="images">
78        <call-make dir = "${build.target.dir}" args = "images"/>
79    </target>
80
81    <target name="jimages">
82        <call-make dir = "${build.target.dir}" args = "jimages"/>
83    </target>
84
85    <target name="check-env">
86        <exec executable="env" dir="${basedir}"/>
87    </target>
88
89    <target name="build-module">
90        <call-make dir = "${build.target.dir}" args = "${module.name}"/>
91    </target>
92
93    <target name="-check-boot.java.home" depends="-def-check">
94        <check name="bootstrap java" property="boot.java.home" marker="${java.marker}"/>
95    </target>
96
97    <target name="-def-check">
98        <macrodef name="check">
99            <attribute name="name"/>
100            <attribute name="property"/>
101            <attribute name="marker" default=""/>
102            <sequential>
103                <fail message="Cannot locate @{name}: please set @{property} to its location">
104                    <condition>
105                        <not>
106                            <isset property="@{property}"/>
107                        </not>
108                    </condition>
109                </fail>
110                <fail message="@{name} is not installed in ${@{property}}">
111                    <condition>
112                        <and>
113                            <not>
114                                <equals arg1="@{marker}" arg2=""/>
115                            </not>
116                            <not>
117                                <available file="${@{property}}/@{marker}"/>
118                            </not>
119                        </and>
120                    </condition>
121                </fail>
122            </sequential>
123        </macrodef>
124    </target>
125</project>
126
127