make/langtools/build.xml
author egahlin
Mon, 21 Oct 2019 16:29:38 +0200
branchJEP-349-branch
changeset 58714 737134732b4a
parent 52804 28094715ae71
permissions -rw-r--r--
Log unknown event
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
<!--
52804
28094715ae71 8214718: Update missing copyright year in build system
ihse
parents: 51565
diff changeset
     3
  ~ Copyright (c) 2007, 2018, Oracle and/or its affiliates. All rights reserved.
36526
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
48406
26b47ea4c77d 8193512: Remove remnants of javah from jdk/jdk repo
jjg
parents: 47217
diff changeset
    44
   |-bin (scripts to invoke various tools, javac etc.)
36526
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
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
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 -->
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    64
    <property file="make/langtools/build.properties"/>
10
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"/>
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    75
    <property name="make.dir" location="make/langtools"/>
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"/>
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    78
    <property name="build.dir" location="build/langtools"/>
36526
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
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    86
    <dirset id="src.module.dirset" dir="${src.dir}" includes="${module.names}"/>
37851
f2820cadfa38 8155959: Langtools ant build should support new Xpatch option format
mcimadamore
parents: 36526
diff changeset
    87
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    88
    <pathconvert pathsep="," property="src.module.dirs" refid="src.module.dirset"/>
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    89
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    90
    <pathconvert property="xpatch.rest" pathsep=" --patch-module=" refid="src.module.dirset">
44461
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
    91
        <scriptmapper language="javascript">
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
    92
            fs = project.getProperty("file.separator");
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
    93
            path = project.getProperty("build.modules");
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
    94
            mod = source.substr(source.lastIndexOf(fs)+1);
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
    95
            self.addMappedName(mod + "=\"" + path + fs + mod + "\"");
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
    96
        </scriptmapper>
38609
a1c0c73078b3 8157895: langtools launcher.sh-template script is broken
mcimadamore
parents: 38522
diff changeset
    97
    </pathconvert>
a1c0c73078b3 8157895: langtools launcher.sh-template script is broken
mcimadamore
parents: 38522
diff changeset
    98
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
    99
    <pathconvert property="xpatch.noquotes.rest" pathsep=" --patch-module=" refid="src.module.dirset">
44461
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
   100
        <scriptmapper language="javascript">
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
   101
            fs = project.getProperty("file.separator");
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
   102
            path = project.getProperty("build.modules");
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
   103
            mod = source.substr(source.lastIndexOf(fs)+1);
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
   104
            self.addMappedName(mod + "=" + path + fs + mod);
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
   105
        </scriptmapper>
37851
f2820cadfa38 8155959: Langtools ant build should support new Xpatch option format
mcimadamore
parents: 36526
diff changeset
   106
    </pathconvert>
f2820cadfa38 8155959: Langtools ant build should support new Xpatch option format
mcimadamore
parents: 36526
diff changeset
   107
40599
be40838eb215 8164887: update tests to remove use of old-style options
jjg
parents: 40510
diff changeset
   108
    <property name="xpatch.cmd" value="--patch-module=${xpatch.rest}"/>
be40838eb215 8164887: update tests to remove use of old-style options
jjg
parents: 40510
diff changeset
   109
    <property name="xpatch.noquotes.cmd" value="--patch-module=${xpatch.noquotes.rest}"/>
25874
83c19f00452c 8054834: Modular Source Code
chegar
parents: 25848
diff changeset
   110
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   111
    <!-- java.marker is set to a marker file to check for within a Java install dir.
06bc494ca11e Initial load
duke
parents:
diff changeset
   112
         The best file to check for across Solaris/Linux/Windows/MacOS is one of the
06bc494ca11e Initial load
duke
parents:
diff changeset
   113
         executables; regrettably, that is OS-specific. -->
06bc494ca11e Initial load
duke
parents:
diff changeset
   114
    <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
   115
        <os family="unix"/>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   116
    </condition>
06bc494ca11e Initial load
duke
parents:
diff changeset
   117
    <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
   118
        <os family="windows"/>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   119
    </condition>
3655
f9ee66e780f4 6758471: should be able to set jtreg options in langtools build
jjg
parents: 3654
diff changeset
   120
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   121
    <!-- 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
   122
    <property file="${make.dir}/build.properties"/>
3654
bb3c0eeec3cb 6870706: langtools launcher issues
jjg
parents: 3564
diff changeset
   123
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   124
    <condition property="langtools.jdk.home" value="${jdk.home}">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   125
        <isset property="jdk.home" />
3654
bb3c0eeec3cb 6870706: langtools launcher issues
jjg
parents: 3564
diff changeset
   126
    </condition>
bb3c0eeec3cb 6870706: langtools launcher issues
jjg
parents: 3564
diff changeset
   127
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   128
    <!-- launcher.java is used in the launcher scripts provided to run
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   129
        the tools' jar files.  If it has not already been set, then
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   130
        default it to use ${langtools.jdk.home}, if available, otherwise
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   131
        quietly default to simply use "java". -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   132
    <condition property="launcher.java"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   133
        value="${langtools.jdk.home}/bin/java" else="java">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   134
        <isset property="langtools.jdk.home"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   135
    </condition>
27546
79b6b60ff60a 8058489: More adjustments of langtools/make/build.xml to modularized layout
jlahoda
parents: 26268
diff changeset
   136
79b6b60ff60a 8058489: More adjustments of langtools/make/build.xml to modularized layout
jlahoda
parents: 26268
diff changeset
   137
    <!--
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   138
        **** Check targets
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   139
    -->
3655
f9ee66e780f4 6758471: should be able to set jtreg options in langtools build
jjg
parents: 3654
diff changeset
   140
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   141
    <target name="-def-check">
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   142
      <macrodef name="check">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   143
          <attribute name="name"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   144
          <attribute name="property"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   145
          <attribute name="marker" default=""/>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   146
            <sequential>
06bc494ca11e Initial load
duke
parents:
diff changeset
   147
                <fail message="Cannot locate @{name}: please set @{property} to its location">
06bc494ca11e Initial load
duke
parents:
diff changeset
   148
                    <condition>
06bc494ca11e Initial load
duke
parents:
diff changeset
   149
                        <not>
06bc494ca11e Initial load
duke
parents:
diff changeset
   150
                            <isset property="@{property}"/>
06bc494ca11e Initial load
duke
parents:
diff changeset
   151
                        </not>
06bc494ca11e Initial load
duke
parents:
diff changeset
   152
                    </condition>
06bc494ca11e Initial load
duke
parents:
diff changeset
   153
                </fail>
06bc494ca11e Initial load
duke
parents:
diff changeset
   154
                <fail message="@{name} is not installed in ${@{property}}">
06bc494ca11e Initial load
duke
parents:
diff changeset
   155
                    <condition>
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   156
                        <and>
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   157
                            <not>
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   158
                                <equals arg1="@{marker}" arg2=""/>
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   159
                            </not>
5844
76650bf67a5c 6958391: add vizant support to langtools build
jjg
parents: 5520
diff changeset
   160
                            <not>
76650bf67a5c 6958391: add vizant support to langtools build
jjg
parents: 5520
diff changeset
   161
                                <available file="${@{property}}/@{marker}"/>
76650bf67a5c 6958391: add vizant support to langtools build
jjg
parents: 5520
diff changeset
   162
                            </not>
5845
6b8e5689445a 6958802: cleanup and doc langtools build.xml file
jjg
parents: 5844
diff changeset
   163
                        </and>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   164
                    </condition>
06bc494ca11e Initial load
duke
parents:
diff changeset
   165
                </fail>
06bc494ca11e Initial load
duke
parents:
diff changeset
   166
            </sequential>
06bc494ca11e Initial load
duke
parents:
diff changeset
   167
        </macrodef>
06bc494ca11e Initial load
duke
parents:
diff changeset
   168
    </target>
06bc494ca11e Initial load
duke
parents:
diff changeset
   169
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   170
    <target name="-check-langtools.jdk.home" depends="-def-check">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   171
        <check name="target java" property="langtools.jdk.home" marker="${java.marker}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   172
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   173
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   174
    <target name="-check-jtreg.home" depends="-def-check">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   175
        <check name="jtreg" property="jtreg.home" marker="lib/jtreg.jar"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   176
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   177
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   178
    <!--
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   179
        **** Primary targets
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   180
    -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   181
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   182
    <target name="clean" description="Delete all generated files">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   183
        <delete dir="${build.dir}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   184
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   185
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   186
    <target name="build" depends="build-all-tools"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   187
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   188
    <target name="-prepare-build" depends="-check-langtools.jdk.home">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   189
        <mkdir dir="${build.modules}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   190
        <mkdir dir="${build.tools}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   191
        <mkdir dir="${build.gensrc}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   192
        <mkdir dir="${build.bin}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   193
        <mkdir dir="${build.prevsrc}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   194
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   195
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   196
    <target name="generate-sources-internal">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   197
        <basename property="module.name" file="${basedir}"/>
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   198
        <mkdir dir="${build.gensrc}/${module.name}"/>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   199
        <pparse destdir="${build.gensrc}/${module.name}" includes="${langtools.resource.includes}">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   200
            <src path="./share/classes"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   201
        </pparse>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   202
        <pcompile destdir="${build.gensrc}/${module.name}" includes="**/*.properties">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   203
            <src path="./share/classes"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   204
        </pcompile>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   205
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   206
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   207
    <target name="generate-sources"  depends="-prepare-build,-def-pparse,-def-pcompile">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   208
        <subant inheritall="true" target="generate-sources-internal" genericantfile="${make.dir}/build.xml">
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   209
              <dirset refid="src.module.dirset"/>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   210
        </subant>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   211
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   212
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   213
    <target name="build-all-classes" depends="generate-sources">
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   214
        <pathconvert property="xpatch.src.rest" pathsep=" --patch-module=" refid="src.module.dirset">
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   215
            <scriptmapper language="javascript">
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   216
                fs = project.getProperty("file.separator");
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   217
                path_src = project.getProperty("src.dir");
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   218
                path_sep = project.getProperty("path.separator");
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   219
                path_gensrc = project.getProperty("build.gensrc");
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   220
                mod = source.substr(source.lastIndexOf(fs)+1);
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   221
                self.addMappedName(mod + "=" + path_src + fs + mod + path_sep + path_gensrc + fs + mod);
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   222
            </scriptmapper>
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   223
        </pathconvert>
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   224
        <property name="xpatch.src.cmd" value="--patch-module=${xpatch.src.rest}"/>
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   225
        <pathconvert pathsep="," property="gensrc.module.dirs">
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   226
            <dirset dir="${build.gensrc}" includes="${module.names}"/>
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   227
        </pathconvert>
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   228
        <multirootfileset id="source.fileset" basedirs="${src.module.dirs},${gensrc.module.dirs}">
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   229
            <include name="**/*.java"/>
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   230
            <different targetdir="${build.prevsrc}" ignoreFileTimes="true"/>
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   231
        </multirootfileset>
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   232
        <pathconvert pathsep=" " property="source.files" refid="source.fileset"/>
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   233
        <echo file="${build.dir}/sources.txt">${source.files}</echo>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   234
        <exec executable="${langtools.jdk.home}/bin/javac" failonerror="true">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   235
            <arg value="-d" />
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   236
            <arg value="${build.modules}" />
41936
94139f291be4 8166857: langtools build.xml broken on windows
ksrini
parents: 41519
diff changeset
   237
            <arg line="${javac.opts}" />
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   238
            <arg line="${xpatch.src.cmd}" />
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   239
            <arg line="--module-source-path ." />
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   240
            <arg line="@${build.dir}/sources.txt" />
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   241
        </exec>
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   242
        <delete file="${build.dir}/sources.txt"/>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   243
        <delete>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   244
            <fileset dir="${build.modules}" includes="**/module-info.class"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   245
        </delete>
47217
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   246
        <!-- workaround for incremental compilation -->
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   247
        <copy todir="${build.prevsrc}" >
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   248
            <multirootfileset refid="source.fileset"/>
72e3ae9a25eb 8187444: Forest Consolidation: Make build work
erikj
parents: 47216
diff changeset
   249
        </copy>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   250
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   251
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   252
    <target name="build-all-tools" depends="build-all-classes, -def-build-tool">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   253
        <build-tool name="javac"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   254
        <build-tool name="javadoc"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   255
        <build-tool name="javap"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   256
        <build-tool name="jdeps"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   257
        <build-tool name="sjavac"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   258
        <build-tool name="jshell"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   259
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   260
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   261
    <target name="jtreg" depends="build-all-tools,-def-jtreg">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   262
        <jtreg-tool name="all" tests="${jtreg.tests}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   263
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   264
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   265
    <!--
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   266
    **** IDE support
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   267
    -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   268
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   269
    <target name="idea" depends="-check-langtools.jdk.home">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   270
        <mkdir dir=".idea"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   271
        <copy todir=".idea" >
51565
7e5f08c619e3 8209064: Make intellij support more robust after changes for 2018.2
mcimadamore
parents: 51266
diff changeset
   272
            <fileset dir="${make.dir}/intellij/template">
39177
9d13e7c2d65e 8159834: Add some support for jtreg test headers in IntelliJ langtools project
mcimadamore
parents: 38609
diff changeset
   273
               <exclude name="**/src/**"/>
9d13e7c2d65e 8159834: Add some support for jtreg test headers in IntelliJ langtools project
mcimadamore
parents: 38609
diff changeset
   274
               <exclude name="**/utils/**"/>
9d13e7c2d65e 8159834: Add some support for jtreg test headers in IntelliJ langtools project
mcimadamore
parents: 38609
diff changeset
   275
            </fileset>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   276
        </copy>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   277
        <condition property="idea.jtreg.home" value="${jtreg.home}" else = "[jtreg.home]">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   278
            <isset property="jtreg.home"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   279
        </condition>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   280
        <condition property="idea.target.jdk" value="${langtools.jdk.home}" else = "$JDKPath$">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   281
            <isset property="langtools.jdk.home"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   282
        </condition>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   283
        <replace file=".idea/ant.xml" token="@IDEA_TARGET_JDK@" value="${idea.target.jdk}"/>
38522
c4fdb181cd64 8157326: Intellij langtools project should use shared run configurations
mcimadamore
parents: 38507
diff changeset
   284
        <replace dir=".idea/runConfigurations" token="@IDEA_TARGET_JDK@" value="${idea.target.jdk}"/>
c4fdb181cd64 8157326: Intellij langtools project should use shared run configurations
mcimadamore
parents: 38507
diff changeset
   285
        <replace dir=".idea/runConfigurations" token="@XPATCH@" value="${xpatch.cmd}"/>
40510
722c82994682 8164481: Remove jtreg run configurations from langtools idea project
mcimadamore
parents: 39177
diff changeset
   286
        <replace file=".idea/misc.xml" token="@IDEA_JTREG_HOME@" value="${idea.jtreg.home}"/>
722c82994682 8164481: Remove jtreg run configurations from langtools idea project
mcimadamore
parents: 39177
diff changeset
   287
        <replace file=".idea/misc.xml" token="@IDEA_TARGET_JDK@" value="${idea.target.jdk}"/>
722c82994682 8164481: Remove jtreg run configurations from langtools idea project
mcimadamore
parents: 39177
diff changeset
   288
        <replace file=".idea/misc.xml" token="@XPATCH@" value="${xpatch.cmd}"/>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   289
        <mkdir dir=".idea/classes"/>
