langtools/make/build.xml
author alanb
Thu, 17 Mar 2016 19:04:28 +0000
changeset 36526 3b41f1c69604
parent 33368 e4755c76c052
child 37851 f2820cadfa38
permissions -rw-r--r--
8142968: Module System implementation Summary: Initial integration of JEP 200, JEP 260, JEP 261, and JEP 282 Reviewed-by: jjg, jlahoda, vromero, mcimadamore, bpatel, ksrini, darcy, anazarov, dfuchs Contributed-by: alan.bateman@oracle.com, alex.buckley@oracle.com, jonathan.gibbons@oracle.com, karen.kinnear@oracle.com, mandy.chung@oracle.com, mark.reinhold@oracle.com, jan.lahoda@oracle.com, vicente.romero@oracle.com, andreas.lundblad@oracle.com, andrey.x.nazarov@oracle.com, chris.hegarty@oracle.com, erik.joelsson@oracle.com, kumar.x.srinivasan@oracle.com, sundararajan.athijegannathan@oracle.com
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
10
06bc494ca11e Initial load
duke
parents:
diff changeset
     1
<?xml version="1.0" encoding="UTF-8"?>
06bc494ca11e Initial load
duke
parents:
diff changeset
     2
<!--
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
     3
  ~ Copyright (c) 2007, 2016, Oracle and/or its affiliates. All rights reserved.
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
     4
  ~ DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
     5
  ~
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
     6
  ~ This code is free software; you can redistribute it and/or modify it
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
     7
  ~ under the terms of the GNU General Public License version 2 only, as
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
     8
  ~ published by the Free Software Foundation.  Oracle designates this
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
     9
  ~ particular file as subject to the "Classpath" exception as provided
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    10
  ~ by Oracle in the LICENSE file that accompanied this code.
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    11
  ~
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    12
  ~ This code is distributed in the hope that it will be useful, but WITHOUT
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    13
  ~ ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    14
  ~ FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    15
  ~ version 2 for more details (a copy is included in the LICENSE file that
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    16
  ~ accompanied this code).
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    17
  ~
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    18
  ~ You should have received a copy of the GNU General Public License version
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    19
  ~ 2 along with this work; if not, write to the Free Software Foundation,
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    20
  ~ Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    21
  ~
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    22
  ~ Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    23
  ~ or visit www.oracle.com if you need additional information or have any
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    24
  ~ questions.
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    25
  -->
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    26
06bc494ca11e Initial load
duke
parents:
diff changeset
    27
<!--
27546
79b6b60ff60a 8058489: More adjustments of langtools/make/build.xml to modularized layout
jlahoda
parents: 26268
diff changeset
    28
 This is a convenience build file supporting development in the langtools
79b6b60ff60a 8058489: More adjustments of langtools/make/build.xml to modularized layout
jlahoda
parents: 26268
diff changeset
    29
 repository. It can be run either standalone, or from IDEs. This build script
79b6b60ff60a 8058489: More adjustments of langtools/make/build.xml to modularized layout
jlahoda
parents: 26268
diff changeset
    30
 is for a developer use only, it is not used to build the production version
79b6b60ff60a 8058489: More adjustments of langtools/make/build.xml to modularized layout
jlahoda
parents: 26268
diff changeset
    31
 of javac or other langtools tools.
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    32
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    33
 External dependencies are specified via properties. These can be given
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    34
 on the command line, or by providing a local build.properties file.
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    35
 (They can also be edited into make/build.properties, although that is not
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    36
 recommended.)  At a minimum, langtools.jdk.home must be set to the installed
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    37
 location of the version of JDK used to build this repository. Additional
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    38
 properties may be required, depending on the targets that are built.
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    39
 For example, to run any of the jtreg tests you must set jtreg.home.
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    40
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    41
 The output of the build is as follows:
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    42
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    43
 build
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    44
   |-bin (scripts to invoke various tools, javac, javah etc.)
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    45
   |-genrsc (generated sources - i.e. properties)
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    46
   |-modules (compiled classes in a modular layout)
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    47
   |-jtreg (test work/results)
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    48
   |-toolclasses (tools used for building - like the property compiler)
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    49
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    50
 This file is organized into sections as follows:
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    51
 - global property definitions
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    52
 - primary top level targets (cleaning, building)
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    53
 - utility definitions
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    54
 -->
06bc494ca11e Initial load
duke
parents:
diff changeset
    55
06bc494ca11e Initial load
duke
parents:
diff changeset
    56
