2005-04-16 15:20:36 -07:00
#
# i386/Makefile
#
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies. Remember to do have actions
# for "archclean" cleaning up for this architecture.
#
# This file is subject to the terms and conditions of the GNU General Public
# License. See the file "COPYING" in the main directory of this archive
# for more details.
#
# Copyright (C) 1994 by Linus Torvalds
#
# 19990713 Artur Skawina <skawina@geocities.com>
# Added '-march' and '-mpreferred-stack-boundary' support
#
2005-05-05 16:16:17 -07:00
# 20050320 Kianusch Sayah Karadji <kianusch@sk-tech.net>
2005-04-16 15:20:36 -07:00
# Added support for GEODE CPU
2005-06-23 00:08:09 -07:00
HAS_BIARCH := $( call cc-option-yn, -m32)
i f e q ( $( HAS_BIARCH ) , y )
AS := $( AS) --32
LD := $( LD) -m elf_i386
CC := $( CC) -m32
e n d i f
2005-04-16 15:20:36 -07:00
LDFLAGS := -m elf_i386
OBJCOPYFLAGS := -O binary -R .note -R .comment -S
LDFLAGS_vmlinux :=
CHECKFLAGS += -D__i386__
CFLAGS += -pipe -msoft-float
# prevent gcc from keeping the stack 16 byte aligned
CFLAGS += $( call cc-option,-mpreferred-stack-boundary= 2)
align := $( cc-option-align)
cflags-$(CONFIG_M386) += -march= i386
cflags-$(CONFIG_M486) += -march= i486
cflags-$(CONFIG_M586) += -march= i586
cflags-$(CONFIG_M586TSC) += -march= i586
cflags-$(CONFIG_M586MMX) += $( call cc-option,-march= pentium-mmx,-march= i586)
cflags-$(CONFIG_M686) += -march= i686
cflags-$(CONFIG_MPENTIUMII) += -march= i686 $( call cc-option,-mtune= pentium2)
cflags-$(CONFIG_MPENTIUMIII) += -march= i686 $( call cc-option,-mtune= pentium3)
cflags-$(CONFIG_MPENTIUMM) += -march= i686 $( call cc-option,-mtune= pentium3)
cflags-$(CONFIG_MPENTIUM4) += -march= i686 $( call cc-option,-mtune= pentium4)
cflags-$(CONFIG_MK6) += -march= k6
# Please note, that patches that add -march=athlon-xp and friends are pointless.
# They make zero difference whatsosever to performance at this time.
cflags-$(CONFIG_MK7) += $( call cc-option,-march= athlon,-march= i686 $( align) -functions= 4)
cflags-$(CONFIG_MK8) += $( call cc-option,-march= k8,$( call cc-option,-march= athlon,-march= i686 $( align) -functions= 4) )
cflags-$(CONFIG_MCRUSOE) += -march= i686 $( align) -functions= 0 $( align) -jumps= 0 $( align) -loops= 0
cflags-$(CONFIG_MEFFICEON) += -march= i686 $( call cc-option,-mtune= pentium3) $( align) -functions= 0 $( align) -jumps= 0 $( align) -loops= 0
cflags-$(CONFIG_MWINCHIPC6) += $( call cc-option,-march= winchip-c6,-march= i586)
cflags-$(CONFIG_MWINCHIP2) += $( call cc-option,-march= winchip2,-march= i586)
cflags-$(CONFIG_MWINCHIP3D) += $( call cc-option,-march= winchip2,-march= i586)
cflags-$(CONFIG_MCYRIXIII) += $( call cc-option,-march= c3,-march= i486) $( align) -functions= 0 $( align) -jumps= 0 $( align) -loops= 0
cflags-$(CONFIG_MVIAC3_2) += $( call cc-option,-march= c3-2,-march= i686)
# AMD Elan support
cflags-$(CONFIG_X86_ELAN) += -march= i486
2005-05-05 16:16:17 -07:00
# Geode GX1 support
cflags-$(CONFIG_MGEODEGX1) += $( call cc-option,-march= pentium-mmx,-march= i486)
2005-04-16 15:20:36 -07:00
# -mregparm=3 works ok on gcc-3.0 and later
#
GCC_VERSION := $( call cc-version)
cflags-$(CONFIG_REGPARM) += $( shell if [ $( GCC_VERSION) -ge 0300 ] ; then echo "-mregparm=3" ; fi ; )
# Disable unit-at-a-time mode, it makes gcc use a lot more stack
# due to the lack of sharing of stacklots.
CFLAGS += $( call cc-option,-fno-unit-at-a-time)
CFLAGS += $( cflags-y)
# Default subarch .c files
mcore-y := mach-default
# Voyager subarch support
mflags-$(CONFIG_X86_VOYAGER) := -Iinclude/asm-i386/mach-voyager
mcore-$(CONFIG_X86_VOYAGER) := mach-voyager
# VISWS subarch support
mflags-$(CONFIG_X86_VISWS) := -Iinclude/asm-i386/mach-visws
mcore-$(CONFIG_X86_VISWS) := mach-visws
# NUMAQ subarch support
mflags-$(CONFIG_X86_NUMAQ) := -Iinclude/asm-i386/mach-numaq
mcore-$(CONFIG_X86_NUMAQ) := mach-default
# BIGSMP subarch support
mflags-$(CONFIG_X86_BIGSMP) := -Iinclude/asm-i386/mach-bigsmp
mcore-$(CONFIG_X86_BIGSMP) := mach-default
#Summit subarch support
mflags-$(CONFIG_X86_SUMMIT) := -Iinclude/asm-i386/mach-summit
mcore-$(CONFIG_X86_SUMMIT) := mach-default
# generic subarchitecture
mflags-$(CONFIG_X86_GENERICARCH) := -Iinclude/asm-i386/mach-generic
mcore-$(CONFIG_X86_GENERICARCH) := mach-default
core-$(CONFIG_X86_GENERICARCH) += arch/i386/mach-generic/
# ES7000 subarch support
mflags-$(CONFIG_X86_ES7000) := -Iinclude/asm-i386/mach-es7000
mcore-$(CONFIG_X86_ES7000) := mach-default
core-$(CONFIG_X86_ES7000) := arch/i386/mach-es7000/
# default subarch .h files
mflags-y += -Iinclude/asm-i386/mach-default
head-y := arch/i386/kernel/head.o arch/i386/kernel/init_task.o
libs-y += arch/i386/lib/
core-y += arch/i386/kernel/ \
arch/i386/mm/ \
arch/i386/$( mcore-y) / \
arch/i386/crypto/
drivers-$(CONFIG_MATH_EMULATION) += arch/i386/math-emu/
drivers-$(CONFIG_PCI) += arch/i386/pci/
# must be linked after kernel/
drivers-$(CONFIG_OPROFILE) += arch/i386/oprofile/
drivers-$(CONFIG_PM) += arch/i386/power/
CFLAGS += $( mflags-y)
AFLAGS += $( mflags-y)
boot := arch/i386/boot
.PHONY : zImage bzImage compressed zlilo bzlilo \
2005-04-30 16:51:42 -07:00
zdisk bzdisk fdimage fdimage144 fdimage288 install kernel_install
2005-04-16 15:20:36 -07:00
all : bzImage
# KBUILD_IMAGE specify target image being built
KBUILD_IMAGE := $( boot) /bzImage
zImage zlilo zdisk : KBUILD_IMAGE := arch /i 386/boot /zImage
zImage bzImage : vmlinux
$( Q) $( MAKE) $( build) = $( boot) $( KBUILD_IMAGE)
compressed : zImage
zlilo bzlilo : vmlinux
$( Q) $( MAKE) $( build) = $( boot) BOOTIMAGE = $( KBUILD_IMAGE) zlilo
zdisk bzdisk : vmlinux
$( Q) $( MAKE) $( build) = $( boot) BOOTIMAGE = $( KBUILD_IMAGE) zdisk
fdimage fdimage144 fdimage288 : vmlinux
$( Q) $( MAKE) $( build) = $( boot) BOOTIMAGE = $( KBUILD_IMAGE) $@
2005-04-30 16:51:42 -07:00
install : vmlinux
install kernel_install :
$( Q) $( MAKE) $( build) = $( boot) BOOTIMAGE = $( KBUILD_IMAGE) install
2005-04-16 15:20:36 -07:00
prepare : include /asm -$( ARCH ) /asm_offsets .h
CLEAN_FILES += include/asm-$( ARCH) /asm_offsets.h
arch/$(ARCH)/kernel/asm-offsets.s : include /asm include /linux /version .h \
include/config/MARKER
include/asm-$(ARCH)/asm_offsets.h : arch /$( ARCH ) /kernel /asm -offsets .s
$( call filechk,gen-asm-offsets)
archclean :
$( Q) $( MAKE) $( clean) = arch/i386/boot
d e f i n e a r c h h e l p
echo '* bzImage - Compressed kernel image (arch/$(ARCH)/boot/bzImage)'
echo ' install - Install kernel using'
echo ' (your) ~/bin/installkernel or'
echo ' (distribution) /sbin/installkernel or'
echo ' install to $$(INSTALL_PATH) and run lilo'
echo ' bzdisk - Create a boot floppy in /dev/fd0'
echo ' fdimage - Create a boot floppy image'
e n d e f
CLEAN_FILES += arch/$( ARCH) /boot/fdimage arch/$( ARCH) /boot/mtools.conf