Nice work!
I wonder what happens if you invoke this target from the build output
directory? I can imagine it not working too well, but would like a
graceful exit in that case.
/Erik
On 2015-09-17 06:41, Magnus Ihse Bursie wrote:
A common scenario in when working in the build system is to want to
check if a particular change results in a change in the build output
or not, or a more detailed analysis of such changes.
The compare.sh tool will provide such an analysis, but only if you
have a pre-built baseline to compare with.
To facilitate testing changes, especially on distributed job servers,
we should add a COMPARE_BUILD make control variable. If this variable
is present, the build will run twice, the second time with the code
that should be tested (particular make targets, configure arguments,
or with a patch file applied), and then automatically run the compare
script afterwards against the baseline.
The suggested format allows for a very fine-grained control, by
further parsing the value of COMPARE_BUILD into separate parts. The
syntax looks like this:
COMPARE_BUILD=CONF=<configure options>:PATCH=<patch file>:MAKE=<make
targets>:COMP_OPTS=<compare script options>|<default>
If neither CONF or PATCH is given, assume <default> means CONF if it
begins with "--", otherwise assume it means PATCH. Either CONF or
PATCH must be given, directly specified or by using the default
syntax. The rest of the key/value pairs are optional, and they may
come in any order.
MAKE and COMP_OPTS can only be used with CONF and/or PATCH specified.
If any value contains "+", it will be replaced by space.
If just a single value is specified, it can contain spaces, e.g.
"COMPARE_BUILD=CONF=--enable-debug --with-special-sauce". (For
technical reasons, this is not possible if using multiple,
colon-separated key=value pairs).
Values given in CONF and MAKE are appended to the normal configure
command line and make target list, respectively, when building the
second comparison round.
The patch file, if specified, could be either absolute or relative to
TOPDIR.
COMP_OPTS is additional options to pass to compare.sh.
Bug: https://bugs.openjdk.java.net/browse/JDK-8136695
WebRev:
http://cr.openjdk.java.net/~ihse/JDK-8136695-compare_build/webrev.01
/Magnus