<project name="langtools" default="build" basedir="..">
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    57
    <!--
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    58
    **** Global property definitions.
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
    59
    -->
3655
f9ee66e780f4 6758471: should be able to set jtreg options in langtools build
jjg
parents: 3654
diff changeset
    60
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    61
    <!-- The following locations can be used to override default property values. -->
06bc494ca11e Initial load
duke
parents:
diff changeset
    62
06bc494ca11e Initial load
duke
parents:
diff changeset
    63
    <!-- Use this location for customizations specific to this instance of this workspace -->
06bc494ca11e Initial load
duke
parents:
diff changeset
    64
    <property file="build.properties"/>
06bc494ca11e Initial load
duke
parents:
diff changeset
    65
06bc494ca11e Initial load
duke
parents:
diff changeset
    66
    <!-- Use this location for customizations common to all OpenJDK langtools workspaces -->
06bc494ca11e Initial load
duke
parents:
diff changeset
    67
    <property file="${user.home}/.openjdk/${ant.project.name}-build.properties"/>
06bc494ca11e Initial load
duke
parents:
diff changeset
    68
06bc494ca11e Initial load
duke
parents:
diff changeset
    69
    <!-- Use this location for customizations common to all OpenJDK workspaces -->
06bc494ca11e Initial load
duke
parents:
diff changeset
    70
    <property file="${user.home}/.openjdk/build.properties"/>
3655
f9ee66e780f4 6758471: should be able to set jtreg options in langtools build
jjg
parents: 3654
diff changeset
    71
f9ee66e780f4 6758471: should be able to set jtreg options in langtools build
jjg
parents: 3654
diff changeset
    72
    <!-- Convenient shorthands for standard locations within the workspace. -->
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    73
    <property name="src.dir" location="src"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    74
    <property name="test.dir" location="test"/>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    75
    <property name="make.dir" location="make"/>
11054
c4224d65eb3e 7110974: (javac) add coding conventions and style checkers for langtools
ksrini
parents: 10183
diff changeset
    76
    <property name="make.conf.dir" location="${make.dir}/conf"/>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    77
    <property name="make.tools.dir" location="${make.dir}/tools"/>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    78
    <property name="build.dir" location="build"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    79
    <property name="build.modules" location="${build.dir}/modules"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    80
    <property name="build.gensrc" location="${build.dir}/gensrc"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    81
    <property name="build.tools" location="${build.dir}/toolclasses"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    82
    <property name="build.bin" location="${build.dir}/bin"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    83
    <property name="build.jtreg" location="${build.dir}/jtreg"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
    84
    <property name="build.prevsrc" location="${build.dir}/prevsrc"/>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    85
25874
83c19f00452c 8054834: Modular Source Code
chegar
parents: 25848
diff changeset
    86
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    87
    <!-- java.marker is set to a marker file to check for within a Java install dir.
06bc494ca11e Initial load
duke
parents:
diff changeset
    88
         The best file to check for across Solaris/Linux/Windows/MacOS is one of the
06bc494ca11e Initial load
duke
parents:
diff changeset
    89
         executables; regrettably, that is OS-specific. -->
06bc494ca11e Initial load
duke
parents:
diff changeset
    90
    <condition property="java.marker" value="bin/java">
3655
f9ee66e780f4 6758471: should be able to set jtreg options in langtools build
jjg
parents: 3654
diff changeset
    91
        <os family="unix"/>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    92
    </condition>
06bc494ca11e Initial load
duke
parents:
diff changeset
    93
    <condition property="java.marker" value="bin/java.exe">
3655
f9ee66e780f4 6758471: should be able to set jtreg options in langtools build
jjg
parents: 3654
diff changeset
    94
        <os family="windows"/>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    95
    </condition>
3655
f9ee66e780f4 6758471: should be able to set jtreg options in langtools build
jjg
parents: 3654
diff changeset
    96
10
06bc494ca11e Initial load
duke
parents:
diff changeset
    97
    <!-- Standard property values, if not overriden by earlier settings. -->
3655
f9ee66e780f4 6758471: should be able to set jtreg options in langtools build
jjg
parents: 3654
diff changeset
    98
    <property file="${make.dir}/build.properties"/>
3654
bb3c0eeec3cb 6870706: langtools launcher issues
jjg
parents: 3564
diff changeset
    99
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   100
    <condition property="langtools.jdk.home" value="${jdk.home}">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   101
        <isset property="jdk.home" />
