|
From: | Hiebert, Darren \(MS\) |
Subject: | Pruning of dependencies |
Date: | Tue, 1 May 2007 08:41:31 -0700 |
I am having a problem with my target not being built when a dependency is newer than the target.
When I run "make -d" to examine what it happening, I see that when it evaluates my source file sub-dependencies (i.e. decendent dependencies) it prunes every single one (i.e. "Pruning file `myfile'."). I can't figure out why it is pruning them all.
What are the reasons that dependencies are pruned when evaluating whether to build a target?
Here is some trimmed debug output of make:
Updating goal targets....
Considering target file `default'.
File `default' does not exist.
Considering target file `all'.
File `all' does not exist.
Considering target file `analyzer'.
File `analyzer' does not exist.
Considering target file `EIFGEN/W_code/mission_analyzer'.
Considering target file `EIFGEN/W_code/Makefile'.
Considering target file `EIFGEN/W_code/Makefile.SH'.
Considering target file `EIFGEN/W_code/E1/einit.c'.
Considering target file `mission_analyzer.epr'.
Pruning file `Ace.ace'.
Considering target file `/home/dhiebert/scr/2103/System/Scripts/exref'.
Looking for an implicit rule for `/home/dhiebert/scr/2103/System/Scripts/exref'.
No implicit rule found for `/home/dhiebert/scr/2103/System/Scripts/exref'.
Finished prerequisites of target file `/home/dhiebert/scr/2103/System/Scripts/exref'.
No need to remake target `/home/dhiebert/scr/2103/System/Scripts/exref'.
Considering target file `/usr/local/bin/etyperef'.
Looking for an implicit rule for `/usr/local/bin/etyperef'.
No implicit rule found for `/usr/local/bin/etyperef'.
Finished prerequisites of target file `/usr/local/bin/etyperef'.
No need to remake target `/usr/local/bin/etyperef'.
Considering target file `../eiffel.mak'.
File `../eiffel.mak' was considered already.
Pruning file `Ace.ace'.
Pruning file `../../Application/Help/about_box.e'.
Pruning file `../../Application/Help/ascii_document_viewer.e'.
[**full list of pruned files elided for brevity**]
Pruning file `../../Mission/General/mission_seed_configuration.e'.
Pruning file `../../Mission/General/mission_services.e'.
Finished prerequisites of target file `mission_analyzer.epr'.
Giving up on target file `mission_analyzer.epr'.
Finished prerequisites of target file `EIFGEN/W_code/E1/einit.c'.
Giving up on target file `EIFGEN/W_code/E1/einit.c'.
Finished prerequisites of target file `EIFGEN/W_code/Makefile.SH'.
Giving up on target file `EIFGEN/W_code/Makefile.SH'.
Finished prerequisites of target file `EIFGEN/W_code/Makefile'.
Giving up on target file `EIFGEN/W_code/Makefile'.
Finished prerequisites of target file `EIFGEN/W_code/mission_analyzer'.
Giving up on target file `EIFGEN/W_code/mission_analyzer'.
Finished prerequisites of target file `analyzer'.
Giving up on target file `analyzer'.
Finished prerequisites of target file `all'.
Giving up on target file `all'.
Finished prerequisites of target file `default'.
Giving up on target file `default'.
In my case, one of my .e files was newer than the target, but it was pruned.
[I know you answered this question for me privately about a year ago, but I cannot find that email. If I ask it here, the answer will be preserved for posterity.]
Darren
[Prev in Thread] | Current Thread | [Next in Thread] |