linux-imx/arch/ppc/Makefile

4.6 KiB

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) ifeq ($(HAS_BIARCH),y) AS := $(AS) -a32 LD := $(LD) -m elf32ppc CC := $(CC) -m32 endif

LDFLAGS_vmlinux := -Ttext $(KERNELLOAD) -Bstatic

The -Iarch/$(ARCH)/include is temporary while we are merging

CPPFLAGS += -Iarch/$(ARCH) -Iarch/$(ARCH)/include AFLAGS += -Iarch/$(ARCH) CFLAGS += -Iarch/$(ARCH) -msoft-float -pipe
-ffixed-r2 -mmultiple

No AltiVec instruction when building kernel

CFLAGS += $(call cc-option, -mno-altivec)

CPP = $(CC) -E $(CFLAGS)

Temporary hack until we have migrated to asm-powerpc

LINUXINCLUDE += -Iarch/$(ARCH)/include

CHECKFLAGS += -D__powerpc__

ifndef CONFIG_FSL_BOOKE CFLAGS += -mstring endif

cpu-as-$(CONFIG_4xx) += -Wa,-m405 cpu-as-$(CONFIG_6xx) += -Wa,-maltivec cpu-as-$(CONFIG_E500) += -Wa,-me500 cpu-as-$(CONFIG_E200) += -Wa,-me200

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_PPC_FPU) += arch/powerpc/kernel/fpu.o

core-y += arch/ppc/kernel/ arch/powerpc/kernel/
arch/ppc/platforms/
arch/ppc/mm/ arch/ppc/lib/
arch/ppc/syslib/ arch/powerpc/sysdev/
arch/powerpc/lib/ 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/powerpc/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/powerpc/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/$@

define archhelp @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' endef

archclean: $(Q)$(MAKE) $(clean)=arch/ppc/boot # Temporary hack until we have migrated to asm-powerpc $(Q)rm -rf arch/$(ARCH)/include

archprepare: checkbin

Temporary hack until we have migrated to asm-powerpc

include/asm: arch/$(ARCH)/include/asm arch/$(ARCH)/include/asm: $(Q)if [ ! -d arch/$(ARCH)/include ]; then mkdir -p arch/$(ARCH)/include; fi $(Q)ln -fsn $(srctree)/include/asm-powerpc arch/$(ARCH)/include/asm

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.

checkbin: @if test "$(call cc-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 += $(TOUT)