3654
bb3c0eeec3cb 6870706: langtools launcher issues
jjg
parents: 3564
diff changeset
   102
    </condition>
bb3c0eeec3cb 6870706: langtools launcher issues
jjg
parents: 3564
diff changeset
   103
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   104
    <!-- launcher.java is used in the launcher scripts provided to run
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   105
        the tools' jar files.  If it has not already been set, then
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   106
        default it to use ${langtools.jdk.home}, if available, otherwise
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   107
        quietly default to simply use "java". -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   108
    <condition property="launcher.java"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   109
        value="${langtools.jdk.home}/bin/java" else="java">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   110
        <isset property="langtools.jdk.home"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   111
    </condition>
27546
79b6b60ff60a 8058489: More adjustments of langtools/make/build.xml to modularized layout
jlahoda
parents: 26268
diff changeset
   112
79b6b60ff60a 8058489: More adjustments of langtools/make/build.xml to modularized layout
jlahoda
parents: 26268
diff changeset
   113
    <!--
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   114
        **** Check targets
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   115
    -->
3655
f9ee66e780f4 6758471: should be able to set jtreg options in langtools build
jjg
parents: 3654
diff changeset
   116
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   117
    <target name="-def-check">
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   118
      <macrodef name="check">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   119
          <attribute name="name"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   120
          <attribute name="property"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   121
          <attribute name="marker" default=""/>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   122
            <sequential>
06bc494ca11e Initial load
duke
parents:
diff changeset
   123
                <fail message="Cannot locate @{name}: please set @{property} to its location">
06bc494ca11e Initial load
duke
parents:
diff changeset
   124
                    <condition>
06bc494ca11e Initial load
duke
parents:
diff changeset
   125
                        <not>
06bc494ca11e Initial load
duke
parents:
diff changeset
   126
                            <isset property="@{property}"/>
06bc494ca11e Initial load
duke
parents:
diff changeset
   127
                        </not>
06bc494ca11e Initial load
duke
parents:
diff changeset
   128
                    </condition>
06bc494ca11e Initial load
duke
parents:
diff changeset
   129
                </fail>
06bc494ca11e Initial load
duke
parents:
diff changeset
   130
                <fail message="@{name} is not installed in ${@{property}}">
06bc494ca11e Initial load
duke
parents:
diff changeset
   131
                    <condition>
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   132
                        <and>
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   133
                            <not>
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   134
                                <equals arg1="@{marker}" arg2=""/>
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   135
                            </not>
5844
76650bf67a5c 6958391: add vizant support to langtools build
jjg
parents: 5520
diff changeset
   136
                            <not>
76650bf67a5c 6958391: add vizant support to langtools build
jjg
parents: 5520
diff changeset
   137
                                <available file="${@{property}}/@{marker}"/>
76650bf67a5c 6958391: add vizant support to langtools build
jjg
parents: 5520
diff changeset
   138
                            </not>
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   139
                        </and>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   140
                    </condition>
06bc494ca11e Initial load
duke
parents:
diff changeset
   141
                </fail>
06bc494ca11e Initial load
duke
parents:
diff changeset
   142
            </sequential>
06bc494ca11e Initial load
duke
parents:
diff changeset
   143
        </macrodef>
06bc494ca11e Initial load
duke
parents:
diff changeset
   144
    </target>
