<!DOCTYPE html><html><head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
</head>
<body>
<p>On 2025-01-10 16:13, Archie Cobbs wrote:</p>
<blockquote type="cite" cite="mid:CANSoFxv0wpGbfuft=+W-byhAe6Fv8227KQpXyTbZ1Y6BwWfViA@mail.gmail.com">
<div dir="ltr">
<div>Thanks for the input.</div>
<br>
<div>Also with some playing around I realized that "make
print-targets" prints out every possible make target... of
which there are 2453... :)</div>
</div>
</blockquote>
<p>If you were to make all these targets, there would be a lot of
redundancy, since e.g. the target `java` depends on the target
`java.base-java`, etc.</p>
<p>The conceptually "highest" level targets are the `*-bundles`
targets. You can create all of them using `make all-bundles`. That
would generate all output stages that are consumed by any
downstream process, at least as we use it in Oracle. To save build
time, for testing, you will most likely be satisfied with the
`*-image` targets. Run `make all-images` to generate all known
images. I guess that is the best answer to your question about
"making everything".<br>
</p>
<p>Apart from these "leaf" targets, there are some other "leaves" as
well. (Leaves as in that no other make target depends on them, so
if the user does not specify them on the command line, they will
not be executed.) These are for specialized stuff, like generating
IDE configuration, running tests, or as you mentioned, the
bootcycle-images target. (This is really just a somewhat weird and
special case of testing, there the "test" in point is if the new
JDK can pass the build system.)</p>
<p>I guess it would have been an interesting addition to the build
system to have it print all "leaf" targets; unfortunately I cannot
really think of an easy way of doing this in make.</p>
<p>/Magnus<br>
</p>
<p><br>
</p>
<p><br>
</p>
<blockquote type="cite" cite="mid:CANSoFxv0wpGbfuft=+W-byhAe6Fv8227KQpXyTbZ1Y6BwWfViA@mail.gmail.com">
<div dir="ltr">
<div><br>
</div>
<div>So to be more precise, I don't really want to "make
everything", but rather make everything that makes use of the
java compiler.</div>
<div>
<div><br>
</div>
<div>I've found there are lots of little tools and
intermediate JAR files that are built and used for various
things, for example, jrt-fs.jar, benchmarks.jar, etc.<br>
</div>
<div><br>
</div>
</div>
<div>I'll stick with my ad hoc list for now, but of course any
suggested additions are welcome.<br>
</div>
<div><br>
</div>
<div>Thanks,<br>
</div>
<div>-Archie<br>
</div>
<div><br>
</div>
</div>
<br>
<div class="gmail_quote gmail_quote_container">
<div dir="ltr" class="gmail_attr">On Fri, Jan 10, 2025 at
3:36 AM Aleksey Shipilev <<a href="mailto:shipilev@amazon.de" moz-do-not-send="true" class="moz-txt-link-freetext">shipilev@amazon.de</a>>
wrote:<br>
</div>
<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On
08.01.25 19:17, Archie Cobbs wrote:<br>
> So what do people do when they want to "make everything"?<br>
> <br>
> FWIW I've been doing this:<br>
> <br>
> make<br>
> make hotspot<br>
> make static-libs-bundles<br>
> make product-bundles<br>
> make test-bundles<br>
> make bootcycle-images<br>
> <br>
> but that list is just ad hoc and based mostly on past
mistakes. Is there a more complete list that <br>
> includes every make target that could possibly be
affected by a change to the Java compiler?<br>
<br>
Well, I personally run `make bootcycle-images` if I want to
make sure the newly-built JDK can build <br>
itself. I think this is what you want to test compilers. It
does not build test code, though.<br>
<br>
A conventional way to build everything should be `make all`,
but I don't think it actually builds a <br>
lot of targets in current build system. Consider submitting an
RFE for infrastructure/build for it.<br>
<br>
-Aleksey<br>
<br>
</blockquote>
</div>
<div><br clear="all">
</div>
<br>
<span class="gmail_signature_prefix">-- </span><br>
<div dir="ltr" class="gmail_signature">Archie L. Cobbs<br>
</div>
</blockquote>
</body>
</html>