diff --git a/arch/x86/Makefile b/arch/x86/Makefile index 2ff87af963..a80e40ec9a 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -60,19 +60,21 @@ $(obj)/linuxbios.bootblock: $(obj)/linuxbios.vpd $(obj)/stage0.init # initram module and the various stages and payload files. # -STAGE0_CONSOLE_OBJ = $(obj)/vtxprintf.o $(obj)/vsprintf.o $(obj)/console.o -STAGE0_LIB_OBJ = $(obj)/uart8250.o $(obj)/mem.o $(obj)/elfboot.o \ - $(obj)/lar.o -STAGE0_ARCH_X86_OBJ = $(obj)/cachemain.o $(obj)/serial.o $(obj)/archelfboot.o - +STAGE0_CONSOLE_OBJ = vtxprintf.o vsprintf.o console.o +STAGE0_LIB_OBJ = uart8250.o mem.o elfboot.o lar.o +STAGE0_ARCH_X86_OBJ = cachemain.o serial.o archelfboot.o ifeq ($(CONFIG_CAR_TYPE_I586),y) - STAGE0_CAR_OBJ = $(obj)/stage0_i586.o + STAGE0_CAR_OBJ = stage0_i586.o else - STAGE0_CAR_OBJ = $(obj)/stage0_i586.o + STAGE0_CAR_OBJ = stage0_i586.o endif -STAGE0_OBJ := $(STAGE0_CONSOLE_OBJ) $(STAGE0_LIB_OBJ) $(STAGE0_ARCH_X86_OBJ) $(STAGE0_CAR_OBJ) + +STAGE0_OBJ := $(patsubst %,$(obj)/console/%,$(STAGE0_CONSOLE_OBJ)) \ + $(patsubst %,$(obj)/lib/%,$(STAGE0_LIB_OBJ)) \ + $(patsubst %,$(obj)/arch/x86/%,$(STAGE0_ARCH_X86_OBJ)) \ + $(patsubst %,$(obj)/arch/x86/%,$(STAGE0_CAR_OBJ)) $(obj)/stage0.init: $(STAGE0_OBJ) $(Q)printf "Building stage0.init... " @@ -99,14 +101,20 @@ $(obj)/stage0.init: $(STAGE0_OBJ) # TODO: This should be compressed with the default compressor. # -STAGE2_LIB_OBJ = $(obj)/stage2.o $(obj)/clog2.o $(obj)/mem.o $(obj)/malloc.o \ - $(obj)/tables.o $(obj)/delay.o $(obj)/compute_ip_checksum.o -STAGE2_ARCH_X86_OBJ = $(obj)/archtables.o $(obj)/linuxbios_table.o $(obj)/udelay_io.o -STAGE2_ARCH_X86_OBJ += $(obj)/pci_ops_auto.o $(obj)/pci_ops_conf1.o $(obj)/pci_ops_conf2.o -STAGE2_DYNAMIC_OBJ = $(obj)/statictree.o +STAGE2_LIB_OBJ = stage2.o clog2.o mem.o malloc.o tables.o delay.o compute_ip_checksum.o -STAGE2_OBJ := $(STAGE2_LIB_OBJ) $(STAGE2_DEVICE_OBJ) $(STAGE2_ARCH_X86_OBJ) -STAGE2_OBJ += $(STAGE2_MAINBOARD_OBJ) $(STAGE2_DYNAMIC_OBJ) $(STAGE2_CHIPSET_OBJ) +STAGE2_ARCH_X86_OBJ = archtables.o linuxbios_table.o udelay_io.o +STAGE2_ARCH_X86_OBJ += pci_ops_auto.o pci_ops_conf1.o pci_ops_conf2.o + +STAGE2_DYNAMIC_OBJ = statictree.o + +STAGE2_OBJ := $(patsubst %,$(obj)/lib/%,$(STAGE2_LIB_OBJ)) \ + $(patsubst %,$(obj)/arch/x86/%,$(STAGE2_ARCH_X86_OBJ)) \ + $(patsubst %,$(obj)/device/%,$(STAGE2_DEVICE_OBJ)) \ + $(patsubst %,$(obj)/mainboard/$(MAINBOARDDIR)/%,$(STAGE2_MAINBOARD_OBJ)) \ + $(patsubst %,$(obj)/mainboard/$(MAINBOARDDIR)/%,$(STAGE2_DYNAMIC_OBJ)) \ + +STAGE2_OBJ += $(STAGE2_CHIPSET_OBJ) $(obj)/linuxbios.stage2: $(obj)/stage0.init $(STAGE2_OBJ) $(Q)printf "Building linuxbios.stage2... " @@ -133,17 +141,19 @@ payload: # Build rules. # -$(obj)/%.o: $(src)/arch/x86/%.c +$(obj)/arch/x86/%.o: $(src)/arch/x86/%.c + $(Q)mkdir -p $(obj)/arch/x86 $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ -$(obj)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c +$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c + $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ # Building asm stub. -$(obj)/stage0%.o: $(src)/arch/x86/stage0%.S +$(obj)/arch/x86/stage0%.o: $(src)/arch/x86/stage0%.S $(Q)$(CC) -E $(LINUXBIOSINCLUDE) $< \ - -o $(obj)/stage0_asm.s -DBOOTBLK=0x1f00 -DRESRVED=0xf0 \ + -o $(obj)/arch/x86/stage0_asm.s -DBOOTBLK=0x1f00 -DRESRVED=0xf0 \ -DDATE=\"`date +%Y/%m/%d`\" - $(Q)$(AS) $(obj)/stage0_asm.s -o $@ + $(Q)$(AS) $(obj)/arch/x86/stage0_asm.s -o $@ endif diff --git a/console/Makefile b/console/Makefile index 038132b155..73720542d4 100644 --- a/console/Makefile +++ b/console/Makefile @@ -19,6 +19,7 @@ ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ## -$(obj)/%.o: $(src)/console/%.c +$(obj)/console/%.o: $(src)/console/%.c + $(Q)mkdir -p $(obj)/console $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ diff --git a/device/Makefile b/device/Makefile index e921d65b3b..d0d185671f 100644 --- a/device/Makefile +++ b/device/Makefile @@ -19,8 +19,9 @@ ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ## -$(obj)/%.o: $(src)/device/%.c +$(obj)/device/%.o: $(src)/device/%.c + $(Q)mkdir -p $(obj)/device $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ -STAGE2_DEVICE_OBJ = $(obj)/device.o $(obj)/device_util.o \ - $(obj)/root_device.o $(obj)/pci_device.o $(obj)/pci_ops.o +STAGE2_DEVICE_OBJ = device.o device_util.o \ + root_device.o pci_device.o pci_ops.o diff --git a/lib/Makefile b/lib/Makefile index 69d86df1e0..905f3c7be5 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -35,6 +35,7 @@ endif lzma: $(Q)printf "Building lzma... skipped\n" -$(obj)/%.o: $(src)/lib/%.c +$(obj)/lib/%.o: $(src)/lib/%.c + $(Q)mkdir -p $(obj)/lib $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ diff --git a/mainboard/emulation/qemu-x86/Makefile b/mainboard/emulation/qemu-x86/Makefile index fa646d6c2b..e20b2cd27c 100644 --- a/mainboard/emulation/qemu-x86/Makefile +++ b/mainboard/emulation/qemu-x86/Makefile @@ -37,10 +37,11 @@ $(obj)/linuxbios.vpd: # directory and is built from what was auto.c in v2. # -$(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(obj)/initram.o +$(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(obj)/mainboard/$(MAINBOARDDIR)/initram.o $(Q)printf "Building linuxbios.initram... " $(Q)# initram links against stage0 - $(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 $(obj)/initram.o \ + $(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 \ + $(obj)/mainboard/$(MAINBOARDDIR)/initram.o \ --entry=main -o $(obj)/linuxbios.initram.o $(Q)objcopy -O binary $(obj)/linuxbios.initram.o \ $(obj)/linuxbios.initram @@ -50,15 +51,15 @@ $(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(obj)/initram.o # Miscellaneous important targets. # -$(obj)/mainboard.o: $(obj)/statictree.o +$(obj)/mainboard/$(MAINBOARDDIR)/mainboard.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.o -$(obj)/statictree.o: $(obj)/statictree.c - $(Q)$(CC) $(CFLAGS) $(LINUXBIOSINCLUDE) -c -o $(obj)/statictree.o $(obj)/statictree.c +$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c + $(Q)$(CC) $(CFLAGS) $(LINUXBIOSINCLUDE) -c -o $@ $< -$(obj)/statictree.c: mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc - $(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts >$(obj)/statictree.c +$(obj)/mainboard/$(MAINBOARDDIR)/statictree.c: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc + $(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@ -STAGE2_MAINBOARD_OBJ = $(obj)/mainboard.o +STAGE2_MAINBOARD_OBJ = mainboard.o STAGE2_CHIPSET_OBJ = # chipset diff --git a/util/dtc/Makefile b/util/dtc/Makefile index 55046d674f..a3cd695bc9 100644 --- a/util/dtc/Makefile +++ b/util/dtc/Makefile @@ -12,36 +12,28 @@ DEPFILES = $(DTC_OBJS:.o=.d) #all: $(TARGETS) -$(obj)/util/dtc/dtc: $(patsubst %,$(obj)/%,$(DTC_OBJS)) +$(obj)/util/dtc/dtc: $(patsubst %,$(obj)/util/dtc/%,$(DTC_OBJS)) $(Q)mkdir -p $(obj)/util/dtc/ $(Q)$(HOSTCC) -o $@ $^ ftdump: ftdump.o $(Q)$(HOSTCC) -o $@ $^ -$(obj)/dtc-parser.tab.c $(obj)/dtc-parser.tab.h $(obj)/dtc-parser.output: $(src)/util/dtc/dtc-parser.y - $(Q)cd $(obj); $(BISON) -d $< &> $(obj)/dtc.bison.out +$(obj)/util/dtc/dtc-parser.tab.c $(obj)/util/dtc/dtc-parser.tab.h $(obj)/util/dtc/dtc-parser.output: $(src)/util/dtc/dtc-parser.y + $(Q)cd $(obj)/util/dtc; $(BISON) -d $< &> $(obj)/util/dtc/dtc.bison.out -$(obj)/lex.yy.c: $(src)/util/dtc/dtc-lexer.l - $(Q)cd $(obj); $(LEX) $< +$(obj)/util/dtc/lex.yy.c: $(src)/util/dtc/dtc-lexer.l + $(Q)cd $(obj)/util/dtc; $(LEX) $< -$(obj)/dtc.o: $(src)/util/dtc/dtc.c - $(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $< -$(obj)/livetree.o: $(src)/util/dtc/livetree.c - $(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $< -$(obj)/flattree.o: $(src)/util/dtc/flattree.c - $(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $< -$(obj)/data.o: $(src)/util/dtc/data.c - $(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $< -$(obj)/treesource.o: $(src)/util/dtc/treesource.c - $(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $< -$(obj)/fstree.o: $(src)/util/dtc/fstree.c - $(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $< -$(obj)/dtc-parser.tab.o: $(obj)/dtc-parser.tab.c - $(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $< -$(obj)/lex.yy.o: $(obj)/lex.yy.c $(obj)/dtc-parser.tab.h +$(obj)/util/dtc/%.o: $(src)/util/dtc/%.c + $(Q)mkdir -p $(obj)/util/dtc/ $(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $< +$(obj)/util/dtc/dtc-parser.tab.o: $(obj)/util/dtc/dtc-parser.tab.c + $(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $< + +$(obj)/util/dtc/lex.yy.o: $(obj)/util/dtc/lex.yy.c $(obj)/util/dtc/dtc-parser.tab.h + $(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $< ifdef DTC_DEBUG