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