diff options
-rw-r--r-- | Makefile | 9 | ||||
-rw-r--r-- | Makefile.inc | 6 | ||||
-rw-r--r-- | src/arch/arm64/armv8/secmon/Makefile.inc | 2 | ||||
-rw-r--r-- | src/arch/x86/Makefile.inc | 6 | ||||
-rw-r--r-- | src/cpu/x86/Makefile.inc | 2 | ||||
-rw-r--r-- | src/cpu/x86/smm/Makefile.inc | 6 |
6 files changed, 18 insertions, 13 deletions
@@ -203,7 +203,12 @@ endif # Eliminate duplicate mentions of source files in a class $(foreach class,$(classes),$(eval $(class)-srcs:=$(sort $($(class)-srcs)))) -src-to-obj=$(addsuffix .$(1).o, $(basename $(patsubst src/%, $(obj)/%, $(2)))) +# Converts one or more source file paths to their corresponding build/ paths. +# Only .c and .S get converted to .o, other files (like .ld) keep their name. +# $1 stage name +# $2 file path (list) +src-to-obj=$(foreach file,$(2),$(basename $(patsubst src/%,$(obj)/%,$(file))).$(1)$(patsubst %.c,%.o,$(patsubst %.S,%.o,$(suffix $(file))))) + $(foreach class,$(classes),$(eval $(class)-objs:=$(call src-to-obj,$(class),$($(class)-srcs)))) # Save all objs before processing them (for dependency inclusion) @@ -241,7 +246,7 @@ $(foreach class,$(classes), \ foreach-src=$(foreach file,$($(1)-srcs),$(eval $(call $(1)-objs_$(subst .,,$(suffix $(file)))_template,$(subst src/,,$(basename $(file)))))) $(eval $(foreach class,$(classes),$(call foreach-src,$(class)))) -DEPENDENCIES = $(originalobjs:.o=.d) +DEPENDENCIES = $(addsuffix .d,$(basename $(allobjs))) -include $(DEPENDENCIES) printall: diff --git a/Makefile.inc b/Makefile.inc index 81b4c2b0d0..c9285cf3b8 100644 --- a/Makefile.inc +++ b/Makefile.inc @@ -142,10 +142,10 @@ bootblock-c-deps:=$$(OPTION_TABLE_H) ####################################################################### # Add handler to compile ACPI's ASL define ramstage-objs_asl_template -$(obj)/$(1).ramstage.o: src/$(1).asl $(obj)/config.h +$(obj)/$(1).ramstage.asl: src/$(1).asl $(obj)/config.h @printf " IASL $$(subst $(top)/,,$$(@))\n" - $(CC_ramstage) -x assembler-with-cpp -E -MMD -MT $$(@) -D__ACPI__ -P -include $(src)/include/kconfig.h -I$(obj) -I$(src) -I$(src)/include -I$(src)/arch/$(ARCHDIR-$(ARCH-ramstage-y))/include -I$(src)/mainboard/$(MAINBOARDDIR) $$< -o $$(basename $$@).asl - cd $$(dir $$@); $(IASL) -p $$(notdir $$@) -tc $$(notdir $$(basename $$@)).asl + $(CC_ramstage) -x assembler-with-cpp -E -MMD -MT $$(@) -D__ACPI__ -P -include $(src)/include/kconfig.h -I$(obj) -I$(src) -I$(src)/include -I$(src)/arch/$(ARCHDIR-$(ARCH-ramstage-y))/include -I$(src)/mainboard/$(MAINBOARDDIR) $$< -o $$@ + cd $$(dir $$@); $(IASL) -p $$(notdir $$@) -tc $$(notdir $$@) mv $$(basename $$@).hex $$(basename $$@).c $(CC_ramstage) $$(CFLAGS_ramstage) $$(CPPFLAGS_ramstage) $$(if $$(subst dsdt,,$$(basename $$(notdir $(1)))), -DAmlCode=AmlCode_$$(basename $$(notdir $(1)))) -c -o $$@ $$(basename $$@).c # keep %.o: %.c rule from catching the temporary .c file after a make clean diff --git a/src/arch/arm64/armv8/secmon/Makefile.inc b/src/arch/arm64/armv8/secmon/Makefile.inc index 6609692e3c..85c3c0a161 100644 --- a/src/arch/arm64/armv8/secmon/Makefile.inc +++ b/src/arch/arm64/armv8/secmon/Makefile.inc @@ -38,7 +38,7 @@ secmon-y += ../exception.c secmon-y += ../../cpu.c secmon-y += ../../transition_asm.S ../../transition.c -ramstage-srcs += $(SECMON_BIN) +ramstage-srcs += $(SECMON_BIN).o $(SECMON_OBJ): $$(secmon-objs) $(CC_secmon) $(LDFLAGS) -nostdlib -r -o $@ $^ diff --git a/src/arch/x86/Makefile.inc b/src/arch/x86/Makefile.inc index e6b4bad64c..8e6ad6d932 100644 --- a/src/arch/x86/Makefile.inc +++ b/src/arch/x86/Makefile.inc @@ -196,7 +196,7 @@ $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc: $(obj)/mainboard/$(MAINBOARDDIR)/ mv $@.tmp $@ endif -romstage-srcs += $(objgenerated)/crt0.s +romstage-srcs += $(objgenerated)/crt0.S romstage-libs ?= @@ -237,11 +237,11 @@ $(objgenerated)/crt0.romstage.S: $$(crt0s) @printf " GEN $(subst $(obj)/,,$(@))\n" printf '$(foreach crt0,$(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@ -$(objgenerated)/crt0.romstage.o: $(objgenerated)/crt0.s +$(objgenerated)/crt0.romstage.o: $(objgenerated)/crt0.S @printf " CC $(subst $(obj)/,,$(@))\n" $(CC_romstage) $(CFLAGS_x86_32) $(DISASSEMBLY) -c -o $@ $< > $(basename $@).disasm -$(objgenerated)/crt0.s: $(objgenerated)/crt0.romstage.S $(obj)/config.h $(obj)/build.h +$(objgenerated)/crt0.S: $(objgenerated)/crt0.romstage.S $(obj)/config.h $(obj)/build.h @printf " CC $(subst $(obj)/,,$(@))\n" $(CC_romstage) $(CPPFLAGS_romstage) -MMD -x assembler-with-cpp -E -I$(src)/include -I$(src)/arch/x86/include -I$(obj) -include $(obj)/config.h -include $(obj)/build.h -I. -I$(src) $< -o $@ diff --git a/src/cpu/x86/Makefile.inc b/src/cpu/x86/Makefile.inc index 2347f88500..8790eaf137 100644 --- a/src/cpu/x86/Makefile.inc +++ b/src/cpu/x86/Makefile.inc @@ -12,7 +12,7 @@ SIPI_BIN=$(SIPI_ELF:.elf=) SIPI_DOTO=$(SIPI_ELF:.elf=.o) ifeq ($(CONFIG_PARALLEL_MP),y) -ramstage-srcs += $(SIPI_BIN) +ramstage-srcs += $(SIPI_BIN).o endif rmodules_$(ARCH-ramstage-y)-$(CONFIG_PARALLEL_MP) += sipi_vector.S diff --git a/src/cpu/x86/smm/Makefile.inc b/src/cpu/x86/smm/Makefile.inc index b62288a246..f409c2443e 100644 --- a/src/cpu/x86/smm/Makefile.inc +++ b/src/cpu/x86/smm/Makefile.inc @@ -58,8 +58,8 @@ smm-y += smm_module_handler.c ramstage-y += smm_module_loader.c -ramstage-srcs += $(obj)/cpu/x86/smm/smm -ramstage-srcs += $(obj)/cpu/x86/smm/smmstub +ramstage-srcs += $(obj)/cpu/x86/smm/smm.o +ramstage-srcs += $(obj)/cpu/x86/smm/smmstub.o # SMM Stub Module. The stub is used as a trampoline for relocation and normal # SMM handling. @@ -99,7 +99,7 @@ else # CONFIG_SMM_MODULES ramstage-$(CONFIG_HAVE_SMI_HANDLER) += smmrelocate.S ifeq ($(CONFIG_HAVE_SMI_HANDLER),y) -ramstage-srcs += $(obj)/cpu/x86/smm/smm_wrap +ramstage-srcs += $(obj)/cpu/x86/smm/smm_wrap.o endif # Use TSEG specific entry point and linker script |