ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/jsr166/jsr166/build.xml
(Generate patch)

Comparing jsr166/build.xml (file contents):
Revision 1.33 by tim, Thu May 29 12:54:10 2003 UTC vs.
Revision 1.40 by tim, Fri Jun 6 18:34:44 2003 UTC

# Line 59 | Line 59
59  
60  
61  
62 <  <!-- Files excluded from emulation and dist-docs -->
63 <  <patternset id="emulation.excludes">
62 >  <!-- Files excluded from dist-docs and emulation jar -->
63 >  <patternset id="unsafe.exclusion">
64      <exclude name="java/util/Random.*"/>
65      <exclude name="sun/misc/Unsafe.*"/>
66    </patternset>
67  
68 +  <!-- Files excludes from emulation jar -->
69 +  <patternset id="atomic.exclusion">
70 +    <exclude name="java/util/concurrent/atomic/AtomicInteger*"/>
71 +    <exclude name="java/util/concurrent/atomic/AtomicLong*"/>
72 +    <exclude name="java/util/concurrent/atomic/AtomicReference*"/>
73 +  </patternset>
74 +
75  
76  
77    <!-- Main targets -->
# Line 77 | Line 84
84  
85      <mkdir dir="${build.classes.dir}"/>
86  
87 + <!--
88 +    <echo>javac ${gjc.args}</echo>
89 +    <echo>bootclasspath=${compile.bootclasspath}</echo>
90 + -->
91 +
92      <javac srcdir="${prepare.src.dir}"
93            destdir="${build.classes.dir}"
94              debug="${build.debug}"
# Line 85 | Line 97
97             source="${build.sourcelevel}"
98               fork="true">
99  
100 <      <bootclasspath refid="javac.bootclasspath"/>
101 <      <compilerarg line="${build.javac.args}"/>
100 >      <compilerarg    line="${gjc.args}"/>
101 >      <bootclasspath refid="compile.bootclasspath"/>
102  
103      </javac>
104  
# Line 177 | Line 189
189             source="${build.sourcelevel}"
190               fork="true">
191  
192 <      <bootclasspath refid="javac.bootclasspath"/>
193 <      <compilerarg line="${build.javac.args} -s"/>
192 >      <compilerarg    line="${gjc.args} -s"/>
193 >      <bootclasspath refid="compile.bootclasspath"/>
194  
195      </javac>
196  
# Line 272 | Line 284
284             source="${build.sourcelevel}"
285               fork="true">
286  
287 <      <bootclasspath refid="javac.bootclasspath"/>
288 <      <compilerarg line="${build.javac.args}"/>
287 >      <compilerarg    line="${gjc.args}"/>
288 >      <bootclasspath refid="compile.bootclasspath"/>
289  
290      </javac>
291  
# Line 287 | Line 299
299  
300      <jar destfile="${product.jar}" duplicate="add">
301        <fileset dir="${build.classes.dir}">
302 <        <patternset refid="emulation.excludes"/>
302 >        <patternset refid="atomic.exclusion"/>
303 >        <patternset refid="unsafe.exclusion"/>
304        </fileset>
305        <fileset dir="${build.emulation.dir}"/>
306      </jar>
# Line 327 | Line 340
340        </fileset>
341      </copy>
342  
343 +    <!-- Not needed now, used for doccheck filtering:
344 +    <property name="generic.declarations"
345 +             value="public interface E {} public interface T {} public interface K {} public interface V {}"
346 +    />
347 +    -->
348 +
349      <copy todir="${build.filter.src.dir}">
350        <fileset dir="${src.dir}">
351          <exclude name="**/*.html"/>
352 <        <patternset refid="emulation.excludes"/>
352 >        <patternset refid="unsafe.exclusion"/>
353        </fileset>
354        <filterchain>
355 +
356 +        <!--
357 +         # This filter gets rid of angle-bracketed type parameters
358 +         # so that javadoc can run on the result. The following
359 +         # heuristic seems to work:
360 +         #
361 +         # For all lines not starting with space(s)-asterisk-space(s),
362 +         #   replace <something> with a space, where there may be more
363 +         #   than one right angle bracket at the end, and "something"
364 +         #   must not contain parens or pipes. (This may need some
365 +         #   tweaking.)
366 +         -->
367 +
368          <filterreader classname="jsr166.ant.filters.ReplaceFilter"
369                        classpath="${build.ant.dir}">
338          <!--
339           # These arguments are to get rid of angle-bracketed type
340           # parameters so that javadoc can run on the result. The
341           # following heuristic that seems to work:
342           #
343           # For all lines not starting with space(s)-asterisk-space(s),
344           #   replace <something> with a space, where there may be more
345           #   than one right angle bracket at the end, and "something"
346           #   must not contain parens or pipes. (This may need some
347           #   tweaking.)
348           -->
370            <param name="notmatching" value="^\s+\*\s.*$"/>
371 <          <param name="pattern" value="&lt;[^|>()]+?>+"/>
371 >          <param name="pattern"     value="&lt;[^|>()]+?>+"/>
372            <param name="replacement" value=" "/>
373          </filterreader>
374 +
375 +
376 +        <!--
377 +         # This filter uncomments lines beginning with "//@" so that
378 +         # javadoc can see imports that are needed to resolve links
379 +         # but that shouldn't be in the compiled code.
380 +         -->
381 +
382          <filterreader classname="jsr166.ant.filters.ReplaceFilter"
383                        classpath="${build.ant.dir}">
384 <          <!--
385 <           # These arguments are to uncomment lines beginning with
357 <           # "//@" so that javadoc can see imports that are needed
358 <           # to resolve links but that shouldn't be in the compiled
359 <           # code.
360 <           -->
361 <          <param name="matching" value="^//@.*$"/>
362 <          <param name="pattern" value="^//@"/>
384 >          <param name="matching"    value="^//@.*$"/>
385 >          <param name="pattern"     value="^//@"/>
386            <param name="replacement" value=""/>
387          </filterreader>
388 +
389 +
390 +        <!--
391 +         # The next two filters try to make the source look like
392 +         # something that doccheck can process. The first removes
393 +         # -source 1.4 assertions and the second adds in a bunch
394 +         # of single letter public nested marker interfaces so that
395 +         # the generic type parameters are recognized.
396 +         #
397 +         # Currently commented out because doccheck doesn't work. :-(
398 +         -->
399 +
400 +        <!--
401 +        <filterreader classname="jsr166.ant.filters.ReplaceFilter"
402 +                      classpath="${build.ant.dir}">
403 +          <param name="matching"    value="^\s*assert[\s ].*$"/>
404 +          <param name="pattern"     value="assert"/>
405 +          <param name="replacement" value="//assert"/>
406 +        </filterreader>
407 +
408 +        <filterreader classname="jsr166.ant.filters.ReplaceFilter"
409 +                      classpath="${build.ant.dir}">
410 +          <param name="matching"    value="^(.*(class|interface|implements) .*|)\{.*$"/>
411 +          <param name="pattern"     value="$"/>
412 +          <param name="replacement" value=" ${generic.declarations}"/>
413 +        </filterreader>
414 +        -->
415 +
416        </filterchain>
417      </copy>
418  
# Line 373 | Line 424
424  
425      <mkdir dir="${build.testcases.dir}"/>
426  
427 + <!--
428 +    <echo>javac ${gjc.args}</echo>
429 +    <echo>bootclasspath=${test.compile.bootclasspath}</echo>
430 +    <echo>classpath="${test.classpath}"</echo>
431 + -->
432 +
433      <javac srcdir="${test.src.dir}"
434            destdir="${build.testcases.dir}"
435              debug="${build.debug}"
# Line 381 | Line 438
438             source="${build.sourcelevel}"
439               fork="true">
440  
441 <      <classpath refid="test.classpath"/>
442 <      <bootclasspath refid="javac.bootclasspath"/>
443 <      <compilerarg line="${build.javac.args}"/>
441 >      <compilerarg    line="${gjc.args}"/>
442 >      <bootclasspath refid="test.compile.bootclasspath"/>
443 >      <classpath     refid="test.classpath"/>
444  
445      </javac>
446  
# Line 405 | Line 462
462                      dir="${build.reports.dir}"
463                     fork="true">
464  
465 <      <jvmarg value="${test.bootclasspath.arg}"/>
465 >      <jvmarg value="-Xbootclasspath/p:${test.run.bootclasspath}"/>
466  
467        <formatter type="xml"/>
468  
# Line 449 | Line 506
506    <target name="configure-compiler">
507  
508      <property name="gjc.version"
509 <             value="1.3"/>
509 >             value="2.0"/>
510  
511 <    <condition property="build.novariance" value="-novariance">
511 >    <condition property="novariance.arg" value="-novariance">
512        <and>
513          <equals arg1="${gjc.version}" arg2="2.0"/>
514          <or>
# Line 461 | Line 518
518        </and>
519      </condition>
520  
521 <    <property name="build.novariance"
521 >    <property name="novariance.arg"
522               value=""/>
523  
524      <property name="gjc.dir"
# Line 471 | Line 528
528            location="${gjc.dir}/${gjc.version}/javac.jar"/>
529  
530      <property name="collect.jar"
531 <          location="${gjc.dir}/${gjc.version}/collect${build.novariance}.jar"/>
531 >          location="${gjc.dir}/${gjc.version}/collect${novariance.arg}.jar"/>
532  
533  
534 <    <condition property="build.warnunchecked" value="-warnunchecked">
534 >    <condition property="warnunchecked.arg" value="-warnunchecked">
535        <istrue value="${gjc.warnunchecked}"/>
536      </condition>
537  
538 <    <property name="build.warnunchecked" value=""/>
538 >    <property name="warnunchecked.arg" value=""/>
539 >
540 >    <condition property="prepare.src.dir" value="${build.dir}/prepare-src">
541 >      <istrue value="${build.nothreads}"/>
542 >    </condition>
543  
544  
545      <!--
546       ! Bootclasspath munging for source compilation.
547       -->
548  
549 <    <path id="javac.bootclasspath.prefix">
489 <      <!-- <pathelement location="${src.dir}"/> -->
549 >    <path id="pre.bootclasspath">
550        <pathelement location="${javac.jar}"/>
551      </path>
552  
553 <    <path id="javac.bootclasspath">
554 <      <!-- <pathelement location="${src.dir}"/> -->
553 >    <path id="compile.bootclasspath">
554 >      <pathelement location="${build.classes.dir}"/>
555        <pathelement location="${collect.jar}"/>
556        <pathelement location="${rt.jar}"/>
557      </path>
558  
559 <    <!-- Flatten bootclasspath prefix into a platform-appropriate string -->
560 <    <property name="javac.bootclasspath.prefix"
561 <             refid="javac.bootclasspath.prefix"/>
502 <
503 <    <!-- Turn the flattened bootclasspath prefix into a javac argument -->
504 <    <property name="build.bootclasspath.arg"
505 <             value='-J-Xbootclasspath/p:${javac.bootclasspath.prefix}'/>
506 <
507 <    <!-- Flatten bootclasspath for trace message -->
508 <    <property name="javac.bootclasspath"
509 <             refid="javac.bootclasspath"/>
559 >    <!-- Flatten paths into platform-appropriate strings -->
560 >    <property name="pre.bootclasspath"     refid="pre.bootclasspath"/>
561 >    <property name="compile.bootclasspath" refid="compile.bootclasspath"/>
562  
511    <!-- Common options in javac invocations -->
512    <property name="build.javac.args"
513             value="${build.bootclasspath.arg} ${build.warnunchecked} ${build.novariance}"/>
563  
564 <    <echo>javac ${build.javac.args}</echo>
565 <    <echo>bootclasspath=${javac.bootclasspath}</echo>
564 >    <!-- Common options in javac invocations -->
565 >    <property name="gjc.args"
566 >             value="-J-Xbootclasspath/p:${pre.bootclasspath} ${warnunchecked.arg} ${novariance.arg}"
567 >    />
568  
569    </target>
570  
571  
521  <target name="configure-src">
522
523    <condition property="prepare.src.dir" value="${build.dir}/prepare-src">
524      <istrue value="${build.nothreads}"/>
525    </condition>
526
527  </target>
528
572    <target name="prepare-src"
573 <          depends="configure-src"
573 >          depends="configure-compiler"
574            if="prepare.src.dir">
575  
576      <mkdir dir="${prepare.src.dir}"/>
# Line 557 | Line 600
600    </target>
601  
602  
603 <  <target name="configure-tests">
603 >  <target name="configure-tests"
604 >       depends="configure-compiler">
605  
606      <!-- junit.framework.Protectable is in JUnit 3.8.1 but not in 3.7 -->
607      <available property="junit.available"
# Line 578 | Line 622
622        <pathelement location="${junit.jar}"/>
623      </path>
624  
625 <    <!-- Flatten test classpath into a platform-appropriate string -->
626 <    <property name="test.classpath" refid="test.classpath"/>
625 >    <path id="test.compile.bootclasspath">
626 >      <pathelement location="${javac.jar}"/>
627 >      <pathelement location="${collect.jar}"/>
628 >      <pathelement location="${rt.jar}"/>
629 >    </path>
630 >
631 >    <path id="test.run.bootclasspath">
632 >      <pathelement location="${javac.jar}"/>
633 >      <path refid="test.classpath"/>
634 >    </path>
635  
636 <    <!-- Turn the flattened test classpath into a javac argument -->
637 <    <property name="test.bootclasspath.arg"
638 <             value='-Xbootclasspath/p:${test.classpath}'/>
636 >    <!-- Flatten test classpaths into platform-appropriate strings -->
637 >    <property name="test.classpath"             refid="test.classpath"/>
638 >    <property name="test.compile.bootclasspath" refid="test.compile.bootclasspath"/>
639 >    <property name="test.run.bootclasspath"     refid="test.run.bootclasspath"/>
640  
641    </target>
642  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines