# 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" and "archdep" for cleaning up and making dependencies 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
# Changes for PPC by Gary Thomas
# Rewritten by Cort Dougan and Paul Mackerras
#

HAS_BIARCH	:= $(call cc-option-yn, -m32)

# Set default 32 bits cross compilers for vdso and boot wrapper
CROSS32_COMPILE ?=

CROSS32CC		:= $(CROSS32_COMPILE)gcc
CROSS32AS		:= $(CROSS32_COMPILE)as
CROSS32LD		:= $(CROSS32_COMPILE)ld
CROSS32AR		:= $(CROSS32_COMPILE)ar
CROSS32OBJCOPY		:= $(CROSS32_COMPILE)objcopy

ifeq ($(HAS_BIARCH),y)
ifeq ($(CROSS32_COMPILE),)
CROSS32CC	:= $(CC) -m32
CROSS32AS	:= $(AS) -a32
CROSS32LD	:= $(LD) -m elf32ppc
CROSS32OBJCOPY	:= $(OBJCOPY)
CROSS32AR	:= GNUTARGET=elf32-powerpc $(AR)
endif
endif

export CROSS32CC CROSS32AS CROSS32LD CROSS32AR CROSS32OBJCOPY

ifeq ($(CROSS_COMPILE),)
KBUILD_DEFCONFIG := $(shell uname -m)_defconfig
else
KBUILD_DEFCONFIG := ppc64_defconfig
endif

ifeq ($(CONFIG_PPC64),y)
OLDARCH	:= ppc64

new_nm := $(shell if $(NM) --help 2>&1 | grep -- '--synthetic' > /dev/null; then echo y; else echo n; fi)

ifeq ($(new_nm),y)
NM		:= $(NM) --synthetic
endif

else
OLDARCH	:= ppc
endif

# It seems there are times we use this Makefile without
# including the config file, but this replicates the old behaviour
ifeq ($(CONFIG_WORD_SIZE),)
CONFIG_WORD_SIZE := 32
endif

UTS_MACHINE := $(OLDARCH)

ifeq ($(HAS_BIARCH),y)
override AS	+= -a$(CONFIG_WORD_SIZE)
override LD	+= -m elf$(CONFIG_WORD_SIZE)ppc
override CC	+= -m$(CONFIG_WORD_SIZE)
override AR	:= GNUTARGET=elf$(CONFIG_WORD_SIZE)-powerpc $(AR)
endif

LDFLAGS_vmlinux	:= -Bstatic

CFLAGS-$(CONFIG_PPC64)	:= -mminimal-toc -mtraceback=none  -mcall-aixdesc
CFLAGS-$(CONFIG_PPC32)	:= -ffixed-r2 -mmultiple
KBUILD_CPPFLAGS	+= -Iarch/$(ARCH)
KBUILD_AFLAGS	+= -Iarch/$(ARCH)
KBUILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float -pipe ILD_CFLAGS	+= -msoft-float