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"