UPPERCASE

[FROM] := a b c d e f g h i j k l m n o p q r s t u v w x y z - .
[TO]   := A B C D E F G H I J K L M N O P Q R S T U V W X Y Z _ _
 
UPPERCASE = $(strip $(eval __tmp := $1) \
     $(foreach c, $(join $(addsuffix :,$([FROM])),$([TO])), \
    $(eval __tmp :=    \
        $(subst $(word 1,$(subst :, ,$c)),$(word 2,$(subst :, ,$c)),\
            $(__tmp)))) \
$(__tmp))
 
 
 
BOARD_CFLAGS += -DBOARD_$(call UPPERCASE,$(BOARD))
BOARD_ASMFLAGS += -DBOARD_$(call UPPERCASE,$(BOARD))

HELP macros

define FLASH_HELP
		@printf '  - %-25s %s\n' "flash" "flash '$(TARGET)' application"
		@printf '  - %-25s %s\n' "flash_mbr" "flash '$(TARGET)' MBR"
		@printf '  - %-25s %s\n' "erase" "chip erase"
		@printf '  - %-25s %s\n' "recover" "unlock protected device"
endef
 
HELP_MACROS += FLASH_HELP
 
# Needed for the foreach loops to loop over the list of hooks, so that
# each hook call is properly separated by a newline.
define sep
 
 
endef
 
help:
	@echo "Most important targets:"
	@echo "  - setup                     create build environment"
ifneq ($(HELP_MACROS),)
	@echo ""
	@echo "Additional targets:"
	$(foreach p,$(HELP_MACROS), \
		@echo ""$(sep) \
		$(call $(p))$(sep) \
	)
endif