diff --git a/Makefile b/Makefile index 8b0be7d95e..3d36516887 100644 --- a/Makefile +++ b/Makefile @@ -26,7 +26,6 @@ PATCHLEVEL = 0 SUBLEVEL = 0 have_dotconfig := $(wildcard .config) -have_dotxcompile := $(wildcard .xcompile) src := $(shell pwd) obj := $(shell pwd)/build @@ -60,6 +59,9 @@ endif KERNELVERSION = $(VERSION).$(PATCHLEVEL).$(SUBLEVEL) export KERNELVERSION +include $(shell $(src)/util/xcompile/xcompile > $(src)/.xcompile || \ + { echo "complete\\ toolchain" && rm -f $(src)/.xcompile && exit 1; }; echo $(src)/.xcompile) + ifeq ($(strip $(have_dotconfig)),) all: @@ -85,16 +87,10 @@ LINUXBIOSINCLUDE := -I$(src) -Iinclude \ -include $(obj)/config.h \ -include $(obj)/build.h -ifneq ($(strip $(have_dotxcompile)),) - include $(src)/.xcompile -else - include $(shell $(src)/util/xcompile/xcompile > $(src)/.xcompile || \ - { echo "complete\\ toolchain" && rm -f $(src)/.xcompile && exit 1; }; echo $(src)/.xcompile) -endif - CC := $(CC_$(ARCH)) AS := $(AS_$(ARCH)) LD := $(LD_$(ARCH)) +NM := $(NM_$(ARCH)) OBJCOPY := $(OBJCOPY_$(ARCH)) AR := $(AR_$(ARCH)) @@ -111,6 +107,7 @@ CFLAGS += -nostdinc -isystem `$(CC) -print-file-name=include` include lib/Makefile include device/Makefile include mainboard/$(MAINBOARDDIR)/Makefile +include Rules.make include northbridge/*/*/Makefile include southbridge/*/*/Makefile include superio/*/*/Makefile diff --git a/Rules.make b/Rules.make new file mode 100644 index 0000000000..79744cb4b9 --- /dev/null +++ b/Rules.make @@ -0,0 +1,80 @@ +## +## This file is part of the LinuxBIOS project. +## +## Copyright (C) 2006-2007 coresystems GmbH +## (Written by Stefan Reinauer for coresystems GmbH) +## +## This program is free software; you can redistribute it and/or modify +## it under the terms of the GNU General Public License as published by +## the Free Software Foundation; either version 2 of the License, or +## (at your option) any later version. +## +## This program is distributed in the hope that it will be useful, +## but WITHOUT ANY WARRANTY; without even the implied warranty of +## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +## GNU General Public License for more details. +## +## You should have received a copy of the GNU General Public License +## along with this program; if not, write to the Free Software +## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA +## + +# +# Miscellaneous mainboard specific build targets! +# + +$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/statictree.h + $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(CC) $(INITCFLAGS) $(LINUXBIOSINCLUDE) -c -o $@ $< + +$(obj)/mainboard/$(MAINBOARDDIR)/statictree.c: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc + $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@ + +$(obj)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc + $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(obj)/util/dtc/dtc -O lbh mainboard/$(MAINBOARDDIR)/dts > $@ + +$(obj)/mainboard/$(MAINBOARDDIR)/option_table.c: $(obj)/util/options/build_opt_tbl $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout + $(Q)printf " OPTIONS $(subst $(shell pwd)/,,$(@))\n" + $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) + $(Q)$(obj)/util/options/build_opt_tbl -b \ + --config $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout \ + --option $(obj)/mainboard/$(MAINBOARDDIR)/option_table.c + +$(obj)/option_table: $(obj)/mainboard/$(MAINBOARDDIR)/option_table.o + $(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(OBJCOPY) -O binary $< $@ + +$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c + $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) + $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ + +# +# Miscellaneous superio specific build targets! +# + +$(obj)/superio/%.o: $(src)/superio/%.c $(obj)/statictree.h + $(Q)mkdir -p $(dir $@) + $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ + +# +# Miscellaneous northbridge specific build targets! +# + +$(obj)/northbridge/%.o: $(src)/northbridge/%.c $(obj)/statictree.h + $(Q)mkdir -p $(dir $@) + $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ + +# +# Miscellaneous southbridge specific build targets! +# + +$(obj)/southbridge/%.o: $(src)/southbridge/%.c $(obj)/statictree.h + $(Q)mkdir -p $(dir $@) + $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ + diff --git a/arch/x86/Makefile b/arch/x86/Makefile index fa99467ccb..50d89ff2ab 100644 --- a/arch/x86/Makefile +++ b/arch/x86/Makefile @@ -22,8 +22,7 @@ ifeq ($(CONFIG_ARCH_X86),y) INITCFLAGS := $(CFLAGS) -I$(src)/include/arch/x86 -I$(src)/include \ - -I$(obj) \ - -fno-builtin + -I$(obj) -fno-builtin SILENT := >/dev/null 2>&1 @@ -58,7 +57,7 @@ ifeq ($(CONFIG_DEFAULT_COMPRESSION_NRV2B),y) COMPRESSFLAG := -C nrv2b endif -$(obj)/linuxbios.rom: $(obj)/linuxbios.bootblock $(obj)/util/lar/lar lzma nrv2b $(obj)/linuxbios.initram $(obj)/linuxbios.stage2 $(obj)/option_table +$(obj)/linuxbios.rom $(obj)/linuxbios.map: $(obj)/linuxbios.bootblock $(obj)/util/lar/lar lzma nrv2b $(obj)/linuxbios.initram $(obj)/linuxbios.stage2 $(obj)/option_table $(Q)rm -rf $(obj)/lar.tmp $(Q)mkdir $(obj)/lar.tmp $(Q)mkdir $(obj)/lar.tmp/normal @@ -86,6 +85,15 @@ endif $(Q)# Run "qemu -L build/ -serial stdio -hda /dev/zero". $(Q)printf " CP $(subst $(shell pwd)/,,$(obj)/bios.bin)\n" $(Q)cp $@ $(obj)/bios.bin + $(Q)echo "LinuxBIOS ROM Image:" > $(obj)/linuxbios.map + $(Q)$(obj)/util/lar/lar -l $(obj)/linuxbios.rom >> $(obj)/linuxbios.map + $(Q)(echo; echo "Stage 0/1 Map:") >> $(obj)/linuxbios.map + $(Q)cat $(obj)/stage0.init.map >> $(obj)/linuxbios.map + $(Q)(echo; echo "Stage Initram Map:") >> $(obj)/linuxbios.map + $(Q)cat $(obj)/linuxbios.initram.map >> $(obj)/linuxbios.map + $(Q)(echo; echo "Stage 2 Map:") >> $(obj)/linuxbios.map + $(Q)cat $(obj)/linuxbios.stage2.map >> $(obj)/linuxbios.map + $(obj)/linuxbios.bootblock: $(obj)/linuxbios.vpd $(obj)/stage0.init $(Q)printf " BUILD $(subst $(shell pwd)/,,$(@))\n" @@ -100,13 +108,14 @@ $(obj)/linuxbios.bootblock: $(obj)/linuxbios.vpd $(obj)/stage0.init STAGE0_LIB_OBJ = uart8250.o mem.o elfboot.o lar.o delay.o vtxprintf.o \ vsprintf.o console.o $(DECOMPRESSORS) STAGE0_ARCH_X86_OBJ = stage1.o serial.o archelfboot.o speaker.o \ - udelay_io.o mc146818rtc.o + udelay_io.o mc146818rtc.o post_code.o ifeq ($(CONFIG_CPU_I586),y) STAGE0_CAR_OBJ = stage0_i586.o else ifeq ($(CONFIG_CPU_AMD_GEODELX),y) STAGE0_CAR_OBJ = geodelx/stage0.o + STAGE0_ARCH_X86_OBJ += geodelx/stage1.o else STAGE0_CAR_OBJ = stage0_i586.o endif @@ -116,7 +125,7 @@ endif STAGE0_OBJ := $(patsubst %,$(obj)/lib/%,$(STAGE0_LIB_OBJ)) \ $(patsubst %,$(obj)/arch/x86/%,$(STAGE0_ARCH_X86_OBJ)) \ $(patsubst %,$(obj)/arch/x86/%,$(STAGE0_CAR_OBJ)) \ - $(STAGE0_MAINBOARD_OBJ) + $(STAGE0_MAINBOARD_OBJ) $(STAGE0_CHIPSET_OBJ) $(obj)/stage0.o $(obj)/stage0.init: $(STAGE0_OBJ) $(Q)# We need to be careful. If stage0.o gets bigger than @@ -136,6 +145,9 @@ $(obj)/stage0.o $(obj)/stage0.init: $(STAGE0_OBJ) $(Q)printf " TEST $(subst $(shell pwd)/,,$(@))\n" $(Q)test `wc -c < $(obj)/stage0.init` -gt 16128 && \ printf "Error. Bootblock got too big.\n" || true + $(Q)printf " NM $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(NM) $(obj)/stage0.o | sort -u > $(obj)/stage0.init.map + # @@ -172,29 +184,24 @@ endif STAGE2_OBJ += $(obj)/util/x86emu/libx86emu.a $(LIBGCC_FILE_NAME) endif -$(obj)/linuxbios.stage2: $(obj)/stage0.init $(STAGE2_OBJ) +$(obj)/linuxbios.stage2 $(obj)/linuxbios.stage2.map: $(obj)/stage0.init $(STAGE2_OBJ) $(Q)# leave a .o with full symbols in it for debugging. $(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n" $(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x1000 --entry=stage2 \ -o $(obj)/linuxbios.stage2.o $(STAGE2_OBJ) $(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n" $(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.stage2.o $(obj)/linuxbios.stage2 - + $(Q)$(NM) $(obj)/linuxbios.stage2.o | sort -u > $(obj)/linuxbios.stage2.map # # Build rules. # $(obj)/arch/x86/%.o: $(src)/arch/x86/%.c - $(Q)mkdir -p $(obj)/arch/x86 + $(Q)mkdir -p $(dir $@) $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ - -$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c - $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ - + # Building asm stub. $(obj)/arch/x86/stage0%.o: $(src)/arch/x86/stage0%.S $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" @@ -205,7 +212,7 @@ $(obj)/arch/x86/stage0%.o: $(src)/arch/x86/stage0%.S $(Q)$(AS) $(obj)/arch/x86/stage0_asm.s -o $@ $(obj)/arch/x86/geodelx/stage0.o: $(src)/arch/x86/geodelx/stage0.S - $(Q)mkdir -p $(obj)/arch/x86/geodelx + $(Q)mkdir -p $(dir $@) $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(CC) -E $(LINUXBIOSINCLUDE) $< \ -o $(obj)/arch/x86/stage0_asm.s -DBOOTBLK=0x1f00 \ diff --git a/arch/x86/post_code.c b/arch/x86/post_code.c new file mode 100644 index 0000000000..c66a0d3ba4 --- /dev/null +++ b/arch/x86/post_code.c @@ -0,0 +1,28 @@ +/* + * This file is part of the LinuxBIOS project. + * + * Copyright (C) 2007 Stefan Reinauer + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2 as + * published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ + +#include +#include + +void post_code(u8 value) +{ + outb(value, 0x80); +} + + diff --git a/arch/x86/stage1.c b/arch/x86/stage1.c index af67343a0b..6ad199e15c 100644 --- a/arch/x86/stage1.c +++ b/arch/x86/stage1.c @@ -25,6 +25,7 @@ #include #include #include +#include #define UNCOMPRESS_AREA 0x60000 @@ -35,11 +36,6 @@ int find_file(struct mem_file *archive, char *filename, struct mem_file *result) void hardware_stage1(void); void disable_car(void); -void post_code(u8 value) -{ - outb(value, 0x80); -} - static void stop_ap(void) { // nothing yet diff --git a/device/Makefile b/device/Makefile index 7aa7ab1a31..cde973d839 100644 --- a/device/Makefile +++ b/device/Makefile @@ -20,7 +20,7 @@ ## $(obj)/device/%.o: $(src)/device/%.c - $(Q)mkdir -p $(obj)/device + $(Q)mkdir -p $(dir $@) $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ diff --git a/include/post_code.h b/include/post_code.h index 0b150ba0a2..17edef470f 100644 --- a/include/post_code.h +++ b/include/post_code.h @@ -18,5 +18,7 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +void post_code(u8 value); + #define POST_START_OF_MAIN 0x01 diff --git a/lib/Makefile b/lib/Makefile index 4e36e60a5a..d3408cc2c1 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -45,7 +45,7 @@ nrv2b: endif $(obj)/lib/%.o: $(src)/lib/%.c - $(Q)mkdir -p $(obj)/lib + $(Q)mkdir -p $(dir $@) $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ diff --git a/mainboard/adl/msm800sev/Makefile b/mainboard/adl/msm800sev/Makefile index 0831755026..22c2f0e444 100644 --- a/mainboard/adl/msm800sev/Makefile +++ b/mainboard/adl/msm800sev/Makefile @@ -19,11 +19,9 @@ ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ## -STAGE0_MAINBOARD_OBJ := $(obj)/superio/winbond/w83627hf/stage1.o \ - $(obj)/device/pnp_raw.o \ - $(obj)/southbridge/amd/cs5536/stage1.o\ - $(obj)/arch/x86/geodelx/stage1.o \ - $(obj)/mainboard/$(MAINBOARDDIR)/stage1.o +STAGE0_MAINBOARD_OBJ := $(obj)/mainboard/$(MAINBOARDDIR)/stage1.o + +STAGE2_MAINBOARD_OBJ = $(obj)/linuxbios.vpd: $(Q)printf " BUILD DUMMY VPD\n" @@ -34,48 +32,17 @@ INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o \ $(obj)/southbridge/amd/cs5536/smbus_initram.o \ $(obj)/arch/x86/geodelx/geodelx.o +# These are possibly not permanent +INITRAM_OBJ += $(obj)/lib/console.o $(obj)/lib/vtxprintf.o $(obj)/lib/uart8250.o $(obj)/arch/x86/post_code.o + $(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(INITRAM_OBJ) $(Q)# initram links against stage0 $(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 $(INITRAM_OBJ) \ + $(Q)$(LD) -Ttext 0x80000 $(INITRAM_OBJ) \ --entry=main -o $(obj)/linuxbios.initram.o $(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n" $(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \ $(obj)/linuxbios.initram - -# -# Miscellaneous important targets. -# - -$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/statictree.h - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) $(LINUXBIOSINCLUDE) -c -o $@ $< - -$(obj)/mainboard/$(MAINBOARDDIR)/statictree.c: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc - $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@ - -$(obj)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc - $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(obj)/util/dtc/dtc -O lbh mainboard/$(MAINBOARDDIR)/dts > $@ - -$(obj)/mainboard/$(MAINBOARDDIR)/option_table.c: $(obj)/util/options/build_opt_tbl $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout - $(Q)printf " OPTIONS $(subst $(shell pwd)/,,$(@))\n" - $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) - $(Q)$(obj)/util/options/build_opt_tbl -b \ - --config $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout \ - --option $(obj)/mainboard/$(MAINBOARDDIR)/option_table.c - -$(obj)/option_table: $(obj)/mainboard/$(MAINBOARDDIR)/option_table.o - $(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(OBJCOPY) -O binary $< $@ - -STAGE2_MAINBOARD_OBJ = - -STAGE2_CHIPSET_OBJ = $(obj)/arch/x86/geodelx/cpu.o - -$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c - $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ + $(Q)printf " NM $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(NM) $(obj)/linuxbios.initram.o | sort -u > $(obj)/linuxbios.initram.map diff --git a/mainboard/amd/norwich/Makefile b/mainboard/amd/norwich/Makefile index 01650b7746..97986e1984 100644 --- a/mainboard/amd/norwich/Makefile +++ b/mainboard/amd/norwich/Makefile @@ -18,62 +18,31 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ## -STAGE0_MAINBOARD_OBJ :=\ - $(obj)/southbridge/amd/cs5536/stage1.o\ - $(obj)/arch/x86/geodelx/stage1.o \ - $(obj)/mainboard/$(MAINBOARDDIR)/stage1.o -$(obj)/linuxbios.vpd: - $(Q)printf " BUILD DUMMY VPD\n" - $(Q)dd if=/dev/zero of=$(obj)/linuxbios.vpd bs=256 count=1 $(SILENT) +STAGE0_MAINBOARD_OBJ := $(obj)/mainboard/$(MAINBOARDDIR)/stage1.o INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o \ $(obj)/northbridge/amd/geodelx/raminit.o \ $(obj)/southbridge/amd/cs5536/smbus_initram.o \ $(obj)/arch/x86/geodelx/geodelx.o -$(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(INITRAM_OBJ) +# These are possibly not permanent +INITRAM_OBJ += $(obj)/lib/console.o $(obj)/lib/vtxprintf.o $(obj)/lib/uart8250.o $(obj)/arch/x86/post_code.o + +STAGE2_MAINBOARD_OBJ = + +$(obj)/linuxbios.vpd: + $(Q)printf " BUILD DUMMY VPD\n" + $(Q)dd if=/dev/zero of=$(obj)/linuxbios.vpd bs=256 count=1 $(SILENT) + +$(obj)/linuxbios.initram $(obj)/linuxbios.initram.map: $(obj)/stage0.init $(obj)/stage0.o $(INITRAM_OBJ) $(Q)# initram links against stage0 $(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 $(INITRAM_OBJ) \ + $(Q)$(LD) -Ttext 0x80000 $(INITRAM_OBJ) \ --entry=main -o $(obj)/linuxbios.initram.o $(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n" $(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \ $(obj)/linuxbios.initram - -# -# Miscellaneous important targets. -# - -$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/statictree.h - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) $(LINUXBIOSINCLUDE) -c -o $@ $< - -$(obj)/mainboard/$(MAINBOARDDIR)/statictree.c: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc - $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@ - -$(obj)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc - $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(obj)/util/dtc/dtc -O lbh mainboard/$(MAINBOARDDIR)/dts > $@ - -$(obj)/mainboard/$(MAINBOARDDIR)/option_table.c: $(obj)/util/options/build_opt_tbl $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout - $(Q)printf " OPTIONS $(subst $(shell pwd)/,,$(@))\n" - $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) - $(Q)$(obj)/util/options/build_opt_tbl -b \ - --config $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout \ - --option $(obj)/mainboard/$(MAINBOARDDIR)/option_table.c - -$(obj)/option_table: $(obj)/mainboard/$(MAINBOARDDIR)/option_table.o - $(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(OBJCOPY) -O binary $< $@ - -STAGE2_MAINBOARD_OBJ = - -STAGE2_CHIPSET_OBJ = $(obj)/arch/x86/geodelx/cpu.o - -$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c - $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ + $(Q)printf " NM $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(NM) $(obj)/linuxbios.initram.o | sort -u > $(obj)/linuxbios.initram.map diff --git a/mainboard/artecgroup/dbe61/Makefile b/mainboard/artecgroup/dbe61/Makefile index 41963b78f8..5c8cb7c4b8 100644 --- a/mainboard/artecgroup/dbe61/Makefile +++ b/mainboard/artecgroup/dbe61/Makefile @@ -18,10 +18,10 @@ ## along with this program; if not, write to the Free Software ## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA ## -STAGE0_MAINBOARD_OBJ := \ - $(obj)/southbridge/amd/cs5536/stage1.o\ - $(obj)/arch/x86/geodelx/stage1.o \ - $(obj)/mainboard/$(MAINBOARDDIR)/stage1.o + +STAGE0_MAINBOARD_OBJ := $(obj)/mainboard/$(MAINBOARDDIR)/stage1.o + +STAGE2_MAINBOARD_OBJ = $(obj)/linuxbios.vpd: $(Q)printf " BUILD DUMMY VPD\n" @@ -30,48 +30,17 @@ $(obj)/linuxbios.vpd: INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o \ $(obj)/arch/x86/geodelx/geodelx.o +# These are possibly not permanent +INITRAM_OBJ += $(obj)/lib/console.o $(obj)/lib/vtxprintf.o $(obj)/lib/uart8250.o $(obj)/arch/x86/post_code.o + $(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(INITRAM_OBJ) $(Q)# initram links against stage0 $(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 $(INITRAM_OBJ) \ + $(Q)$(LD) -Ttext 0x80000 $(INITRAM_OBJ) \ --entry=main -o $(obj)/linuxbios.initram.o $(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n" $(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \ $(obj)/linuxbios.initram - -# -# Miscellaneous important targets. -# - -$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/statictree.h - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) $(LINUXBIOSINCLUDE) -c -o $@ $< - -$(obj)/mainboard/$(MAINBOARDDIR)/statictree.c: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc - $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@ - -$(obj)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc - $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(obj)/util/dtc/dtc -O lbh mainboard/$(MAINBOARDDIR)/dts > $@ - -$(obj)/mainboard/$(MAINBOARDDIR)/option_table.c: $(obj)/util/options/build_opt_tbl $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout - $(Q)printf " OPTIONS $(subst $(shell pwd)/,,$(@))\n" - $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) - $(Q)$(obj)/util/options/build_opt_tbl -b \ - --config $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout \ - --option $(obj)/mainboard/$(MAINBOARDDIR)/option_table.c - -$(obj)/option_table: $(obj)/mainboard/$(MAINBOARDDIR)/option_table.o - $(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(OBJCOPY) -O binary $< $@ - -STAGE2_MAINBOARD_OBJ = - -STAGE2_CHIPSET_OBJ = $(obj)/arch/x86/geodelx/cpu.o - -$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c - $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ + $(Q)printf " NM $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(NM) $(obj)/linuxbios.initram.o | sort -u > $(obj)/linuxbios.initram.map diff --git a/mainboard/emulation/qemu-x86/Makefile b/mainboard/emulation/qemu-x86/Makefile index 0ec00b722c..838e68998d 100644 --- a/mainboard/emulation/qemu-x86/Makefile +++ b/mainboard/emulation/qemu-x86/Makefile @@ -21,6 +21,8 @@ STAGE0_MAINBOARD_OBJ := $(obj)/mainboard/$(MAINBOARDDIR)/stage1.o +STAGE2_MAINBOARD_OBJ = vga.o + # # VPD or SIP ROM or... how does NVIDIA call it? # Some space to cope with dirty southbridge tricks. @@ -39,49 +41,17 @@ $(obj)/linuxbios.vpd: # INITRAM_OBJ = $(obj)/mainboard/$(MAINBOARDDIR)/initram.o +# These are possibly not permanent +INITRAM_OBJ += $(obj)/lib/console.o $(obj)/lib/vtxprintf.o $(obj)/lib/uart8250.o $(obj)/arch/x86/post_code.o $(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(INITRAM_OBJ) $(Q)# initram links against stage0 $(Q)printf " LD $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 $(INITRAM_OBJ) \ + $(Q)$(LD) -Ttext 0x80000 $(INITRAM_OBJ) \ --entry=main -o $(obj)/linuxbios.initram.o $(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n" $(Q)$(OBJCOPY) -O binary $(obj)/linuxbios.initram.o \ $(obj)/linuxbios.initram - -# -# Miscellaneous important targets. -# - -$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c $(obj)/statictree.h - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) $(LINUXBIOSINCLUDE) -c -o $@ $< - -$(obj)/statictree.h: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc - $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(obj)/util/dtc/dtc -O lbh mainboard/$(MAINBOARDDIR)/dts > $@ - -$(obj)/mainboard/$(MAINBOARDDIR)/statictree.c: $(src)/mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc $(obj)/statictree.h - $(Q)printf " DTC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts > $@ - -$(obj)/mainboard/$(MAINBOARDDIR)/option_table.c: $(obj)/util/options/build_opt_tbl $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout - $(Q)printf " OPTIONS $(subst $(shell pwd)/,,$(@))\n" - $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) - $(Q)$(obj)/util/options/build_opt_tbl -b \ - --config $(src)/mainboard/$(MAINBOARDDIR)/cmos.layout \ - --option $(obj)/mainboard/$(MAINBOARDDIR)/option_table.c - -$(obj)/option_table: $(obj)/mainboard/$(MAINBOARDDIR)/option_table.o - $(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(OBJCOPY) -O binary $< $@ - -STAGE2_MAINBOARD_OBJ = vga.o - -STAGE2_CHIPSET_OBJ = - -$(obj)/mainboard/$(MAINBOARDDIR)/%.o: $(src)/mainboard/$(MAINBOARDDIR)/%.c - $(Q)mkdir -p $(obj)/mainboard/$(MAINBOARDDIR) - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ + $(Q)printf " NM $(subst $(shell pwd)/,,$(@))\n" + $(Q)$(NM) $(obj)/linuxbios.initram.o | sort -u > $(obj)/linuxbios.initram.map diff --git a/northbridge/amd/geodelx/Makefile b/northbridge/amd/geodelx/Makefile index ca90ea9a88..972e3157ce 100644 --- a/northbridge/amd/geodelx/Makefile +++ b/northbridge/amd/geodelx/Makefile @@ -24,10 +24,4 @@ ifeq ($(CONFIG_NORTHBRIDGE_AMD_GEODELX),y) STAGE2_CHIPSET_OBJ += $(obj)/northbridge/amd/geodelx/geodelx.o \ $(obj)/northbridge/amd/geodelx/geodelxinit.o -$(obj)/northbridge/amd/geodelx/%.o: $(src)/northbridge/amd/geodelx/%.c \ - $(obj)/statictree.h - $(Q)mkdir -p $(obj)/northbridge/amd/geodelx - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ - endif diff --git a/northbridge/intel/i440bxemulation/Makefile b/northbridge/intel/i440bxemulation/Makefile index 73e3fe285a..b23ebd714f 100644 --- a/northbridge/intel/i440bxemulation/Makefile +++ b/northbridge/intel/i440bxemulation/Makefile @@ -23,9 +23,4 @@ ifeq ($(CONFIG_NORTHBRIDGE_INTEL_I440BXEMULATION),y) STAGE2_CHIPSET_OBJ += $(obj)/northbridge/intel/i440bxemulation/i440bx.o -$(obj)/northbridge/intel/i440bxemulation/%.o: $(src)/northbridge/intel/i440bxemulation/%.c $(obj)/statictree.h - $(Q)mkdir -p $(obj)/northbridge/intel/i440bxemulation - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ - endif diff --git a/southbridge/amd/cs5536/Makefile b/southbridge/amd/cs5536/Makefile index fe5d2f54d6..8d7b9500c9 100644 --- a/southbridge/amd/cs5536/Makefile +++ b/southbridge/amd/cs5536/Makefile @@ -23,10 +23,6 @@ ifeq ($(CONFIG_SOUTHBRIDGE_AMD_CS5536),y) STAGE2_CHIPSET_OBJ += $(obj)/southbridge/amd/cs5536/cs5536.o -$(obj)/southbridge/amd/cs5536/%.o: $(src)/southbridge/amd/cs5536/%.c \ - $(obj)/statictree.h - $(Q)mkdir -p $(obj)/southbridge/amd/cs5536/ - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ +STAGE0_CHIPSET_OBJ += $(obj)/southbridge/amd/cs5536/stage1.o endif diff --git a/southbridge/intel/i82371eb/Makefile b/southbridge/intel/i82371eb/Makefile index 0d396213eb..5916961a43 100644 --- a/southbridge/intel/i82371eb/Makefile +++ b/southbridge/intel/i82371eb/Makefile @@ -22,10 +22,4 @@ ifeq ($(CONFIG_SOUTHBRIDGE_INTEL_I82371EB),y) STAGE2_CHIPSET_OBJ += $(obj)/southbridge/intel/i82371eb/i82371eb.o -$(obj)/southbridge/intel/i82371eb/%.o: $(src)/southbridge/intel/i82371eb/%.c \ - $(obj)/statictree.h - $(Q)mkdir -p $(obj)/southbridge/intel/i82371eb/ - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ - endif diff --git a/superio/winbond/w83627hf/Makefile b/superio/winbond/w83627hf/Makefile index 4001062b7c..c20198deec 100644 --- a/superio/winbond/w83627hf/Makefile +++ b/superio/winbond/w83627hf/Makefile @@ -21,12 +21,10 @@ ifeq ($(CONFIG_SUPERIO_WINBOND_W83627HF),y) +STAGE0_CHIPSET_OBJ += $(obj)/superio/winbond/w83627hf/stage1.o +STAGE0_CHIPSET_OBJ += $(obj)/device/pnp_raw.o + # Always add to variables, as there could be more than one Super I/O. STAGE2_CHIPSET_OBJ += $(obj)/superio/winbond/w83627hf/superio.o -$(obj)/superio/winbond/w83627hf/%.o: $(src)/superio/winbond/w83627hf/%.c $(obj)/statictree.h - $(Q)mkdir -p $(obj)/superio/winbond/w83627hf/ - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -c $< -o $@ - endif diff --git a/util/dtc/Makefile b/util/dtc/Makefile index 461578ab47..2ebfa89136 100644 --- a/util/dtc/Makefile +++ b/util/dtc/Makefile @@ -13,7 +13,7 @@ DEPFILES = $(DTC_OBJS:.o=.d) #all: $(TARGETS) $(obj)/util/dtc/dtc: $(patsubst %,$(obj)/util/dtc/%,$(DTC_OBJS)) - $(Q)mkdir -p $(obj)/util/dtc/ + $(Q)mkdir -p $(dir $@) $(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(HOSTCC) -o $@ $^ @@ -21,7 +21,7 @@ ftdump: ftdump.o $(Q)$(HOSTCC) -o $@ $^ $(obj)/util/dtc/dtc-parser.tab.c $(obj)/util/dtc/dtc-parser.tab.h: $(src)/util/dtc/dtc-parser.y - $(Q)mkdir -p $(obj)/util/dtc + $(Q)mkdir -p $(dir $@) $(Q)printf " BISON $(subst $(shell pwd)/,,$(@))\n" $(Q)cd $(obj)/util/dtc; $(BISON) -d $< > $(obj)/util/dtc/dtc.bison.out 2>&1 @@ -29,7 +29,7 @@ $(obj)/util/dtc/lex.yy.c: $(src)/util/dtc/dtc-lexer.l $(Q)cd $(obj)/util/dtc; $(LEX) $< $(obj)/util/dtc/%.o: $(src)/util/dtc/%.c - $(Q)mkdir -p $(obj)/util/dtc/ + $(Q)mkdir -p $(dir $@) $(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $< diff --git a/util/kconfig/Makefile b/util/kconfig/Makefile index 93b1ef5cef..98621be33e 100644 --- a/util/kconfig/Makefile +++ b/util/kconfig/Makefile @@ -119,57 +119,57 @@ $(obj)/util/kconfig/gconf: $(patsubst %,$(obj)/util/kconfig/%,$(gconf-objects)) $(obj)/util/kconfig/mconf.o: $(src)/util/kconfig/mconf.c - $(Q)mkdir -p $(obj)/util/kconfig + $(Q)mkdir -p $(dir $@) $(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(HOSTCC) $(HOSTCFLAGS) $(INTLCFLAGS) -I$(src)/util/kconfig -c -o $@ $< $(obj)/util/kconfig/conf.o: $(src)/util/kconfig/conf.c - $(Q)mkdir -p $(obj)/util/kconfig + $(Q)mkdir -p $(dir $@) $(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(HOSTCC) $(HOSTCFLAGS) -I$(src)/util/kconfig -c -o $@ $< $(obj)/util/kconfig/kconfig_load.o: $(src)/util/kconfig/kconfig_load.c - $(Q)mkdir -p $(obj)/util/kconfig + $(Q)mkdir -p $(dir $@) $(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(HOSTCC) $(HOSTCFLAGS) -I$(obj)/util/kconfig -I$(src)/util/kconfig -c -o $@ $< $(obj)/util/kconfig/qconf.o: $(src)/util/kconfig/qconf.cc $(obj)/util/kconfig/qconf.moc $(obj)/util/kconfig/lkc_defs.h - $(Q)mkdir -p $(obj)/util/kconfig + $(Q)mkdir -p $(dir $@) $(Q)printf " HOSTCXX $(subst $(shell pwd)/,,$(@))\n" $(Q)$(HOSTCXX) $(KC_QT_CFLAGS) -D LKC_DIRECT_LINK \ -I$(src)/util/kconfig -I$(obj)/util/kconfig -c -o $@ $< $(obj)/util/kconfig/gconf.o: $(src)/util/kconfig/gconf.c $(obj)/util/kconfig/lkc_defs.h - $(Q)mkdir -p $(obj)/util/kconfig + $(Q)mkdir -p $(dir $@) $(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(HOSTCC) $(HOSTCFLAGS) `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \ -D LKC_DIRECT_LINK -I$(obj) -I$(src)/util/kconfig -c -o $@ $< $(obj)/util/kconfig/%.moc: $(src)/util/kconfig/%.h - $(Q)mkdir -p $(obj)/util/kconfig + $(Q)mkdir -p $(dir $@) $(Q)printf " MOC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(KC_QT_MOC) -i $< -o $@ $(obj)/util/kconfig/lkc_defs.h: $(src)/util/kconfig/lkc_proto.h - $(Q)mkdir -p $(obj)/util/kconfig + $(Q)mkdir -p $(dir $@) $(Q)printf " GEN $(subst $(shell pwd)/,,$(@))\n" $(Q)sed < $< > $@ 's/P(\([^,]*\),.*/#define \1 (\*\1_p)/' $(obj)/util/kconfig/zconf.tab.o: $(obj)/util/kconfig/zconf.tab.c $(obj)/util/kconfig/zconf.hash.c $(obj)/util/kconfig/lex.zconf.c - $(Q)mkdir -p $(obj)/util/kconfig + $(Q)mkdir -p $(dir $@) $(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(HOSTCC) $(HOSTCFLAGS) $(INTLCFLAGS) -I$(src)/util/kconfig -c -o $@ $(obj)/util/kconfig/zconf.tab.c $(obj)/util/kconfig/lex.zconf.c: $(src)/util/kconfig/lex.zconf.c_shipped - $(Q)mkdir -p $(obj)/util/kconfig + $(Q)mkdir -p $(dir $@) $(Q)cp $< $@ $(obj)/util/kconfig/zconf.hash.c: $(src)/util/kconfig/zconf.hash.c_shipped - $(Q)mkdir -p $(obj)/util/kconfig + $(Q)mkdir -p $(dir $@) $(Q)cp $< $@ $(obj)/util/kconfig/zconf.tab.c: $(src)/util/kconfig/zconf.tab.c_shipped - $(Q)mkdir -p $(obj)/util/kconfig + $(Q)mkdir -p $(dir $@) $(Q)cp $< $@ include $(src)/util/kconfig/lxdialog/Makefile @@ -242,7 +242,7 @@ $(obj)/util/kconfig/.tmp_qtcheck: echo "*"; \ moc="/usr/bin/moc"; \ fi; \ - mkdir -p $(obj)/util/kconfig; \ + mkdir -p $(dir $@); \ echo "KC_QT_CFLAGS=$$cflags" > $@; \ echo "KC_QT_LIBS=$$libs" >> $@; \ echo "KC_QT_MOC=$$moc" >> $@ @@ -257,7 +257,7 @@ $(obj)/util/kconfig/.tmp_gtkcheck: $(src)/util/kconfig/Makefile $(obj)/util/kconfig/.tmp_gtkcheck: @if `pkg-config --exists gtk+-2.0 gmodule-2.0 libglade-2.0`; then \ if `pkg-config --atleast-version=2.0.0 gtk+-2.0`; then \ - mkdir -p $(obj)/util/kconfig; \ + mkdir -p $(dir $@); \ touch $@; \ else \ echo "*"; \ diff --git a/util/x86emu/Makefile b/util/x86emu/Makefile index e6caa07d18..ec2d2fbf44 100644 --- a/util/x86emu/Makefile +++ b/util/x86emu/Makefile @@ -36,18 +36,12 @@ $(obj)/util/x86emu/libx86emu.a: $(LIBX86EMU_OBJS) $(src)/.config $(Q)rm -f $@ # otherwise we always add to the archive $(Q)$(AR) qcs $@ $(LIBX86EMU_OBJS) -$(obj)/util/x86emu/x86emu/%.o: $(src)/util/x86emu/x86emu/%.c - $(Q)mkdir -p $(obj)/util/x86emu/x86emu/ - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -I$(src)/util/x86emu/include -c $< -o $@ - -$(obj)/util/x86emu/pcbios/%.o: $(src)/util/x86emu/pcbios/%.c - $(Q)mkdir -p $(obj)/util/x86emu/pcbios - $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" - $(Q)$(CC) $(INITCFLAGS) -I$(src)/util/x86emu/include -c $< -o $@ +# +# This rule is also valid for all subdirectories +# $(obj)/util/x86emu/%.o: $(src)/util/x86emu/%.c - $(Q)mkdir -p $(obj)/util/x86emu + $(Q)mkdir -p $(dir $@) $(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n" $(Q)$(CC) $(INITCFLAGS) -I$(src)/util/x86emu/include -c $< -o $@ diff --git a/util/x86emu/x86emu/x86emui.h b/util/x86emu/x86emu/x86emui.h index 044e2cb59e..ff69d50565 100644 --- a/util/x86emu/x86emu/x86emui.h +++ b/util/x86emu/x86emu/x86emui.h @@ -75,7 +75,7 @@ #include #else //#include -#include +//#include #include #endif /*--------------------------- Inline Functions ----------------------------*/ diff --git a/util/xcompile/xcompile b/util/xcompile/xcompile index 2663b09ca3..3d97325297 100755 --- a/util/xcompile/xcompile +++ b/util/xcompile/xcompile @@ -61,6 +61,7 @@ case "$ARCH" in searchgnu ar >/dev/null && echo "AR_x86 := $(searchgnu ar)" searchgnu as >/dev/null && echo "AS_x86 := $(searchgnu as) --32" searchgnu ld >/dev/null && echo "LD_x86 := $(searchgnu ld) -b elf32-i386 -melf_i386" + searchgnu nm >/dev/null && echo "NM_x86 := $(searchgnu nm)" searchgnu objcopy >/dev/null && echo "OBJCOPY_x86 := $(searchgnu objcopy)" ;; "x86") @@ -71,6 +72,7 @@ case "$ARCH" in searchgnu ar >/dev/null && echo "AR_x86 := $(searchgnu ar)" searchgnu as >/dev/null && echo "AS_x86 := $(searchgnu as)" searchgnu ld >/dev/null && echo "LD_x86 := $(searchgnu ld)" + searchgnu nm >/dev/null && echo "NM_x86 := $(searchgnu nm)" searchgnu objcopy >/dev/null && echo "OBJCOPY_x86 := $(searchgnu objcopy)" else CC=`find /opt/local/bin/ -name "i386-elf-gcc-*"` @@ -82,6 +84,7 @@ case "$ARCH" in echo "AR_x86 := i386-elf-ar" echo "AS_x86 := i386-elf-as" echo "LD_x86 := i386-elf-ld" + echo "NM_x86 := i386-elf-nm" echo "OBJCOPY_x86 := i386-elf-objcopy" echo "INTLCFLAGS := -I/opt/local/include" echo "INTLLIBS := -L/opt/local/lib -lintl" @@ -94,6 +97,7 @@ case "$ARCH" in echo "AR_x86 := i386-linux-ar" echo "AS_x86 := i386-linux-as" echo "LD_x86 := i386-linux-ld" + echo "NM_x86 := i386-linux-nm" echo "OBJCOPY_x86 := i386-linux-objcopy" ;; esac