Make the LinuxBIOS build output look a lot like the stuff people

are used to from the Linux kernel.

Signed-off-by: Uwe Hermann <uwe@hermann-uwe.de>
Acked-by: Stefan Reinauer <stepan@coresystems.de>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@243 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
Stefan Reinauer 2007-03-11 17:55:16 +00:00
parent 12213f870d
commit 9c67ea60b7
14 changed files with 60 additions and 26 deletions

View file

@ -70,7 +70,7 @@ LINUXBIOS_EXTRA_VERSION := -$(shell echo $(CONFIG_LOCALVERSION))
endif
all: prepare prepare2 $(obj)/linuxbios.rom
$(Q)printf "Build process finished.\n"
$(Q)printf " DONE\n"
ARCH:=$(shell echo $(CONFIG_ARCH))
MAINBOARDDIR=$(shell echo $(CONFIG_MAINBOARD_NAME))
@ -108,7 +108,9 @@ prepare:
$(Q)mkdir -p $(obj)
prepare2:
$(Q)printf " CP $(subst $(shell pwd)/,,$(obj)/config.h)\n"
$(Q)cp $(src)/.tmpconfig.h $(obj)/config.h
$(Q)printf " GEN $(subst $(shell pwd)/,,$(obj)/build.h)\n"
$(Q)printf "#define LINUXBIOS_VERSION \"$(KERNELVERSION)\"\n" > $(obj)/build.h
$(Q)printf "#define LINUXBIOS_EXTRA_VERSION \"$(LINUXBIOS_EXTRA_VERSION)\"\n" >> $(obj)/build.h
$(Q)printf "#define LINUXBIOS_BUILD \"`LANG= date`\"\n" >> $(obj)/build.h
@ -118,18 +120,17 @@ prepare2:
$(Q)printf "#define LINUXBIOS_LINKER \"$(shell LANG= $(LD) --version | head -n1)\"\n" >> $(obj)/build.h
clean:
$(Q)printf "Cleaning up... "
$(Q)printf " CLEAN $(subst $(shell pwd)/,,$(obj))\n"
$(Q)rm -rf $(obj)
$(Q)printf " CLEAN $(subst $(shell pwd)/,,$(DOXYGEN_OUTPUT_DIR))\n"
$(Q)rm -rf $(DOXYGEN_OUTPUT_DIR)
$(Q)printf "done\n"
distclean: clean
$(Q)printf "Deleting config files... "
$(Q)printf " CLEAN .kconfig.d .config .tmpconfig.h .config.old .xcompile\n"
$(Q)rm -f .kconfig.d .config .tmpconfig.h .config.old .xcompile
$(Q)printf "done\n"
%.o: %.c
$(Q)printf "Compiling $<\n"
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(CFLAGS) -o $@ -c $<
.PHONY: doc

View file

