diff options
-rw-r--r-- | ChangeLog | 9 | ||||
-rw-r--r-- | builds/toplevel.mk | 29 |
2 files changed, 27 insertions, 11 deletions
@@ -1,5 +1,14 @@ 2021-02-16 Werner Lemberg <wl@gnu.org> + * builds/toplevel.mk: Use rules for handling 'dlg'. + + Suggested by Alexei. + + (check_out_submodule, copy_submodule): New targets. + <top-level>: Replace calls to `shell` with rules. + +2021-02-16 Werner Lemberg <wl@gnu.org> + * builds/toplevel.mk: Avoid side effects of `shell`. We use a dummy variable to catch its output. Otherwise the `make` diff --git a/builds/toplevel.mk b/builds/toplevel.mk index e9cb62d35..d9de4145a 100644 --- a/builds/toplevel.mk +++ b/builds/toplevel.mk @@ -103,6 +103,22 @@ ifneq ($(findstring setup,$(MAKECMDGOALS)),) check_platform := 1 endif + +.PHONY: check_out_submodule copy_out_submodule + +check_out_submodule: + $(info Checking out submodule in `subprojects/dlg') + git submodule init + git submodule update + +copy_submodule: + $(info Copying files from `subprojects/dlg' to `src/dlg' and `include/dlg') + mkdir $(subst /,$(SEP),include/dlg) $(NO_OUTPUT) + $(COPY) $(subst /,$(SEP),subprojects/dlg/include/dlg/output.h include/dlg) + $(COPY) $(subst /,$(SEP),subprojects/dlg/include/dlg/dlg.h include/dlg) + $(COPY) $(subst /,$(SEP),subprojects/dlg/src/dlg/dlg.c src/dlg) + + # Include the automatic host platform detection rules when we need to # check the platform. # @@ -117,19 +133,10 @@ ifdef check_platform # ifeq ($(wildcard src/dlg/dlg.*),) ifeq ($(wildcard subprojects/dlg/*),) - $(info Checking out submodule in `subprojects/dlg') - dummy := $(shell git submodule init) - dummy := $(shell git submodule update) + copy_submodule: check_out_submodule endif - $(info Copying files from `subprojects/dlg' to `src/dlg' and `include/dlg') - dummy := $(shell mkdir $(subst /,$(SEP),include/dlg) $(NO_OUTPUT)) - dummy := $(shell $(COPY) \ - $(subst /,$(SEP),subprojects/dlg/include/dlg/output.h include/dlg)) - dummy := $(shell $(COPY) \ - $(subst /,$(SEP),subprojects/dlg/include/dlg/dlg.h include/dlg)) - dummy := $(shell $(COPY) \ - $(subst /,$(SEP),subprojects/dlg/src/dlg/dlg.c src/dlg)) + setup: copy_submodule endif # This rule makes sense for Unix only to remove files created by a run of |