make only needs to read Makefile.incs once, thanks to the
SECONDEXPANSION feature of GNU make (and we rely on GNU make for lots of things already) File paths are relative to the root directory, which simplifies debugging (make V=1 gives shorter command lines) and helps ccache finding matches for checkouts in different directories (even though it should normalize paths itself) Signed-off-by: Patrick Georgi <patrick.georgi@coresystems.de> Acked-by: Ronald G. Minnich <rminnich@gmail.com> git-svn-id: svn://svn.coreboot.org/coreboot/trunk@5304 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
@@ -1,5 +1,3 @@
|
||||
ifdef POST_EVALUATION
|
||||
|
||||
#######################################################################
|
||||
# Build the final rom image
|
||||
|
||||
@@ -14,11 +12,11 @@ $(obj)/coreboot.bootblock: $(obj)/coreboot
|
||||
@printf " OBJCOPY $(subst $(obj)/,,$(@))\n"
|
||||
$(OBJCOPY) -O binary $< $@
|
||||
|
||||
$(obj)/ldscript.ld: $(ldscripts) $(obj)/ldoptions
|
||||
$(obj)/ldscript.ld: $$(ldscripts) $(obj)/ldoptions
|
||||
printf 'INCLUDE "ldoptions"\n' > $@
|
||||
printf '$(foreach ldscript,$(ldscripts),INCLUDE "$(ldscript:$(obj)/%=%)"\n)' >> $@
|
||||
|
||||
$(obj)/crt0_includes.h: $(crt0s)
|
||||
$(obj)/crt0_includes.h: $$(crt0s)
|
||||
@printf " GEN $(subst $(obj)/,,$(@))\n"
|
||||
printf '$(foreach crt0,config.h $(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@
|
||||
|
||||
@@ -30,9 +28,8 @@ $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s: $(src)/arch/i386/init/crt0.S.lb $(obj)/
|
||||
@printf " CC $(subst $(obj)/,,$(@))\n"
|
||||
$(CC) -MMD -x assembler-with-cpp -DASSEMBLY -E -I$(src)/include -I$(src)/arch/i386/include -I$(obj) -include $(obj)/config.h -I. -I$(src) $< > $@.new && mv $@.new $@
|
||||
|
||||
$(obj)/coreboot: $(initobjs) $(obj)/ldscript.ld
|
||||
$(obj)/coreboot: $$(initobjs) $(obj)/ldscript.ld
|
||||
@printf " LINK $(subst $(obj)/,,$(@))\n"
|
||||
$(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T $(obj)/ldscript.ld $(initobjs)
|
||||
$(NM) -n $(obj)/coreboot | sort > $(obj)/coreboot.map
|
||||
|
||||
endif
|
||||
|
@@ -1,5 +1,3 @@
|
||||
ifdef POST_EVALUATION
|
||||
|
||||
#######################################################################
|
||||
# Build the final rom image
|
||||
|
||||
@@ -49,12 +47,12 @@ ifeq ($(CONFIG_SSE),y)
|
||||
bootblock_romccflags := -mcpu=k7 -msse -O2
|
||||
endif
|
||||
|
||||
$(obj)/bootblock/ldscript.ld: $(bootblock_ldscripts) $(obj)/ldoptions
|
||||
$(obj)/bootblock/ldscript.ld: $$(bootblock_lds) $(obj)/ldoptions
|
||||
@printf " GEN $(subst $(obj)/,,$(@))\n"
|
||||
mkdir -p $(obj)/bootblock
|
||||
printf '$(foreach ldscript,ldoptions $(bootblock_lds),INCLUDE "$(ldscript)"\n)' > $@
|
||||
|
||||
$(obj)/bootblock/bootblock.c: $(bootblock_inc)
|
||||
$(obj)/bootblock/bootblock.c: $$(bootblock_inc)
|
||||
@printf " GEN $(subst $(obj)/,,$(@))\n"
|
||||
mkdir -p $(obj)/bootblock
|
||||
printf '$(foreach crt0,config.h $(bootblock_inc),#include "$(crt0)"\n)' > $@
|
||||
@@ -80,7 +78,7 @@ $(obj)/bootblock.elf: $(obj)/mainboard/$(MAINBOARDDIR)/bootblock.o $(obj)/bootbl
|
||||
|
||||
#######################################################################
|
||||
# Build the romstage
|
||||
$(obj)/coreboot.romstage: $(obj)/coreboot.pre1 $(initobjs) $(obj)/romstage/ldscript.ld
|
||||
$(obj)/coreboot.romstage: $(obj)/coreboot.pre1 $$(initobjs) $(obj)/romstage/ldscript.ld
|
||||
@printf " LINK $(subst $(obj)/,,$(@))\n"
|
||||
printf "CONFIG_ROMBASE = 0x0;\nAUTO_XIP_ROM_BASE = 0x0;\n" > $(obj)/location.ld
|
||||
$(CC) -nostdlib -nostartfiles -static -o $(obj)/romstage.elf -L$(obj) -T $(obj)/romstage/ldscript.ld $(initobjs)
|
||||
@@ -93,12 +91,12 @@ $(obj)/coreboot.romstage: $(obj)/coreboot.pre1 $(initobjs) $(obj)/romstage/ldscr
|
||||
$(NM) -n $(obj)/romstage.elf | sort > $(obj)/romstage.map
|
||||
$(OBJCOPY) -O binary $(obj)/romstage.elf $@
|
||||
|
||||
$(obj)/romstage/ldscript.ld: $(ldscripts) $(obj)/ldoptions
|
||||
$(obj)/romstage/ldscript.ld: $$(ldscripts) $(obj)/ldoptions
|
||||
@printf " GEN $(subst $(obj)/,,$(@))\n"
|
||||
mkdir -p $(obj)/romstage
|
||||
printf '$(foreach ldscript,ldoptions location.ld $(ldscripts),INCLUDE "$(ldscript:$(obj)/%=%)"\n)' > $@
|
||||
|
||||
$(obj)/romstage/crt0_includes.h: $(crt0s)
|
||||
$(obj)/romstage/crt0_includes.h: $$(crt0s)
|
||||
@printf " GEN $(subst $(obj)/,,$(@))\n"
|
||||
mkdir -p $(obj)/romstage
|
||||
printf '$(foreach crt0,config.h $(crt0s),#include "$(crt0:$(obj)/%=%)"\n)' > $@
|
||||
@@ -111,4 +109,3 @@ $(obj)/mainboard/$(MAINBOARDDIR)/crt0.s: $(src)/arch/i386/init/crt0.S.lb $(obj)/
|
||||
@printf " CC $(subst $(obj)/,,$(@))\n"
|
||||
$(CC) -x assembler-with-cpp -DASSEMBLY -E -I$(src)/include -I$(src)/arch/i386/include -I$(obj) -I$(obj)/romstage -include $(obj)/config.h -I. -I$(src) $< > $@.new && mv $@.new $@
|
||||
|
||||
endif
|
||||
|
@@ -7,8 +7,6 @@ subdirs-y += smp
|
||||
|
||||
obj-$(CONFIG_HAVE_OPTION_TABLE) += ../../option_table.o
|
||||
|
||||
ifdef POST_EVALUATION
|
||||
|
||||
#######################################################################
|
||||
# Build the final rom image
|
||||
COREBOOT_ROM_DEPENDENCIES:=
|
||||
@@ -73,14 +71,14 @@ $(obj)/coreboot_ram: $(obj)/coreboot_ram.o $(src)/arch/i386/coreboot_ram.ld #ldo
|
||||
$(CC) -nostdlib -nostartfiles -static -o $@ -L$(obj) -T $(src)/arch/i386/coreboot_ram.ld $(obj)/coreboot_ram.o
|
||||
$(NM) -n $(obj)/coreboot_ram | sort > $(obj)/coreboot_ram.map
|
||||
|
||||
$(obj)/coreboot_ram.o: $(obj)/arch/i386/lib/c_start.o $(drivers) $(obj)/coreboot.a $(LIBGCC_FILE_NAME)
|
||||
$(obj)/coreboot_ram.o: $(obj)/arch/i386/lib/c_start.o $$(drivers) $(obj)/coreboot.a $(LIBGCC_FILE_NAME)
|
||||
@printf " CC $(subst $(obj)/,,$(@))\n"
|
||||
$(CC) -nostdlib -r -o $@ $(obj)/arch/i386/lib/c_start.o $(drivers) -Wl,--start-group $(obj)/coreboot.a $(LIBGCC_FILE_NAME) -Wl,--end-group
|
||||
|
||||
$(obj)/coreboot.a: $(objs)
|
||||
$(obj)/coreboot.a: $$(objs)
|
||||
@printf " AR $(subst $(obj)/,,$(@))\n"
|
||||
rm -f $(obj)/coreboot.a
|
||||
$(AR) cr $(obj)/coreboot.a $(objs)
|
||||
$(AR) cr $(obj)/coreboot.a $^
|
||||
|
||||
#######################################################################
|
||||
# done
|
||||
@@ -195,7 +193,7 @@ ROMCCFLAGS ?= -mcpu=p2 -O2
|
||||
|
||||
$(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc: $(src)/mainboard/$(MAINBOARDDIR)/romstage.c $(obj)/romcc $(OPTION_TABLE_H) $(obj)/build.h
|
||||
printf " ROMCC romstage.inc\n"
|
||||
$(ROMCC) -c -S $(ROMCCFLAGS) -include $(obj)/build.h -I. $(INCLUDES) $< -o $@
|
||||
$(ROMCC) -c -S $(ROMCCFLAGS) -I. $(INCLUDES) $< -o $@
|
||||
|
||||
else
|
||||
|
||||
@@ -205,7 +203,7 @@ $(obj)/mainboard/$(MAINBOARDDIR)/ap_romstage.o: $(src)/mainboard/$(MAINBOARDDIR)
|
||||
|
||||
$(obj)/mainboard/$(MAINBOARDDIR)/romstage.pre.inc: $(src)/mainboard/$(MAINBOARDDIR)/romstage.c $(OPTION_TABLE_H) $(obj)/build.h
|
||||
printf " CC romstage.inc\n"
|
||||
$(CC) -MMD $(CFLAGS) -include $(obj)/build.h -I$(src) -I. -c -S $< -o $@
|
||||
$(CC) -MMD $(CFLAGS) -I$(src) -I. -c -S $< -o $@
|
||||
|
||||
$(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc: $(obj)/mainboard/$(MAINBOARDDIR)/romstage.pre.inc
|
||||
printf " POST romstage.inc\n"
|
||||
@@ -213,9 +211,6 @@ $(obj)/mainboard/$(MAINBOARDDIR)/romstage.inc: $(obj)/mainboard/$(MAINBOARDDIR)/
|
||||
mv $@.tmp $@
|
||||
endif
|
||||
|
||||
else
|
||||
# Only in first pass
|
||||
|
||||
# Things that appear in every board
|
||||
initobjs += $(obj)/mainboard/$(MAINBOARDDIR)/crt0.o
|
||||
objs += $(obj)/mainboard/$(MAINBOARDDIR)/mainboard.o
|
||||
@@ -249,8 +244,6 @@ ifeq ($(CONFIG_HAVE_BUS_CONFIG),y)
|
||||
objs += $(obj)/mainboard/$(MAINBOARDDIR)/get_bus_conf.o
|
||||
endif
|
||||
|
||||
endif
|
||||
|
||||
ifeq ($(CONFIG_TINY_BOOTBLOCK),y)
|
||||
include $(src)/arch/i386/Makefile.bootblock.inc
|
||||
else
|
||||
|
@@ -8,8 +8,3 @@ obj-y += exception.o
|
||||
|
||||
initobj-y += printk_init.o
|
||||
initobj-y += cbfs_and_run.o
|
||||
|
||||
ifdef POST_EVALUATION
|
||||
$(obj)/arch/i386/lib/console.o :: $(obj)/build.h
|
||||
endif
|
||||
|
||||
|
@@ -25,9 +25,7 @@ smmobj-y += smmhandler.o
|
||||
smmobj-y += smihandler.o
|
||||
smmobj-y += smiutil.o
|
||||
|
||||
ifdef POST_EVALUATION
|
||||
|
||||
$(obj)/cpu/x86/smm/smm.o: $(smmobjs)
|
||||
$(obj)/cpu/x86/smm/smm.o: $$(smmobjs)
|
||||
$(CC) $(LDFLAGS) -nostdlib -r -o $@ $^
|
||||
|
||||
$(obj)/cpu/x86/smm/smm: $(obj)/cpu/x86/smm/smm.o $(src)/cpu/x86/smm/smm.ld $(obj)/ldoptions
|
||||
@@ -42,5 +40,3 @@ $(obj)/cpu/x86/smm/smm_bin.o: $(obj)/cpu/x86/smm/smm_bin.c
|
||||
@printf " CC $(subst $(obj)/,,$(@))\n"
|
||||
$(CC) $(CFLAGS) -c -o $@ $<
|
||||
|
||||
endif
|
||||
|
||||
|
Reference in New Issue
Block a user