patch-2.2.18 linux/arch/arm/boot/compressed/Makefile
Next file: linux/arch/arm/boot/compressed/head-netwinder.S
Previous file: linux/arch/arm/boot/Makefile
Back to the patch index
Back to the overall index
- Lines: 116
- Date:
Fri Sep 15 23:28:37 2000
- Orig file:
v2.2.17/arch/arm/boot/compressed/Makefile
- Orig date:
Fri Apr 21 12:45:45 2000
diff -u --new-file --recursive --exclude-from /usr/src/exclude v2.2.17/arch/arm/boot/compressed/Makefile linux/arch/arm/boot/compressed/Makefile
@@ -2,32 +2,97 @@
# linux/arch/arm/boot/compressed/Makefile
#
# create a compressed vmlinuz image from the original vmlinux
+
+HEAD = head.o
+OBJS = misc.o
+SYSTEM = $(TOPDIR)/vmlinux
+CFLAGS = -O2 -DSTDC_HEADERS $(CFLAGS_PROC)
+FONTC = $(TOPDIR)/drivers/video/font_acorn_8x8.c
+ZLDFLAGS = -p -X -T vmlinux.lds
+
#
-# With this config, max compressed image size = 640k
-# Uncompressed image size = 1.3M (text+data)
+# Architecture dependencies
+#
+ifeq ($(CONFIG_ARCH_ACORN),y)
+OBJS += ll_char_wr.o font.o
+endif
+
+ifeq ($(CONFIG_CPU_26),y)
+ZTEXTADDR = 0x02080000
+endif
+
+ifeq ($(CONFIG_ARCH_RPC),y)
+ZTEXTADDR = 0x10008000
+endif
+
+ifeq ($(CONFIG_ARCH_EBSA110),y)
+ZTEXTADDR = 0x00008000
+endif
+
+ifeq ($(CONFIG_FOOTBRIDGE),y)
+ZTEXTADDR = 0x00008000
+endif
+
+ifeq ($(CONFIG_ARCH_NETWINDER),y)
+OBJS += head-netwinder.o
+endif
+
+ifeq ($(CONFIG_ARCH_NEXUSPCI),y)
+HEAD = head-nexuspci.o
+OBJS += $(TOPDIR)/arch/arm/lib/ll_char_wr_scc.o
+ZTEXTADDR = 0x40200000
+ZRELADDR = 0x40008000
+endif
+
+ifeq ($(CONFIG_ARCH_SA1100),y)
+OBJS += head-sa1100.o
+ifeq ($(CONFIG_SA1100_VICTOR),y)
+ZTEXTADDR = 0x00002000
+ZBSSADDR = 0xc0100000
+else
+ZTEXTADDR = 0xc0008000
+endif
+ZRELADDR = 0xc0008000
+endif
-SYSTEM =$(TOPDIR)/vmlinux
-HEAD =$(COMPRESSED_HEAD)
-OBJS =$(HEAD) misc.o $(COMPRESSED_EXTRA)
-CFLAGS =-O2 -DSTDC_HEADERS $(CFLAGS_PROC)
-ARFLAGS =rc
+#
+# If you don't define ZRELADDR above,
+# then it defaults to ZTEXTADDR
+#
+ifeq ($(ZRELADDR),)
+ZRELADDR = $(ZTEXTADDR)
+endif
+
+SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/;
+
+ifneq ($(ZBSSADDR),)
+SEDFLAGS += s/BSS_START/$(ZBSSADDR)/
+else
+SEDFLAGS += s/BSS_START/ALIGN(4)/
+endif
all: vmlinux
-vmlinux: piggy.o $(OBJS)
- $(LD) $(ZLINKFLAGS) -o vmlinux $(OBJS) piggy.o
+vmlinux: $(HEAD) $(OBJS) piggy.o vmlinux.lds
+ $(LD) $(ZLDFLAGS) $(HEAD) $(OBJS) piggy.o $(GCCLIB) -o vmlinux
$(HEAD): $(HEAD:.o=.S)
- $(CC) -traditional -DLOADADDR=$(ZRELADDR) -c $(HEAD:.o=.S)
+ $(CC) $(AFLAGS) -traditional -c $(HEAD:.o=.S)
piggy.o: $(SYSTEM)
- tmppiggy=_tmp_$$$$piggy; \
- rm -f $$tmppiggy $$tmppiggy.gz $$tmppiggy.lnk; \
- $(OBJCOPY) $(SYSTEM) $$tmppiggy; \
- gzip -f -9 < $$tmppiggy > $$tmppiggy.gz; \
- echo "SECTIONS { .data : { input_len = .; LONG(input_data_end - input_data) input_data = .; *(.data) input_data_end = .; }}" > $$tmppiggy.lnk; \
- $(LD) -r -o piggy.o -b binary $$tmppiggy.gz -b elf32-arm -T $$tmppiggy.lnk; \
- rm -f $$tmppiggy $$tmppiggy.gz $$tmppiggy.lnk;
+ $(OBJCOPY) $(SYSTEM) piggy
+ gzip -9 < piggy > piggy.gz
+ $(LD) -r -o $@ -b binary piggy.gz
+ rm -f piggy piggy.gz
+
+font.o: $(FONTC)
+ $(CC) $(CFLAGS) -Dstatic= -c -o $@ $(FONTC)
+
+vmlinux.lds: vmlinux.lds.in
+ @sed "$(SEDFLAGS)" < vmlinux.lds.in > $@
+
+clean:; rm -f vmlinux core piggy* vmlinux.lds
-clean:; rm -f vmlinux core
+.PHONY: vmlinux.lds clean
+misc.o: misc.c $(TOPDIR)/include/asm/arch/uncompress.h $(TOPDIR)/lib/inflate.c
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)