at v2.6.14 135 lines 4.4 kB view raw
1# This file is included by the global makefile so that you can add your own 2# architecture-specific flags and dependencies. Remember to do have actions 3# for "archclean" and "archdep" for cleaning up and making dependencies for 4# this architecture 5# 6# This file is subject to the terms and conditions of the GNU General Public 7# License. See the file "COPYING" in the main directory of this archive 8# for more details. 9# 10# Copyright (C) 1994 by Linus Torvalds 11# Changes for PPC by Gary Thomas 12# Rewritten by Cort Dougan and Paul Mackerras 13# Adjusted for PPC64 by Tom Gall 14# 15 16KERNELLOAD := 0xc000000000000000 17 18# Set default 32 bits cross compilers for vdso and boot wrapper 19CROSS32_COMPILE ?= 20 21CROSS32CC := $(CROSS32_COMPILE)gcc 22CROSS32AS := $(CROSS32_COMPILE)as 23CROSS32LD := $(CROSS32_COMPILE)ld 24CROSS32OBJCOPY := $(CROSS32_COMPILE)objcopy 25 26# If we have a biarch compiler, use it for 32 bits cross compile if 27# CROSS32_COMPILE wasn't explicitely defined, and add proper explicit 28# target type to target compilers 29 30HAS_BIARCH := $(call cc-option-yn, -m64) 31ifeq ($(HAS_BIARCH),y) 32ifeq ($(CROSS32_COMPILE),) 33CROSS32CC := $(CC) -m32 34CROSS32AS := $(AS) -a32 35CROSS32LD := $(LD) -m elf32ppc 36CROSS32OBJCOPY := $(OBJCOPY) 37endif 38override AS += -a64 39override LD += -m elf64ppc 40override CC += -m64 41endif 42 43export CROSS32CC CROSS32AS CROSS32LD CROSS32OBJCOPY 44 45new_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi) 46 47ifeq ($(new_nm),y) 48NM := $(NM) --synthetic 49 50endif 51 52CHECKFLAGS += -m64 -D__powerpc__ -D__powerpc64__ 53 54LDFLAGS := -m elf64ppc 55LDFLAGS_vmlinux := -Bstatic -e $(KERNELLOAD) -Ttext $(KERNELLOAD) 56CFLAGS += -msoft-float -pipe -mminimal-toc -mtraceback=none \ 57 -mcall-aixdesc 58# Temporary hack until we have migrated to asm-powerpc 59CPPFLAGS += -Iarch/$(ARCH)/include 60 61GCC_VERSION := $(call cc-version) 62GCC_BROKEN_VEC := $(shell if [ $(GCC_VERSION) -lt 0400 ] ; then echo "y"; fi ;) 63 64ifeq ($(CONFIG_POWER4_ONLY),y) 65ifeq ($(CONFIG_ALTIVEC),y) 66ifeq ($(GCC_BROKEN_VEC),y) 67 CFLAGS += $(call cc-option,-mcpu=970) 68else 69 CFLAGS += $(call cc-option,-mcpu=power4) 70endif 71else 72 CFLAGS += $(call cc-option,-mcpu=power4) 73endif 74else 75 CFLAGS += $(call cc-option,-mtune=power4) 76endif 77 78# Enable unit-at-a-time mode when possible. It shrinks the 79# kernel considerably. 80CFLAGS += $(call cc-option,-funit-at-a-time) 81 82head-y := arch/ppc64/kernel/head.o 83 84libs-y += arch/ppc64/lib/ 85core-y += arch/ppc64/kernel/ 86core-y += arch/ppc64/mm/ 87core-$(CONFIG_XMON) += arch/ppc64/xmon/ 88drivers-$(CONFIG_OPROFILE) += arch/ppc64/oprofile/ 89 90boot := arch/ppc64/boot 91 92boottargets-$(CONFIG_PPC_PSERIES) += zImage zImage.initrd 93boottargets-$(CONFIG_PPC_PMAC) += zImage.vmode zImage.initrd.vmode 94boottargets-$(CONFIG_PPC_MAPLE) += zImage zImage.initrd 95boottargets-$(CONFIG_PPC_ISERIES) += vmlinux.sminitrd vmlinux.initrd vmlinux.sm 96boottargets-$(CONFIG_PPC_BPA) += zImage zImage.initrd 97$(boottargets-y): vmlinux 98 $(Q)$(MAKE) $(build)=$(boot) $(boot)/$@ 99 100bootimage-$(CONFIG_PPC_PSERIES) := $(boot)/zImage 101bootimage-$(CONFIG_PPC_PMAC) := vmlinux 102bootimage-$(CONFIG_PPC_MAPLE) := $(boot)/zImage 103bootimage-$(CONFIG_PPC_BPA) := zImage 104bootimage-$(CONFIG_PPC_ISERIES) := vmlinux 105BOOTIMAGE := $(bootimage-y) 106install: vmlinux 107 $(Q)$(MAKE) $(build)=$(boot) BOOTIMAGE=$(BOOTIMAGE) $@ 108 109defaultimage-$(CONFIG_PPC_PSERIES) := zImage 110defaultimage-$(CONFIG_PPC_PMAC) := zImage.vmode 111defaultimage-$(CONFIG_PPC_MAPLE) := zImage 112defaultimage-$(CONFIG_PPC_ISERIES) := vmlinux 113KBUILD_IMAGE := $(defaultimage-y) 114all: $(KBUILD_IMAGE) 115 116archclean: 117 $(Q)$(MAKE) $(clean)=$(boot) 118 # Temporary hack until we have migrated to asm-powerpc 119 $(Q)rm -rf arch/$(ARCH)/include 120 121 122# Temporary hack until we have migrated to asm-powerpc 123include/asm: arch/$(ARCH)/include/asm 124arch/$(ARCH)/include/asm: 125 $(Q)if [ ! -d arch/$(ARCH)/include ]; then mkdir -p arch/$(ARCH)/include; fi 126 $(Q)ln -fsn $(srctree)/include/asm-powerpc arch/$(ARCH)/include/asm 127 128define archhelp 129 echo ' zImage.vmode - Compressed kernel image (arch/$(ARCH)/boot/zImage.vmode)' 130 echo ' zImage.initrd.vmode - Compressed kernel image with initrd attached,' 131 echo ' sourced from arch/$(ARCH)/boot/ramdisk.image.gz' 132 echo ' (arch/$(ARCH)/boot/zImage.initrd.vmode)' 133 echo ' zImage - zImage for pSeries machines' 134 echo ' zImage.initrd - zImage with initrd for pSeries machines' 135endef