4 # This file is included by the global makefile so that you can add your own
5 # architecture-specific flags and dependencies. Remember to do have actions
6 # for "archclean" and "archdep" for cleaning up and making dependencies for
9 # This file is subject to the terms and conditions of the GNU General Public
10 # License. See the file "COPYING" in the main directory of this archive
13 # Copyright (C) 1995, 1996 by Russell King
18 # All processors get `-mshort-load-bytes' for now, to work around alignment
19 # problems. This is more of a hack that just happens to work than a real fix
20 # but it will do for now.
22 ifeq ($(CONFIG_CPU_26
),y
)
25 ZTEXTADDR
= 0x01800000
27 ifeq ($(CONFIG_BINUTILS_NEW
),y
)
28 CFLAGS_PROC
+= -mapcs-26
-mshort-load-bytes
29 ifeq ($(CONFIG_CPU_ARM2
),y
)
30 CFLAGS_PROC
+= -mcpu
=arm2
33 ifeq ($(CONFIG_CPU_ARM3
),y
)
34 CFLAGS_PROC
+= -mcpu
=arm3
38 ifeq ($(CONFIG_CPU_ARM2
),y
)
42 ifeq ($(CONFIG_CPU_ARM3
),y
)
49 ifeq ($(CONFIG_CPU_32
),y
)
52 ifeq ($(CONFIG_BINUTILS_NEW
),y
)
53 CFLAGS_PROC
+= -mapcs-32
-mshort-load-bytes
54 ifeq ($(CONFIG_CPU_ARM6
),y
)
55 CFLAGS_PROC
+= -mcpu
=arm6
57 ifeq ($(CONFIG_CPU_ARM7
),y
)
58 CFLAGS_PROC
+= -mcpu
=arm7
60 ifeq ($(CONFIG_CPU_SA110
),y
)
61 CFLAGS_PROC
+= -mcpu
=strongarm110
69 # Processor Architecture
70 # CFLAGS_PROC - processor dependent CFLAGS
71 # PROCESSOR - processor type
72 # TEXTADDR - Uncompressed kernel link text address
73 # ZTEXTADDR - Compressed kernel link text address
74 # ZRELADDR - Compressed kernel relocating address (point at which uncompressed kernel is loaded).
77 COMPRESSED_HEAD
= head.o
79 ifeq ($(CONFIG_ARCH_A5K
),y
)
82 COMPRESSED_EXTRA
= $(TOPDIR
)/arch
/arm
/lib
/ll_char_wr.o
85 ifeq ($(CONFIG_ARCH_ARC
),y
)
88 COMPRESSED_EXTRA
= $(TOPDIR
)/arch
/arm
/lib
/ll_char_wr.o
91 ifeq ($(CONFIG_ARCH_RPC
),y
)
94 COMPRESSED_EXTRA
= $(TOPDIR
)/arch
/arm
/lib
/ll_char_wr.o
95 ZTEXTADDR
= 0x10008000
99 ifeq ($(CONFIG_ARCH_EBSA110
),y
)
102 ZTEXTADDR
= 0x00008000
103 ZRELADDR
= 0x00008000
106 ifeq ($(CONFIG_ARCH_EBSA285
),y
)
109 ZTEXTADDR
= 0x00008000
110 ZRELADDR
= 0x00008000
113 ifeq ($(CONFIG_ARCH_NEXUSPCI
),y
)
116 ZTEXTADDR
= 0x40200000
117 ZRELADDR
= 0x40008000
118 COMPRESSED_EXTRA
= $(TOPDIR
)/arch
/arm
/lib
/ll_char_wr_scc.o
119 COMPRESSED_HEAD
= head-nexuspci.o
122 ifeq ($(CONFIG_ARCH_VNC
),y
)
123 TEXTADDR
= 0xC000C000
128 ifeq ($(CONFIG_ARCH_TBOX
),y
)
131 ZTEXTADDR
= 0x80008000
136 ifeq ($(CONFIG_BINUTILS_NEW
),y
)
137 LD
= $(CROSS_COMPILE
)ld -m elf32arm
139 LD
= $(CROSS_COMPILE
)ld -m elf_arm
141 OBJCOPY
= $(CROSS_COMPILE
)objcopy
-O binary
-R .note
-R .comment
-S
142 OBJDUMP
= $(CROSS_COMPILE
)objdump
144 ARCHCC
:= $(word 1,$(CC
))
145 GCCLIB
:= `$(CC) $(CFLAGS_PROC) --print-libgcc-file-name`
146 #GCCARCH := -B/usr/bin/arm-linuxelf-
147 HOSTCFLAGS
:= $(CFLAGS
:-fomit-frame-pointer
=)
148 ifeq ($(CONFIG_FRAME_POINTER
),y
)
149 CFLAGS
:= $(CFLAGS
:-fomit-frame-pointer
=)
151 CFLAGS
:= $(CFLAGS_PROC
) $(CFLAGS
) -pipe
152 ASFLAGS
:= $(ASFLAGS_PROC
) $(ASFLAGS
)
153 LINKFLAGS
= -T
$(TOPDIR
)/arch
/arm
/vmlinux-
$(PROCESSOR
).lds
-e stext
-Ttext
$(TEXTADDR
)
154 ZLINKFLAGS
= -Ttext
$(ZTEXTADDR
)
156 SUBDIRS
:= $(SUBDIRS
:drivers
=arch
/arm
/drivers
) arch
/arm
/lib arch
/arm
/kernel arch
/arm
/mm
157 HEAD
:= arch
/arm
/kernel
/head-
$(PROCESSOR
).o arch
/arm
/kernel
/init_task.o
158 CORE_FILES
:= arch
/arm
/kernel
/kernel.o arch
/arm
/mm
/mm.o
$(CORE_FILES
)
159 LIBS
:= arch
/arm
/lib
/lib.a
$(LIBS
) $(GCCLIB
)
161 BLOCK_DRIVERS
:= drivers
/block
/block.a
162 CDROM_DRIVERS
:= drivers
/cdrom
/cdrom.a
163 ifeq ($(CONFIG_FB
),y
)
164 CHAR_DRIVERS
:= arch
/arm
/drivers
/char1
/char1.a drivers
/char
/char.a arch
/arm
/drivers
/char1
/char1.a
166 ifeq ($(CONFIG_VGA_CONSOLE
),y
)
167 CHAR_DRIVERS
:= arch
/arm
/drivers
/char1
/char1.a drivers
/char
/char.a arch
/arm
/drivers
/char1
/char1.a
169 CHAR_DRIVERS
:= arch
/arm
/drivers
/char
/char.a
172 MISC_DRIVERS
:= drivers
/misc
/misc.a
173 NET_DRIVERS
:= drivers
/net
/net.a
174 PARIDE_DRIVERS
:= drivers
/block
/paride
/paride.a
175 PCI_DRIVERS
:= drivers
/pci
/pci.a
176 SCSI_DRIVERS
:= drivers
/scsi
/scsi.a
177 SOUND_DRIVERS
:= drivers
/sound
/sound.a
178 VIDEO_DRIVERS
:= drivers
/video
/video.a
179 PNP_DRIVERS
:= drivers
/pnp
/pnp.a
181 ifeq ($(CONFIG_ARCH_ACORN
),y
)
182 BLOCK_DRIVERS
+= drivers
/acorn
/block
/acorn-block.a
183 CHAR_DRIVERS
+= drivers
/acorn
/char
/acorn-char.a
184 NET_DRIVERS
+= drivers
/acorn
/net
/acorn-net.a drivers
/net
/net.a
185 SCSI_DRIVERS
+= drivers
/acorn
/scsi
/acorn-scsi.a
188 DRIVERS
:= $(BLOCK_DRIVERS
) $(CHAR_DRIVERS
) $(MISC_DRIVERS
) $(NET_DRIVERS
)
190 ifeq ($(CONFIG_FB
),y
)
191 DRIVERS
:= $(DRIVERS
) $(VIDEO_DRIVERS
)
193 ifeq ($(CONFIG_VGA_CONSOLE
),y
)
194 DRIVERS
:= $(DRIVERS
) $(VIDEO_DRIVERS
)
197 ifeq ($(CONFIG_SCSI
),y
)
198 DRIVERS
:= $(DRIVERS
) $(SCSI_DRIVERS
)
200 ifneq ($(CONFIG_CD_NO_IDESCSI
)$(CONFIG_BLK_DEV_IDECD
)$(CONFIG_BLK_DEV_SR
),)
201 DRIVERS
:= $(DRIVERS
) $(CDROM_DRIVERS
)
204 DRIVERS
:= $(DRIVERS
) $(PCI_DRIVERS
)
206 ifeq ($(CONFIG_SOUND
),y
)
207 DRIVERS
:= $(DRIVERS
) $(SOUND_DRIVERS
)
209 ifeq ($(CONFIG_PARIDE
),y
)
210 DRIVERS
:= $(DRIVERS
) $(PARIDE_DRIVERS
)
213 DRIVERS
:= $(DRIVERS
) $(PNP_DRIVERS
)
217 $(RM
) include/asm-arm
/arch
include/asm-arm
/proc
218 (cd
include/asm-arm
; ln
-sf arch-
$(ARCHDIR
) arch
; ln
-sf proc-
$(PROCESSOR
) proc
)
220 # Once we've finished integrating the sources, the @$(MAKE) will disappear
222 rm -f
include/asm-arm
/arch
include/asm-arm
/proc
223 @
$(MAKE
) -C arch
/$(ARCH
)/drivers mrproper
225 arch
/arm
/kernel
: dummy
226 $(MAKE
) linuxsubdirs SUBDIRS
=arch
/arm
/kernel
229 $(MAKE
) linuxsubdirs SUBDIRS
=arch
/arm
/mm
232 $(MAKE
) linuxsubdirs SUBDIRS
=arch
/arm
/lib
234 MAKEBOOT
= $(MAKE
) -C arch
/$(ARCH
)/boot
240 @
$(MAKEBOOT
) zinstall
248 # My testing targets (that short circuit a few dependencies)
249 zImg
:; @
$(MAKEBOOT
) zImage
250 Img
:; @
$(MAKEBOOT
) Image
251 i
:; @
$(MAKEBOOT
) install
252 zi
:; @
$(MAKEBOOT
) zinstall
256 $(RM
) arch
/arm
/lib
/constants.h
260 sed
-e
/^MACHINE..
*=/s
,= .
*,= rpc
,;/^PROCESSOR..
*=/s
,= .
*,= armv
, linux
/arch
/arm
/Makefile.normal