# SPDX-License-Identifier: Apache-2.0 OR GPL-2.0-or-later
# Copyright 2012-2019 IBM Corp

#
# If you want to build in another directory copy this file there and
# fill in the following values
#

#
# Prefix of cross toolchain, if anything
# Example: CROSS= powerpc64-unknown-linux-gnu-
#
ARCH = $(shell uname -m)
ifdef CROSS_COMPILE
	CROSS ?= $(CROSS_COMPILE)
endif
ifneq ("$(ARCH)", "ppc64")
ifneq ("$(ARCH)", "ppc64le")
ifneq ($(shell command -v powerpc64-linux-gcc 2> /dev/null),)
	CROSS ?= powerpc64-linux-
else ifneq ($(shell command -v powerpc64le-linux-gcc 2> /dev/null),)
	CROSS ?= powerpc64le-linux-
else ifneq ($(shell command -v powerpc64-linux-gnu-gcc 2> /dev/null),)
	CROSS ?= powerpc64-linux-gnu-
else ifneq ($(shell command -v powerpc64le-linux-gnu-gcc 2> /dev/null),)
	CROSS ?= powerpc64le-linux-gnu-
endif
endif
endif

#
# Main debug switch
#
DEBUG ?= 0

# Run tests under valgrind?
USE_VALGRIND ?= 1

#
# Optional location of embedded linux kernel file
# This can be a raw vmlinux, stripped vmlinux or
# zImage.epapr
#
KERNEL ?=

#
# Optional build with advanced stack checking
#
STACK_CHECK ?= $(DEBUG)

#
# Experimental (unsupported) build options
#
# Little-endian does not yet build. Include it here to set ELF ABI.
LITTLE_ENDIAN ?= 0
# ELF v2 ABI is more efficient and compact
ELF_ABI_v2 ?= $(LITTLE_ENDIAN)
# Discard unreferenced code and data at link-time
DEAD_CODE_ELIMINATION ?= 0
# Try to build without FSP code
CONFIG_FSP?=1
# Try to build without POWER8 support
CONFIG_P8?=1
# Try to build without PLDM code
CONFIG_PLDM?=0

#
# Where is the source directory, must be a full path (no ~)
# Example: SRC= /home/me/skiboot
#
SRC=$(CURDIR)

#
# Where to get information about this machine (subdir name)
#
DEVSRC=hdata

#
# default config file, see include config_*.h for more specifics
#
CONFIG := config.h

include $(SRC)/Makefile.main
