URL: <https://savannah.gnu.org/bugs/?56301>
Summary: Mandatory/Optional include files and pattern rule with multi-targets Project: make Submitted by: masahiroy Submitted on: Fri 10 May 2019 04:33:49 PM UTC Severity: 3 - Normal Item Group: None Status: None Privacy: Public Assigned to: None Open/Closed: Open Discussion Lock: Any Component Version: None Operating System: None Fixed Release: None Triage Status: None _______________________________________________________ Details: I see a problem when a pattern rule with multiple targets are responsible for creating included files, some of which are mandatory, and the others are optional. I attached two test cases. Both of them include two files, inc_a.mk and inc_b.mk The difference between the two is: For Makefile1, inc_a.mk is optional, inc_b.mk is mandatory. For Makefile2, inc_a.mk is mandatory, inc_b.mk is optional. inc_a.mk and inc_b.mk are supposed to be simultaneously created by a pattern rule (but it always fails). The behavior is completely different between Makefile1 and Makefile2. $ make -f Makefile1 Makefile1:1: starting target in question: inc_b.mk false Makefile1:8: inc_b.mk: No such file or directory make: *** [Makefile1;12: inc_b.mk] Error 1 Make was terminated immediately when it failed to create inc_b.mk $ make -f Makefile2 Makefile2:1: starting target in question: inc_b.mk false make: Failed to remake makefile 'inc_a.mk'. hello This also failed to create included files, and showed "Failed to remake" message, but continued running, then executed the 'all' target. I think the reason is the target in question in the pattern rule is inc_b.mk, which is an optional include file. As far as I examined, the last included file becomes the target in question of the pattern rule. So, I see some sort of sense in this behavior. However, Makefile2 failed to create the mandatory include file, inc_a.mk, so Make cannot (should not) continue parsing the Makefile. One way to fix this is, the target in question should be chosen from mandatory include files over optional ones. _______________________________________________________ File Attachments: ------------------------------------------------------- Date: Fri 10 May 2019 04:33:49 PM UTC Name: Makefile1 Size: 163B By: masahiroy <http://savannah.gnu.org/bugs/download.php?file_id=46891> ------------------------------------------------------- Date: Fri 10 May 2019 04:33:49 PM UTC Name: Makefile2 Size: 163B By: masahiroy <http://savannah.gnu.org/bugs/download.php?file_id=46892> _______________________________________________________ Reply to this item at: <https://savannah.gnu.org/bugs/?56301> _______________________________________________ Message sent via Savannah https://savannah.gnu.org/ _______________________________________________ Bug-make mailing list Bug-make@gnu.org https://lists.gnu.org/mailman/listinfo/bug-make