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. Also update OBJDIRS to include lib/x86. Signed-off-by: Alex Bennée <alex.bennee@xxxxxxxxxx> --- v2 - update OBJDIRS --- Makefile | 2 +- x86/Makefile.common | 16 ++++++++++------ 2 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Makefile b/Makefile index 881bc78..af9695a 100644 --- a/Makefile +++ b/Makefile @@ -77,7 +77,7 @@ $(libcflat): $(cflatobjs) $(AR) rcs $@ $^ include $(LIBFDT_srcdir)/Makefile.libfdt -$(LIBFDT_archive): CFLAGS += -ffreestanding -I lib -I lib/libfdt -Wno-sign-compare +$(LIBFDT_archive): CFLAGS += -ffreestanding -I $(SRCDIR)/lib -I $(SRCDIR)/lib/libfdt -Wno-sign-compare $(LIBFDT_archive): $(addprefix $(LIBFDT_objdir)/,$(LIBFDT_OBJS)) $(AR) rcs $@ $^ diff --git a/x86/Makefile.common b/x86/Makefile.common index ec50926..57e8e45 100644 --- a/x86/Makefile.common +++ b/x86/Makefile.common @@ -1,6 +1,6 @@ #This is a make file with common rules for both x86 & x86-64 -all: test_cases +all: directories test_cases cflatobjs += lib/pci.o cflatobjs += lib/pci-edu.o @@ -16,8 +16,10 @@ cflatobjs += lib/x86/isr.o cflatobjs += lib/x86/acpi.o cflatobjs += lib/x86/stack.o +OBJDIRS += lib/x86 + $(libcflat): LDFLAGS += -nostdlib -$(libcflat): CFLAGS += -ffreestanding -I lib +$(libcflat): CFLAGS += -ffreestanding -I $(SRCDIR)/lib -I lib CFLAGS += -m$(bits) CFLAGS += -O1 @@ -31,8 +33,8 @@ libgcc := $(shell $(CC) -m$(bits) --print-libgcc-file-name) .PRECIOUS: %.elf %.o FLATLIBS = lib/libcflat.a $(libgcc) -%.elf: %.o $(FLATLIBS) x86/flat.lds $(cstart.o) - $(CC) $(CFLAGS) -nostdlib -o $@ -Wl,-T,x86/flat.lds \ +%.elf: %.o $(FLATLIBS) $(SRCDIR)/x86/flat.lds $(cstart.o) + $(CC) $(CFLAGS) -nostdlib -o $@ -Wl,-T,$(SRCDIR)/x86/flat.lds \ $(filter %.o, $^) $(FLATLIBS) %.flat: %.elf @@ -52,14 +54,16 @@ ifdef API tests-common += api/api-sample tests-common += api/dirty-log tests-common += api/dirty-log-perf + +OBJDIRS += api endif test_cases: $(tests-common) $(tests) -$(TEST_DIR)/%.o: CFLAGS += -std=gnu99 -ffreestanding -I lib -I lib/x86 +$(TEST_DIR)/%.o: CFLAGS += -std=gnu99 -ffreestanding -I $(SRCDIR)/lib -I $(SRCDIR)/lib/x86 -I lib $(TEST_DIR)/realmode.elf: $(TEST_DIR)/realmode.o - $(CC) -m32 -nostdlib -o $@ -Wl,-T,$(TEST_DIR)/realmode.lds $^ + $(CC) -m32 -nostdlib -o $@ -Wl,-T,$(SRCDIR)/$(TEST_DIR)/realmode.lds $^ $(TEST_DIR)/realmode.o: bits = 32 -- 2.11.0