summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYonatan Goldschmidt <yon.goldschmidt@gmail.com>2019-11-11 12:51:23 +0200
committerDamien George <damien.p.george@gmail.com>2019-11-15 10:25:48 +1100
commit973f68780d2eb974e4921ffdf513079efc19e0a4 (patch)
tree6c5f4e4d019f9e2976c9c13e149700c30d2765b9
parent1e87f11d3f2673ace3f36dd24bdc095bb25583e4 (diff)
qemu-arm: Add ldscript dependency in the final firmware.elf target.
So that the target is rebuilt if the linker script changes.
-rw-r--r--ports/qemu-arm/Makefile8
-rw-r--r--ports/qemu-arm/Makefile.test4
2 files changed, 8 insertions, 4 deletions
diff --git a/ports/qemu-arm/Makefile b/ports/qemu-arm/Makefile
index 92574d0e1..e06e5dd5e 100644
--- a/ports/qemu-arm/Makefile
+++ b/ports/qemu-arm/Makefile
@@ -104,10 +104,14 @@ OBJ_COMMON += $(addprefix $(BUILD)/, $(LIB_SRC_C:.c=.o))
OBJ_RUN =
OBJ_RUN += $(addprefix $(BUILD)/, $(SRC_RUN_C:.c=.o))
+ALL_OBJ_RUN = $(OBJ_COMMON) $(OBJ_RUN)
+
OBJ_TEST =
OBJ_TEST += $(addprefix $(BUILD)/, $(SRC_TEST_C:.c=.o))
OBJ_TEST += $(BUILD)/tinytest.o
+ALL_OBJ_TEST = $(OBJ_COMMON) $(OBJ_TEST)
+
# All object files, needed to get dependencies correct
OBJ = $(OBJ_COMMON) $(OBJ_RUN) $(OBJ_TEST)
@@ -127,8 +131,8 @@ run: $(BUILD)/firmware.elf
qemu-system-arm -machine $(BOARD) $(QEMU_EXTRA) -nographic -monitor null -semihosting -kernel $<
## `$(LD)` doesn't seem to like `--specs` for some reason, but we can just use `$(CC)` here.
-$(BUILD)/firmware.elf: $(OBJ_COMMON) $(OBJ_RUN)
- $(Q)$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
+$(BUILD)/firmware.elf: $(LDSCRIPT) $(ALL_OBJ_RUN)
+ $(Q)$(LD) $(LDFLAGS) -o $@ $(ALL_OBJ_RUN) $(LIBS)
$(Q)$(SIZE) $@
include $(TOP)/py/mkrules.mk
diff --git a/ports/qemu-arm/Makefile.test b/ports/qemu-arm/Makefile.test
index 4204a84f0..df0ba9939 100644
--- a/ports/qemu-arm/Makefile.test
+++ b/ports/qemu-arm/Makefile.test
@@ -16,8 +16,8 @@ $(BUILD)/genhdr/tests.h:
$(BUILD)/tinytest.o:
$(Q)$(CC) $(CFLAGS) -DNO_FORKING -o $@ -c $(TINYTEST)/tinytest.c
-$(BUILD)/firmware-test.elf: $(OBJ_COMMON) $(OBJ_TEST)
- $(Q)$(LD) $(LDFLAGS) -o $@ $^ $(LIBS)
+$(BUILD)/firmware-test.elf: $(LDSCRIPT) $(ALL_OBJ_TEST)
+ $(Q)$(LD) $(LDFLAGS) -o $@ $(ALL_OBJ_TEST) $(LIBS)
$(Q)$(SIZE) $@
# Note: Using timeout(1) to handle cases where qemu hangs (e.g. this can happen with alignment errors).