Clean up Makefiles

Signed-off-by: Stefan Reinauer <stepan@coresystems.de>
Acked-by: Ronald G. Minnich <rminnich@gmail.com>



git-svn-id: svn://coreboot.org/repository/LinuxBIOSv3@86 f3766cd6-281f-0410-b1cd-43a5c92072e9
This commit is contained in:
Stefan Reinauer 2007-02-23 09:54:10 +00:00
commit 9c4c15c5ac
7 changed files with 134 additions and 131 deletions

View file

@ -48,45 +48,50 @@ CFLAGS := -Os -Wall -Wundef -Wstrict-prototypes -Wno-trigraphs \
-ffreestanding -fno-builtin
HOSTCC := gcc
HOSTCFLAGS := -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
HOSTCFLAGS := -Wall -Wstrict-prototypes -O2 -fomit-frame-pointer
LINUXBIOSINCLUDE := -I$(src) -Iinclude \
-I$(src)/include \
-I$(src)/include/cpu/generic/$(ARCH)/ \
-include $(obj)/config.h
# make silent per default
Q := @
CPPFLAGS := $(LINUXBIOSINCLUDE)
export src obj KERNELVERSION
ifeq ($(strip $(have_dotconfig)),)
all:
@echo "run make menuconfig first"
$(Q)echo "Please run make menuconfig, xconfig or config first."
else
include $(src)/.config
all: prepare prepare2 $(obj)/linuxbios.rom
@echo "build process finished."
endif
include util/Makefile
#include mainboards/Makefile
include arch/$(ARCH)/Makefile
$(Q)echo "build process finished."
MAINBOARDDIR=$(shell echo $(CONFIG_MAINBOARD_NAME))
-include mainboard/$(MAINBOARDDIR)/Makefile
include arch/$(ARCH)/Makefile
include mainboard/$(MAINBOARDDIR)/Makefile
endif
include util/Makefile
prepare:
@mkdir -p $(obj)
$(Q)mkdir -p $(obj)
prepare2:
@cp $(src)/.tmpconfig.h $(obj)/config.h
$(Q)cp $(src)/.tmpconfig.h $(obj)/config.h
clean:
@echo "Cleaning up..."
rm -rf $(obj)
$(Q)echo "Cleaning up..."
$(Q)rm -rf $(obj)
%.o: %.c
$(CC) $(CFLAGS) -o $@ -c $<
$(Q)echo "Compiling $<"
$(Q)$(CC) $(CFLAGS) -o $@ -c $<

View file