38507
d48ba9db4b7d 8157030: langtools dev build broken after classfile version bump
mcimadamore
parents: 37851
diff changeset
   290
        <javac source="${javac.build.source}"
d48ba9db4b7d 8157030: langtools dev build broken after classfile version bump
mcimadamore
parents: 37851
diff changeset
   291
               target="${javac.build.target}"
51565
7e5f08c619e3 8209064: Make intellij support more robust after changes for 2018.2
mcimadamore
parents: 51266
diff changeset
   292
               srcdir="${make.dir}/intellij/template/src"
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   293
               destdir=".idea/classes"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   294
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   295
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   296
    <!--
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   297
        **** Utility definitions
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   298
    -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   299
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   300
    <target name="-def-pparse">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   301
        <copy todir="${build.tools}/propertiesparser" >
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   302
            <fileset dir="${make.tools.dir}/propertiesparser" includes="**/resources/**"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   303
        </copy>
38507
d48ba9db4b7d 8157030: langtools dev build broken after classfile version bump
mcimadamore
parents: 37851
diff changeset
   304
        <javac source="${javac.build.source}"
d48ba9db4b7d 8157030: langtools dev build broken after classfile version bump
mcimadamore
parents: 37851
diff changeset
   305
               target="${javac.build.target}"
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   306
               srcdir="${make.tools.dir}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   307
               includes="propertiesparser/* anttasks/PropertiesParser* anttasks/PathFileSet*"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   308
               destdir="${build.tools}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   309
               classpath="${ant.core.lib}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   310
               bootclasspath="${langtools.jdk.home}/jre/lib/rt.jar"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   311
               includeantruntime="false">
41519
612f31a9b42b 8167442: Langtools ant build not working after addition of -Xlint:exports
jlahoda
parents: 40599
diff changeset
   312
            <compilerarg line="${javac.build.opts} -XDstringConcat=inline"/>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   313
        </javac>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   314
        <taskdef name="pparse"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   315
                 classname="anttasks.PropertiesParserTask"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   316
                 classpath="${build.tools}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   317
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   318
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   319
     <target name="-def-pcompile">
38507
d48ba9db4b7d 8157030: langtools dev build broken after classfile version bump
mcimadamore
parents: 37851
diff changeset
   320
        <javac
d48ba9db4b7d 8157030: langtools dev build broken after classfile version bump
mcimadamore
parents: 37851
diff changeset
   321
               source="${javac.build.source}"
d48ba9db4b7d 8157030: langtools dev build broken after classfile version bump
mcimadamore
parents: 37851
diff changeset
   322
               target="${javac.build.target}"
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   323
               srcdir="${make.tools.dir}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   324
               includes="compileproperties/* anttasks/CompileProperties* anttasks/PathFileSet*"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   325
               destdir="${build.dir}/toolclasses/"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   326
               classpath="${ant.core.lib}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   327
               includeantruntime="false">
41519
612f31a9b42b 8167442: Langtools ant build not working after addition of -Xlint:exports
jlahoda
parents: 40599
diff changeset
   328
            <compilerarg line="${javac.build.opts} -XDstringConcat=inline"/>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   329
        </javac>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   330
        <taskdef name="pcompile"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   331
                 classname="anttasks.CompilePropertiesTask"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   332
                 classpath="${build.tools}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   333
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   334
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   335
    <target name="-def-build-tool">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   336
        <macrodef name="build-tool">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   337
            <attribute name="name"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   338
            <attribute name="compilation.kind" default=""/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   339
            <attribute name="bin.dir" default="${build.bin}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   340
            <attribute name="java" default="${launcher.java}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   341
            <attribute name="main.class" default="${tool.@{name}.main.class}"/>