06bc494ca11e Initial load
duke
parents:
diff changeset
   145
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   146
    <target name="-check-langtools.jdk.home" depends="-def-check">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   147
        <check name="target java" property="langtools.jdk.home" marker="${java.marker}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   148
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   149
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   150
    <target name="-check-jtreg.home" depends="-def-check">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   151
        <check name="jtreg" property="jtreg.home" marker="lib/jtreg.jar"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   152
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   153
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   154
    <!--
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   155
        **** Primary targets
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   156
    -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   157
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   158
    <target name="clean" description="Delete all generated files">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   159
        <delete dir="${build.dir}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   160
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   161
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   162
    <target name="build" depends="build-all-tools"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   163
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   164
    <target name="-prepare-build" depends="-check-langtools.jdk.home">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   165
        <mkdir dir="${build.modules}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   166
        <mkdir dir="${build.tools}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   167
        <mkdir dir="${build.gensrc}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   168
        <mkdir dir="${build.bin}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   169
        <mkdir dir="${build.prevsrc}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   170
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   171
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   172
    <target name="generate-sources-internal">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   173
        <basename property="module.name" file="${basedir}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   174
        <pparse destdir="${build.gensrc}/${module.name}" includes="${langtools.resource.includes}">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   175
            <src path="./share/classes"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   176
        </pparse>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   177
        <pcompile destdir="${build.gensrc}/${module.name}" includes="**/*.properties">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   178
            <src path="./share/classes"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   179
        </pcompile>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   180
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   181
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   182
    <target name="generate-sources"  depends="-prepare-build,-def-pparse,-def-pcompile">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   183
        <subant inheritall="true" target="generate-sources-internal" genericantfile="${make.dir}/build.xml">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   184
              <dirset dir="${src.dir}" includes="*.*"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   185
        </subant>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   186
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   187
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   188
    <target name="build-all-classes" depends="generate-sources">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   189
        <exec executable="${langtools.jdk.home}/bin/javac" failonerror="true">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   190
            <arg line="-source ${javac.source} -target ${javac.target}" />
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   191
            <arg value="-d" />
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   192
            <arg value="${build.modules}" />
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   193
            <arg line="${javac.opts} -modulesourcepath ${src.dir}${file.separator}*${file.separator}share${file.separator}classes:${build.gensrc} -m java.compiler,jdk.compiler,jdk.javadoc,jdk.jdeps,jdk.jshell" />
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   194
        </exec>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   195
        <delete>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   196
            <fileset dir="${build.modules}" includes="**/module-info.class"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   197
        </delete>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   198
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   199
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   200
    <target name="build-all-tools" depends="build-all-classes, -def-build-tool">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   201
        <build-tool name="javac"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   202
        <build-tool name="javadoc"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   203
        <build-tool name="javap"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   204
        <build-tool name="javah"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   205
        <build-tool name="jdeps"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   206
        <build-tool name="sjavac"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   207
        <build-tool name="jshell"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   208
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   209
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   210
    <target name="jtreg" depends="build-all-tools,-def-jtreg">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   211
        <jtreg-tool name="all" tests="${jtreg.tests}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   212
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   213
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   214
    <!--
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   215
    **** IDE support
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   216
    -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   217
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   218
    <target name="idea" depends="-check-langtools.jdk.home">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   219
        <mkdir dir=".idea"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   220
        <copy todir=".idea" >
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   221
            <fileset dir="make/intellij" excludes="**/src/**"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   222
        </copy>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   223
        <condition property="idea.jtreg.home" value="${jtreg.home}" else = "[jtreg.home]">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   224
            <isset property="jtreg.home"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   225
        </condition>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   226
        <condition property="idea.target.jdk" value="${langtools.jdk.home}" else = "$JDKPath$">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   227
            <isset property="langtools.jdk.home"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   228
        </condition>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   229
        <replace file=".idea/ant.xml" token="@IDEA_JTREG_HOME@" value="${idea.jtreg.home}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   230
        <replace file=".idea/ant.xml" token="@IDEA_TARGET_JDK@" value="${idea.target.jdk}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   231
        <replace file=".idea/workspace.xml" token="@IDEA_TARGET_JDK@" value="${idea.target.jdk}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   232
        <replace file=".idea/workspace.xml" token="@FILE_SEP@" value="${file.separator}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   233
        <replace file=".idea/workspace.xml" token="@PATH_SEP@" value="${path.separator}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   234
        <mkdir dir=".idea/classes"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   235
        <javac srcdir="make/intellij/src"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   236
               destdir=".idea/classes"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   237
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   238
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   239
    <!--
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   240
        **** Utility definitions
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   241
    -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   242
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   243
    <target name="-def-pparse">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   244
        <copy todir="${build.tools}/propertiesparser" >
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   245
            <fileset dir="${make.tools.dir}/propertiesparser" includes="**/resources/**"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   246
        </copy>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   247
        <javac fork="true"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   248
               source="${javac.source}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   249
               target="${javac.target}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   250
               executable="${langtools.jdk.home}/bin/javac"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   251
               srcdir="${make.tools.dir}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   252
               includes="propertiesparser/* anttasks/PropertiesParser* anttasks/PathFileSet*"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   253
               destdir="${build.tools}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   254
               classpath="${ant.core.lib}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   255
               bootclasspath="${langtools.jdk.home}/jre/lib/rt.jar"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   256
               includeantruntime="false">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   257
            <compilerarg line="${javac.opts} -XDstringConcat=inline"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   258
        </javac>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   259
        <taskdef name="pparse"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   260
                 classname="anttasks.PropertiesParserTask"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   261
                 classpath="${build.tools}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   262
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   263
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   264
     <target name="-def-pcompile">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   265
        <javac fork="true"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   266
               source="${javac.source}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   267
               target="${javac.target}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   268
               executable="${langtools.jdk.home}/bin/javac"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   269
               srcdir="${make.tools.dir}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   270
               includes="compileproperties/* anttasks/CompileProperties* anttasks/PathFileSet*"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   271
               destdir="${build.dir}/toolclasses/"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   272
               classpath="${ant.core.lib}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   273
               includeantruntime="false">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   274
            <compilerarg line="${javac.opts} -XDstringConcat=inline"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   275
        </javac>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   276
        <taskdef name="pcompile"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   277
                 classname="anttasks.CompilePropertiesTask"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   278
                 classpath="${build.tools}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   279
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   280
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   281
    <target name="-def-build-tool">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   282
        <macrodef name="build-tool">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   283
            <attribute name="name"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   284
            <attribute name="compilation.kind" default=""/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   285
            <attribute name="bin.dir" default="${build.bin}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   286
            <attribute name="java" default="${launcher.java}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   287
            <attribute name="main.class" default="${tool.@{name}.main.class}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   288
            <sequential>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   289
                <mkdir dir="@{bin.dir}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   290
                <copy file="${make.dir}/launcher.sh-template" tofile="@{bin.dir}/@{name}">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   291
                    <filterset begintoken="#" endtoken="#">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   292
                        <filter token="PROGRAM" value="@{main.class}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   293
                        <filter token="TARGET_JAVA" value="@{java}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   294
                        <filter token="PS" value="${path.separator}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   295
                    </filterset>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   296
                </copy>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   297
                <chmod file="@{bin.dir}/@{name}" perm="ugo+rx"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   298
            </sequential>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   299
        </macrodef>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   300
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   301
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   302
    <target name="-def-jtreg" unless="jtreg.defined" depends="-check-jtreg.home,-check-langtools.jdk.home">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   303
        <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   304
            <classpath>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   305
                <pathelement location="${jtreg.home}/lib/jtreg.jar"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   306
                <pathelement location="${jtreg.home}/lib/javatest.jar"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   307
            </classpath>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   308
        </taskdef>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   309
        <macrodef name="jtreg-tool">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   310
            <attribute name="name"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   311
            <attribute name="tests"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   312
            <attribute name="jdk" default="${langtools.jdk.home}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   313
            <attribute name="agentvm" default="true"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   314
            <attribute name="verbose" default="${default.jtreg.verbose}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   315
            <attribute name="options" default="${other.jtreg.options}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   316
            <attribute name="keywords" default="-keywords:!ignore"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   317
            <attribute name="jpda.jvmargs" default=""/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   318
            <attribute name="extra.jvmargs" default=""/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   319
            <attribute name="build.modules" default="${build.modules}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   320
            <sequential>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   321
                <property name="coverage.options" value=""/>              <!-- default -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   322
                <property name="coverage.classpath" value=""/>            <!-- default -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   323
                <property name="default.jtreg.verbose" value="summary"/>  <!-- default -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   324
                <property name="other.jtreg.options" value=""/>           <!-- default -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   325
                <property name="jtreg.classfiles.to.modules" value="@{agentvm}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   326
                <jtreg
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   327
                    dir="${test.dir}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   328
                    workDir="${build.jtreg}/@{name}/work"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   329
                    reportDir="${build.jtreg}/@{name}/report"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   330
                    jdk="@{jdk}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   331
                    agentvm="@{agentvm}" verbose="@{verbose}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   332
                    failonerror="false" resultproperty="jtreg.@{name}.result"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   333
                    vmoptions="${coverage.options} @{extra.jvmargs} -Xpatch:@{build.modules}">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   334
                    <arg value="-debug:@{jpda.jvmargs}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   335
                    <arg line="@{keywords}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   336
                    <arg line="@{options}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   337
                    <arg line="@{tests}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   338
                </jtreg>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   339
                <!-- the next two properties are for convenience, when only
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   340
                     a single instance of jtreg will be invoked. -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   341
                <condition property="jtreg.passed">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   342
                    <equals arg1="${jtreg.@{name}.result}" arg2="0"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   343
                </condition>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   344
                <property name="jtreg.report" value="${build.jtreg}/@{name}/report"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   345
            </sequential>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   346
        </macrodef>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   347
        <property name="jtreg.defined" value="true"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   348
    </target>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   349
</project>