@ -19,7 +19,7 @@
##
$(obj)/linuxbios.rom: $(obj)/linuxbios.lar $(obj)/stage0.init $(obj)/linuxbios.vpd
@cat $(obj)/linuxbios.lar \
$(Q)cat $(obj)/linuxbios.lar \
$(obj)/linuxbios.vpd \
$(obj)/stage0.init > \
$(obj)/linuxbios.rom
@ -67,7 +67,7 @@ $(obj)/linuxbios.stage2: $(obj)/stage0.init $(obj)/statictree.o
-o $(obj)/linuxbios.stage2.o stage2.o device.o \
device_util.o mem.o malloc.o clog2.o mainboard.o \
statictree.o
objcopy -O binary $(obj)/linuxbios.stage2.o $(obj)/linuxbios.stage2
$(Q)objcopy -O binary $(obj)/linuxbios.stage2.o $(obj)/linuxbios.stage2
$(Q)chmod 644 $(obj)/linuxbios.stage2
@ -105,34 +105,34 @@ $(obj)/linuxbios.lar: $(obj)/util/lar/lar lzma $(obj)/linuxbios.initram $(obj)/l
INITCFLAGS := $(CFLAGS) -I$(src)/include/cpu/generic/x86 -I$(src)/include -fno-builtin
$(obj)/stage0.init:
@echo Building linuxbios.init
$(Q)echo Building linuxbios.init
# Building asm stub
@$(CC) -E $(LINUXBIOSINCLUDE) $(src)/arch/x86/stage0_i586.S -o $(obj)/stage0_i586.s -DBOOTBLK=0x1f00 -DRESRVED=0xf0 -DDATE=\"`date +%Y/%m/%d`\"
@$(AS) $(obj)/stage0_i586.s -o $(obj)/stage0_i586.o
$(Q)$(CC) -E $(LINUXBIOSINCLUDE) $(src)/arch/x86/stage0_i586.S -o $(obj)/stage0_i586.s -DBOOTBLK=0x1f00 -DRESRVED=0xf0 -DDATE=\"`date +%Y/%m/%d`\"
$(Q)$(AS) $(obj)/stage0_i586.s -o $(obj)/stage0_i586.o
# Building cachemain
$(CC) $(INITCFLAGS) -c $(src)/arch/x86/cachemain.c -o $(obj)/cachemain.o
#
@$(CC) $(INITCFLAGS) -c $(src)/lib/lar.c -o $(obj)/lar.o
$(Q)$(CC) $(INITCFLAGS) -c $(src)/lib/lar.c -o $(obj)/lar.o
#
# console lib
@$(CC) $(INITCFLAGS) -c $(src)/arch/x86/console.c -o $(obj)/console.o
@$(CC) $(INITCFLAGS) -c $(src)/arch/x86/serial.c -o $(obj)/serial.o
@$(CC) $(INITCFLAGS) -c $(src)/console/vtxprintf.c -o $(obj)/vtxprintf.o
@$(CC) $(INITCFLAGS) -c $(src)/console/vsprintf.c -o $(obj)/vsprintf.o
@$(CC) $(INITCFLAGS) -c $(src)/lib/uart8250.c -o $(obj)/uart8250.o
$(Q)$(CC) $(INITCFLAGS) -c $(src)/arch/x86/console.c -o $(obj)/console.o
$(Q)$(CC) $(INITCFLAGS) -c $(src)/arch/x86/serial.c -o $(obj)/serial.o
$(Q)$(CC) $(INITCFLAGS) -c $(src)/console/vtxprintf.c -o $(obj)/vtxprintf.o
$(Q)$(CC) $(INITCFLAGS) -c $(src)/console/vsprintf.c -o $(obj)/vsprintf.o
$(Q)$(CC) $(INITCFLAGS) -c $(src)/lib/uart8250.c -o $(obj)/uart8250.o
# other lib parts
@$(CC) $(INITCFLAGS) -c $(src)/lib/mem.c -o $(obj)/mem.o
$(Q)$(CC) $(INITCFLAGS) -c $(src)/lib/mem.c -o $(obj)/mem.o
@cd $(obj); $(CC) -m32 -nostdlib -static -T $(src)/arch/x86/ldscript.ld cachemain.o console.o uart8250.o \
$(Q)cd $(obj); $(CC) -m32 -nostdlib -static -T $(src)/arch/x86/ldscript.ld cachemain.o console.o uart8250.o \
serial.o vtxprintf.o vsprintf.o lar.o mem.o stage0_i586.o -o stage0.o
@objcopy -O binary $(obj)/stage0.o $(obj)/stage0.init.pre
$(Q)objcopy -O binary $(obj)/stage0.o $(obj)/stage0.init.pre
# Pad boot block to 0x2000 - 0x100
# we will probably remove this step -- not needed if we continue with ldscript.ld
@dd if=$(obj)/stage0.init.pre of=$(obj)/stage0.init bs=7936 conv=sync
@echo "Len: `wc -c < $(obj)/stage0.init.pre`"
$(Q)dd if=$(obj)/stage0.init.pre of=$(obj)/stage0.init bs=7936 conv=sync
$(Q)echo "Len: `wc -c < $(obj)/stage0.init.pre`"
#
@test `wc -c < $(obj)/stage0.init.pre` -gt 7936 && echo "Error. Bootblock got too big" || true
$(Q)test `wc -c < $(obj)/stage0.init.pre` -gt 7936 && echo "Error. Bootblock got too big" || true

View file