37851
f2820cadfa38 8155959: Langtools ant build should support new Xpatch option format
mcimadamore
parents: 36526
diff changeset
   342
            <attribute name="xpatch" default="${xpatch.cmd}"/>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   343
            <sequential>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   344
                <mkdir dir="@{bin.dir}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   345
                <copy file="${make.dir}/launcher.sh-template" tofile="@{bin.dir}/@{name}">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   346
                    <filterset begintoken="#" endtoken="#">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   347
                        <filter token="PROGRAM" value="@{main.class}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   348
                        <filter token="TARGET_JAVA" value="@{java}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   349
                        <filter token="PS" value="${path.separator}"/>
37851
f2820cadfa38 8155959: Langtools ant build should support new Xpatch option format
mcimadamore
parents: 36526
diff changeset
   350
                        <filter token="XPATCH" value="${xpatch.cmd}"/>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   351
                    </filterset>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   352
                </copy>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   353
                <chmod file="@{bin.dir}/@{name}" perm="ugo+rx"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   354
            </sequential>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   355
        </macrodef>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   356
    </target>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   357
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   358
    <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
   359
        <taskdef name="jtreg" classname="com.sun.javatest.regtest.Main$$Ant">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   360
            <classpath>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   361
                <pathelement location="${jtreg.home}/lib/jtreg.jar"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   362
                <pathelement location="${jtreg.home}/lib/javatest.jar"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   363
            </classpath>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   364
        </taskdef>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   365
        <macrodef name="jtreg-tool">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   366
            <attribute name="name"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   367
            <attribute name="tests"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   368
            <attribute name="jdk" default="${langtools.jdk.home}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   369
            <attribute name="agentvm" default="true"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   370
            <attribute name="verbose" default="${default.jtreg.verbose}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   371
            <attribute name="options" default="${other.jtreg.options}"/>
44461
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
   372
            <attribute name="ignore" default="-keywords:!ignore -exclude:${test.dir}/ProblemList.txt"/>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   373
            <attribute name="jpda.jvmargs" default=""/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   374
            <attribute name="extra.jvmargs" default=""/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   375
            <attribute name="build.modules" default="${build.modules}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   376
            <sequential>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   377
                <property name="coverage.options" value=""/>              <!-- default -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   378
                <property name="coverage.classpath" value=""/>            <!-- default -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   379
                <property name="default.jtreg.verbose" value="summary"/>  <!-- default -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   380
                <property name="other.jtreg.options" value=""/>           <!-- default -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   381
                <property name="jtreg.classfiles.to.modules" value="@{agentvm}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   382
                <jtreg
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   383
                    dir="${test.dir}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   384
                    workDir="${build.jtreg}/@{name}/work"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   385
                    reportDir="${build.jtreg}/@{name}/report"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   386
                    jdk="@{jdk}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   387
                    agentvm="@{agentvm}" verbose="@{verbose}"
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   388
                    failonerror="false" resultproperty="jtreg.@{name}.result"
38609
a1c0c73078b3 8157895: langtools launcher.sh-template script is broken
mcimadamore
parents: 38522
diff changeset
   389
                    vmoptions="${coverage.options} @{extra.jvmargs} ${xpatch.noquotes.cmd}">
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   390
                    <arg value="-debug:@{jpda.jvmargs}"/>
44461
8e5061e5b34b 8177667: Langtools ant build has issues with Windows file separators
mcimadamore
parents: 41936
diff changeset
   391
                    <arg line="@{ignore}"/>
36526
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   392
                    <arg line="@{options}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   393
                    <arg line="@{tests}"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   394
                </jtreg>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   395
                <!-- the next two properties are for convenience, when only
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   396
                     a single instance of jtreg will be invoked. -->
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   397
                <condition property="jtreg.passed">
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   398
                    <equals arg1="${jtreg.@{name}.result}" arg2="0"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   399
                </condition>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   400
                <property name="jtreg.report" value="${build.jtreg}/@{name}/report"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   401
            </sequential>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   402
        </macrodef>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   403
        <property name="jtreg.defined" value="true"/>
3b41f1c69604 8142968: Module System implementation
alanb
parents: 33368
diff changeset
   404
    </target>
10
06bc494ca11e Initial load
duke
parents:
diff changeset
   405
</project>