patch-2.4.22 linux-2.4.22/arch/arm/Makefile
Next file: linux-2.4.22/arch/arm/boot/Makefile
Previous file: linux-2.4.22/arch/alpha/lib/stxncpy.S
Back to the patch index
Back to the overall index
- Lines: 262
- Date:
2003-08-25 04:44:39.000000000 -0700
- Orig file:
linux-2.4.21/arch/arm/Makefile
- Orig date:
2002-08-02 17:39:42.000000000 -0700
diff -urN linux-2.4.21/arch/arm/Makefile linux-2.4.22/arch/arm/Makefile
@@ -8,8 +8,15 @@
# Copyright (C) 1995-2001 by Russell King
LINKFLAGS :=-p -X -T arch/arm/vmlinux.lds
+OBJCOPYFLAGS :=-O binary -R .note -R .comment -S
GZFLAGS :=-9
-CFLAGS +=-fno-common -pipe
+CFLAGS +=-Uarm -fno-common -pipe
+
+ifeq ($(CONFIG_FRAME_POINTER),y)
+CFLAGS :=$(CFLAGS:-fomit-frame-pointer=-mapcs -mno-sched-prolog)
+endif
+
+CFLAGS :=$(CFLAGS:-O2=-Os)
ifeq ($(CONFIG_DEBUG_INFO),y)
CFLAGS +=-g
@@ -24,10 +31,13 @@
apcs-$(CONFIG_CPU_26) :=-mapcs-26 -mcpu=arm3 -Os
# This selects which instruction set is used.
+# Note that GCC is lame - it doesn't numerically define an
+# architecture version macro, but instead defines a whole
+# series of macros.
arch-y :=
-arch-$(CONFIG_CPU_32v3) :=-march=armv3
-arch-$(CONFIG_CPU_32v4) :=-march=armv4
-arch-$(CONFIG_CPU_32v5) :=-march=armv5
+arch-$(CONFIG_CPU_32v3) :=-D__LINUX_ARM_ARCH__=3 -march=armv3
+arch-$(CONFIG_CPU_32v4) :=-D__LINUX_ARM_ARCH__=4 -march=armv4
+arch-$(CONFIG_CPU_32v5) :=-D__LINUX_ARM_ARCH__=5 -march=armv5
# This selects how we optimise for the processor.
tune-y :=
@@ -40,12 +50,12 @@
tune-$(CONFIG_CPU_SA110) :=-mtune=strongarm110
tune-$(CONFIG_CPU_SA1100) :=-mtune=strongarm1100
-CFLAGS_BOOT :=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float
-CFLAGS +=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float
+CFLAGS_BOOT :=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Uarm
+CFLAGS +=$(apcs-y) $(arch-y) $(tune-y) -mshort-load-bytes -msoft-float -Uarm
AFLAGS +=$(apcs-y) $(arch-y) -mno-fpu -msoft-float
ifeq ($(CONFIG_CPU_26),y)
-PROCESSOR = armo
+PROCESSOR := armo
ifeq ($(CONFIG_ROM_KERNEL),y)
DATAADDR = 0x02080000
TEXTADDR = 0x03800000
@@ -81,6 +91,10 @@
INCDIR = cl7500
endif
+ifeq ($(CONFIG_ARCH_RISCSTATION),y)
+MACHINE = riscstation
+endif
+
ifeq ($(CONFIG_FOOTBRIDGE),y)
MACHINE = footbridge
INCDIR = ebsa285
@@ -121,12 +135,16 @@
MACHINE = integrator
endif
+ifeq ($(CONFIG_ARCH_AT91RM9200),y)
+MACHINE = at91rm9200
+endif
+
ifeq ($(CONFIG_ARCH_MX1ADS),y)
MACHINE = mx1ads
endif
ifeq ($(CONFIG_ARCH_CAMELOT),y)
-MACHINE = epxa10db
+MACHINE = epxa
endif
ifeq ($(CONFIG_ARCH_CLPS711X),y)
@@ -135,19 +153,23 @@
endif
ifeq ($(CONFIG_ARCH_FORTUNET),y)
-TEXTADDR = 0xc0008000
+TEXTADDR = 0xc0208000
endif
ifeq ($(CONFIG_ARCH_ANAKIN),y)
MACHINE = anakin
endif
-export MACHINE PROCESSOR TEXTADDR GZFLAGS CFLAGS_BOOT
+ifeq ($(CONFIG_ARCH_OMAHA),y)
+MACHINE = omaha
+endif
+
+export MACHINE PROCESSOR TEXTADDR GZFLAGS CFLAGS_BOOT OBJCOPYFLAGS
# Only set INCDIR if its not already defined above
# Grr, ?= doesn't work as all the other assignment operators do. Make bug?
ifeq ($(origin INCDIR), undefined)
-INCDIR := $(MACHINE)
+INCDIR :=$(MACHINE)
endif
ifeq ($(origin DATAADDR), undefined)
@@ -161,32 +183,42 @@
CORE_FILES := $(MACHDIR)/$(MACHINE).o $(CORE_FILES)
endif
-HEAD := arch/arm/kernel/head-$(PROCESSOR).o \
- arch/arm/kernel/init_task.o
-SUBDIRS += arch/arm/kernel arch/arm/mm arch/arm/lib arch/arm/nwfpe
-CORE_FILES := arch/arm/kernel/kernel.o arch/arm/mm/mm.o $(CORE_FILES)
-LIBS := arch/arm/lib/lib.a $(LIBS)
+HEAD :=arch/arm/kernel/head-$(PROCESSOR).o \
+ arch/arm/kernel/init_task.o
+SUBDIRS +=arch/arm/kernel arch/arm/mm arch/arm/lib arch/arm/nwfpe
+CORE_FILES :=arch/arm/kernel/kernel.o arch/arm/mm/mm.o $(CORE_FILES)
+LIBS :=arch/arm/lib/lib.a $(LIBS)
ifeq ($(CONFIG_FPE_NWFPE),y)
-LIBS := arch/arm/nwfpe/math-emu.o $(LIBS)
+LIBS :=arch/arm/nwfpe/math-emu.o $(LIBS)
endif
# Only include fastfpe if it is part of the kernel tree.
-FASTFPE := arch/arm/fastfpe
+FASTFPE :=arch/arm/fastfpe
ifeq ($(FASTFPE),$(wildcard $(FASTFPE)))
-SUBDIRS += $(FASTFPE)
+SUBDIRS +=$(FASTFPE)
ifeq ($(CONFIG_FPE_FASTFPE),y)
-LIBS := arch/arm/fastfpe/fast-math-emu.o $(LIBS)
+LIBS :=arch/arm/fastfpe/fast-math-emu.o $(LIBS)
+endif
endif
+
+ifeq ($(findstring y,$(CONFIG_USB_OHCI_SA1111) $(CONFIG_USB_OHCI_AT91)),y)
+ SUBDIRS +=arch/arm/common
+ CORE_FILES +=arch/arm/common/nopci.o
endif
ifeq ($(findstring y,$(CONFIG_ARCH_CLPS7500) $(CONFIG_ARCH_L7200)),y)
-SUBDIRS += drivers/acorn/char
-DRIVERS += drivers/acorn/char/acorn-char.o
+SUBDIRS +=drivers/acorn/char
+DRIVERS +=drivers/acorn/char/acorn-char.o
+endif
+
+ifeq ($(CONFIG_ARCH_RISCSTATION),y)
+SUBDIRS +=drivers/acorn/char
+DRIVERS +=drivers/acorn/char/acorn-char.o
endif
-MAKEBOOT = $(MAKE) -C arch/$(ARCH)/boot
-MAKETOOLS = $(MAKE) -C arch/$(ARCH)/tools
+MAKEBOOT =$(MAKE) -C arch/$(ARCH)/boot
+MAKETOOLS =$(MAKE) -C arch/$(ARCH)/tools
# The following is a hack to get 'constants.h' up
# to date before starting compilation
@@ -194,15 +226,44 @@
$(patsubst %,_dir_%, $(SUBDIRS)): maketools
$(patsubst %,_modsubdir_%,$(MOD_DIRS)): maketools
-symlinks: archsymlinks
+symlinks: include/asm-arm/.arch include/asm-arm/.proc
-archsymlinks:
- $(RM) include/asm-arm/arch include/asm-arm/proc
- (cd include/asm-arm; ln -sf arch-$(INCDIR) arch; ln -sf proc-$(PROCESSOR) proc)
+# Update machine arch and proc symlinks if something which affects
+# them changed. We use .arch and .proc to indicate when they were
+# updated last, otherwise make uses the target directory mtime.
+
+include/asm-arm/.arch: $(wildcard include/config/arch/*.h)
+ifneq ("$(INCDIR)","")
+ @echo ' Making asm-arm/arch -> asm-arm/arch-$(INCDIR) symlink'
+ @rm -f include/asm-arm/arch
+ @ln -sf arch-$(INCDIR) include/asm-arm/arch
+ @touch $@
+else
+ @echo ' No architecture defined. You may want to use a pre-packaged config. make a5k_config, ebsa110_config, footbridge_config, etc.'
+endif
+
+include/asm-arm/.proc: $(wildcard include/config/cpu/32.h) $(wildcard include/config/cpu/26.h)
+ifneq ("$(INCDIR)","")
+ @echo ' Making asm-arm/proc -> asm-arm/proc-$(PROCESSOR) symlink'
+ @rm -f include/asm-arm/proc
+ @ln -sf proc-$(PROCESSOR) include/asm-arm/proc
+ @touch $@
+else
+ @echo ' No architecture defined. You may want to use a pre-packaged config. make a5k_config, ebsa110_config, footbridge_config, etc.'
+endif
+
+.PHONY: maketools
+maketools: include/asm-arm/.arch include/asm-arm/.proc \
+ include/asm-arm/constants.h include/linux/version.h checkbin
+ @$(MAKETOOLS)
vmlinux: arch/arm/vmlinux.lds
-arch/arm/vmlinux.lds: $(LDSCRIPT) dummy
+arch/arm/vmlinux.lds: arch/arm/Makefile $(LDSCRIPT) \
+ $(wildcard include/config/cpu/32.h) \
+ $(wildcard include/config/cpu/26.h) \
+ $(wildcard include/config/arch/*.h)
+ @echo ' Generating $@'
@sed 's/TEXTADDR/$(TEXTADDR)/;s/DATAADDR/$(DATAADDR)/' $(LDSCRIPT) >$@
arch/arm/kernel arch/arm/mm arch/arm/lib: dummy
@@ -216,39 +277,37 @@
MRPROPER_FILES += \
arch/arm/tools/constants.h* \
- include/asm-arm/arch \
- include/asm-arm/proc \
+ include/asm-arm/arch include/asm-arm/.arch \
+ include/asm-arm/proc include/asm-arm/.proc \
include/asm-arm/constants.h* \
include/asm-arm/mach-types.h
# We use MRPROPER_FILES and CLEAN_FILES now
-archmrproper:
+archmrproper: FORCE
@/bin/true
-archclean:
+archclean: FORCE
@$(MAKEBOOT) clean
-archdep: scripts/mkdep archsymlinks
+archdep: scripts/mkdep symlinks
@$(MAKETOOLS) dep
@$(MAKEBOOT) dep
-# we need version.h
-maketools: checkbin include/linux/version.h
- @$(MAKETOOLS) all
-
-# Ensure this is ld "2.9.4" or later
+# Ensure this is ld "2.9.5" or later
NEW_LINKER := $(shell $(LD) --gc-sections --version >/dev/null 2>&1; echo $$?)
ifneq ($(NEW_LINKER),0)
-checkbin:
+checkbin: FORCE
@echo '*** ${VERSION}.${PATCHLEVEL} kernels no longer build correctly with old versions of binutils.'
@echo '*** Please upgrade your binutils to 2.9.5.'
@false
else
-checkbin:
+checkbin: FORCE
@true
endif
+.PHONY: FORCE
+
# My testing targets (that short circuit a few dependencies)
zImg:; @$(MAKEBOOT) zImage
Img:; @$(MAKEBOOT) Image
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)