@ -37,21 +37,22 @@ SILENT := &> /dev/null
ROM_SIZE := $(shell expr $(CONFIG_LINUXBIOS_ROMSIZE_KB) \* 1024 )
$(obj)/linuxbios.rom: $(obj)/linuxbios.bootblock $(obj)/util/lar/lar lzma $(obj)/linuxbios.initram $(obj)/linuxbios.stage2 payload
$(Q)printf "Building LinuxBIOS image... \n"
$(Q)rm -rf $(obj)/lar.tmp
$(Q)mkdir $(obj)/lar.tmp
$(Q)mkdir $(obj)/lar.tmp/normal
$(Q)cp $(obj)/linuxbios.initram $(obj)/lar.tmp/normal/initram
$(Q)cp $(obj)/linuxbios.stage2 $(obj)/lar.tmp/normal/stage2
$(Q)cp $(CONFIG_PAYLOAD) $(obj)/lar.tmp/normal/payload
$(Q)printf " "
$(Q)cd $(obj)/lar.tmp && ../util/lar/lar -cv ../linuxbios.rom . \
$(Q)printf " LAR $(subst $(shell pwd)/,,$(@))\n"
$(Q)cd $(obj)/lar.tmp && ../util/lar/lar -c ../linuxbios.rom . \
-s $(ROM_SIZE) -b $(obj)/linuxbios.bootblock
$(Q)# QEMU wants bios.bin:
$(Q)# Run "qemu -L build/ -nographic -hda /dev/zero".
$(Q)printf " CP $(subst $(shell pwd)/,,$(obj)/bios.bin)\n"
$(Q)cp $@ $(obj)/bios.bin
$(obj)/linuxbios.bootblock: $(obj)/linuxbios.vpd $(obj)/stage0.init
$(Q)printf " BUILD $(subst $(shell pwd)/,,$(@))\n"
$(Q)cat $^ > $@
#
@ -77,20 +78,20 @@ STAGE0_OBJ := $(patsubst %,$(obj)/console/%,$(STAGE0_CONSOLE_OBJ)) \
$(patsubst %,$(obj)/arch/x86/%,$(STAGE0_CAR_OBJ))
$(obj)/stage0.init: $(STAGE0_OBJ)
$(Q)printf "Building stage0.init... "
$(Q)# We need to be careful. If stage0.o gets bigger than
$(Q)# 0x4000 - 0x100, we will end up with a 4 gig file.
$(Q)# I wonder if that behavior is on purpose.
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) -nostdlib -static -T $(src)/arch/x86/ldscript.ld \
$(STAGE0_OBJ) -o $(obj)/stage0.o
$(Q)printf " OBJCOPY $(subst $(shell pwd)/,,$(@))\n"
$(Q)objcopy -O binary $(obj)/stage0.o $(obj)/stage0.init
$(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 "done\n"
#
@ -117,12 +118,12 @@ STAGE2_OBJ := $(patsubst %,$(obj)/lib/%,$(STAGE2_LIB_OBJ)) \
STAGE2_OBJ += $(STAGE2_CHIPSET_OBJ)
$(obj)/linuxbios.stage2: $(obj)/stage0.init $(STAGE2_OBJ)
$(Q)printf "Building linuxbios.stage2... "
$(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)printf "done\n"
#
@ -134,7 +135,7 @@ $(obj)/linuxbios.stage2: $(obj)/stage0.init $(STAGE2_OBJ)
#
payload:
$(Q)printf "Building payload... skipped\n"
$(Q)printf " BUILD PAYLOAD (skipped)\n"
#
@ -143,17 +144,21 @@ payload:
$(obj)/arch/x86/%.o: $(src)/arch/x86/%.c
$(Q)mkdir -p $(obj)/arch/x86
$(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"
$(Q)$(CC) -E $(LINUXBIOSINCLUDE) $< \
-o $(obj)/arch/x86/stage0_asm.s -DBOOTBLK=0x1f00 -DRESRVED=0xf0 \
-DDATE=\"`date +%Y/%m/%d`\"
$(Q)printf " AS $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(AS) $(obj)/arch/x86/stage0_asm.s -o $@
endif

View file

@ -21,5 +21,6 @@
$(obj)/console/%.o: $(src)/console/%.c
$(Q)mkdir -p $(obj)/console
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@

View file

@ -21,6 +21,7 @@
$(obj)/device/%.o: $(src)/device/%.c
$(Q)mkdir -p $(obj)/device
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
STAGE2_DEVICE_OBJ = device.o device_util.o \

View file

@ -33,9 +33,10 @@ endif
#
lzma:
$(Q)printf "Building lzma... skipped\n"
$(Q)printf " BUILD LZMA (skipped)\n"
$(obj)/lib/%.o: $(src)/lib/%.c
$(Q)mkdir -p $(obj)/lib
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@

View file

@ -26,9 +26,8 @@
#
$(obj)/linuxbios.vpd:
$(Q)printf "Building dummy VPD... "
$(Q)printf " BUILD DUMMY VPD\n"
$(Q)dd if=/dev/zero of=$(obj)/linuxbios.vpd bs=256 count=1 $(SILENT)
$(Q)printf "done\n"
#
# This is going to be the init RAM code.
@ -38,14 +37,14 @@ $(obj)/linuxbios.vpd:
#
$(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)printf " LD $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 \
$(obj)/mainboard/$(MAINBOARDDIR)/initram.o \
--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
$(Q)printf "done\n"
#
# Miscellaneous important targets.
@ -54,9 +53,11 @@ $(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o $(obj)/mainboard/$(
$(obj)/mainboard/$(MAINBOARDDIR)/mainboard.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.o
$(obj)/mainboard/$(MAINBOARDDIR)/statictree.o: $(obj)/mainboard/$(MAINBOARDDIR)/statictree.c
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(CFLAGS) $(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 > $@
STAGE2_MAINBOARD_OBJ = mainboard.o

View file

@ -20,6 +20,7 @@
##
$(obj)/i440bx.o: $(src)/northbridge/intel/i440bxemulation/i440bx.c
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
STAGE2_CHIPSET_OBJ += $(obj)/i440bx.o

View file

@ -19,6 +19,7 @@
##
$(obj)/%.o: $(src)/southbridge/intel/i82371eb/%.c
$(Q)printf " CC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CC) $(INITCFLAGS) -c $< -o $@
STAGE2_CHIPSET_OBJ += $(obj)/i82371eb.o

View file

@ -14,6 +14,7 @@ DEPFILES = $(DTC_OBJS:.o=.d)
$(obj)/util/dtc/dtc: $(patsubst %,$(obj)/util/dtc/%,$(DTC_OBJS))
$(Q)mkdir -p $(obj)/util/dtc/
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -o $@ $^
ftdump: ftdump.o
@ -27,9 +28,11 @@ $(obj)/util/dtc/lex.yy.c: $(src)/util/dtc/dtc-lexer.l
$(obj)/util/dtc/%.o: $(src)/util/dtc/%.c
$(Q)mkdir -p $(obj)/util/dtc/
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $<
$(obj)/util/dtc/dtc-parser.tab.o: $(obj)/util/dtc/dtc-parser.tab.c
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(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
@ -51,6 +54,7 @@ clean:
endif
%.d: %.c
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(HOSTCC) -MM -MG -MT "$*.o $@" $< > $@
-include $(DEPFILES)

View file

@ -153,8 +153,10 @@ int main(int argc, char *argv[])
else
arg = argv[optind];
fprintf(stderr, "DTC: %s->%s on file \"%s\"\n",
inform, outform, arg);
// fprintf(stderr, "DTC: %s->%s on file \"%s\"\n",
// inform, outform, arg);
fprintf(stderr, " DTC %s (%s->%s)\n",
arg, inform, outform);
if (streq(inform, "dts")) {
inf = dtc_open_file(arg);

View file

@ -97,51 +97,63 @@ qconf-objects := qconf.o kconfig_load.o zconf.tab.o
gconf-objects := gconf.o kconfig_load.o zconf.tab.o
$(obj)/util/kconfig/mconf: $(patsubst %,$(obj)/util/kconfig/%,$(mconf-objects))
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -lncurses -o $@ $^
$(obj)/util/kconfig/conf: $(patsubst %,$(obj)/util/kconfig/%,$(conf-objects))
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -lncurses -o $@ $^
$(obj)/util/kconfig/qconf: $(patsubst %,$(obj)/util/kconfig/%,$(qconf-objects))
$(Q)printf " HOSTCXX $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCXX) $(KC_QT_LIBS) -ldl -o $@ $^
$(obj)/util/kconfig/gconf: $(patsubst %,$(obj)/util/kconfig/%,$(gconf-objects))
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0` -o $@ $^
$(obj)/util/kconfig/mconf.o: $(src)/util/kconfig/mconf.c
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -I$(src)/util/kconfig -c -o $@ $<
$(obj)/util/kconfig/conf.o: $(src)/util/kconfig/conf.c
$(Q)mkdir -p $(obj)/util/kconfig
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -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)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -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)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)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) `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)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)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)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) -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

View file

@ -14,6 +14,7 @@ HOST_EXTRACFLAGS += -DLOCALE
.PHONY: dochecklxdialog
$(obj)/dochecklxdialog:
$(Q)printf " CHECK $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(CONFIG_SHELL) $(check-lxdialog) -check $(HOSTCC) $(HOST_LOADLIBES)
always := lxdialog dochecklxdialog
@ -22,11 +23,13 @@ lxdialog-objs := checklist.o menubox.o textbox.o yesno.o inputbox.o \
util.o lxdialog.o msgbox.o
$(obj)/util/kconfig/lxdialog/lxdialog: $(obj)/dochecklxdialog $(patsubst %,$(obj)/util/kconfig/lxdialog/%,$(lxdialog-objs))
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) $(HOST_LOADLIBES) \
$(patsubst %,$(obj)/util/kconfig/lxdialog/%,$(lxdialog-objs)) -o $@
$(obj)/util/kconfig/lxdialog/%.o: $(src)/util/kconfig/lxdialog/%.c
$(Q)mkdir -p $(obj)/util/kconfig/lxdialog/
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) $(HOST_EXTRACFLAGS) $^ -c -o $@

View file

@ -21,10 +21,9 @@
SOURCE := lar.c create.c extract.c list.c lib.c bootblock.c
$(obj)/util/lar/lar: $(patsubst %,$(src)/util/lar/%,$(SOURCE))
$(Q)printf "Building LAR utility... "
$(Q)mkdir -p $(obj)/util/lar
$(Q)printf " HOSTCC $(subst $(shell pwd)/,,$(@))\n"
$(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ $^
$(Q)printf "done\n"
# -----------------------------------------------------------------------------

View file

@ -150,14 +150,16 @@ int create_lar(const char *archivename, struct file *files)
*/
if (bootblock_len) {
printf ("Detected bootblock of %d bytes\n", bootblock_len);
if (verbose())
printf ("Detected bootblock of %d bytes\n", bootblock_len);
bb_header_len = sizeof(struct lar_header) +
((strlen(basename(get_bootblock()))+15) & 0xfffffff0);
bb_header_len = (bb_header_len + 15) & 0xfffffff0;
printf ("Required bootblock header of %d bytes\n", bb_header_len);
if (verbose())
printf ("Required bootblock header of %d bytes\n", bb_header_len);
diff -= bootblock_len;
diff -= bb_header_len;