mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-01-18 16:27:34 +01:00
Makefiles: avoid building all sources for each target; introduce more
modularity
This commit is contained in:
21
Makefile
21
Makefile
@@ -48,9 +48,9 @@ $(BUILD_DIR)%/.:
|
||||
# To make objects dependent on their directory, we need a second expansion
|
||||
.SECONDEXPANSION:
|
||||
|
||||
# Each sub-Makefile can either add sources to the $(src) variable or define a
|
||||
# new executable target. The $(src) variable lists the sources that will be
|
||||
# built and linked to every executable being generated.
|
||||
# Each sub-Makefile can either add sources to $(%_src) variables or define a
|
||||
# new executable target. The $(%_src) variables list the sources that can be
|
||||
# built and linked to executables being generated.
|
||||
|
||||
ifeq ($(USE_LIBA),0)
|
||||
include liba/Makefile.bridge
|
||||
@@ -70,7 +70,7 @@ include scripts/struct_layout/Makefile
|
||||
include scripts/scenario/Makefile
|
||||
include quiz/Makefile # Quiz needs to be included at the end
|
||||
|
||||
all_src = src ion_device_dfu_relocated_src ion_device_dfu_xip flasher_src bench_src epsilon_src runner_src tests
|
||||
all_src = app_src escher_src ion_src kandinsky_src liba_src libaxx_src poincare_src python_src ion_device_dfu_relocated_src ion_device_dfu_xip epsilon_src runner_src flasher_src bench_src tests_src
|
||||
all_objs = $(call object_for,$(all_src))
|
||||
.SECONDARY: $(all_objs)
|
||||
|
||||
@@ -83,14 +83,15 @@ all_objs = $(call object_for,$(all_src))
|
||||
executables = epsilon epsilon.on-boarding epsilon.on-boarding.update epsilon.on-boarding.beta test
|
||||
|
||||
#define platform generic targets
|
||||
all_epsilon_common_src = $(ion_src) $(liba_src) $(kandinsky_src) $(epsilon_src) $(app_src) $(escher_src) $(libaxx_src) $(poincare_src) $(python_src) $(ion_device_dfu_relocated_src)
|
||||
all_epsilon_default_src = $(all_epsilon_common_src) $(apps_launch_default_src) $(apps_prompt_none_src)
|
||||
|
||||
$(BUILD_DIR)/epsilon.$(EXE): $(call object_for,$(src) $(epsilon_src) $(ion_device_dfu_relocated_src) $(apps_launch_default_src) $(apps_prompt_none_src))
|
||||
$(BUILD_DIR)/epsilon.$(EXE): $(call object_for,$(all_epsilon_default_src))
|
||||
$(BUILD_DIR)/epsilon.on-boarding.$(EXE): $(call object_for,$(all_epsilon_common_src) $(apps_launch_on_boarding_src) $(apps_prompt_none_src))
|
||||
$(BUILD_DIR)/epsilon.on-boarding.update.$(EXE): $(call object_for,$(all_epsilon_common_src) $(apps_launch_on_boarding_src) $(apps_prompt_update_src))
|
||||
$(BUILD_DIR)/epsilon.on-boarding.beta.$(EXE): $(call object_for,$(all_epsilon_common_src) $(apps_launch_on_boarding_src) $(apps_prompt_beta_src))
|
||||
|
||||
$(BUILD_DIR)/epsilon.on-boarding.$(EXE): $(call object_for,$(src) $(epsilon_src) $(ion_device_dfu_relocated_src) $(apps_launch_on_boarding_src) $(apps_prompt_none_src))
|
||||
$(BUILD_DIR)/epsilon.on-boarding.update.$(EXE): $(call object_for,$(src) $(epsilon_src) $(ion_device_dfu_relocated_src) $(apps_launch_on_boarding_src) $(apps_prompt_update_src))
|
||||
$(BUILD_DIR)/epsilon.on-boarding.beta.$(EXE): $(call object_for,$(src) $(epsilon_src) $(ion_device_dfu_relocated_src) $(apps_launch_on_boarding_src) $(apps_prompt_beta_src))
|
||||
|
||||
$(BUILD_DIR)/test.$(EXE): $(BUILD_DIR)/quiz/src/tests_symbols.o $(call object_for,$(src) $(ion_device_dfu_relocated_src) $(tests) $(runner_src))
|
||||
$(BUILD_DIR)/test.$(EXE): $(BUILD_DIR)/quiz/src/tests_symbols.o $(call object_for,$(ion_src) $(liba_src) $(kandinsky_src) $(escher_src) $(libaxx_src) $(poincare_src) $(python_src) $(ion_device_dfu_relocated_src) $(tests_src) $(runner_src) $(app_calculation_src) $(app_probability_src) $(app_regression_src) $(app_sequence_src) $(app_shared_src) $(app_statistics_src) $(app_solver_src))
|
||||
|
||||
# Load platform-specific targets
|
||||
# We include them before the standard ones to give them precedence.
|
||||
|
||||
@@ -95,9 +95,7 @@ epsilon_src += $(addprefix apps/, \
|
||||
i18n.py \
|
||||
)
|
||||
|
||||
all_app_src = $(app_src) $(epsilon_src) $(apps_launch_on_boarding_src) $(apps_launch_default_src) $(apps_prompt_none_src) $(apps_container_prompt_update) $(apps_prompt_beta_src)
|
||||
all_app_src = $(app_src) $(epsilon_src) $(apps_launch_on_boarding_src) $(apps_launch_default_src) $(apps_prompt_none_src) $(apps_container_prompt_update) $(apps_prompt_beta_src) $(tests_src)
|
||||
|
||||
$(call object_for,$(all_app_src)): $(BUILD_DIR)/apps/i18n.h
|
||||
$(call object_for,$(all_app_src)): $(BUILD_DIR)/python/port/genhdr/qstrdefs.generated.h
|
||||
|
||||
src += $(app_src)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
apps += Calculation::App
|
||||
app_headers += apps/calculation/app.h
|
||||
|
||||
app_src += $(addprefix apps/calculation/,\
|
||||
app_calculation_src = $(addprefix apps/calculation/,\
|
||||
app.cpp \
|
||||
calculation.cpp \
|
||||
calculation_store.cpp \
|
||||
@@ -13,6 +13,8 @@ app_src += $(addprefix apps/calculation/,\
|
||||
selectable_table_view.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_calculation_src)
|
||||
|
||||
i18n_files += $(addprefix apps/calculation/,\
|
||||
base.de.i18n\
|
||||
base.en.i18n\
|
||||
@@ -21,7 +23,7 @@ i18n_files += $(addprefix apps/calculation/,\
|
||||
base.pt.i18n\
|
||||
)
|
||||
|
||||
tests += $(addprefix apps/calculation/test/,\
|
||||
tests_src += $(addprefix apps/calculation/test/,\
|
||||
calculation_store.cpp\
|
||||
)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
apps += Code::App
|
||||
app_headers += apps/code/app.h
|
||||
|
||||
app_src += $(addprefix apps/code/,\
|
||||
app_code_src = $(addprefix apps/code/,\
|
||||
app.cpp \
|
||||
console_controller.cpp \
|
||||
console_edit_cell.cpp \
|
||||
@@ -23,6 +23,8 @@ app_src += $(addprefix apps/code/,\
|
||||
variable_box_controller.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_code_src)
|
||||
|
||||
i18n_files += $(addprefix apps/code/,\
|
||||
base.de.i18n\
|
||||
base.en.i18n\
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
apps += Graph::App
|
||||
app_headers += apps/graph/app.h
|
||||
|
||||
app_src += $(addprefix apps/graph/,\
|
||||
app_graph_src = $(addprefix apps/graph/,\
|
||||
app.cpp \
|
||||
cartesian_function_store.cpp \
|
||||
graph/banner_view.cpp \
|
||||
@@ -26,6 +26,8 @@ app_src += $(addprefix apps/graph/,\
|
||||
values/values_controller.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_graph_src)
|
||||
|
||||
i18n_files += $(addprefix apps/graph/,\
|
||||
base.de.i18n\
|
||||
base.en.i18n\
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
app_src += $(addprefix apps/hardware_test/,\
|
||||
app_hardware_test_src = $(addprefix apps/hardware_test/,\
|
||||
app.cpp \
|
||||
arrow_view.cpp \
|
||||
battery_test_controller.cpp \
|
||||
@@ -14,3 +14,5 @@ app_src += $(addprefix apps/hardware_test/,\
|
||||
serial_number_controller.cpp \
|
||||
vblank_test_controller.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_hardware_test_src)
|
||||
|
||||
@@ -1,9 +1,11 @@
|
||||
app_src += $(addprefix apps/home/,\
|
||||
app_home_src = $(addprefix apps/home/,\
|
||||
app.cpp \
|
||||
app_cell.cpp \
|
||||
controller.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_home_src)
|
||||
|
||||
i18n_files += $(addprefix apps/home/,\
|
||||
base.de.i18n \
|
||||
base.en.i18n \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
app_src += $(addprefix apps/on_boarding/,\
|
||||
app_on_boarding_src = $(addprefix apps/on_boarding/,\
|
||||
app.cpp \
|
||||
language_controller.cpp \
|
||||
logo_controller.cpp \
|
||||
@@ -7,6 +7,8 @@ app_src += $(addprefix apps/on_boarding/,\
|
||||
power_on_self_test.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_on_boarding_src)
|
||||
|
||||
i18n_files += $(addprefix apps/on_boarding/,\
|
||||
base.de.i18n\
|
||||
base.en.i18n\
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
apps += Probability::App
|
||||
app_headers += apps/probability/app.h
|
||||
|
||||
app_src += $(addprefix apps/probability/,\
|
||||
app_probability_src = $(addprefix apps/probability/,\
|
||||
app.cpp \
|
||||
calculation/calculation.cpp \
|
||||
calculation/discrete_calculation.cpp \
|
||||
@@ -27,6 +27,8 @@ app_src += $(addprefix apps/probability/,\
|
||||
responder_image_cell.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_probability_src)
|
||||
|
||||
i18n_files += $(addprefix apps/probability/,\
|
||||
base.de.i18n\
|
||||
base.en.i18n\
|
||||
@@ -35,7 +37,7 @@ i18n_files += $(addprefix apps/probability/,\
|
||||
base.pt.i18n\
|
||||
)
|
||||
|
||||
tests += $(addprefix apps/probability/test/,\
|
||||
tests_src += $(addprefix apps/probability/test/,\
|
||||
erf_inv.cpp\
|
||||
)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
apps += Regression::App
|
||||
app_headers += apps/regression/app.h
|
||||
|
||||
app_src += $(addprefix apps/regression/,\
|
||||
app_regression_src = $(addprefix apps/regression/,\
|
||||
app.cpp \
|
||||
banner_view.cpp \
|
||||
calculation_controller.cpp \
|
||||
@@ -21,7 +21,7 @@ app_src += $(addprefix apps/regression/,\
|
||||
store_parameter_controller.cpp \
|
||||
)
|
||||
|
||||
app_src += $(addprefix apps/regression/model/,\
|
||||
app_regression_src += $(addprefix apps/regression/model/,\
|
||||
cubic_model.cpp \
|
||||
exponential_model.cpp \
|
||||
linear_model.cpp \
|
||||
@@ -34,6 +34,8 @@ app_src += $(addprefix apps/regression/model/,\
|
||||
trigonometric_model.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_regression_src)
|
||||
|
||||
i18n_files += $(addprefix apps/regression/,\
|
||||
base.de.i18n\
|
||||
base.en.i18n\
|
||||
@@ -43,7 +45,7 @@ i18n_files += $(addprefix apps/regression/,\
|
||||
base.universal.i18n\
|
||||
)
|
||||
|
||||
tests += $(addprefix apps/regression/test/,\
|
||||
tests_src += $(addprefix apps/regression/test/,\
|
||||
model.cpp\
|
||||
)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
apps += Sequence::App
|
||||
app_headers += apps/sequence/app.h
|
||||
|
||||
app_src += $(addprefix apps/sequence/,\
|
||||
app_sequence_src = $(addprefix apps/sequence/,\
|
||||
app.cpp \
|
||||
graph/curve_parameter_controller.cpp \
|
||||
graph/curve_view_range.cpp \
|
||||
@@ -22,6 +22,8 @@ app_src += $(addprefix apps/sequence/,\
|
||||
sequence_title_cell.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_sequence_src)
|
||||
|
||||
i18n_files += $(addprefix apps/sequence/,\
|
||||
base.de.i18n\
|
||||
base.en.i18n\
|
||||
@@ -30,7 +32,7 @@ i18n_files += $(addprefix apps/sequence/,\
|
||||
base.pt.i18n\
|
||||
)
|
||||
|
||||
tests += $(addprefix apps/sequence/test/,\
|
||||
tests_src += $(addprefix apps/sequence/test/,\
|
||||
sequence.cpp\
|
||||
)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
apps += Settings::App
|
||||
app_headers += apps/settings/app.h
|
||||
|
||||
app_src += $(addprefix apps/settings/,\
|
||||
app_settings_src = $(addprefix apps/settings/,\
|
||||
app.cpp \
|
||||
main_controller.cpp \
|
||||
settings_message_tree.cpp \
|
||||
@@ -14,6 +14,8 @@ app_src += $(addprefix apps/settings/,\
|
||||
sub_menu/preferences_controller.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_settings_src)
|
||||
|
||||
apps_prompt_none_src += apps/settings/main_controller_prompt_none.cpp
|
||||
apps_prompt_beta_src += apps/settings/main_controller_prompt_beta.cpp
|
||||
apps_prompt_update_src += apps/settings/main_controller_prompt_update.cpp
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
app_src += $(addprefix apps/shared/,\
|
||||
app_shared_src = $(addprefix apps/shared/,\
|
||||
banner_view.cpp \
|
||||
buffer_function_title_cell.cpp \
|
||||
buffer_text_view_with_text_field.cpp \
|
||||
@@ -74,3 +74,5 @@ app_src += $(addprefix apps/shared/,\
|
||||
xy_banner_view.cpp\
|
||||
zoom_parameter_controller.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_shared_src)
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
apps += Solver::App
|
||||
app_headers += apps/solver/app.h
|
||||
|
||||
app_src += $(addprefix apps/solver/,\
|
||||
app_solver_src = $(addprefix apps/solver/,\
|
||||
app.cpp \
|
||||
equation_models_parameter_controller.cpp \
|
||||
equation.cpp \
|
||||
@@ -12,6 +12,8 @@ app_src += $(addprefix apps/solver/,\
|
||||
solutions_controller.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_solver_src)
|
||||
|
||||
i18n_files += $(addprefix apps/solver/,\
|
||||
base.de.i18n\
|
||||
base.en.i18n\
|
||||
@@ -20,7 +22,7 @@ i18n_files += $(addprefix apps/solver/,\
|
||||
base.pt.i18n\
|
||||
)
|
||||
|
||||
tests += $(addprefix apps/solver/test/,\
|
||||
tests_src += $(addprefix apps/solver/test/,\
|
||||
equation_store.cpp\
|
||||
)
|
||||
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
apps += Statistics::App
|
||||
app_headers += apps/statistics/app.h
|
||||
|
||||
app_src += $(addprefix apps/statistics/,\
|
||||
app_statistics_src = $(addprefix apps/statistics/,\
|
||||
app.cpp \
|
||||
box_axis_view.cpp \
|
||||
box_banner_view.cpp \
|
||||
@@ -23,6 +23,8 @@ app_src += $(addprefix apps/statistics/,\
|
||||
store_controller.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_statistics_src)
|
||||
|
||||
i18n_files += $(addprefix apps/statistics/,\
|
||||
base.de.i18n\
|
||||
base.en.i18n\
|
||||
@@ -31,7 +33,7 @@ i18n_files += $(addprefix apps/statistics/,\
|
||||
base.pt.i18n\
|
||||
)
|
||||
|
||||
tests += $(addprefix apps/statistics/test/,\
|
||||
tests_src += $(addprefix apps/statistics/test/,\
|
||||
store.cpp\
|
||||
)
|
||||
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
app_src += $(addprefix apps/usb/,\
|
||||
app_usb_src = $(addprefix apps/usb/,\
|
||||
app.cpp \
|
||||
usb_connected_controller.cpp \
|
||||
)
|
||||
|
||||
app_src += $(app_usb_src)
|
||||
|
||||
i18n_files += $(addprefix apps/usb/,\
|
||||
base.de.i18n\
|
||||
base.en.i18n\
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
SFLAGS += -Iescher/include
|
||||
|
||||
src += $(addprefix escher/src/,\
|
||||
escher_src += $(addprefix escher/src/,\
|
||||
alternate_empty_view_controller.cpp \
|
||||
app.cpp \
|
||||
bank_view_controller.cpp \
|
||||
@@ -114,5 +114,5 @@ $(eval $(call rule_for, \
|
||||
define depends_on_image
|
||||
$(call object_for,$(1)): $(call object_for,$(2))
|
||||
$(call object_for,$(1)): SFLAGS += $(foreach d,$(sort $(dir $(call object_for,$(1)))),-I$(d))
|
||||
src += $(2)
|
||||
escher_src += $(2)
|
||||
endef
|
||||
|
||||
@@ -22,7 +22,7 @@ include ion/src/shared/tools/Makefile
|
||||
initializer_list = $(shell echo $(1) | sed "s/\(.\)/'\1',/g")0
|
||||
$(call object_for,ion/src/shared/platform_info.cpp): SFLAGS += -DPATCH_LEVEL="$(call initializer_list,$(PATCH_LEVEL))" -DEPSILON_VERSION="$(call initializer_list,$(EPSILON_VERSION))"
|
||||
|
||||
src += $(addprefix ion/src/shared/, \
|
||||
ion_src += $(addprefix ion/src/shared/, \
|
||||
crc32_eat_byte.cpp \
|
||||
decompress.cpp \
|
||||
events.cpp \
|
||||
@@ -32,9 +32,9 @@ src += $(addprefix ion/src/shared/, \
|
||||
unicode/utf8_helper.cpp\
|
||||
)
|
||||
|
||||
src += ion/src/external/lz4/lz4.c
|
||||
ion_src += ion/src/external/lz4/lz4.c
|
||||
|
||||
tests += $(addprefix ion/test/,\
|
||||
tests_src += $(addprefix ion/test/,\
|
||||
crc32.cpp\
|
||||
events.cpp\
|
||||
keyboard.cpp\
|
||||
|
||||
@@ -1,11 +1,11 @@
|
||||
src += $(addprefix ion/src/blackbox/, \
|
||||
ion_src += $(addprefix ion/src/blackbox/, \
|
||||
boot.cpp \
|
||||
ion.cpp \
|
||||
display.cpp \
|
||||
events.cpp \
|
||||
)
|
||||
|
||||
src += $(addprefix ion/src/shared/, \
|
||||
ion_src += $(addprefix ion/src/shared/, \
|
||||
console_line.cpp \
|
||||
console_stdio.cpp \
|
||||
crc32.cpp \
|
||||
|
||||
@@ -7,13 +7,13 @@
|
||||
* To use it, first create the two epsilon versions to compare, in a library
|
||||
* format:
|
||||
* git checkout first_hash
|
||||
* make -j8 PLATFORM=blackbox clean libepsilon_first.o
|
||||
* make -j8 PLATFORM=blackbox clean build/blackbox/libepsilon_first.o
|
||||
* git checkout second_hash
|
||||
* make -j8 PLATFORM=blackbox clean libepsilon_second.o
|
||||
* make -j8 PLATFORM=blackbox clean build/blackbox/libepsilon_second.o
|
||||
*
|
||||
* To compare the versions on a given scenario:
|
||||
* make -j8 PLATFORM=blackbox compare
|
||||
* ./compare < path/to/scenario
|
||||
* make -j8 PLATFORM=blackbox build/blackbox/compare
|
||||
* ./build/blackbox/compare < path/to/scenario
|
||||
* To fuzz over scenarios that are in a folder named "tests":
|
||||
* make -j8 PLATFORM=blackbox TOOLCHAIN=afl compare_fuzz
|
||||
*/
|
||||
|
||||
@@ -6,7 +6,7 @@ include ion/src/device/$(MODEL)/Makefile
|
||||
|
||||
$(call object_for,ion/src/shared/platform_info.cpp): SFLAGS += -DHEADER_SECTION="__attribute__((section(\".header\")))"
|
||||
|
||||
src += $(addprefix ion/src/shared/, \
|
||||
ion_src += $(addprefix ion/src/shared/, \
|
||||
console_line.cpp \
|
||||
events_keyboard.cpp \
|
||||
events_modifier.cpp \
|
||||
@@ -20,7 +20,7 @@ src += $(addprefix ion/src/shared/, \
|
||||
ION_DEVICE_SFLAGS = -Iion/src/device/$(MODEL) -Iion/src/device/shared
|
||||
|
||||
$(call object_for,$(ion_device_src) $(dfu_src) $(flasher_src) $(usb_src) $(bench_src) $(ion_device_dfu_xip_src) $(ion_device_dfu_relocated_src)): SFLAGS += $(ION_DEVICE_SFLAGS)
|
||||
src += $(ion_device_src)
|
||||
ion_src += $(ion_device_src)
|
||||
|
||||
# When using the register.h C++ file in production mode, we expect the compiler
|
||||
# to completely inline all bit manipulations. For some reason, if we build using
|
||||
@@ -35,4 +35,4 @@ $(BUILD_DIR)/ion/src/device/console.o: SFLAGS+=-O3
|
||||
$(BUILD_DIR)/ion/src/device/display.o: SFLAGS+=-O3
|
||||
$(BUILD_DIR)/ion/src/device/swd.o: SFLAGS+=-O3
|
||||
endif
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -1,10 +1,10 @@
|
||||
src += $(addprefix ion/src/emscripten/, \
|
||||
ion_src += $(addprefix ion/src/emscripten/, \
|
||||
display.cpp \
|
||||
events_keyboard.cpp \
|
||||
main.cpp \
|
||||
)
|
||||
|
||||
src += $(addprefix ion/src/shared/, \
|
||||
ion_src += $(addprefix ion/src/shared/, \
|
||||
crc32.cpp \
|
||||
events.cpp \
|
||||
events_modifier.cpp \
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
# TODO
|
||||
src += $(addprefix ion/src/shared/, \
|
||||
ion_src += $(addprefix ion/src/shared/, \
|
||||
crc32.cpp \
|
||||
events.cpp \
|
||||
events_keyboard.cpp \
|
||||
@@ -17,7 +17,7 @@ src += $(addprefix ion/src/shared/, \
|
||||
dummy/usb.cpp \
|
||||
)
|
||||
|
||||
src += $(addprefix ion/src/sdl/shared/, \
|
||||
ion_src += $(addprefix ion/src/sdl/shared/, \
|
||||
display.cpp \
|
||||
events_keyboard_platform.cpp \
|
||||
keyboard.cpp \
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
src += $(addprefix ion/src/sdl/android/src/cpp/, \
|
||||
ion_src += $(addprefix ion/src/sdl/android/src/cpp/, \
|
||||
images.cpp \
|
||||
language.cpp \
|
||||
telemetry.cpp \
|
||||
|
||||
2
ion/src/sdl/external/Makefile
vendored
2
ion/src/sdl/external/Makefile
vendored
@@ -100,4 +100,4 @@ include ion/src/sdl/external/config.$(MODEL).mak
|
||||
|
||||
$(call object_for,$(sdl_src)): SFLAGS += $(SDL_SFLAGS)
|
||||
|
||||
src += $(sdl_src)
|
||||
ion_src += $(sdl_src)
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
src += $(addprefix ion/src/sdl/ios/, \
|
||||
ion_src += $(addprefix ion/src/sdl/ios/, \
|
||||
images.m \
|
||||
language.m \
|
||||
)
|
||||
@@ -7,7 +7,7 @@ $(call object_for,ion/src/sdl/shared/main.cpp) : SFLAGS += -DEPSILON_SDL_FULLSCR
|
||||
|
||||
GOOGLE_ANALYTICS = 1
|
||||
ifeq ($(GOOGLE_ANALYTICS),1)
|
||||
src += ion/src/sdl/ios/telemetry.m
|
||||
ion_src += ion/src/sdl/ios/telemetry.m
|
||||
$(call object_for,ion/src/sdl/ios/telemetry.m): SFLAGS += -Iion/src/sdl/ios/GoogleAnalyticsServices/GoogleAnalytics/Library
|
||||
|
||||
LDFLAGS += -lGoogleAnalyticsServices
|
||||
@@ -17,7 +17,7 @@ LDFLAGS += -framework SystemConfiguration
|
||||
LDFLAGS += -framework CoreData
|
||||
LDFLAGS += -Lion/src/sdl/ios/GoogleAnalyticsServices
|
||||
else
|
||||
src += ion/src/sdl/shared/telemetry_dummy.cpp
|
||||
ion_src += ion/src/sdl/shared/telemetry_dummy.cpp
|
||||
endif
|
||||
|
||||
# Cross-ARCH epsilon.bin
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
src += $(addprefix ion/src/sdl/macos/, \
|
||||
ion_src += $(addprefix ion/src/sdl/macos/, \
|
||||
images.m \
|
||||
)
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
src += $(addprefix ion/src/sdl/windows/, \
|
||||
ion_src += $(addprefix ion/src/sdl/windows/, \
|
||||
images.cpp \
|
||||
resources.rc \
|
||||
)
|
||||
src += $(addprefix ion/src/sdl/windows/, \
|
||||
ion_src += $(addprefix ion/src/sdl/windows/, \
|
||||
telemetry_dummy.cpp \
|
||||
)
|
||||
|
||||
|
||||
@@ -1,12 +1,12 @@
|
||||
src += $(addprefix ion/src/simulator/, \
|
||||
ion_src += $(addprefix ion/src/simulator/, \
|
||||
init.cpp \
|
||||
)
|
||||
|
||||
src += $(addprefix ion/src/simulator/boot/, main.cpp)
|
||||
src += $(addprefix ion/src/simulator/display/, fltklcd.cpp)
|
||||
src += $(addprefix ion/src/simulator/keyboard/, fltkkbd.cpp)
|
||||
ion_src += $(addprefix ion/src/simulator/boot/, main.cpp)
|
||||
ion_src += $(addprefix ion/src/simulator/display/, fltklcd.cpp)
|
||||
ion_src += $(addprefix ion/src/simulator/keyboard/, fltkkbd.cpp)
|
||||
|
||||
src += $(addprefix ion/src/shared/, \
|
||||
ion_src += $(addprefix ion/src/shared/, \
|
||||
crc32.cpp \
|
||||
console_line.cpp \
|
||||
console_stdio.cpp \
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
SFLAGS += -Ikandinsky/include
|
||||
|
||||
src += $(addprefix kandinsky/src/,\
|
||||
kandinsky_src += $(addprefix kandinsky/src/,\
|
||||
color.cpp \
|
||||
context.cpp \
|
||||
context_line.cpp \
|
||||
@@ -15,12 +15,12 @@ src += $(addprefix kandinsky/src/,\
|
||||
rect.cpp \
|
||||
)
|
||||
|
||||
src += $(addprefix kandinsky/fonts/, \
|
||||
kandinsky_src += $(addprefix kandinsky/fonts/, \
|
||||
LargeFont.ttf \
|
||||
SmallFont.ttf \
|
||||
)
|
||||
|
||||
tests += $(addprefix kandinsky/test/,\
|
||||
tests_src += $(addprefix kandinsky/test/,\
|
||||
color.cpp\
|
||||
font.cpp\
|
||||
rect.cpp\
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
SFLAGS += -Iliba/include
|
||||
|
||||
src += $(addprefix liba/src/, \
|
||||
liba_src += $(addprefix liba/src/, \
|
||||
armv7m/setjmp.s \
|
||||
armv7m/longjmp.s \
|
||||
assert.c \
|
||||
@@ -24,7 +24,7 @@ src += $(addprefix liba/src/, \
|
||||
external/sqlite/mem5.c \
|
||||
)
|
||||
|
||||
src += $(addprefix liba/src/external/openbsd/, \
|
||||
liba_src += $(addprefix liba/src/external/openbsd/, \
|
||||
b_exp__D.c \
|
||||
b_log__D.c \
|
||||
b_tgamma.c \
|
||||
@@ -78,7 +78,7 @@ src += $(addprefix liba/src/external/openbsd/, \
|
||||
w_lgammaf.c \
|
||||
)
|
||||
|
||||
src += $(addprefix liba/src/external/openbsd/, \
|
||||
liba_src += $(addprefix liba/src/external/openbsd/, \
|
||||
e_acos.c \
|
||||
e_acosh.c \
|
||||
e_asin.c \
|
||||
@@ -121,7 +121,7 @@ $(call object_for,liba/src/external/sqlite/mem5.c): CFLAGS += -w
|
||||
$(call object_for,liba/src/external/openbsd/%.c): SFLAGS := -Iliba/src/external/openbsd/include $(SFLAGS)
|
||||
$(call object_for,liba/src/external/openbsd/%.c): CFLAGS += -w
|
||||
|
||||
tests += $(addprefix liba/test/, \
|
||||
tests_src += $(addprefix liba/test/, \
|
||||
aeabi.c \
|
||||
double.c \
|
||||
ieee754.c \
|
||||
@@ -135,6 +135,6 @@ tests += $(addprefix liba/test/, \
|
||||
|
||||
# The use of aeabi-rt could be made conditional to an AEABI target.
|
||||
# In practice we're always using liba on such a target.
|
||||
src += $(addprefix liba/src/aeabi-rt/, \
|
||||
liba_src += $(addprefix liba/src/aeabi-rt/, \
|
||||
atexit.c \
|
||||
)
|
||||
|
||||
@@ -1,3 +1,3 @@
|
||||
SFLAGS += -Iliba/include/bridge
|
||||
|
||||
src += liba/src/bridge.c
|
||||
liba_src += liba/src/bridge.c
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
SFLAGS += -Ilibaxx/include
|
||||
|
||||
src += $(addprefix libaxx/src/, new.cpp)
|
||||
src += $(addprefix libaxx/src/cxxabi/, atexit.cpp pure_virtual.cpp)
|
||||
src += $(addprefix libaxx/include/external/libcxx/, complex.cpp)
|
||||
libaxx_src += $(addprefix libaxx/src/, new.cpp)
|
||||
libaxx_src += $(addprefix libaxx/src/cxxabi/, atexit.cpp pure_virtual.cpp)
|
||||
libaxx_src += $(addprefix libaxx/include/external/libcxx/, complex.cpp)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
SFLAGS += -Ipoincare/include
|
||||
|
||||
src += $(addprefix poincare/src/,\
|
||||
poincare_src += $(addprefix poincare/src/,\
|
||||
binomial_coefficient_layout.cpp \
|
||||
bracket_layout.cpp \
|
||||
bracket_pair_layout.cpp \
|
||||
@@ -28,13 +28,13 @@ src += $(addprefix poincare/src/,\
|
||||
vertical_offset_layout.cpp \
|
||||
)
|
||||
|
||||
src += $(addprefix poincare/src/,\
|
||||
poincare_src += $(addprefix poincare/src/,\
|
||||
init.cpp \
|
||||
exception_checkpoint.cpp \
|
||||
helpers.cpp \
|
||||
)
|
||||
|
||||
src += $(addprefix poincare/src/,\
|
||||
poincare_src += $(addprefix poincare/src/,\
|
||||
absolute_value.cpp \
|
||||
addition.cpp \
|
||||
approximation_helper.cpp \
|
||||
@@ -131,12 +131,12 @@ src += $(addprefix poincare/src/,\
|
||||
variable_context.cpp \
|
||||
)
|
||||
|
||||
src += $(addprefix poincare/src/parsing/,\
|
||||
poincare_src += $(addprefix poincare/src/parsing/,\
|
||||
parser.cpp \
|
||||
tokenizer.cpp \
|
||||
)
|
||||
|
||||
tests += $(addprefix poincare/test/,\
|
||||
tests_src += $(addprefix poincare/test/,\
|
||||
tree/tree_handle.cpp\
|
||||
tree/helpers.cpp\
|
||||
addition.cpp\
|
||||
@@ -183,8 +183,8 @@ tests += $(addprefix poincare/test/,\
|
||||
# simplify_utils.cpp\
|
||||
|
||||
ifdef POINCARE_TESTS_PRINT_EXPRESSIONS
|
||||
tests += poincare/src/expression_debug.o
|
||||
src += poincare/src/expression_debug.cpp
|
||||
tests_src += poincare/src/expression_debug.o
|
||||
poincare_src += poincare/src/expression_debug.cpp
|
||||
SFLAGS += -DPOINCARE_TESTS_PRINT_EXPRESSIONS=1
|
||||
endif
|
||||
|
||||
|
||||
@@ -178,5 +178,3 @@ $(eval $(call rule_for, \
|
||||
))
|
||||
|
||||
$(call object_for,$(python_src)): $(BUILD_DIR)/python/port/genhdr/qstrdefs.generated.h
|
||||
|
||||
src += $(python_src)
|
||||
|
||||
@@ -9,7 +9,7 @@ $$(BUILD_DIR)/quiz/src/$(subst _src,,$(1))_symbols.c: $$($(1)) | $$$$(@D)/.
|
||||
$$(Q) awk -f quiz/src/symbols.awk $$($(1)) > $$@
|
||||
endef
|
||||
|
||||
$(eval $(call rule_for_quiz_symbols,tests))
|
||||
$(eval $(call rule_for_quiz_symbols,tests_src))
|
||||
$(eval $(call rule_for_quiz_symbols,test_ion_external_flash_write_src))
|
||||
$(eval $(call rule_for_quiz_symbols,test_ion_external_flash_read_src))
|
||||
|
||||
|
||||
@@ -1,27 +1,29 @@
|
||||
# Compare
|
||||
|
||||
# TODO: find a way to use rules define by rule_for instead of redeclaring them (we can't use them now because of the different basenames of the object and the source)
|
||||
|
||||
$(BUILD_DIR)/ion/src/blackbox/library_%.o: SFLAGS += -D EPSILON_LIB_PREFIX=$(*F)
|
||||
$(BUILD_DIR)/ion/src/blackbox/library_%.o: ion/src/blackbox/library.cpp
|
||||
$(BUILD_DIR)/ion/src/blackbox/library_%.o: ion/src/blackbox/library.cpp $(@D)/.
|
||||
@echo "CXX $@"
|
||||
$(Q) $(CXX) $(SFLAGS) $(CXXFLAGS) -c $< -o $@
|
||||
|
||||
libepsilon_src = $(filter-out $(addprefix ion/src/blackbox/,boot.cpp events.cpp),$(src))
|
||||
libepsilon_src = $(filter-out $(addprefix ion/src/blackbox/,boot.cpp events.cpp),$(all_epsilon_default_src))
|
||||
|
||||
$(BUILD_DIR)/libepsilon_%.o: LDFLAGS += -exported_symbols_list ion/src/blackbox/lib_export_list.txt
|
||||
$(BUILD_DIR)/libepsilon_%.o: $(call object_for,$(libepsilon_src)) $(call object_for,$(app_src)) $(BUILD_DIR)/ion/src/blackbox/library_%.o
|
||||
$(BUILD_DIR)/libepsilon_%.o: $(call object_for,$(libepsilon_src)) $(BUILD_DIR)/ion/src/blackbox/library_%.o
|
||||
@echo "LD $@"
|
||||
$(Q) $(LD) $^ $(LDFLAGS) -r -s -o $@
|
||||
|
||||
$(BUILD_DIR)/compare: $(call object_for,ion/src/blackbox/compare.cpp)
|
||||
@echo "LD $@"
|
||||
$(Q) $(LD) $^ libepsilon_first.o libepsilon_second.o $(LDFLAGS) -L. -o $@
|
||||
$(Q) $(LD) $^ $(BUILD_DIR)/libepsilon_first.o $(BUILD_DIR)/libepsilon_second.o $(LDFLAGS) -L. -o $@
|
||||
|
||||
# Integration tests
|
||||
|
||||
.PHONY: tests/%.run
|
||||
tests/%.run: tests/%.esc epsilon.$(EXE)
|
||||
@echo "RUN $<"
|
||||
@./epsilon.$(EXE) --logAfter 0 < $< > /dev/null
|
||||
@./build/blackbox/epsilon.$(EXE) --logAfter 0 < $< > /dev/null
|
||||
|
||||
.PHONY: tests/%.render
|
||||
tests/%.render: tests/%.esc epsilon.$(EXE)
|
||||
@@ -29,7 +31,7 @@ tests/%.render: tests/%.esc epsilon.$(EXE)
|
||||
@rm -rf tests/$(*F)
|
||||
@mkdir -p tests/$(*F)
|
||||
@rm -f event*.png
|
||||
@./epsilon.$(EXE) --logAfter 0 < $< > /dev/null
|
||||
@./build/blackbox/epsilon.$(EXE) --logAfter 0 < $< > /dev/null
|
||||
@mv event*.png tests/$(*F)
|
||||
|
||||
scenarios = $(wildcard tests/*.esc)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
include scripts/targets.device.$(MODEL).mak
|
||||
|
||||
executables += flasher.light flasher.verbose bench.RAM bench.flash
|
||||
executables += flasher.light flasher.verbose bench.ram bench.flash
|
||||
extensions = dfu hex bin
|
||||
|
||||
$(foreach extension,$(extensions),$(foreach executable,$(executables),$(eval $(call rules_for_targets,$(executable),$(extension)))))
|
||||
@@ -24,28 +24,29 @@ $(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.$(EXE)
|
||||
$(Q) printf "\xFF\xFF\xFF\xFF" >> $@
|
||||
|
||||
.PHONY: %_size
|
||||
%_size: %.$(EXE)
|
||||
%_size: $(BUILD_DIR)/%.$(EXE)
|
||||
@echo "========= BUILD OUTPUT ========"
|
||||
@echo "File: $<"
|
||||
@$(SIZE) $< | tail -n 1 | awk '{print "Code: " $$1 " bytes";print "Data: " $$2 " bytes"; print "Total: " int(($$1+$$2)/1024) " kB (" $$1 + $$2 " bytes)";}'
|
||||
@echo "==============================="
|
||||
|
||||
.PHONY: %_run
|
||||
%_run: %.$(EXE)
|
||||
%_run: $(BUILD_DIR)/%.$(EXE)
|
||||
$(GDB) -x scripts/$(PLATFORM)/gdb_script.gdb $<
|
||||
|
||||
%.map: %.elf
|
||||
$(BUILD_DIR)/%.map: $(BUILD_DIR)/%.elf
|
||||
@echo "LDMAP $@"
|
||||
$(Q) $(LD) $^ $(LDFLAGS) -Wl,-M -Wl,-Map=$@ -o /dev/null
|
||||
|
||||
.PHONY: %_memory_map
|
||||
%_memory_map: %.map
|
||||
%_memory_map: $(BUILD_DIR)/%.map
|
||||
@echo "========== MEMORY MAP ========="
|
||||
$(Q) awk -f scripts/device/memory_map.awk < $<
|
||||
@echo "==============================="
|
||||
|
||||
# TODO: update the flash process for N0110
|
||||
.PHONY: %_flash
|
||||
%_flash: %.bin
|
||||
%_flash: $(BUILD_DIR)/%.bin
|
||||
@echo "DFU $@"
|
||||
@echo "INFO About to flash your device. Please plug your device to your computer"
|
||||
@echo " using an USB cable and press the RESET button the back of your device."
|
||||
@@ -57,19 +58,21 @@ $(BUILD_DIR)/%.bin: $(BUILD_DIR)/%.$(EXE)
|
||||
openocd:
|
||||
openocd -f scripts/$(PLATFORM)/openocd.$(MODEL).cfg
|
||||
|
||||
# The flasher target is defined here because otherwise $(src) has not been
|
||||
# The flasher target is defined here because otherwise $(%_src) has not been
|
||||
# fully filled
|
||||
$(BUILD_DIR)/flasher.%.$(EXE): LDFLAGS += -Lion/src/$(PLATFORM)/flasher
|
||||
$(BUILD_DIR)/flasher.%.$(EXE): LDSCRIPT = ion/src/$(PLATFORM)/shared/ram.ld
|
||||
flasher_objs = $(call object_for,$(src) $(flasher_src) $(ion_device_dfu_xip_src))
|
||||
flasher_objs = $(call object_for,$(ion_src) $(liba_src) $(kandinsky_src) $(flasher_src) $(ion_device_dfu_xip_src))
|
||||
$(BUILD_DIR)/flasher.light.$(EXE): $(BUILD_DIR)/ion/src/$(PLATFORM)/flasher/display_light.o $(flasher_objs)
|
||||
$(BUILD_DIR)/flasher.verbose.$(EXE): $(BUILD_DIR)/ion/src/$(PLATFORM)/flasher/display_verbose.o $(flasher_objs)
|
||||
$(BUILD_DIR)/flasher.verbose.$(EXE): $(BUILD_DIR)/ion/src/$(PLATFORM)/flasher/display_verbose.o $(flasher_objs)
|
||||
|
||||
#TODO Do not build all apps... Put elsewhere?
|
||||
$(BUILD_DIR)/bench.ram.$(EXE): LDFLAGS += -Lion/src/$(PLATFORM)/bench
|
||||
$(BUILD_DIR)/bench.ram.$(EXE): LDSCRIPT = ion/src/$(PLATFORM)/shared/ram.ld
|
||||
$(BUILD_DIR)/bench.flash.$(EXE): LDSCRIPT = ion/src/$(PLATFORM)/$(MODEL)/internal_flash.ld
|
||||
$(BUILD_DIR)/bench.%.$(EXE): $(call object_for,$(src) $(bench_src) $(ion_device_dfu_xip_src))
|
||||
bench_objs = $(call object_for,$(ion_src) $(liba_src) $(kandinsky_src) $(ion_device_dfu_xip_src) $(poincare_src) $(libaxx_src) $(bench_src) $(app_shared_src))
|
||||
$(BUILD_DIR)/bench.ram.$(EXE): $(bench_objs)
|
||||
$(BUILD_DIR)/bench.flash.$(EXE): $(bench_objs)
|
||||
|
||||
.PHONY: %.two_binaries
|
||||
%.two_binaries: %.elf
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
executables += test.external_flash.write test.external_flash.read
|
||||
|
||||
$(BUILD_DIR)/test.external_flash.%.$(EXE): LDSCRIPT = ion/test/device/n0110/external_flash_tests.ld
|
||||
test_external_flash_src = $(src) $(ion_device_dfu_relogated_src) $(runner_src)
|
||||
test_external_flash_src = $(ion_src) $(liba_src) $(libaxx_src) $(kandinsky_src) $(poincare_src) $(ion_device_dfu_relogated_src) $(runner_src)
|
||||
$(BUILD_DIR)/test.external_flash.read.$(EXE): $(BUILD_DIR)/quiz/src/test_ion_external_flash_read_symbols.o $(call object_for,$(test_external_flash_src) $(test_ion_external_flash_read_src))
|
||||
$(BUILD_DIR)/test.external_flash.write.$(EXE): $(BUILD_DIR)/quiz/src/test_ion_external_flash_write_symbols.o $(call object_for,$(test_external_flash_src) $(test_ion_external_flash_write_src))
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
$(BUILD_DIR)/epsilon.packed.js: LDFLAGS += --memory-init-file 0
|
||||
$(BUILD_DIR)/epsilon.packed.js: $(call object_for,$(src) $(epsilon_src))
|
||||
$(BUILD_DIR)/epsilon.packed.js: $(call object_for,$(all_epsilon_default_src))
|
||||
|
||||
$(BUILD_DIR)/simulator.zip: $(BUILD_DIR)/epsilon.packed.js
|
||||
@rm -rf $(basename $@)
|
||||
|
||||
Reference in New Issue
Block a user