|
@@ -63,13 +63,28 @@ $(obj)/treeboot-currituck.o: BOOTCFLAGS += -mcpu=405
|
|
|
$(obj)/treeboot-akebono.o: BOOTCFLAGS += -mcpu=405
|
|
|
$(obj)/virtex405-head.o: BOOTAFLAGS += -mcpu=405
|
|
|
|
|
|
-# the kernel's version of zlib pulls in a lot of other kernel headers
|
|
|
-# which we don't provide inside the wrapper.
|
|
|
+# The pre-boot decompressors pull in a lot of kernel headers and other source
|
|
|
+# files. This creates a bit of a dependency headache since we need to copy
|
|
|
+# these files into the build dir, fix up any includes and ensure that dependent
|
|
|
+# files are copied in the right order.
|
|
|
+
|
|
|
+# these need to be seperate variables because they are copied out of different
|
|
|
+# directories in the kernel tree. Sure you COULd merge them, but it's a
|
|
|
+# cure-is-worse-than-disease situation.
|
|
|
+zlib-decomp-$(CONFIG_KERNEL_GZIP) := decompress_inflate.c
|
|
|
zlib-$(CONFIG_KERNEL_GZIP) := inffast.c inflate.c inftrees.c
|
|
|
zlibheader-$(CONFIG_KERNEL_GZIP) := inffast.h inffixed.h inflate.h inftrees.h infutil.h
|
|
|
zliblinuxheader-$(CONFIG_KERNEL_GZIP) := zlib.h zconf.h zutil.h
|
|
|
|
|
|
-$(addprefix $(obj)/,$(zlib-y) cuboot-c2k.o gunzip_util.o main.o): \
|
|
|
+$(addprefix $(obj)/, decompress.o): \
|
|
|
+ $(addprefix $(obj)/,$(zlib-decomp-y))
|
|
|
+
|
|
|
+$(addprefix $(obj)/, $(zlib-decomp-y)): \
|
|
|
+ $(addprefix $(obj)/,$(zliblinuxheader-y)) \
|
|
|
+ $(addprefix $(obj)/,$(zlibheader-y)) \
|
|
|
+ $(addprefix $(obj)/,$(zlib-y))
|
|
|
+
|
|
|
+$(addprefix $(obj)/,$(zlib-y)): \
|
|
|
$(addprefix $(obj)/,$(zliblinuxheader-y)) \
|
|
|
$(addprefix $(obj)/,$(zlibheader-y))
|
|
|
|
|
@@ -79,10 +94,10 @@ libfdtheader := fdt.h libfdt.h libfdt_internal.h
|
|
|
$(addprefix $(obj)/,$(libfdt) libfdt-wrapper.o simpleboot.o epapr.o opal.o): \
|
|
|
$(addprefix $(obj)/,$(libfdtheader))
|
|
|
|
|
|
-src-wlib-y := string.S crt0.S crtsavres.S stdio.c main.c \
|
|
|
+src-wlib-y := string.S crt0.S crtsavres.S stdio.c decompress.c main.c \
|
|
|
$(libfdt) libfdt-wrapper.c \
|
|
|
ns16550.c serial.c simple_alloc.c div64.S util.S \
|
|
|
- gunzip_util.c elf_util.c $(zlib-y) devtree.c stdlib.c \
|
|
|
+ elf_util.c $(zlib-y) devtree.c stdlib.c \
|
|
|
oflib.c ofconsole.c cuboot.c mpsc.c cpm-serial.c \
|
|
|
uartlite.c mpc52xx-psc.c opal.c opal-calls.S
|
|
|
src-wlib-$(CONFIG_40x) += 4xx.c planetcore.c
|
|
@@ -143,6 +158,9 @@ $(addprefix $(obj)/,$(zlibheader-y)): $(obj)/%: $(srctree)/lib/zlib_inflate/%
|
|
|
$(addprefix $(obj)/,$(zliblinuxheader-y)): $(obj)/%: $(srctree)/include/linux/%
|
|
|
$(call cmd,copy_kern_src)
|
|
|
|
|
|
+$(addprefix $(obj)/,$(zlib-decomp-y)): $(obj)/%: $(srctree)/lib/%
|
|
|
+ $(call cmd,copy_kern_src)
|
|
|
+
|
|
|
quiet_cmd_copy_libfdt = COPY $@
|
|
|
cmd_copy_libfdt = cp $< $@
|
|
|
|
|
@@ -160,7 +178,7 @@ $(obj)/zImage.coff.lds $(obj)/zImage.ps3.lds : $(obj)/%: $(srctree)/$(src)/%.S
|
|
|
$(Q)cp $< $@
|
|
|
|
|
|
clean-files := $(zlib-) $(zlibheader-) $(zliblinuxheader-) \
|
|
|
- $(libfdt) $(libfdtheader) \
|
|
|
+ $(zlib-decomp-) $(libfdt) $(libfdtheader) \
|
|
|
empty.c zImage.coff.lds zImage.ps3.lds zImage.lds
|
|
|
|
|
|
quiet_cmd_bootcc = BOOTCC $@
|
|
@@ -410,8 +428,8 @@ clean-files += $(image-) $(initrd-) cuImage.* dtbImage.* treeImage.* \
|
|
|
zImage.maple simpleImage.* otheros.bld *.dtb
|
|
|
|
|
|
# clean up files cached by wrapper
|
|
|
-clean-kernel := vmlinux.strip vmlinux.bin
|
|
|
-clean-kernel += $(addsuffix .gz,$(clean-kernel))
|
|
|
+clean-kernel-base := vmlinux.strip vmlinux.bin
|
|
|
+clean-kernel := $(addsuffix .gz,$(clean-kernel-base))
|
|
|
# If not absolute clean-files are relative to $(obj).
|
|
|
clean-files += $(addprefix $(objtree)/, $(clean-kernel))
|
|
|
|