@ -25,30 +25,19 @@
#
$(obj)/linuxbios.vpd:
@printf "Building dummy VPD ..."
@dd if=/dev/zero of=$(obj)/linuxbios.vpd bs=256 count=1
@printf "ok.\n"
$(Q)printf "Building dummy VPD ..."
$(Q)dd if=/dev/zero of=$(obj)/linuxbios.vpd bs=256 count=1
$(Q)printf "ok.\n"
#
# this is going to be the init ram code:
#
$(obj)/linuxbios.initram: $(obj)/stage0.o
$(obj)/linuxbios.initram: $(obj)/stage0.init $(obj)/stage0.o
$(Q)echo Building linuxbios.initram
#
# main
# initram links against stage0
$(Q)$(CC) $(INITCFLAGS) -c $(src)/mainboard/$(MAINBOARDDIR)/initram.c -o $(obj)/initram.o
#
# console lib
#$(Q)$(CC) $(INITCFLAGS) -c $(src)/arch/x86/console.c -o $(obj)/console.o
#$(Q)$(CC) $(INITCFLAGS) -c $(src)/arch/x86/serial.c -o $(obj)/serial.o
#$(Q)$(CC) $(INITCFLAGS) -c $(src)/console/vtxprintf.c -o $(obj)/vtxprintf.o
#$(Q)$(CC) $(INITCFLAGS) -c $(src)/lib/uart8250.c -o $(obj)/uart8250.o
#cd $(obj); $(Q)$(LD) -Ttext 0x00000000 -s --oformat binary initram.o console.o uart8250.o \
# serial.o vtxprintf.o -o $(obj)/linuxbios.initram
$(Q)$(LD) -R $(obj)/stage0.o -Ttext 0x80000 $(obj)/initram.o \
-o $(obj)/linuxbios.initram.o
@ -61,10 +50,10 @@ $(obj)/linuxbios.initram: $(obj)/stage0.o
$(obj)/mainboard.o: $(obj)/statictree.o
$(obj)/statictree.o: $(obj)/statictree.c
$(CC) $(CFLAGS) $(LINUXBIOSINCLUDE) -c -o $(obj)/statictree.o $(obj)/statictree.c
$(Q)$(CC) $(CFLAGS) $(LINUXBIOSINCLUDE) -c -o $(obj)/statictree.o $(obj)/statictree.c
$(obj)/statictree.c: mainboard/$(MAINBOARDDIR)/dts $(obj)/util/dtc/dtc
$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts >$(obj)/statictree.c
$(Q)$(obj)/util/dtc/dtc -O lb mainboard/$(MAINBOARDDIR)/dts >$(obj)/statictree.c

View file

@ -18,10 +18,7 @@
## Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
##
include util/lar/Makefile
include util/dtc/Makefile
include util/kconfig/Makefile

View file

