We still need to tell the compiler the correct search path for finding
headers and the like. This is slightly complicated by the "dynamic"
asm search path which is in our build tree but (may be) symlinked to
the right architectures headers.

Also we explicitly include SRCDIR for the linking scripts as VPATH
doesn't seem to find them well enough.

Signed-off-by: Alex Bennée <[email protected]>
---
 arm/Makefile.common     | 15 +++++++++------
 scripts/asm-offsets.mak |  4 +++-
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/arm/Makefile.common b/arm/Makefile.common
index 74c7394..b1fead1 100644
--- a/arm/Makefile.common
+++ b/arm/Makefile.common
@@ -16,7 +16,10 @@ tests-common += $(TEST_DIR)/pmu.flat
 tests-common += $(TEST_DIR)/gic.flat
 tests-common += $(TEST_DIR)/psci.flat
 
-tests-all = $(tests-common) $(tests)
+scripts-common += $(TEST_DIR)/run
+scripts-common += $(TEST_DIR)/unittests.cfg
+
+tests-all = $(tests-common) $(tests) $(scripts_common)
 all: $(tests-all)
 
 ##################################################################
@@ -26,13 +29,13 @@ CFLAGS += -std=gnu99
 CFLAGS += -ffreestanding
 CFLAGS += -Wextra
 CFLAGS += -O2
-CFLAGS += -I lib -I lib/libfdt
+CFLAGS += -I $(SRCDIR)/lib -I $(SRCDIR)/lib/libfdt -I lib
 
 # We want to keep intermediate files
 .PRECIOUS: %.elf %.o
 
 asm-offsets = lib/$(ARCH)/asm-offsets.h
-include scripts/asm-offsets.mak
+include $(SRCDIR)/scripts/asm-offsets.mak
 
 cflatobjs += lib/util.o
 cflatobjs += lib/alloc.o
@@ -60,11 +63,11 @@ start_addr := $(shell printf "%x\n" $$(( $(phys_base) + 
$(kernel_offset) )))
 
 FLATLIBS = $(libcflat) $(LIBFDT_archive) $(libgcc) $(libeabi)
 %.elf: LDFLAGS = $(CFLAGS) -nostdlib
-%.elf: %.o $(FLATLIBS) arm/flat.lds $(cstart.o)
+%.elf: %.o $(FLATLIBS) $(SRCDIR)/arm/flat.lds $(cstart.o)
        $(CC) $(LDFLAGS) -o $@ \
-               -Wl,-T,arm/flat.lds,--build-id=none,-Ttext=$(start_addr) \
+               
-Wl,-T,$(SRCDIR)/arm/flat.lds,--build-id=none,-Ttext=$(start_addr) \
                $(filter %.o, $^) $(FLATLIBS) \
-               lib/auxinfo.c -DPROGNAME=\"$(@:.elf=.flat)\"
+               $(SRCDIR)/lib/auxinfo.c -DPROGNAME=\"$(@:.elf=.flat)\"
 
 %.flat: %.elf
        $(OBJCOPY) -O binary $^ $@
diff --git a/scripts/asm-offsets.mak b/scripts/asm-offsets.mak
index b2578a6..ecf583f 100644
--- a/scripts/asm-offsets.mak
+++ b/scripts/asm-offsets.mak
@@ -29,11 +29,13 @@ define make_asm_offsets
 endef
 
 $(asm-offsets:.h=.s): $(asm-offsets:.h=.c)
+       mkdir -p $(dir $@)
        $(CC) $(CFLAGS) -fverbose-asm -S -o $@ $<
 
 $(asm-offsets): $(asm-offsets:.h=.s)
        $(call make_asm_offsets)
-       cp -f $(asm-offsets) lib/generated
+       mkdir -p lib/generated
+       cp -f $(asm-offsets) lib/generated/
 
 asm_offsets_clean:
        $(RM) $(asm-offsets) $(asm-offsets:.h=.s) \
-- 
2.11.0

_______________________________________________
kvmarm mailing list
[email protected]
https://lists.cs.columbia.edu/mailman/listinfo/kvmarm

Reply via email to