54 <property name="build.dir" location="build"/> |
54 <property name="build.dir" location="build"/> |
55 <property name="build.bootstrap.dir" location="${build.dir}/bootstrap"/> |
55 <property name="build.bootstrap.dir" location="${build.dir}/bootstrap"/> |
56 <property name="build.coverage.dir" location="${build.dir}/coverage"/> |
56 <property name="build.coverage.dir" location="${build.dir}/coverage"/> |
57 <property name="build.classes.dir" location="${build.dir}/classes"/> |
57 <property name="build.classes.dir" location="${build.dir}/classes"/> |
58 <property name="build.gensrc.dir" location="${build.dir}/gensrc"/> |
58 <property name="build.gensrc.dir" location="${build.dir}/gensrc"/> |
|
59 <property name="build.genstubs.dir" location="${build.dir}/genstubs"/> |
59 <property name="build.javadoc.dir" location="${build.dir}/javadoc"/> |
60 <property name="build.javadoc.dir" location="${build.dir}/javadoc"/> |
60 <property name="build.jtreg.dir" location="${build.dir}/jtreg"/> |
61 <property name="build.jtreg.dir" location="${build.dir}/jtreg"/> |
61 <property name="build.toolclasses.dir" location="${build.dir}/toolclasses"/> |
62 <property name="build.toolclasses.dir" location="${build.dir}/toolclasses"/> |
62 <property name="dist.dir" location="dist"/> |
63 <property name="dist.dir" location="dist"/> |
63 <property name="dist.bin.dir" location="${dist.dir}/bin"/> |
64 <property name="dist.bin.dir" location="${dist.dir}/bin"/> |
91 <condition property="launcher.java" |
92 <condition property="launcher.java" |
92 value="${target.java.home}/bin/java" else="java"> |
93 value="${target.java.home}/bin/java" else="java"> |
93 <isset property="target.java.home"/> |
94 <isset property="target.java.home"/> |
94 </condition> |
95 </condition> |
95 |
96 |
|
97 <!-- Logic for handling access import jdk classes, if available. |
|
98 import.jdk should be unset, or set to jdk home (to use rt.jar) |
|
99 or to jdk repo (to use src/share/classes). |
|
100 Based on the value, if any, set up default values for javac's sourcepath, |
|
101 classpath and bootclasspath. Note: the default values are overridden |
|
102 in the build-bootstrap-classes macro. --> |
|
103 |
|
104 <available property="import.jdk.src.dir" value="${import.jdk}/src/share/classes" |
|
105 filepath="${import.jdk}/src/share/classes" file="java/nio/file/Path.java"/> |
|
106 <available property="import.jdk.jar" value="${import.jdk}/jre/lib/rt.jar" |
|
107 ignoresystemclasses="true" |
|
108 classpath="${import.jdk}/jre/lib/rt.jar" classname="java.nio.file.Path"/> |
|
109 |
|
110 <condition property="javac.sourcepath" value="${build.genstubs.dir}" else=""> |
|
111 <isset property="import.jdk.src.dir"/> |
|
112 </condition> |
|
113 |
|
114 <property name="javac.classpath" value=""/> |
|
115 |
|
116 <condition property="javac.bootclasspath.opt" |
|
117 value="-Xbootclasspath:${build.classes.dir}:${import.jdk.jar}" |
|
118 else="-Xbootclasspath/p:${build.classes.dir}"> |
|
119 <isset property="import.jdk.jar"/> |
|
120 </condition> |
|
121 |
|
122 <condition property="exclude.files" value="" else="${require.import.jdk.files}"> |
|
123 <isset property="import.jdk"/> |
|
124 </condition> |
|
125 |
|
126 <!-- for debugging --> |
|
127 <target name="check-import.jdk"> |
|
128 <echo message="import.jdk: ${import.jdk}"/> |
|
129 <echo message="import.jdk.jar: ${import.jdk.jar}"/> |
|
130 <echo message="import.jdk.src.dir: ${import.jdk.src.dir}"/> |
|
131 </target> |
96 |
132 |
97 <!-- Standard target to build deliverables for JDK build. --> |
133 <!-- Standard target to build deliverables for JDK build. --> |
98 |
134 |
99 <target name="build" depends="build-bootstrap-tools,build-all-classes"> |
135 <target name="build" depends="build-bootstrap-tools,build-all-classes"> |
100 <copy todir="${dist.dir}/bootstrap"> |
136 <copy todir="${dist.dir}/bootstrap"> |
106 <mkdir dir="${dist.lib.dir}"/> |
142 <mkdir dir="${dist.lib.dir}"/> |
107 <jar file="${dist.lib.dir}/classes.jar" basedir="${build.classes.dir}"/> |
143 <jar file="${dist.lib.dir}/classes.jar" basedir="${build.classes.dir}"/> |
108 <zip file="${dist.lib.dir}/src.zip" basedir="${src.classes.dir}"/> |
144 <zip file="${dist.lib.dir}/src.zip" basedir="${src.classes.dir}"/> |
109 </target> |
145 </target> |
110 |
146 |
111 <target name="build-bootstrap-tools" depends="build-bootstrap-javac,build-bootstrap-javadoc,build-bootstrap-doclets,build-bootstrap-javah"/> |
147 <target name="build-bootstrap-tools" |
112 |
148 depends="build-bootstrap-javac,build-bootstrap-javadoc,build-bootstrap-doclets,build-bootstrap-javah" |
113 <target name="build-all-tools" depends="build-javac,build-javadoc,build-doclets,build-javah,build-javap,build-apt"/> |
149 /> |
114 |
150 |
115 <target name="build-all-classes" depends="build-bootstrap-javac"> |
151 <target name="build-all-tools" |
|
152 depends="build-javac,build-javadoc,build-doclets,build-javah,build-javap,build-apt" |
|
153 /> |
|
154 |
|
155 <target name="build-all-classes" depends="build-bootstrap-javac,-create-import-jdk-stubs"> |
116 <build-classes includes="${javac.includes} ${javadoc.includes} ${doclets.includes} ${javah.includes} ${javap.includes} ${apt.includes}"/> |
156 <build-classes includes="${javac.includes} ${javadoc.includes} ${doclets.includes} ${javah.includes} ${javap.includes} ${apt.includes}"/> |
117 </target> |
157 </target> |
118 |
158 |
119 <!-- clean --> |
159 <!-- clean --> |
120 |
160 |
195 <build-bootstrap-classes includes="${javac.includes}"/> |
235 <build-bootstrap-classes includes="${javac.includes}"/> |
196 <build-bootstrap-jar name="javac" includes="${javac.includes}"/> |
236 <build-bootstrap-jar name="javac" includes="${javac.includes}"/> |
197 <build-bootstrap-tool name="javac"/> |
237 <build-bootstrap-tool name="javac"/> |
198 </target> |
238 </target> |
199 |
239 |
200 <target name="build-classes-javac" depends="build-bootstrap-javac"> |
240 <target name="build-classes-javac" depends="build-bootstrap-javac,-create-import-jdk-stubs"> |
201 <build-classes includes="${javac.includes}"/> |
241 <build-classes includes="${javac.includes}"/> |
202 </target> |
242 </target> |
203 |
243 |
204 <target name="build-javac" depends="build-classes-javac"> |
244 <target name="build-javac" depends="build-classes-javac"> |
205 <build-jar name="javac" includes="${javac.includes}"/> |
245 <build-jar name="javac" includes="${javac.includes}"/> |
376 <target name="findbugs-apt" depends="build-apt,-def-findbugs"> |
416 <target name="findbugs-apt" depends="build-apt,-def-findbugs"> |
377 <findbugs-tool name="apt"/> |
417 <findbugs-tool name="apt"/> |
378 </target> |
418 </target> |
379 |
419 |
380 <target name="apt" depends="build-apt,jtreg-apt,findbugs-apt"/> |
420 <target name="apt" depends="build-apt,jtreg-apt,findbugs-apt"/> |
|
421 |
|
422 <!-- Create import JDK stubs --> |
|
423 |
|
424 <target name="-create-import-jdk-stubs" depends="-def-genstubs" if="import.jdk.src.dir"> |
|
425 <mkdir dir="${build.genstubs.dir}"/> |
|
426 <genstubs |
|
427 srcdir="${import.jdk.src.dir}" destdir="${build.genstubs.dir}" |
|
428 includes="${import.jdk.stub.files}" |
|
429 fork="true" classpath="${build.toolclasses.dir}:${build.bootstrap.dir}/classes:${ant.home}/lib/ant.jar" |
|
430 /> |
|
431 </target> |
381 |
432 |
382 <!-- Check targets --> |
433 <!-- Check targets --> |
383 |
434 |
384 <target name="-check-boot.java.home" depends="-def-check"> |
435 <target name="-check-boot.java.home" depends="-def-check"> |
385 <check name="bootstrap java" property="boot.java.home" marker="${java.marker}"/> |
436 <check name="bootstrap java" property="boot.java.home" marker="${java.marker}"/> |
444 </target> |
495 </target> |
445 |
496 |
446 <target name="-def-build-classes" depends="-def-pcompile"> |
497 <target name="-def-build-classes" depends="-def-pcompile"> |
447 <macrodef name="build-classes"> |
498 <macrodef name="build-classes"> |
448 <attribute name="includes"/> |
499 <attribute name="includes"/> |
449 <attribute name="excludes" default="**/package-info.java"/> |
500 <attribute name="excludes" default="${exclude.files} **/package-info.java"/> |
450 <attribute name="classes.dir" default="${build.classes.dir}"/> |
501 <attribute name="classes.dir" default="${build.classes.dir}"/> |
451 <attribute name="gensrc.dir" default="${build.gensrc.dir}"/> |
502 <attribute name="gensrc.dir" default="${build.gensrc.dir}"/> |
452 <attribute name="bootclasspath" default="${build.bootstrap.dir}/classes"/> |
503 <attribute name="javac.bootclasspath" default="${build.bootstrap.dir}/classes"/> |
|
504 <attribute name="bootclasspath.opt" default="${javac.bootclasspath.opt}"/> |
|
505 <attribute name="classpath" default="${javac.classpath}"/> |
|
506 <attribute name="sourcepath" default="${javac.sourcepath}"/> |
453 <attribute name="java.home" default="${boot.java.home}"/> |
507 <attribute name="java.home" default="${boot.java.home}"/> |
454 <attribute name="source" default="${javac.source}"/> |
508 <attribute name="source" default="${javac.source}"/> |
455 <attribute name="target" default="${javac.target}"/> |
509 <attribute name="target" default="${javac.target}"/> |
456 <attribute name="release" default="${release}"/> |
510 <attribute name="release" default="${release}"/> |
457 <attribute name="full.version" default="${full.version}"/> |
511 <attribute name="full.version" default="${full.version}"/> |
458 <sequential> |
512 <sequential> |
|
513 <echo level="verbose" message="build-classes: excludes=@{excludes}"/> |
|
514 <echo level="verbose" message="build-classes: bootclasspath.opt=@{bootclasspath.opt}"/> |
|
515 <echo level="verbose" message="build-classes: classpath=@{classpath}"/> |
|
516 <echo level="verbose" message="build-classes: sourcepath=@{sourcepath}"/> |
459 <mkdir dir="@{gensrc.dir}"/> |
517 <mkdir dir="@{gensrc.dir}"/> |
460 <mkdir dir="@{classes.dir}"/> |
518 <mkdir dir="@{classes.dir}"/> |
461 <pcompile srcdir="${src.classes.dir}" |
519 <pcompile srcdir="${src.classes.dir}" |
462 destdir="@{gensrc.dir}" |
520 destdir="@{gensrc.dir}" |
463 includes="@{includes}"/> |
521 includes="@{includes}"/> |
477 executable="@{java.home}/bin/javac" |
535 executable="@{java.home}/bin/javac" |
478 srcdir="${src.classes.dir}:@{gensrc.dir}" |
536 srcdir="${src.classes.dir}:@{gensrc.dir}" |
479 destdir="@{classes.dir}" |
537 destdir="@{classes.dir}" |
480 includes="@{includes}" |
538 includes="@{includes}" |
481 excludes="@{excludes}" |
539 excludes="@{excludes}" |
482 sourcepath="" |
540 sourcepath="@{sourcepath}" |
|
541 classpath="@{classpath}" |
483 includeAntRuntime="no" |
542 includeAntRuntime="no" |
484 source="@{source}" |
543 source="@{source}" |
485 target="@{target}" |
544 target="@{target}" |
486 debug="${javac.debug}" |
545 debug="${javac.debug}" |
487 debuglevel="${javac.debuglevel}"> |
546 debuglevel="${javac.debuglevel}"> |
488 <compilerarg value="-J-Xbootclasspath/p:@{bootclasspath}"/> |
547 <compilerarg value="-implicit:none"/> |
489 <compilerarg value="-Xbootclasspath/p:@{classes.dir}"/> |
548 <compilerarg value="-Xprefer:source"/> |
|
549 <compilerarg value="-J-Xbootclasspath/p:@{javac.bootclasspath}"/> |
|
550 <compilerarg line="@{bootclasspath.opt}"/> |
490 <compilerarg line="${javac.no.jdk.warnings}"/> |
551 <compilerarg line="${javac.no.jdk.warnings}"/> |
491 <compilerarg line="${javac.version.opt}"/> |
552 <compilerarg line="${javac.version.opt}"/> |
492 <compilerarg line="${javac.lint.opts}"/> |
553 <compilerarg line="${javac.lint.opts}"/> |
493 </javac> |
554 </javac> |
494 <copy todir="@{classes.dir}"> |
555 <copy todir="@{classes.dir}"> |
524 <build-classes |
585 <build-classes |
525 source="${boot.javac.source}" |
586 source="${boot.javac.source}" |
526 target="${boot.javac.target}" |
587 target="${boot.javac.target}" |
527 gensrc.dir="${build.bootstrap.dir}/gensrc" |
588 gensrc.dir="${build.bootstrap.dir}/gensrc" |
528 classes.dir="${build.bootstrap.dir}/classes" |
589 classes.dir="${build.bootstrap.dir}/classes" |
529 bootclasspath="" |
590 javac.bootclasspath="" |
|
591 bootclasspath.opt="-Xbootclasspath/p:${build.bootstrap.dir}/classes" |
|
592 sourcepath="" |
530 release="${bootstrap.release}" |
593 release="${bootstrap.release}" |
531 full.version="${bootstrap.full.version}"/> |
594 full.version="${bootstrap.full.version}" |
|
595 excludes="${require.import.jdk.files} **/package-info.java"/> |
532 </presetdef> |
596 </presetdef> |
533 </target> |
597 </target> |
534 |
598 |
535 <target name="-def-pcompile"> |
599 <target name="-def-pcompile"> |
536 <mkdir dir="${build.toolclasses.dir}"/> |
600 <mkdir dir="${build.toolclasses.dir}"/> |
541 srcdir="${make.tools.dir}/CompileProperties" |
605 srcdir="${make.tools.dir}/CompileProperties" |
542 destdir="${build.toolclasses.dir}/" |
606 destdir="${build.toolclasses.dir}/" |
543 classpath="${ant.home}/lib/ant.jar"/> |
607 classpath="${ant.home}/lib/ant.jar"/> |
544 <taskdef name="pcompile" |
608 <taskdef name="pcompile" |
545 classname="CompilePropertiesTask" |
609 classname="CompilePropertiesTask" |
|
610 classpath="${build.toolclasses.dir}/"/> |
|
611 </target> |
|
612 |
|
613 <target name="-def-genstubs" depends="build-bootstrap-javac"> |
|
614 <mkdir dir="${build.toolclasses.dir}"/> |
|
615 <javac fork="true" |
|
616 source="${boot.javac.source}" |
|
617 target="${boot.javac.target}" |
|
618 executable="${boot.java.home}/bin/javac" |
|
619 srcdir="${make.tools.dir}/GenStubs" |
|
620 destdir="${build.toolclasses.dir}/" |
|
621 classpath="${build.bootstrap.dir}/classes:${ant.home}/lib/ant.jar"/> |
|
622 <taskdef name="genstubs" |
|
623 classname="GenStubs$$Ant" |
546 classpath="${build.toolclasses.dir}/"/> |
624 classpath="${build.toolclasses.dir}/"/> |
547 </target> |
625 </target> |
548 |
626 |
549 <target name="-def-javadoc-tool" depends="-check-target.java.home"> |
627 <target name="-def-javadoc-tool" depends="-check-target.java.home"> |
550 <macrodef name="javadoc-tool"> |
628 <macrodef name="javadoc-tool"> |
705 </macrodef> |
783 </macrodef> |
706 </target> |
784 </target> |
707 |
785 |
708 <!-- standard JDK target --> |
786 <!-- standard JDK target --> |
709 <target name="sanity" |
787 <target name="sanity" |
710 description="display settings of congiguration values"> |
788 description="display settings of configuration values"> |
711 <echo level="info">ant.home = ${ant.home}</echo> |
789 <echo level="info">ant.home = ${ant.home}</echo> |
712 <echo level="info">boot.java.home = ${boot.java.home}</echo> |
790 <echo level="info">boot.java.home = ${boot.java.home}</echo> |
713 <echo level="info">target.java.home = ${target.java.home}</echo> |
791 <echo level="info">target.java.home = ${target.java.home}</echo> |
714 <echo level="info">jtreg.home = ${jtreg.home}</echo> |
792 <echo level="info">jtreg.home = ${jtreg.home}</echo> |
715 <echo level="info">findbugs.home = ${findbugs.home}</echo> |
793 <echo level="info">findbugs.home = ${findbugs.home}</echo> |