On 18.10.2013 11:32, janI wrote:
Hi.
due to the discussion in thread "Mentor a new build system", I have made a
proposal for a central Makefile located in main.
Hi Jan,
it is great that you are going to improve this part of the build
system. But I think that we need more details about how the proposed
build system works. Without them I can not really evaluate the proposal.
Some remarks regarding the missing options:
--from <module>
This is one of the more important options and one that I use
frequently (also in the form --all:<module>).
Note that if you are in <moduleA> and call 'make --from <moduleB>'
then all modules are built
a) which <moduleA> depends on
b) but not those that <moduleB> depends on
c) Both <moduleA> and <moduleB> are built.
--prepare
Also one option that is important for our every day work. Use case:
You make changes in <module> and are not sure if these changes are
compatible/incompatible. To be on the safe side you discard the output
of all depending modules. To save time you keep the output of all other
modules.
Often used together with '--from' like 'make --prepare --from svx'
to prepare a build after making changes in svx.
--since <module>
A variant of '--from'. The only difference is that <module> itself
is not built.
If your proposed approach is similar to what my script produces then
it is not too difficult to support --from/--since. I made some
experiments in this direction but was to lazy to finish them.
--job
--pre_job
--post_job
These are sometimes handy to run a non-standard command for all modules.
- I have not used the rest of the unsupported options and would not miss
them. Others may have other sets of options that are important to them.
Some general remarks:
- Why keep one makefile per module? Why not put all the inter-module
dependencies into one file (like my script does)?
- Why not use the oportunity to move (a part of) the build environment
out of the way to, say, build/ ?
- How are dependencies between modules handled (just the manual
dependencies from prj/build.lst or also the file dependencies introduced
by gmake).
- How is the output of the individual calls to dmake or GNU make
handled/made accessible. Ie. if there is a build error, how can I look
up the corresponding build output?
- Are the gmake makefiles included (run in the same process) or is GNU
make started for them it its own process?
Regards,
Andre
It has been roughly tested it, thanks to a clever utility from andre.
As discussed build.pl contains a lot of options, which need to be
considered in a makefile.
My suggestion is on
http://wiki.openoffice.org/wiki/Build_System_Analysis:build.pl_versus_makefile
Please feel free to edit/comment on the page. I have reduced to options a
lot, and some of them might be in use.
thanks in advance for your comments.
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]