On Sun, Jul 22, 2007 at 05:47:41PM +0200, Stefan Reinauer wrote:
> * move post_code() to a seperate file
> * statically link linuxbios.initram for now (depends on printk, post_code
>   and die)
> * greatly simplify all makefiles by creating a global Rules.make
> * use $(dir $@) in Makefiles instead of absolute paths for mkdir.. 
> * clean up Makefiles by calling components' code locally instead of in the
>   Makefile. (Remember: one day, no code per mainboard)
> * unconditionally create .xcompile in case it changed
> * add NM to xcompile
> * create $(obj)/linuxbios.map with all symbols of all stages
 

> +# These are possibly not permanent
> +INITRAM_OBJ := $(INITRAM_OBJ) $(obj)/lib/console.o
> +INITRAM_OBJ := $(INITRAM_OBJ) $(obj)/lib/vtxprintf.o
> +INITRAM_OBJ := $(INITRAM_OBJ) $(obj)/lib/uart8250.o
> +INITRAM_OBJ := $(INITRAM_OBJ) $(obj)/arch/x86/post_code.o

INITRAM_OBJ := $(obj)/lib/console.o $(obj)/lib/vtxprintf.o \
               $(obj)/lib/uart8250.o $(obj)/arch/x86/post_code.o

(is a bit shorter)


> +# These are possibly not permanent
> +INITRAM_OBJ := $(INITRAM_OBJ) $(obj)/lib/console.o
> +INITRAM_OBJ := $(INITRAM_OBJ) $(obj)/lib/vtxprintf.o
> +INITRAM_OBJ := $(INITRAM_OBJ) $(obj)/lib/uart8250.o
> +INITRAM_OBJ := $(INITRAM_OBJ) $(obj)/arch/x86/post_code.o

See above (there are multiple occurenceѕ of this).


> Index: device/Makefile
> ===================================================================
> --- device/Makefile   (revision 462)
> +++ device/Makefile   (working copy)
> @@ -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 $@

This is for a later patch, but can we have a generic rule for this
kind of thing? So that you only have to say 'FOO_OBJ += foo.o'
in the Makefiles?


> +#
> +# 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 $@

All of the above are almost identical. Can they be merged easily?


> Index: Makefile
> ===================================================================
> --- Makefile  (revision 462)
> +++ Makefile  (working copy)
> @@ -26,7 +26,6 @@
>  SUBLEVEL = 0
>  
>  have_dotconfig := $(wildcard .config)
> -have_dotxcompile := $(wildcard .xcompile)
>  
>  src := $(shell pwd)
>  obj := $(shell pwd)/build
> @@ -60,6 +59,9 @@
>  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)
> +

No indentation needed, I think.


> Index: util/dtc/Makefile
> ===================================================================
> --- util/dtc/Makefile (revision 462)
> +++ util/dtc/Makefile (working copy)
> @@ -13,7 +13,7 @@
>  #all: $(TARGETS)
>  
>  $(obj)/util/dtc/dtc: $(patsubst %,$(obj)/util/dtc/%,$(DTC_OBJS))
> -     $(Q)mkdir -p $(obj)/util/dtc/
> +     $(Q)mkdir -p $(dir $@)

Yep, this is definately a good thing.


> Index: arch/x86/Makefile
> ===================================================================
> --- arch/x86/Makefile (revision 462)
> +++ arch/x86/Makefile (working copy)
[...]
> @@ -136,8 +146,11 @@
>       $(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
                                   ^
                            missing space

I'd rename Rules.make to Makefile.rules, but other than that:

Acked-by: Uwe Hermann <[EMAIL PROTECTED]>


Uwe.
-- 
http://www.hermann-uwe.de  | http://www.holsham-traders.de
http://www.crazy-hacks.org | http://www.unmaintained-free-software.org

Attachment: signature.asc
Description: Digital signature

-- 
linuxbios mailing list
[email protected]
http://www.linuxbios.org/mailman/listinfo/linuxbios

Reply via email to