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" cleaning up for this architecture.
8 # This file is subject to the terms and conditions of the GNU General Public
9 # License. See the file "COPYING" in the main directory of this archive
12 # Copyright (C) 1994 by Linus Torvalds
14 # 19990713 Artur Skawina <skawina@geocities.com>
15 # Added '-march' and '-mpreferred-stack-boundary' support
17 # 20050320 Kianusch Sayah Karadji <kianusch@sk-tech.net>
18 # Added support for GEODE CPU
20 HAS_BIARCH
:= $(call cc-option-yn
, -m32
)
21 ifeq ($(HAS_BIARCH
),y
)
23 LD
:= $(LD
) -m elf_i386
27 LDFLAGS
:= -m elf_i386
28 OBJCOPYFLAGS
:= -O binary
-R .note
-R .comment
-S
30 CHECKFLAGS
+= -D__i386__
32 CFLAGS
+= -pipe
-msoft-float
34 # prevent gcc from keeping the stack 16 byte aligned
35 CFLAGS
+= $(call cc-option
,-mpreferred-stack-boundary
=2)
37 align
:= $(cc-option-align
)
38 cflags-
$(CONFIG_M386
) += -march
=i386
39 cflags-
$(CONFIG_M486
) += -march
=i486
40 cflags-
$(CONFIG_M586
) += -march
=i586
41 cflags-
$(CONFIG_M586TSC
) += -march
=i586
42 cflags-
$(CONFIG_M586MMX
) += $(call cc-option
,-march
=pentium-mmx
,-march
=i586
)
43 cflags-
$(CONFIG_M686
) += -march
=i686
44 cflags-
$(CONFIG_MPENTIUMII
) += -march
=i686
$(call cc-option
,-mtune
=pentium2
)
45 cflags-
$(CONFIG_MPENTIUMIII
) += -march
=i686
$(call cc-option
,-mtune
=pentium3
)
46 cflags-
$(CONFIG_MPENTIUMM
) += -march
=i686
$(call cc-option
,-mtune
=pentium3
)
47 cflags-
$(CONFIG_MPENTIUM4
) += -march
=i686
$(call cc-option
,-mtune
=pentium4
)
48 cflags-
$(CONFIG_MK6
) += -march
=k6
49 # Please note, that patches that add -march=athlon-xp and friends are pointless.
50 # They make zero difference whatsosever to performance at this time.
51 cflags-
$(CONFIG_MK7
) += $(call cc-option
,-march
=athlon
,-march
=i686
$(align
)-functions
=4)
52 cflags-
$(CONFIG_MK8
) += $(call cc-option
,-march
=k8
,$(call cc-option
,-march
=athlon
,-march
=i686
$(align
)-functions
=4))
53 cflags-
$(CONFIG_MCRUSOE
) += -march
=i686
$(align
)-functions
=0 $(align
)-jumps
=0 $(align
)-loops
=0
54 cflags-
$(CONFIG_MEFFICEON
) += -march
=i686
$(call cc-option
,-mtune
=pentium3
) $(align
)-functions
=0 $(align
)-jumps
=0 $(align
)-loops
=0
55 cflags-
$(CONFIG_MWINCHIPC6
) += $(call cc-option
,-march
=winchip-c6
,-march
=i586
)
56 cflags-
$(CONFIG_MWINCHIP2
) += $(call cc-option
,-march
=winchip2
,-march
=i586
)
57 cflags-
$(CONFIG_MWINCHIP3D
) += $(call cc-option
,-march
=winchip2
,-march
=i586
)
58 cflags-
$(CONFIG_MCYRIXIII
) += $(call cc-option
,-march
=c3
,-march
=i486
) $(align
)-functions
=0 $(align
)-jumps
=0 $(align
)-loops
=0
59 cflags-
$(CONFIG_MVIAC3_2
) += $(call cc-option
,-march
=c3-2
,-march
=i686
)
62 cflags-
$(CONFIG_X86_ELAN
) += -march
=i486
65 cflags-
$(CONFIG_MGEODEGX1
) += $(call cc-option
,-march
=pentium-mmx
,-march
=i486
)
67 # -mregparm=3 works ok on gcc-3.0 and later
69 GCC_VERSION
:= $(call cc-version
)
70 cflags-
$(CONFIG_REGPARM
) += $(shell if
[ $(GCC_VERSION
) -ge
0300 ] ; then echo
"-mregparm=3"; fi
;)
72 # Disable unit-at-a-time mode, it makes gcc use a lot more stack
73 # due to the lack of sharing of stacklots.
74 CFLAGS
+= $(call cc-option
,-fno-unit-at-a-time
)
78 # Default subarch .c files
79 mcore-y
:= mach-default
81 # Voyager subarch support
82 mflags-
$(CONFIG_X86_VOYAGER
) := -Iinclude
/asm-i386
/mach-voyager
83 mcore-
$(CONFIG_X86_VOYAGER
) := mach-voyager
85 # VISWS subarch support
86 mflags-
$(CONFIG_X86_VISWS
) := -Iinclude
/asm-i386
/mach-visws
87 mcore-
$(CONFIG_X86_VISWS
) := mach-visws
89 # NUMAQ subarch support
90 mflags-
$(CONFIG_X86_NUMAQ
) := -Iinclude
/asm-i386
/mach-numaq
91 mcore-
$(CONFIG_X86_NUMAQ
) := mach-default
93 # BIGSMP subarch support
94 mflags-
$(CONFIG_X86_BIGSMP
) := -Iinclude
/asm-i386
/mach-bigsmp
95 mcore-
$(CONFIG_X86_BIGSMP
) := mach-default
97 #Summit subarch support
98 mflags-
$(CONFIG_X86_SUMMIT
) := -Iinclude
/asm-i386
/mach-summit
99 mcore-
$(CONFIG_X86_SUMMIT
) := mach-default
101 # generic subarchitecture
102 mflags-
$(CONFIG_X86_GENERICARCH
) := -Iinclude
/asm-i386
/mach-generic
103 mcore-
$(CONFIG_X86_GENERICARCH
) := mach-default
104 core-
$(CONFIG_X86_GENERICARCH
) += arch
/i386
/mach-generic
/
106 # ES7000 subarch support
107 mflags-
$(CONFIG_X86_ES7000
) := -Iinclude
/asm-i386
/mach-es7000
108 mcore-
$(CONFIG_X86_ES7000
) := mach-default
109 core-
$(CONFIG_X86_ES7000
) := arch
/i386
/mach-es7000
/
111 # default subarch .h files
112 mflags-y
+= -Iinclude
/asm-i386
/mach-default
114 head-y
:= arch
/i386
/kernel
/head.o arch
/i386
/kernel
/init_task.o
116 libs-y
+= arch
/i386
/lib
/
117 core-y
+= arch
/i386
/kernel
/ \
119 arch
/i386
/$(mcore-y
)/ \
121 drivers-
$(CONFIG_MATH_EMULATION
) += arch
/i386
/math-emu
/
122 drivers-
$(CONFIG_PCI
) += arch
/i386
/pci
/
123 # must be linked after kernel/
124 drivers-
$(CONFIG_OPROFILE
) += arch
/i386
/oprofile
/
125 drivers-
$(CONFIG_PM
) += arch
/i386
/power
/
127 CFLAGS
+= $(mflags-y
)
128 AFLAGS
+= $(mflags-y
)
130 boot
:= arch
/i386
/boot
132 .PHONY
: zImage bzImage compressed zlilo bzlilo \
133 zdisk bzdisk fdimage fdimage144 fdimage288
install kernel_install
137 # KBUILD_IMAGE specify target image being built
138 KBUILD_IMAGE
:= $(boot
)/bzImage
139 zImage zlilo zdisk
: KBUILD_IMAGE
:= arch
/i386
/boot
/zImage
141 zImage bzImage
: vmlinux
142 $(Q
)$(MAKE
) $(build
)=$(boot
) $(KBUILD_IMAGE
)
146 zlilo bzlilo
: vmlinux
147 $(Q
)$(MAKE
) $(build
)=$(boot
) BOOTIMAGE
=$(KBUILD_IMAGE
) zlilo
149 zdisk bzdisk
: vmlinux
150 $(Q
)$(MAKE
) $(build
)=$(boot
) BOOTIMAGE
=$(KBUILD_IMAGE
) zdisk
152 fdimage fdimage144 fdimage288
: vmlinux
153 $(Q
)$(MAKE
) $(build
)=$(boot
) BOOTIMAGE
=$(KBUILD_IMAGE
) $@
156 install kernel_install
:
157 $(Q
)$(MAKE
) $(build
)=$(boot
) BOOTIMAGE
=$(KBUILD_IMAGE
) install
159 prepare
: include/asm-
$(ARCH
)/asm_offsets.h
160 CLEAN_FILES
+= include/asm-
$(ARCH
)/asm_offsets.h
162 arch
/$(ARCH
)/kernel
/asm-offsets.s
: include/asm
include/linux
/version.h \
163 include/config
/MARKER
165 include/asm-
$(ARCH
)/asm_offsets.h
: arch
/$(ARCH
)/kernel
/asm-offsets.s
166 $(call filechk
,gen-asm-offsets
)
169 $(Q
)$(MAKE
) $(clean)=arch
/i386
/boot
172 echo
'* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)'
173 echo
' install - Install kernel using'
174 echo
' (your) ~/bin/installkernel or'
175 echo
' (distribution) /sbin/installkernel or'
176 echo
' install to $$(INSTALL_PATH) and run lilo'
177 echo
' bzdisk - Create a boot floppy in /dev/fd0'
178 echo
' fdimage - Create a boot floppy image'
181 CLEAN_FILES
+= arch
/$(ARCH
)/boot
/fdimage arch
/$(ARCH
)/boot
/mtools.conf