2005-04-17 02:20:36 +04:00
# This file is included by the global makefile so that you can add your own
# architecture-specific flags and dependencies.
#
# 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
# Changes for PPC by Gary Thomas
# Rewritten by Cort Dougan and Paul Mackerras
#
# This must match PAGE_OFFSET in include/asm-ppc/page.h.
KERNELLOAD := $( CONFIG_KERNEL_START)
HAS_BIARCH := $( call cc-option-yn, -m32)
i f e q ( $( HAS_BIARCH ) , y )
AS := $( AS) -a32
LD := $( LD) -m elf32ppc
CC := $( CC) -m32
e n d i f
LDFLAGS_vmlinux := -Ttext $( KERNELLOAD) -Bstatic
CPPFLAGS += -Iarch/$( ARCH)
AFLAGS += -Iarch/$( ARCH)
CFLAGS += -Iarch/$( ARCH) -msoft-float -pipe \
-ffixed-r2 -mmultiple
CPP = $( CC) -E $( CFLAGS)
CHECKFLAGS += -D__powerpc__
2005-06-26 01:54:37 +04:00
i f n d e f C O N F I G _ F S L _ B O O K E
2005-04-17 02:20:36 +04:00
CFLAGS += -mstring
e n d i f
cpu-as-$(CONFIG_PPC64BRIDGE) += -Wa,-mppc64bridge
cpu-as-$(CONFIG_4xx) += -Wa,-m405
cpu-as-$(CONFIG_6xx) += -Wa,-maltivec
cpu-as-$(CONFIG_POWER4) += -Wa,-maltivec
cpu-as-$(CONFIG_E500) += -Wa,-me500
2005-06-26 01:54:37 +04:00
cpu-as-$(CONFIG_E200) += -Wa,-me200
2005-04-17 02:20:36 +04:00
AFLAGS += $( cpu-as-y)
CFLAGS += $( cpu-as-y)
# Default to the common case.
KBUILD_DEFCONFIG := common_defconfig
head-y := arch/ppc/kernel/head.o
head-$(CONFIG_8xx) := arch/ppc/kernel/head_8xx.o
head-$(CONFIG_4xx) := arch/ppc/kernel/head_4xx.o
head-$(CONFIG_44x) := arch/ppc/kernel/head_44x.o
head-$(CONFIG_FSL_BOOKE) := arch/ppc/kernel/head_fsl_booke.o
head-$(CONFIG_6xx) += arch/ppc/kernel/idle_6xx.o
head-$(CONFIG_POWER4) += arch/ppc/kernel/idle_power4.o
2005-05-01 19:58:40 +04:00
head-$(CONFIG_PPC_FPU) += arch/ppc/kernel/fpu.o
2005-04-17 02:20:36 +04:00
core-y += arch/ppc/kernel/ arch/ppc/platforms/ \
arch/ppc/mm/ arch/ppc/lib/ arch/ppc/syslib/
core-$(CONFIG_4xx) += arch/ppc/platforms/4xx/
core-$(CONFIG_83xx) += arch/ppc/platforms/83xx/
core-$(CONFIG_85xx) += arch/ppc/platforms/85xx/
core-$(CONFIG_MATH_EMULATION) += arch/ppc/math-emu/
core-$(CONFIG_XMON) += arch/ppc/xmon/
core-$(CONFIG_APUS) += arch/ppc/amiga/
drivers-$(CONFIG_8xx) += arch/ppc/8xx_io/
drivers-$(CONFIG_4xx) += arch/ppc/4xx_io/
drivers-$(CONFIG_CPM2) += arch/ppc/8260_io/
drivers-$(CONFIG_OPROFILE) += arch/ppc/oprofile/
BOOT_TARGETS = zImage zImage.initrd znetboot znetboot.initrd vmlinux.sm
.PHONY : $( BOOT_TARGETS )
all : uImage zImage
CPPFLAGS_vmlinux.lds := -Upowerpc
# All the instructions talk about "make bzImage".
bzImage : zImage
boot := arch/$( ARCH) /boot
$(BOOT_TARGETS) : vmlinux
$( Q) $( MAKE) $( build) = $( boot) $@
uImage : vmlinux
$( Q) $( MAKE) $( build) = $( boot) /images $( boot) /images/$@
d e f i n e a r c h h e l p
@echo '* zImage - Compressed kernel image (arch/$(ARCH)/boot/images/zImage.*)'
@echo ' uImage - Create a bootable image for U-Boot / PPCBoot'
@echo ' install - Install kernel using'
@echo ' (your) ~/bin/installkernel or'
@echo ' (distribution) /sbin/installkernel or'
@echo ' install to $$(INSTALL_PATH) and run lilo'
@echo ' *_defconfig - Select default config from arch/$(ARCH)/ppc/configs'
e n d e f
archclean :
$( Q) $( MAKE) $( clean) = arch/ppc/boot
prepare : include /asm -$( ARCH ) /offsets .h checkbin
arch/$(ARCH)/kernel/asm-offsets.s : include /asm include /linux /version .h \
include/config/MARKER
include/asm-$(ARCH)/offsets.h : arch /$( ARCH ) /kernel /asm -offsets .s
$( call filechk,gen-asm-offsets)
# Use the file '.tmp_gas_check' for binutils tests, as gas won't output
# to stdout and these checks are run even on install targets.
TOUT := .tmp_gas_check
# Ensure this is binutils 2.12.1 (or 2.12.90.0.7) or later for altivec
# instructions.
# gcc-3.4 and binutils-2.14 are a fatal combination.
GCC_VERSION := $( call cc-version)
checkbin :
@if test " $( GCC_VERSION) " = "0304" ; then \
if ! /bin/echo mftb 5 | $( AS) -v -mppc -many -o $( TOUT) >/dev/null 2>& 1 ; then \
echo -n '*** ${VERSION}.${PATCHLEVEL} kernels no longer build ' ; \
echo 'correctly with gcc-3.4 and your version of binutils.' ; \
echo '*** Please upgrade your binutils or downgrade your gcc' ; \
false; \
fi ; \
fi
@if ! /bin/echo dssall | $( AS) -many -o $( TOUT) >/dev/null 2>& 1 ; then \
echo -n '*** ${VERSION}.${PATCHLEVEL} kernels no longer build ' ; \
echo 'correctly with old versions of binutils.' ; \
echo '*** Please upgrade your binutils to 2.12.1 or newer' ; \
false ; \
fi
CLEAN_FILES += include/asm-$( ARCH) /offsets.h \
arch/$( ARCH) /kernel/asm-offsets.s \
$( TOUT)