mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
84 lines
2.4 KiB
Makefile
84 lines
2.4 KiB
Makefile
# Define handy targets
|
|
# Those can be built easily by simply invoking "make target.ext". The named file
|
|
# will be built in $(BUILD_DIR).
|
|
|
|
HANDY_TARGETS ?=
|
|
HANDY_TARGETS_EXTENSIONS ?=
|
|
|
|
# Epsilon base target
|
|
|
|
base_src = $(ion_src) $(liba_src) $(default_kandinsky_src) $(escher_src) $(libaxx_src) $(poincare_src) $(python_src)
|
|
|
|
epsilon_src = $(base_src) $(apps_src)
|
|
|
|
$(BUILD_DIR)/epsilon.$(EXE): $(call flavored_object_for,$(epsilon_src))
|
|
|
|
HANDY_TARGETS += epsilon
|
|
|
|
# Epsilon flavored targets
|
|
|
|
epsilon_flavors = \
|
|
onboarding \
|
|
onboarding.update \
|
|
onboarding.beta
|
|
|
|
define rule_for_epsilon_flavor
|
|
$$(BUILD_DIR)/epsilon.$(1).$$(EXE): $$(call flavored_object_for,$$(epsilon_src),$(1))
|
|
endef
|
|
|
|
$(foreach flavor,$(epsilon_flavors),$(eval $(call rule_for_epsilon_flavor,$(flavor))))
|
|
|
|
HANDY_TARGETS += $(foreach flavor,$(epsilon_flavors),epsilon.$(flavor))
|
|
|
|
# Epsilon official targets
|
|
|
|
epsilon_official_flavors = \
|
|
official \
|
|
official.onboarding \
|
|
official.onboarding.update \
|
|
official.onboarding.beta
|
|
|
|
define rule_for_unconfirmed_official_flavor
|
|
$$(BUILD_DIR)/epsilon.$(1).$$(EXE):
|
|
@echo "CAUTION: You are trying to build an official NumWorks firmware."
|
|
@echo "Distribution of such firmware by a third party is prohibited."
|
|
@echo "Please set the ACCEPT_OFFICIAL_TOS environment variable to proceed."
|
|
@exit -1
|
|
endef
|
|
|
|
ifeq ($(ACCEPT_OFFICIAL_TOS),1)
|
|
rule_for_official_epsilon_flavor = rule_for_epsilon_flavor
|
|
else
|
|
rule_for_official_epsilon_flavor = rule_for_unconfirmed_official_flavor
|
|
endif
|
|
|
|
$(foreach flavor,$(epsilon_official_flavors),$(eval $(call $(rule_for_official_epsilon_flavor),$(flavor))))
|
|
|
|
HANDY_TARGETS += $(foreach flavor,$(epsilon_official_flavors),epsilon.$(flavor))
|
|
|
|
# Test
|
|
|
|
test_runner_src = $(base_src) $(apps_tests_src) $(runner_src) $(tests_src)
|
|
|
|
$(BUILD_DIR)/test.$(EXE): $(call flavored_object_for,$(test_runner_src),consoledisplay)
|
|
|
|
HANDY_TARGETS += test
|
|
|
|
# Load platform-specific targets
|
|
# We include them before the standard ones to give them precedence.
|
|
-include build/targets.$(PLATFORM).mak
|
|
|
|
# Generate handy targets rules
|
|
# Define handy targets
|
|
# Those can be built easily by simply invoking "make target.ext". The named file
|
|
# will be built in $(BUILD_DIR).
|
|
|
|
HANDY_TARGETS_EXTENSIONS += $(EXE)
|
|
|
|
define handy_target_rule
|
|
.PHONY: $(1).$(2)
|
|
$(1).$(2): $$(BUILD_DIR)/$(1).$(2)
|
|
endef
|
|
|
|
$(foreach extension,$(HANDY_TARGETS_EXTENSIONS),$(foreach executable,$(HANDY_TARGETS),$(eval $(call handy_target_rule,$(executable),$(extension)))))
|