Issue 62795 - mkout.pl is called for every (sub-)target
Summary: mkout.pl is called for every (sub-)target
Status: CLOSED FIXED
Alias: None
Product: Build Tools
Classification: Code
Component: solenv (show other issues)
Version: current
Hardware: All All
: P3 Trivial (vote)
Target Milestone: OOo 2.0.3
Assignee: hjs
QA Contact: issues@tools
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2006-03-05 20:44 UTC by quetschke
Modified: 2006-04-20 12:28 UTC (History)
4 users (show)

See Also:
Issue Type: DEFECT
Latest Confirmation in: ---
Developer Difficulty: ---


Attachments
Reduce calling of mkout.pl (1.15 KB, patch)
2006-03-05 20:46 UTC, quetschke
no flags Details | Diff
Like this? (1.32 KB, patch)
2006-03-06 10:09 UTC, mkretzschmar
no flags Details | Diff
Testing this now ... (1.62 KB, patch)
2006-03-06 19:56 UTC, quetschke
no flags Details | Diff
This works for now ... (1.74 KB, patch)
2006-03-07 03:34 UTC, quetschke
no flags Details | Diff

Note You need to log in before you can comment on or make changes to this issue.
Description quetschke 2006-03-05 20:44:55 UTC
The perl script mkout.pl is called for every subtarget that is started by
build.pl. The following patch is a proof of principle fix (non-4nt only) for
this problem. IMHO it is a problem because we fork a shell, that forks a perl
to create a few directories.

A better fix wold be to move this task into build.pl and do it exactly
once per module.
Comment 1 quetschke 2006-03-05 20:46:34 UTC
Created attachment 34593 [details]
Reduce calling of mkout.pl
Comment 2 mkretzschmar 2006-03-06 10:08:08 UTC
Couldn't the "test -e" be replaced by a simple make dependency?
Comment 3 mkretzschmar 2006-03-06 10:09:11 UTC
Created attachment 34599 [details]
Like this?
Comment 4 quetschke 2006-03-06 14:17:54 UTC
Did I assign this to Michael? It was intended as a CC ;)

@mkretzschmar: Yes, looks better this way! I was afraid of unnecessary
"rebuilding" of this target, but there should be no dependencies for myworld.mk.

@ause: FYI
Comment 5 quetschke 2006-03-06 19:56:21 UTC
Created attachment 34615 [details]
Testing this now ...
Comment 6 quetschke 2006-03-07 03:20:38 UTC
A can of worms ...

My last patch cannot work because it places a real target
 $(OUT)$/inc$/myworld.mk :
into settings.mk and as settings.mk is not part of the startup code this
inhibits the build of the desired target as dmake builds the first real (non-%)
target it finds when no target is requested on the command line.

Using an infered % target works around this problem. In principle one could put
the target definition into startup.mk, but $(OUT) is not yet defined there and
evaluates to "". Using $$(blah) for late expansion only works for dependencies,
and not for targets. So, to get this right one would have to move a lot of
included makefiles from the "normal" makefiles to .INCLUDES in startup.mk.

This is a can of worms I don't want to open right now.
Comment 7 quetschke 2006-03-07 03:34:05 UTC
Created attachment 34620 [details]
This works for now ...
Comment 8 quetschke 2006-03-07 18:20:13 UTC
Committed to vq29, reassigning for verification.
Comment 9 quetschke 2006-03-07 18:20:36 UTC
@ause: Please verify.
Comment 10 hjs 2006-04-20 12:28:03 UTC
.