On Fri, Jan 16, 2015 at 9:31 AM, Erik Joelsson <[email protected]> wrote: > Hello Volker, > > I think I'm mostly to blame for the current state of the make help text and > I certainly value feedback on it. I agree that talk of repos in the help > text is just confusing at this point. The pre modules build was organized > around repos and I got stuck in that thinking when I tried to describe the > new targets. > > Listing available modules is a good idea and implementing it is pretty easy. > The make targets themselves are dynamically generated from the dynamic list > of modules. Perhaps a new line of targets named list-modules, list-phases > etc, or perhaps build on the existing help target, help-modules, > help-phases, help-clean etc, which would give more detailed lists of > available targets for those areas? >
Sounds good! > What you can do right now, if you use bash, is activating advanced bash > completion. Then you can type "make " and tab your way through the targets, > which is what I usually do. A warning though that without typing a few > letters, you get several hundreds targets listed. > Aadvanced bash completion is a cool feature I wasn't aware of until now - thanks for mentioning it. Unfortunately it doesn't seem to work out of the box on my Ubuntu 12.04. I only get: $ make [TAB][TAB] default Error help Makefile Do you use a special completion script? Thanks you and best regards, Volker > /Erik > > > On 2015-01-15 18:33, Volker Simonis wrote: >> >> Hi Magnus, >> >> I've only had a quick look at your changes but I have a question. >> >> When looking at the "make help" I think the relationship between >> "repo", "target" and "module" is a little unclear. >> >> As far as I understand a "target" is an artefact which can be named >> and build by "make". >> A "repo" is a collection of sources which is defined by our version >> control system. >> A "module" is a logical part of the resulting build output. >> >> All these three are orthogonal (i.e. a "target" can build many >> "modules" or just a part of a module, a "repo" can contain several >> modules or just the part of a module, etc.) >> >> I think that the division of the OpenJDK source into different repos >> is unfortunate and somehow arbitrary. So maybe we should try to avoid >> this term when speaking about make targets and modules. >> >> I would also wish there was a dynamically created list of buildable >> modules so we could do something like "make modules" to get this list. >> I don't know if this is easily possible, it's just an idea. >> >> Also the line "make [default] # Compile all modules in >> langtools, hotspot, jdk, jaxws,.." seems a little confusing to me. It >> speaks about modules but lists the current repos. So what are the >> available moduls? What does "[default]" stands for? >> >> I like the two "clean" targets: >> >> make clean-<module> >> make clean-<module>-<phase> >> >> they are clear and concise (besides the fact that there's no module list). >> >> I'd wish to have the same syntax for the build targets (instead of >> make [default]). Something like: >> >> make <module> >> make <module>-<phase> >> make jdk-image Creates a jre image containing >> these modules (...) and docs >> make jre-image Creates a jre image containing >> these modules (...) and docs >> make images Creates both, the jre and the jdk >> image >> >> I'm aware that this mail degenerated more into a wish-list than a >> review :) Maybe you find it useful nevertheless. >> >> Regards, >> Volker >> >> >> On Thu, Jan 15, 2015 at 4:23 PM, Magnus Ihse Bursie >> <[email protected]> wrote: >>> >>> This fix is the result of preparatory work in the build-infra project. >>> It >>> includes: >>> * Remove duplicate detection of comm on Windows >>> * compare.sh enhancements and bug fixes >>> * Do not fail in SetupFoo macros on empty arguments >>> * Minor JavaCompilation enhancements >>> * Makefile warns for unknown control variables >>> * Improved "make help" >>> >>> Bug: https://bugs.openjdk.java.net/browse/JDK-8069064 >>> WebRev: >>> >>> http://cr.openjdk.java.net/~ihse/JDK-8069064-fixes-from-build-infra/webrev.01 >>> >>> /Magnus > >
