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 LDFLAGS
:= -m elf_i386
21 OBJCOPYFLAGS
:= -O binary
-R .note
-R .comment
-S
23 CHECKFLAGS
+= -D__i386__
25 CFLAGS
+= -pipe
-msoft-float
27 # prevent gcc from keeping the stack 16 byte aligned
28 CFLAGS
+= $(call cc-option
,-mpreferred-stack-boundary
=2)
30 align
:= $(cc-option-align
)
31 cflags-
$(CONFIG_M386
) += -march
=i386
32 cflags-
$(CONFIG_M486
) += -march
=i486
33 cflags-
$(CONFIG_M586
) += -march
=i586
34 cflags-
$(CONFIG_M586TSC
) += -march
=i586
35 cflags-
$(CONFIG_M586MMX
) += $(call cc-option
,-march
=pentium-mmx
,-march
=i586
)
36 cflags-
$(CONFIG_M686
) += -march
=i686
37 cflags-
$(CONFIG_MPENTIUMII
) += -march
=i686
$(call cc-option
,-mtune
=pentium2
)
38 cflags-
$(CONFIG_MPENTIUMIII
) += -march
=i686
$(call cc-option
,-mtune
=pentium3
)
39 cflags-
$(CONFIG_MPENTIUMM
) += -march
=i686
$(call cc-option
,-mtune
=pentium3
)
40 cflags-
$(CONFIG_MPENTIUM4
) += -march
=i686
$(call cc-option
,-mtune
=pentium4
)
41 cflags-
$(CONFIG_MK6
) += -march
=k6
42 # Please note, that patches that add -march=athlon-xp and friends are pointless.
43 # They make zero difference whatsosever to performance at this time.
44 cflags-
$(CONFIG_MK7
) += $(call cc-option
,-march
=athlon
,-march
=i686
$(align
)-functions
=4)
45 cflags-
$(CONFIG_MK8
) += $(call cc-option
,-march
=k8
,$(call cc-option
,-march
=athlon
,-march
=i686
$(align
)-functions
=4))
46 cflags-
$(CONFIG_MCRUSOE
) += -march
=i686
$(align
)-functions
=0 $(align
)-jumps
=0 $(align
)-loops
=0
47 cflags-
$(CONFIG_MEFFICEON
) += -march
=i686
$(call cc-option
,-mtune
=pentium3
) $(align
)-functions
=0 $(align
)-jumps
=0 $(align
)-loops
=0
48 cflags-
$(CONFIG_MWINCHIPC6
) += $(call cc-option
,-march
=winchip-c6
,-march
=i586
)
49 cflags-
$(CONFIG_MWINCHIP2
) += $(call cc-option
,-march
=winchip2
,-march
=i586
)
50 cflags-
$(CONFIG_MWINCHIP3D
) += $(call cc-option
,-march
=winchip2
,-march
=i586
)
51 cflags-
$(CONFIG_MCYRIXIII
) += $(call cc-option
,-march
=c3
,-march
=i486
) $(align
)-functions
=0 $(align
)-jumps
=0 $(align
)-loops
=0
52 cflags-
$(CONFIG_MVIAC3_2
) += $(call cc-option
,-march
=c3-2
,-march
=i686
)
55 cflags-
$(CONFIG_X86_ELAN
) += -march
=i486
58 cflags-
$(CONFIG_MGEODEGX1
) += $(call cc-option
,-march
=pentium-mmx
,-march
=i486
)
60 # -mregparm=3 works ok on gcc-3.0 and later
62 GCC_VERSION
:= $(call cc-version
)
63 cflags-
$(CONFIG_REGPARM
) += $(shell if
[ $(GCC_VERSION
) -ge
0300 ] ; then echo
"-mregparm=3"; fi
;)
65 # Disable unit-at-a-time mode, it makes gcc use a lot more stack
66 # due to the lack of sharing of stacklots.
67 CFLAGS
+= $(call cc-option
,-fno-unit-at-a-time
)
71 # Default subarch .c files
72 mcore-y
:= mach-default
74 # Voyager subarch support
75 mflags-
$(CONFIG_X86_VOYAGER
) := -Iinclude
/asm-i386
/mach-voyager
76 mcore-
$(CONFIG_X86_VOYAGER
) := mach-voyager
78 # VISWS subarch support
79 mflags-
$(CONFIG_X86_VISWS
) := -Iinclude
/asm-i386
/mach-visws
80 mcore-
$(CONFIG_X86_VISWS
) := mach-visws
82 # NUMAQ subarch support
83 mflags-
$(CONFIG_X86_NUMAQ
) := -Iinclude
/asm-i386
/mach-numaq
84 mcore-
$(CONFIG_X86_NUMAQ
) := mach-default
86 # BIGSMP subarch support
87 mflags-
$(CONFIG_X86_BIGSMP
) := -Iinclude
/asm-i386
/mach-bigsmp
88 mcore-
$(CONFIG_X86_BIGSMP
) := mach-default
90 #Summit subarch support
91 mflags-
$(CONFIG_X86_SUMMIT
) := -Iinclude
/asm-i386
/mach-summit
92 mcore-
$(CONFIG_X86_SUMMIT
) := mach-default
94 # generic subarchitecture
95 mflags-
$(CONFIG_X86_GENERICARCH
) := -Iinclude
/asm-i386
/mach-generic
96 mcore-
$(CONFIG_X86_GENERICARCH
) := mach-default
97 core-
$(CONFIG_X86_GENERICARCH
) += arch
/i386
/mach-generic
/
99 # ES7000 subarch support
100 mflags-
$(CONFIG_X86_ES7000
) := -Iinclude
/asm-i386
/mach-es7000
101 mcore-
$(CONFIG_X86_ES7000
) := mach-default
102 core-
$(CONFIG_X86_ES7000
) := arch
/i386
/mach-es7000
/
104 # default subarch .h files
105 mflags-y
+= -Iinclude
/asm-i386
/mach-default
107 head-y
:= arch
/i386
/kernel
/head.o arch
/i386
/kernel
/init_task.o
109 libs-y
+= arch
/i386
/lib
/
110 core-y
+= arch
/i386
/kernel
/ \
112 arch
/i386
/$(mcore-y
)/ \
114 drivers-
$(CONFIG_MATH_EMULATION
) += arch
/i386
/math-emu
/
115 drivers-
$(CONFIG_PCI
) += arch
/i386
/pci
/
116 # must be linked after kernel/
117 drivers-
$(CONFIG_OPROFILE
) += arch
/i386
/oprofile
/
118 drivers-
$(CONFIG_PM
) += arch
/i386
/power
/
120 CFLAGS
+= $(mflags-y
)
121 AFLAGS
+= $(mflags-y
)
123 boot
:= arch
/i386
/boot
125 .PHONY
: zImage bzImage compressed zlilo bzlilo \
126 zdisk bzdisk fdimage fdimage144 fdimage288
install kernel_install
130 # KBUILD_IMAGE specify target image being built
131 KBUILD_IMAGE
:= $(boot
)/bzImage
132 zImage zlilo zdisk
: KBUILD_IMAGE
:= arch
/i386
/boot
/zImage
134 zImage bzImage
: vmlinux
135 $(Q
)$(MAKE
) $(build
)=$(boot
) $(KBUILD_IMAGE
)
139 zlilo bzlilo
: vmlinux
140 $(Q
)$(MAKE
) $(build
)=$(boot
) BOOTIMAGE
=$(KBUILD_IMAGE
) zlilo
142 zdisk bzdisk
: vmlinux
143 $(Q
)$(MAKE
) $(build
)=$(boot
) BOOTIMAGE
=$(KBUILD_IMAGE
) zdisk
145 fdimage fdimage144 fdimage288
: vmlinux
146 $(Q
)$(MAKE
) $(build
)=$(boot
) BOOTIMAGE
=$(KBUILD_IMAGE
) $@
149 install kernel_install
:
150 $(Q
)$(MAKE
) $(build
)=$(boot
) BOOTIMAGE
=$(KBUILD_IMAGE
) install
152 prepare
: include/asm-
$(ARCH
)/asm_offsets.h
153 CLEAN_FILES
+= include/asm-
$(ARCH
)/asm_offsets.h
155 arch
/$(ARCH
)/kernel
/asm-offsets.s
: include/asm
include/linux
/version.h \
156 include/config
/MARKER
158 include/asm-
$(ARCH
)/asm_offsets.h
: arch
/$(ARCH
)/kernel
/asm-offsets.s
159 $(call filechk
,gen-asm-offsets
)
162 $(Q
)$(MAKE
) $(clean)=arch
/i386
/boot
165 echo
'* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)'
166 echo
' install - Install kernel using'
167 echo
' (your) ~/bin/installkernel or'
168 echo
' (distribution) /sbin/installkernel or'
169 echo
' install to $$(INSTALL_PATH) and run lilo'
170 echo
' bzdisk - Create a boot floppy in /dev/fd0'
171 echo
' fdimage - Create a boot floppy image'
174 CLEAN_FILES
+= arch
/$(ARCH
)/boot
/fdimage arch
/$(ARCH
)/boot
/mtools.conf