@ -13,47 +13,50 @@ DEPFILES = $(DTC_OBJS:.o=.d)
#all: $(TARGETS)
$(obj)/util/dtc/dtc: $(patsubst %,$(obj)/%,$(DTC_OBJS))
mkdir -p $(obj)/util/dtc/
$(LINK.c) -o $@ $^
$(Q)mkdir -p $(obj)/util/dtc/
$(Q)$(LINK.c) -o $@ $^
ftdump: ftdump.o
$(LINK.c) -o $@ $^
$(Q)$(LINK.c) -o $@ $^
$(obj)/dtc-parser.tab.c $(obj)/dtc-parser.tab.h $(obj)/dtc-parser.output: $(src)/util/dtc/dtc-parser.y
cd $(obj); $(BISON) -d $<
$(Q)cd $(obj); $(BISON) -d $< &> $(obj)/dtc.bison.out
$(obj)/lex.yy.c: $(src)/util/dtc/dtc-lexer.l
cd $(obj); $(LEX) $<
#lex.yy.o: lex.yy.c dtc-parser.tab.h
check: all
cd tests && $(MAKE) check
$(Q)cd $(obj); $(LEX) $<
$(obj)/dtc.o: $(src)/util/dtc/dtc.c
$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(obj)/livetree.o: $(src)/util/dtc/livetree.c
$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(obj)/flattree.o: $(src)/util/dtc/flattree.c
$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(obj)/data.o: $(src)/util/dtc/data.c
$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(obj)/treesource.o: $(src)/util/dtc/treesource.c
$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(obj)/fstree.o: $(src)/util/dtc/fstree.c
$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ -c $<
$(obj)/dtc-parser.tab.o: $(obj)/dtc-parser.tab.c
$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $<
$(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $<
$(obj)/lex.yy.o: $(obj)/lex.yy.c $(obj)/dtc-parser.tab.h
$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $<
$(Q)$(HOSTCC) -I$(src)/util/dtc $(HOSTCFLAGS) -o $@ -c $<
#clean:
# rm -f *~ *.o a.out core $(TARGETS)
# rm -f *.tab.[ch] lex.yy.c
# rm -f *.i *.output vgcore.*
# rm -f *.d
# cd tests && $(MAKE) clean
ifdef DTC_DEBUG
lex.yy.o: lex.yy.c dtc-parser.tab.h
check: all
$(Q)cd tests && $(MAKE) check
clean:
$(Q)rm -f *~ *.o a.out core $(TARGETS)
$(Q)rm -f *.tab.[ch] lex.yy.c
$(Q)rm -f *.i *.output vgcore.*
$(Q)rm -f *.d
$(Q)cd tests && $(MAKE) clean
endif
%.d: %.c
$(CC) -MM -MG -MT "$*.o $@" $< > $@

View file

@ -5,53 +5,35 @@
.PHONY: oldconfig xconfig gconfig menuconfig config silentoldconfig update-po-config
xconfig: prepare $(obj)/qconf
$(obj)/qconf Kconfig
$(Q)$(obj)/qconf Kconfig
gconfig: $(obj)/gconf
$(obj)/gconf Kconfig
$(Q)$(obj)/gconf Kconfig
menuconfig: prepare $(obj)/lxdialog $(obj)/mconf
$(obj)/mconf Kconfig
$(Q)$(obj)/mconf Kconfig
config: prepare $(obj)/conf
$(obj)/conf Kconfig
$(Q)$(obj)/conf Kconfig
oldconfig: prepare $(obj)/conf
$(obj)/conf -o Kconfig
$(Q)$(obj)/conf -o Kconfig
silentoldconfig: prepare $(obj)/conf
$(obj)/conf -s Kconfig
update-po-config: $(obj)/kxgettext
xgettext --default-domain=linux \
--add-comments --keyword=_ --keyword=N_ \
--files-from=scripts/kconfig/POTFILES.in \
--output scripts/kconfig/config.pot
$(Q)for i in `ls arch/`; \
do \
scripts/kconfig/kxgettext Kconfig \
| msguniq -o scripts/kconfig/linux_$${i}.pot; \
done
$(Q)msgcat scripts/kconfig/config.pot \
`find scripts/kconfig/ -type f -name linux_*.pot` \
--output scripts/kconfig/linux_raw.pot
$(Q)msguniq --sort-by-file scripts/kconfig/linux_raw.pot \
--output scripts/kconfig/linux.pot
$(Q)rm -f scripts/kconfig/linux_*.pot scripts/kconfig/config.pot
$(Q)$(obj)/conf -s Kconfig
.PHONY: randconfig allyesconfig allnoconfig allmodconfig defconfig
randconfig: $(obj)/conf
$< -r Kconfig
$(Q)$< -r Kconfig
allyesconfig: $(obj)/conf
$< -y Kconfig
$(Q)$< -y Kconfig
allnoconfig: $(obj)/conf
$< -n Kconfig
$(Q)$< -n Kconfig
allmodconfig: $(obj)/conf
$< -m Kconfig
$(Q)$< -m Kconfig
UNAME_RELEASE := $(shell uname -r)
CLONECONFIG := $(firstword $(wildcard /proc/config.gz \
@ -124,8 +106,28 @@ $(obj)/zconf.tab.c: $(src)/util/kconfig/zconf.tab.c_shipped
include $(src)/util/kconfig/lxdialog/Makefile
######################
# kbuild crap follows
# #####################################################################
ifdef KCONFIG_DEBUG
update-po-config: $(obj)/kxgettext
xgettext --default-domain=linux \
--add-comments --keyword=_ --keyword=N_ \
--files-from=scripts/kconfig/POTFILES.in \
--output scripts/kconfig/config.pot
$(Q)for i in `ls arch/`; \
do \
scripts/kconfig/kxgettext Kconfig \
| msguniq -o scripts/kconfig/linux_$${i}.pot; \
done
$(Q)msgcat scripts/kconfig/config.pot \
`find scripts/kconfig/ -type f -name linux_*.pot` \
--output scripts/kconfig/linux_raw.pot
$(Q)msguniq --sort-by-file scripts/kconfig/linux_raw.pot \
--output scripts/kconfig/linux.pot
$(Q)rm -f scripts/kconfig/linux_*.pot scripts/kconfig/config.pot
# ===========================================================================
# Shared Makefile for the various kconfig executables:
@ -184,6 +186,10 @@ HOSTLOADLIBES_gconf = `pkg-config --libs gtk+-2.0 gmodule-2.0 libglade-2.0`
HOSTCFLAGS_gconf.o = `pkg-config --cflags gtk+-2.0 gmodule-2.0 libglade-2.0` \
-D LKC_DIRECT_LINK
endif
# #####################################################################
$(obj)/qconf.o: $(obj)/.tmp_qtcheck
ifeq ($(qconf-target),1)

View file

@ -25,40 +25,43 @@ HOSTCC=gcc
HOSTCFLAGS=-O2 -Wall -W
$(obj)/util/lar/lar: $(patsubst %,$(src)/util/lar/%,$(SOURCE))
@mkdir -p $(obj)/util/lar
@$(HOSTCC) $(HOSTCFLAGS) -o $@ $^
@echo "Built LAR."
$(Q)printf "Building LAR utility..."
$(Q)mkdir -p $(obj)/util/lar
$(Q)$(HOSTCC) $(HOSTCFLAGS) -o $@ $^
$(Q)printf "done."
## --------------------------------------------------------------------
## stuff below this line should be fixed or go away
## stuff below this line is for debugging purposes only.
ifdef DEBUG_LAR
example: example.c
$(CC) $(CFLAGS) -o $@ $^
$(Q)$(CC) $(CFLAGS) -o $@ $^
#clean:
# rm -rf lar tree.lar tree tree2 example
clean:
$(Q)rm -rf lar tree.lar tree tree2 example
tree:
@printf "creating sample tree... "
@rm -rf tree
@mkdir tree
@mkdir -p tree/compression
@mkdir -p tree/normal
@mkdir -p tree/fallback
@dd if=/dev/urandom of=tree/compression/lzma bs=1k count=8 &>/dev/null
@dd if=/dev/urandom of=tree/normal/linuxbios.elf.lzma bs=1k count=32 &>/dev/null
@dd if=/dev/urandom of=tree/normal/initmem bs=1k count=16 &>/dev/null
@dd if=/dev/urandom of=tree/fallback/linuxbios.elf.lzma bs=1k count=32 &>/dev/null
@dd if=/dev/urandom of=tree/fallback/initmem bs=1k count=16 &>/dev/null
@printf "done.\n"
$(Q)printf "creating sample tree... "
$(Q)rm -rf tree
$(Q)mkdir tree
$(Q)mkdir -p tree/compression
$(Q)mkdir -p tree/normal
$(Q)mkdir -p tree/fallback
$(Q)dd if=/dev/urandom of=tree/compression/lzma bs=1k count=8 &>/dev/null
$(Q)dd if=/dev/urandom of=tree/normal/linuxbios.elf.lzma bs=1k count=32 &>/dev/null
$(Q)dd if=/dev/urandom of=tree/normal/initmem bs=1k count=16 &>/dev/null
$(Q)dd if=/dev/urandom of=tree/fallback/linuxbios.elf.lzma bs=1k count=32 &>/dev/null
$(Q)dd if=/dev/urandom of=tree/fallback/initmem bs=1k count=16 &>/dev/null
$(Q)printf "done.\n"
tree.lar: lar tree
cd tree; ../lar c ../tree.lar `find . -type f|cut -c3-`
$(Q)cd tree; ../lar c ../tree.lar `find . -type f|cut -c3-`
test: lar example tree.lar
mkdir tree2; cd tree2; ../lar x ../tree.lar
@echo Comparing tree:
diff -urN tree tree2
@rm -rf tree tree2
./example tree.lar
$(Q)mkdir tree2; cd tree2; ../lar x ../tree.lar
$(Q)echo Comparing tree:
$(Q)diff -urN tree tree2
$(Q)rm -rf tree tree2
$(Q)./example tree.lar
endif