aboutsummaryrefslogtreecommitdiff
path: root/Makefile
blob: 03a0a8773f8058c6d1d1de7c3e1513c11ec414fc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# 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