* 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.
This commit is contained in:
Werner Lemberg 2021-02-16 17:04:51 +01:00
parent dfa7cca5f3
commit c3a0b43ec6
2 changed files with 27 additions and 11 deletions

View File

@ -1,3 +1,12 @@
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`.

View File

@ -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