mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-19 16:57:31 +01:00
72 lines
1.7 KiB
Makefile
72 lines
1.7 KiB
Makefile
include build/config.mak
|
|
|
|
default: epsilon.$(EXE)
|
|
|
|
.PHONY: info
|
|
info:
|
|
@echo "EPSILON_VERSION = $(EPSILON_VERSION)"
|
|
@echo "EPSILON_ONBOARDING_APP = $(EPSILON_ONBOARDING_APP)"
|
|
@echo "EPSILON_SOFTWARE_UPDATE_PROMPT = $(EPSILON_SOFTWARE_UPDATE_PROMPT)"
|
|
@echo "EPSILON_APPS = $(EPSILON_APPS)"
|
|
@echo "EPSILON_I18N = $(EPSILON_I18N)"
|
|
|
|
# Each sub-Makefile can either add objects to the $(objs) variable or define a
|
|
# new executable target. The $(objs) variable lists the objects that will be
|
|
# linked to every executable being generated. Each Makefile is also responsible
|
|
# for keeping the $(product) variable updated. This variable lists all files
|
|
# that could be generated during the build and that needs to be cleaned up
|
|
# afterwards.
|
|
|
|
products :=
|
|
|
|
# Library Makefiles
|
|
ifeq ($(USE_LIBA),0)
|
|
include liba/Makefile.bridge
|
|
else
|
|
SFLAGS += -ffreestanding -nostdinc -nostdlib
|
|
include liba/Makefile
|
|
include libaxx/Makefile
|
|
endif
|
|
include ion/Makefile
|
|
include kandinsky/Makefile
|
|
include poincare/Makefile
|
|
include python/Makefile
|
|
include escher/Makefile
|
|
# Executable Makefiles
|
|
include apps/Makefile
|
|
include build/struct_layout/Makefile
|
|
include quiz/Makefile # Quiz needs to be included at the end
|
|
|
|
products += $(objs)
|
|
|
|
all_objs = $(filter %.o, $(products))
|
|
dependencies = $(all_objs:.o=.d)
|
|
-include $(dependencies)
|
|
products += $(dependencies)
|
|
|
|
$(all_objs): $(generated_headers)
|
|
|
|
.SECONDARY: $(objs)
|
|
%.$(EXE): $(objs)
|
|
@echo "LD $@"
|
|
$(Q) $(LD) $^ $(LDFLAGS) -o $@
|
|
|
|
%.o: %.c
|
|
@echo "CC $@"
|
|
$(Q) $(CC) $(SFLAGS) $(CFLAGS) -c $< -o $@
|
|
|
|
%.o: %.s
|
|
@echo "AS $@"
|
|
$(Q) $(CC) $(SFLAGS) -c $< -o $@
|
|
|
|
%.o: %.cpp
|
|
@echo "CXX $@"
|
|
$(Q) $(CXX) $(SFLAGS) $(CXXFLAGS) -c $< -o $@
|
|
|
|
.PHONY: clean
|
|
clean:
|
|
@echo "CLEAN"
|
|
$(Q) rm -f $(products)
|
|
|
|
-include build/targets.$(PLATFORM).mak
|