Commit 5e89d379 authored by Russell King's avatar Russell King

[ARM] Convert ARM makefiles to new kbuild (Sam Ravnborg, Kai, rmk)

parent 7b61c2a4
......@@ -63,10 +63,8 @@ HEAD := arch/arm/mach-arc/head.o arch/arm/kernel/init_task.o
ifeq ($(CONFIG_ROM_KERNEL),y)
DATAADDR = 0x02080000
TEXTADDR = 0x03800000
LDSCRIPT = arch/arm/vmlinux-armo-rom.lds.in
else
TEXTADDR = 0x02080000
LDSCRIPT = arch/arm/vmlinux-armo.lds.in
endif
endif
......@@ -191,8 +189,7 @@ drivers-$(CONFIG_ARCH_L7200) += drivers/acorn/char/
libs-y += arch/arm/lib/
MAKEBOOT =$(MAKE) -C arch/$(ARCH)/boot
MAKETOOLS =$(MAKE) -C arch/$(ARCH)/tools
makeboot = $(call descend,arch/arm/boot,$(1))
# Update machine arch and proc symlinks if something which affects
# them changed. We use .arch and .proc to indicate when they were
......@@ -212,13 +209,16 @@ include/asm-arm/.proc: $(wildcard include/config/cpu/32.h) $(wildcard include/co
prepare: maketools
.PHONY: maketools
.PHONY: maketools FORCE
maketools: include/asm-arm/.arch include/asm-arm/.proc \
include/asm-arm/constants.h include/linux/version.h FORCE
@$(MAKETOOLS)
include/asm-arm/constants.h include/linux/version.h FORCE
+@$(call descend,arch/arm/tools, include/asm-arm/mach-types.h)
bzImage zImage zinstall Image bootpImage install: vmlinux
@$(MAKEBOOT) $@
zImage Image bootpImage: vmlinux
+@$(call makeboot,arch/arm/boot/$@)
bzImage zinstall install: vmlinux
+@$(call makeboot,$@)
MRPROPER_FILES += \
include/asm-arm/arch include/asm-arm/.arch \
......@@ -227,18 +227,16 @@ MRPROPER_FILES += \
include/asm-arm/mach-types.h
# We use MRPROPER_FILES and CLEAN_FILES now
archmrproper: FORCE
@/bin/true
archmrproper:
archclean: FORCE
@$(MAKEBOOT) clean
+@$(call makeboot,clean)
# My testing targets (that short circuit a few dependencies)
zImg:; @$(MAKEBOOT) zImage
Img:; @$(MAKEBOOT) Image
i:; @$(MAKEBOOT) install
zi:; @$(MAKEBOOT) zinstall
bp:; @$(MAKEBOOT) bootpImage
zImg:; +@$(call makeboot, zImage)
Img:; +@$(call makeboot, Image)
i:; +@$(call makeboot, install)
zi:; +@$(call makeboot, zinstall)
bp:; +@$(call makeboot, bootpImage)
#
# Configuration targets. Use these to select a
......
......@@ -8,8 +8,6 @@
# Copyright (C) 1995-2002 Russell King
#
SYSTEM =$(TOPDIR)/vmlinux
# Note: the following conditions must always be true:
# ZRELADDR == virt_to_phys(TEXTADDR)
# PARAMS_PHYS must be with 4MB of ZRELADDR
......@@ -121,38 +119,57 @@ ZTEXTADDR =0
ZBSSADDR =ALIGN(4)
endif
export SYSTEM ZTEXTADDR ZBSSADDR ZRELADDR INITRD_PHYS PARAMS_PHYS
export ZTEXTADDR ZBSSADDR ZRELADDR INITRD_PHYS PARAMS_PHYS
include $(TOPDIR)/Rules.make
Image: $(SYSTEM)
$(OBJCOPY) $(OBJCOPYFLAGS) $< $@
$(obj)/Image: vmlinux FORCE
$(call if_changed,objcopy)
bzImage: zImage
bzImage: $(obj)/zImage
zImage: compressed/vmlinux
$(OBJCOPY) $(OBJCOPYFLAGS) $< $@
$(obj)/zImage: $(obj)/compressed/vmlinux FORCE
$(call if_changed,objcopy)
bootpImage: bootp/bootp
$(OBJCOPY) $(OBJCOPYFLAGS) $< $@
$(obj)/bootpImage: $(obj)/bootp/bootp FORCE
$(call if_changed,objcopy)
compressed/vmlinux: $(TOPDIR)/vmlinux FORCE
@$(MAKE) -C compressed vmlinux
$(obj)/compressed/vmlinux: vmlinux FORCE
+@$(call descend,arch/arm/boot/compressed, $(obj)/compressed/vmlinux)
bootp/bootp: zImage initrd FORCE
@$(MAKE) -C bootp bootp
$(obj)/bootp/bootp: $(obj)/zImage initrd FORCE
+@$(call descend,arch/arm/boot/bootp, $(obj)/bootp/bootp)
.PHONY: initrd
initrd:
@test "$(INITRD_PHYS)" != "" || (echo This machine does not support INITRD; exit -1)
@test "$(INITRD)" != "" || (echo You must specify INITRD; exit -1)
@test "$(INITRD_PHYS)" != "" || \
(echo This machine does not support INITRD; exit -1)
@test "$(INITRD)" != "" || \
(echo You must specify INITRD; exit -1)
install: Image
sh ./install.sh $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) Image $(TOPDIR)/System.map "$(INSTALL_PATH)"
install: $(obj)/Image
$(CONFIG_SHELL) $(obj)/install.sh \
$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) \
$(obj)/Image System.map "$(INSTALL_PATH)"
zinstall: zImage
sh ./install.sh $(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) zImage $(TOPDIR)/System.map "$(INSTALL_PATH)"
zinstall: $(obj)/zImage
$(CONFIG_SHELL) $(obj)/install.sh \
$(VERSION).$(PATCHLEVEL).$(SUBLEVEL)$(EXTRAVERSION) \
$(obj)/zImage System.map "$(INSTALL_PATH)"
clean:
$(RM) Image zImage bootpImage
@$(MAKE) -C compressed clean
@$(MAKE) -C bootp clean
$(RM) $(addprefix $(obj)/,Image zImage bootpImage)
+@$(call descend,arch/arm/boot/bootp, clean)
+@$(call descend,arch/arm/boot/compressed, clean)
archhelp:
@echo '* bzImage/zImage- Compressed kernel image (arch/$(ARCH)/boot/zImage)'
@echo ' Image - Uncompressed kernel image (arch/$(ARCH)/boot/Image)'
@echo ' bootpImage - Combined zImage and initial RAM disk'
@echo ' install - Install uncompressed kernel'
@echo ' zinstall - Install compressed kernel'
@echo ' Install using (your) ~/bin/installkernel or'
@echo ' (distribution) /sbin/installkernel or'
@echo ' install to $$(INSTALL_PATH) and run lilo'
FORCE:
......@@ -2,23 +2,25 @@
# linux/arch/arm/boot/bootp/Makefile
#
ZSYSTEM =$(TOPDIR)/arch/arm/boot/zImage
ZLDFLAGS =-p -X -T bootp.lds \
ZSYSTEM = arch/arm/boot/zImage
ZLDFLAGS =-p -X -T $(obj)/bootp.lds \
--defsym initrd_addr=$(INITRD_PHYS) \
--defsym params=$(PARAMS_PHYS)
all: bootp
EXTRA_TARGETS := bootp
include $(TOPDIR)/Rules.make
# Note that bootp.lds picks up kernel.o and initrd.o
bootp: init.o kernel.o initrd.o bootp.lds
$(LD) $(ZLDFLAGS) -o $@ init.o
$(obj)/bootp: $(addprefix $(obj)/,init.o kernel.o initrd.o bootp.lds)
$(LD) $(ZLDFLAGS) -o $@ $(obj)/init.o
kernel.o: $(ZSYSTEM)
$(obj)/kernel.o: $(ZSYSTEM)
$(LD) -r -s -o $@ -b binary $(ZSYSTEM)
initrd.o: $(INITRD)
$(obj)/initrd.o: $(INITRD)
$(LD) -r -s -o $@ -b binary $(INITRD)
.PHONY: $(INITRD) $(ZSYSTEM)
clean:; $(RM) bootp
clean:; $(RM) $(obj)/bootp
......@@ -3,22 +3,20 @@
#
# create a compressed vmlinuz image from the original vmlinux
#
# Note! SYSTEM, ZTEXTADDR, ZBSSADDR and ZRELADDR are now exported
# Note! ZTEXTADDR, ZBSSADDR and ZRELADDR are now exported
# from arch/arm/boot/Makefile
#
HEAD = head.o
OBJS = misc.o
CFLAGS = $(CPPFLAGS) -O2 -DSTDC_HEADERS $(CFLAGS_BOOT) -fpic
FONTC = $(TOPDIR)/drivers/video/font_acorn_8x8.c
ZLDFLAGS = -p -X -T vmlinux.lds
HEAD = head.o
OBJS = misc.o
FONTC = drivers/video/font_acorn_8x8.c
#
# Architecture dependencies
#
ifeq ($(CONFIG_ARCH_ACORN),y)
OBJS += ll_char_wr.o font.o
CFLAGS += -DPARAMS_PHYS=$(PARAMS_PHYS)
CFLAGS_misc.o := -DPARAMS_PHYS=$(PARAMS_PHYS)
endif
ifeq ($(CONFIG_ARCH_NETWINDER),y)
......@@ -65,35 +63,39 @@ ifeq ($(CONFIG_CPU_XSCALE),y)
OBJS += head-xscale.o
endif
SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/;s/BSS_START/$(ZBSSADDR)/
SEDFLAGS = s/TEXT_START/$(ZTEXTADDR)/;s/LOAD_ADDR/$(ZRELADDR)/;\
s/BSS_START/$(ZBSSADDR)/;s#OBJ#$(obj)#
LIBGCC := $(shell $(CC) $(CFLAGS) --print-libgcc-file-name)
EXTRA_TARGETS := vmlinux piggy.o font.o head.o $(OBJS)
EXTRA_CFLAGS := $(CFLAGS_BOOT) -fpic
EXTRA_AFLAGS := -traditional
all: vmlinux
include $(TOPDIR)/Rules.make
vmlinux: $(HEAD) $(OBJS) piggy.o vmlinux.lds
$(LD) $(ZLDFLAGS) $(HEAD) $(OBJS) piggy.o $(LIBGCC) -o vmlinux
LDFLAGS_vmlinux := -p -X \
$(shell $(CC) $(CFLAGS) --print-libgcc-file-name) -T
$(HEAD): $(HEAD:.o=.S)
$(CC) $(AFLAGS) -traditional -c $(HEAD:.o=.S)
$(obj)/vmlinux: $(obj)/vmlinux.lds $(obj)/$(HEAD) $(obj)/piggy.o \
$(addprefix $(obj)/, $(OBJS))
$(call if_changed,ld)
piggy.o: $(SYSTEM)
$(OBJCOPY) $(OBJCOPYFLAGS) $(SYSTEM) piggy
gzip $(GZFLAGS) < piggy > piggy.gz
$(LD) -r -o $@ -b binary piggy.gz
rm -f piggy piggy.gz
font.o: $(FONTC)
$(CC) $(CFLAGS) -Dstatic= -c -o $@ $(FONTC)
$(obj)/piggy: vmlinux; $(call if_changed,objcopy)
$(obj)/piggy.gz: $(obj)/piggy; $(call if_changed,gzip)
vmlinux.lds: vmlinux.lds.in Makefile $(TOPDIR)/arch/$(ARCH)/boot/Makefile $(TOPDIR)/.config
@sed "$(SEDFLAGS)" < vmlinux.lds.in > $@
LDFLAGS_piggy.o := -r -b binary
$(obj)/piggy.o: $(obj)/piggy.gz
$(call if_changed,ld)
clean:; rm -f vmlinux core piggy* vmlinux.lds
CFLAGS_font.o := -Dstatic=
$(obj)/font.o: $(FONTC)
$(obj)/vmlinux.lds: $(obj)/vmlinux.lds.in Makefile arch/arm/boot/Makefile .config
@sed "$(SEDFLAGS)" < $< > $@
.PHONY: clean
clean:
rm -f $(addprefix $(obj)/,vmlinux core piggy* vmlinux.lds)
misc.o: misc.c $(TOPDIR)/include/asm/arch/uncompress.h $(TOPDIR)/lib/inflate.c
$(obj)/misc.o: $(obj)/misc.c include/asm/arch/uncompress.h lib/inflate.c
%.o: %.S
$(CC) $(AFLAGS) $(EXTRA_AFLAGS) $(AFLAGS_$@) -c -o $@ $<
......@@ -28,7 +28,7 @@ SECTIONS
*(.glue_7)
*(.glue_7t)
input_data = .;
piggy.o
arch/arm/boot/compressed/piggy.o
input_data_end = .;
. = ALIGN(4);
}
......
......@@ -43,6 +43,7 @@ EXTRA_TARGETS := $(head-y) init_task.o
include $(TOPDIR)/Rules.make
# Spell out some dependencies that `make dep' doesn't spot
entry-armv.o: entry-header.S $(TOPDIR)/include/asm-arm/constants.h
entry-armo.o: entry-header.S $(TOPDIR)/include/asm-arm/constants.h
entry-common.o: entry-header.S calls.S $(TOPDIR)/include/asm-arm/constants.h
$(obj)/entry-armv.o: $(obj)/entry-header.S include/asm-arm/constants.h
$(obj)/entry-armo.o: $(obj)/entry-header.S include/asm-arm/constants.h
$(obj)/entry-common.o: $(obj)/entry-header.S include/asm-arm/constants.h \
$(obj)/calls.S
......@@ -43,6 +43,6 @@ obj-$(CONFIG_CPU_26) += uaccess-armo.o
include $(TOPDIR)/Rules.make
csumpartialcopy.o: csumpartialcopygeneric.S
csumpartialcopyuser.o: csumpartialcopygeneric.S
$(obj)/csumpartialcopy.o: $(obj)/csumpartialcopygeneric.S
$(obj)/csumpartialcopyuser.o: $(obj)/csumpartialcopygeneric.S
......@@ -42,4 +42,4 @@ obj-y += $(sort $(p-y))
include $(TOPDIR)/Rules.make
# Special dependencies
$(p-y): $(TOPDIR)/include/asm-arm/constants.h
$(obj)/$(p-y): include/asm-arm/constants.h
......@@ -4,9 +4,9 @@
# Copyright (C) 2001 Russell King
#
all: $(TOPDIR)/include/asm-arm/mach-types.h
include $(TOPDIR)/Rules.make
$(TOPDIR)/include/asm-arm/mach-types.h: mach-types gen-mach-types
awk -f gen-mach-types mach-types > $@
include/asm-arm/mach-types.h: $(obj)/mach-types $(obj)/gen-mach-types
@echo ' Generating $@'
@awk -f $(obj)/gen-mach-types $(obj)/mach-types > $@
.PHONY: all
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment