From ae524e917fe36662f9d6153c0022e5f5deb22c96 Mon Sep 17 00:00:00 2001 From: Juan Carrano <j.carrano@fu-berlin.de> Date: Wed, 5 Dec 2018 12:33:12 +0100 Subject: [PATCH] Makefile.include: flash: do not peek into MAKECMDGOALS. When flash-only was introduced (in #8373), the `flash` rule was made conditionally dependent on `all` by looking for `flash-only` in MAKECMDGOALS. This was done to avoid code duplication. There's a cleaner way, by using canned recipes. When we upgrade the requirements to gnu make 4, the flash recipe can be defined as ?=. --- Makefile.include | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/Makefile.include b/Makefile.include index 699ff7931b..82331e03d6 100644 --- a/Makefile.include +++ b/Makefile.include @@ -511,16 +511,19 @@ distclean: -@for i in $(USEPKG) ; do "$(MAKE)" -C $(RIOTPKG)/$$i distclean ; done -@rm -rf $(BINDIRBASE) -# if make target != 'flash-only', add target 'all' to ensure build before flash -ifeq (,$(filter flash-only, $(MAKECMDGOALS))) - BUILD_BEFORE_FLASH = all -endif +define flash-recipe + $(call check_cmd,$(FLASHER),Flash program) + $(FLASHER) $(FFLAGS) +endef + +# Do not add dependencies to "flash" directly, use FLASHDEPS, as this is shared +# with flash-only too -flash: $(BUILD_BEFORE_FLASH) $(FLASHDEPS) - $(call check_cmd,$(FLASHER),Flash program) - $(FLASHER) $(FFLAGS) +flash: all $(FLASHDEPS) + $(flash-recipe) -flash-only: flash +flash-only: $(FLASHDEPS) + $(flash-recipe) preflash: $(BUILD_BEFORE_FLASH) $(PREFLASHER) $(PREFFLAGS) -- GitLab