Details
-
Bug
-
Resolution: Fixed
-
P4
-
8
-
b03
Description
BuildCorba.gmk uses the clever trick of including generated makefile snippets to force reloading of the whole makefile. There is an unfortunate drawback to using this trick. Any rules triggered only for generating the included makefile will not cause the build to fail, if the include statement is marked as optional with a dash. Possible solutions:
* Include without the dash. This results in a warning printed every time the build is run with a clean outputdir.
* Add explicit dependencies from "all" to the generated makefiles. Solves the problem when all is the target to build. This is always the case here so this might work. The error message on such a fail is a but confusing however. ("No rule to make target" instead of "recipe for target X failed")
* In BuildLangtools.gmk this works by accident because "all" is not listed as PHONY, which causes the build to fail with "No rule to make target 'all', needed by 'default'.
The best solution is probably to discard this include trick and solve that problem some other way.
* Include without the dash. This results in a warning printed every time the build is run with a clean outputdir.
* Add explicit dependencies from "all" to the generated makefiles. Solves the problem when all is the target to build. This is always the case here so this might work. The error message on such a fail is a but confusing however. ("No rule to make target" instead of "recipe for target X failed")
* In BuildLangtools.gmk this works by accident because "all" is not listed as PHONY, which causes the build to fail with "No rule to make target 'all', needed by 'default'.
The best solution is probably to discard this include trick and solve that problem some other way.
Attachments
Issue Links
- duplicates
-
JDK-8026767 CORBA build failures don't kill the overall build.
-
- Closed
-
-
JDK-8015647 "make -n" should not execute rules, but it does
-
- Closed
-