A build dir per smoke config

[email protected] (Bram) Sun, 11 Jan 2009 15:29:00 +0100
Newsgroups perl.daily-build
Message-ID <[email protected]>
(I discussed this with Abe and he asked to send it to the mailing list)

I'm thinking of writing a patch that creates a build dir per configuration.

Assume that Test::Smoke is configured with:
=3D=3D
-Duseithreads
=3D=3D
/-DDEBUGGING/

-DDEBUGGING

Then it will build perl with:
1) -Duseithreads
2) -Duseithreads -DDEBUGGING

The current execution looks like:
- cleans the build directory; builds perl with -Duseithreads;
- cleans the build directory; builds perl with -Duseithreads -DDEBUGGING;

When the smoke is finished then the build dir contains a perl =20
configured with -Duseithreads -DDEBUGGING.

If a test failure is detected in the -Duseithreads -DDEBUGGING =20
configuration then it is "easy" to investigate it further since the =20
perl still exist.
If a test failure is detected in the -Duseithreads configuration then =20
one first has to build perl again and wait for it to finish.

What I propose is adding an option which enables the building of each =20
perl in a separate build directory:

1) -Duseithreads is build in /some/build-dir/1/  (or similar)
2) -Duseithreads -DDEBUGGING is build in /some/build-dir/2/  (or similar)


When the smoke is finished then it "easy" to investigate each perl =20
since it does not need to be rebuild (the configuration still exists).


What this also allow:

Assume: the smoke of the day before showed a test failure

A fix for it is added in blead and today the smoke is started.

Assume2: the smoke takes 13 hours to complete and you are impatient.

When you see that it is smoking the next configuration then you can =20
manually run the test script on the broken configuration to know the =20
result of the patch (that is, without needing to wait 13 hours and =20
without needing to build the perl manually.)



Abe said:
[15:06] <@abeltje> I'm torn between building in a separate directory =20
or installing in a separate directory
[15:09] <@Bram> You mean: configure with -Dprefix=3D.... and a make install =
?
[15:09] <@abeltje> yup
[15:09] <@abeltje> has the same benefits as building in a seperate dir imo


One reason against this:

The install directory does not contain the object files or the =20
makefiles. So changing a .c file and running make is not possible.


Comments/thoughts?


Kind regards,

Bram