@@ -34,15 +34,15 @@ endif
3434# # - gcc-arm-none-eabi-4_8-2014q1/share/gcc-arm-none-eabi/samples/src/qemu/Makefile
3535LDFLAGS = --specs=nano.specs --specs=rdimon.specs -Wl,--gc-sections -Wl,-Map=$(@:.elf=.map )
3636
37- SRC_C = \
38- main.c \
37+ SRC_COMMON_C = \
3938 moduos.c \
4039 modmachine.c \
4140
41+ SRC_RUN_C = \
42+ main.c \
43+
4244SRC_TEST_C = \
4345 test_main.c \
44- moduos.c \
45- modmachine.c \
4646
4747LIB_SRC_C = $(addprefix lib/,\
4848 libm/math.c \
@@ -69,25 +69,24 @@ STM_SRC_C = $(addprefix stmhal/,\
6969 pybstdio.c \
7070 )
7171
72- SRC_S = \
72+ OBJ_COMMON =
73+ OBJ_COMMON += $(PY_O )
74+ OBJ_COMMON += $(addprefix $(BUILD ) /, $(SRC_COMMON_C:.c=.o ) )
75+ OBJ_COMMON += $(addprefix $(BUILD ) /, $(LIB_SRC_C:.c=.o ) )
76+ OBJ_COMMON += $(addprefix $(BUILD ) /, $(STM_SRC_C:.c=.o ) )
7377
74- OBJ =
75- OBJ += $(PY_O )
76- OBJ += $(addprefix $(BUILD ) /, $(SRC_C:.c=.o ) )
77- OBJ += $(addprefix $(BUILD ) /, $(SRC_S:.s=.o ) )
78- OBJ += $(addprefix $(BUILD ) /, $(LIB_SRC_C:.c=.o ) )
79- OBJ += $(addprefix $(BUILD ) /, $(STM_SRC_C:.c=.o ) )
78+ OBJ_RUN =
79+ OBJ_RUN += $(addprefix $(BUILD ) /, $(SRC_RUN_C:.c=.o ) )
8080
8181OBJ_TEST =
82- OBJ_TEST += $(PY_O )
8382OBJ_TEST += $(addprefix $(BUILD ) /, $(SRC_TEST_C:.c=.o ) )
84- OBJ_TEST += $(addprefix $(BUILD ) /, $(SRC_S:.s=.o ) )
85- OBJ_TEST += $(addprefix $(BUILD ) /, $(LIB_SRC_C:.c=.o ) )
86- OBJ_TEST += $(addprefix $(BUILD ) /, $(STM_SRC_C:.c=.o ) )
8783OBJ_TEST += $(BUILD ) /tinytest.o
8884
85+ # All object files, needed to get dependencies correct
86+ OBJ = $(OBJ_COMMON ) $(OBJ_RUN ) $(OBJ_TEST )
87+
8988# List of sources for qstr extraction
90- SRC_QSTR += $(SRC_C ) $(STM_SRC_C )
89+ SRC_QSTR += $(SRC_COMMON_C ) $( SRC_RUN_C ) $(STM_SRC_C )
9190
9291all : run
9392
@@ -109,11 +108,11 @@ $(BUILD)/tinytest.o:
109108 $(Q )$(CC ) $(CFLAGS ) -DNO_FORKING -o $@ -c ../tools/tinytest/tinytest.c
110109
111110# # `$(LD)` doesn't seem to like `--specs` for some reason, but we can just use `$(CC)` here.
112- $(BUILD ) /firmware.elf : $(OBJ )
111+ $(BUILD ) /firmware.elf : $(OBJ_COMMON ) $( OBJ_RUN )
113112 $(Q )$(CC ) $(CFLAGS ) $(LDFLAGS ) -o $@ $^ $(LIBS )
114113 $(Q )$(SIZE ) $@
115114
116- $(BUILD ) /firmware-test.elf : $(OBJ_TEST )
115+ $(BUILD ) /firmware-test.elf : $(OBJ_COMMON ) $( OBJ_TEST )
117116 $(Q )$(CC ) $(CFLAGS ) $(LDFLAGS ) -o $@ $^ $(LIBS )
118117 $(Q )$(SIZE ) $@
119118
0 commit comments