MILESTONE and BUILD_NUMBER with new build system
Magnus Ihse Bursie
magnus.ihse.bursie at oracle.com
Mon Oct 29 12:11:38 PDT 2012
On 2012-09-25 03:47, David Holmes wrote:
> Just on one point, the system should automatically determine if you
> need to re-run configure. It notices if you need to re-run autogen, so
> I would expect it also notices when configure needs to be re-run. That
> said I haven't tried it.
Actually, it's not really trivial to determine when you need to re-run
configure. But the basic rule is "you don't".
Things that might trigger the need to re-run configure:
* Your local environment has changed. Maybe you upgraded Java and
removed the old JDK, etc. Impossible to test for.
* A recent change you pulled has modified the make files, such that your
current spec.gmk is incorrect. This has happened quite a lot during
build-infra development, but is unlikely to happen very often after we
reach a steady state. This is hard to detect. Maybe not impossible, but
definitely hard. If this happens seldom enough, it might be that the
easiest to send a wide-enough mail about the need to rerun configure
after pulling and updating to a certain build.
* ... and I think that's about it.
That being said, you had an interesting idea with the autogen check. At
this time, now when I re-read your mail, we have in place a system for
checking the timestamp of the generated configure script. It would
certainly be possible to store this timestamp in spec.gmk, and have the
Makefile compare this timestamp to that of the generaged script each
time you run make. Then you can catch a situation where the configure
script is newer than the spec.gmk file, and stop running make, forcing
the user to re-run configure. (Or re-running it automatically, the
configure arguments are stored so you just need to run "sh configure
`cat build/<CONF>/configure-arguments`)
This will probably make sure noone runs with an outdated configuration.
However, if there are many small changes to configure that does not
actually require a re-configuration, it will also cause a lot of
unnecessary work. (But then again, if you do it automatically, maybe
that's an OK compromise). Or have a target "make reconfigure" that helps
you re-run configure with the same arguments, then it's not that hard to
do but you still got some manual control.
/Magnus
More information about the build-infra-dev
mailing list