make/build.xml

changeset 1714
f3f3ac1273e8
parent 1647
578eb3dd111d
child 2099
1b469fd31e35
     1.1 --- a/make/build.xml	Fri Apr 26 10:17:01 2013 +0100
     1.2 +++ b/make/build.xml	Fri Apr 26 15:59:39 2013 +0100
     1.3 @@ -717,6 +717,29 @@
     1.4      <target name="sjavac" depends="build-sjavac,jtreg-sjavac,findbugs-sjavac"/>
     1.5  
     1.6      <!--
     1.7 +    **** crules targets.
     1.8 +    -->
     1.9 +
    1.10 +    <target name="build-crules" depends="-def-compilecrules,-def-build-jar-with-services">
    1.11 +        <compilecrules/>
    1.12 +        <build-jar-with-services
    1.13 +                    name="crules"
    1.14 +                    includes="crules/* crules/resources/*"
    1.15 +                    classes.dir="${build.toolclasses.dir}"
    1.16 +                    lib.dir="${build.toolclasses.dir}"
    1.17 +                    jarmainclass=""
    1.18 +                    jarclasspath="crules.jar"
    1.19 +                    service.type="com.sun.source.util.Plugin"
    1.20 +                    service.provider="crules.MutableFieldsAnalyzer"/>
    1.21 +        <build-tool name="crules"/>
    1.22 +    </target>
    1.23 +
    1.24 +    <target name="check-coding-rules" depends="build-bootstrap-javac,-create-import-jdk-stubs,build-crules">
    1.25 +        <build-classes includes="${javac.includes}"
    1.26 +            plugin.options="-J-Xbootclasspath/a:${build.toolclasses.dir}/crules.jar -Xplugin:mutable_fields_analyzer" />
    1.27 +    </target>
    1.28 +
    1.29 +    <!--
    1.30      **** Create import JDK stubs.
    1.31      -->
    1.32  
    1.33 @@ -811,6 +834,31 @@
    1.34          </macrodef>
    1.35      </target>
    1.36  
    1.37 +    <target name="-def-build-jar-with-services">
    1.38 +        <macrodef name="build-jar-with-services">
    1.39 +            <attribute name="name"/>
    1.40 +            <attribute name="includes"/>
    1.41 +            <attribute name="classes.dir" default="${build.classes.dir}"/>
    1.42 +            <attribute name="lib.dir" default="${dist.lib.dir}"/>
    1.43 +            <attribute name="jarmainclass" default="com.sun.tools.@{name}.Main"/>
    1.44 +            <attribute name="jarclasspath" default=""/>
    1.45 +            <attribute name="service.type" default=""/>
    1.46 +            <attribute name="service.provider" default=""/>
    1.47 +            <sequential>
    1.48 +                <mkdir dir="${build.toolclasses.dir}"/>
    1.49 +                <jar destfile="@{lib.dir}/@{name}.jar"
    1.50 +                     basedir="@{classes.dir}"
    1.51 +                     includes="@{includes}">
    1.52 +                    <service type="@{service.type}" provider="@{service.provider}"/>
    1.53 +                    <manifest>
    1.54 +                        <attribute name="Main-Class" value="@{jarmainclass}"/>
    1.55 +                        <attribute name="Class-Path" value="@{jarclasspath}"/>
    1.56 +                    </manifest>
    1.57 +                </jar>
    1.58 +            </sequential>
    1.59 +        </macrodef>
    1.60 +    </target>
    1.61 +
    1.62      <target name="-def-build-classes" depends="-def-pcompile">
    1.63          <macrodef name="build-classes">
    1.64              <attribute name="includes"/>
    1.65 @@ -826,6 +874,7 @@
    1.66              <attribute name="target" default="${javac.target}"/>
    1.67              <attribute name="release" default="${release}"/>
    1.68              <attribute name="full.version" default="${full.version}"/>
    1.69 +            <attribute name="plugin.options" default=""/>
    1.70              <sequential>
    1.71                  <echo level="verbose" message="build-classes: excludes=@{excludes}"/>
    1.72                  <echo level="verbose" message="build-classes: bootclasspath.opt=@{bootclasspath.opt}"/>
    1.73 @@ -868,6 +917,7 @@
    1.74                      <compilerarg line="${javac.no.jdk.warnings}"/>
    1.75                      <compilerarg line="${javac.version.opt}"/>
    1.76                      <compilerarg line="${javac.lint.opts}"/>
    1.77 +                    <compilerarg line="@{plugin.options}"/>
    1.78                  </javac>
    1.79                  <copy todir="@{classes.dir}" includeemptydirs="false">
    1.80                      <fileset dir="${src.classes.dir}" includes="@{includes}" excludes="@{excludes}">
    1.81 @@ -935,6 +985,32 @@
    1.82                   classpath="${build.toolclasses.dir}/"/>
    1.83      </target>
    1.84  
    1.85 +    <target name="-def-compilecrules">
    1.86 +        <macrodef name="compilecrules">
    1.87 +            <sequential>
    1.88 +                <mkdir dir="${build.toolclasses.dir}"/>
    1.89 +                <javac fork="true"
    1.90 +                       source="${boot.javac.source}"
    1.91 +                       target="${boot.javac.target}"
    1.92 +                       executable="${boot.java.home}/bin/javac"
    1.93 +                       srcdir="${make.tools.dir}"
    1.94 +                       includes="crules/*"
    1.95 +                       destdir="${build.toolclasses.dir}/"
    1.96 +                       classpath="${ant.core.lib}"
    1.97 +                       bootclasspath="${boot.java.home}/jre/lib/rt.jar"
    1.98 +                       includeantruntime="false">
    1.99 +                    <compilerarg value="-Xbootclasspath/p:${build.bootstrap.dir}/classes"/>
   1.100 +                    <compilerarg line="${javac.lint.opts}"/>
   1.101 +                </javac>
   1.102 +                <copy todir="${build.toolclasses.dir}/" includeemptydirs="false">
   1.103 +                    <fileset dir="${make.tools.dir}">
   1.104 +                        <include name="**/*.properties"/>
   1.105 +                    </fileset>
   1.106 +                </copy>
   1.107 +            </sequential>
   1.108 +        </macrodef>
   1.109 +    </target>
   1.110 +
   1.111      <target name="-def-genstubs" depends="build-bootstrap-javac" if="require.import.jdk.stubs">
   1.112          <mkdir dir="${build.toolclasses.dir}"/>
   1.113          <javac fork="true"

mercurial