summaryrefslogtreecommitdiffstats
path: root/tools/image/Makefile
blob: d557928ac5b6893f555acdd50b161d39a08ee957 (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
84
85
86
87
88
89
90
91
92
93
94
95
96
############################################################################

# Makefile for image tools
# works on X86 Linux hosts.

# Make targets:

# all          :
#
# utilities    : Build utility programs and procedures
#
# clean        : Removes the bin/ directory and all symbolic links
#

############################################################################


ifeq ($(CTEPATH),)
$(warning CTEPATH not defined; defaulting to awd)
CTEPATH = /afs/awd/projects/cte
endif

P9_XIP_SRCDIR = $(abspath ../../import/chips/p9/xip)
P9_XIP_BINDIR = $(P9_XIP_SRCDIR)/bin

#  Locations of required headers.
INCLUDES += -I. -I../../ -I../../utils
INCLUDES += -I ../../sbe/image/
INCLUDES += -I ../../sbe/sbefw/
INCLUDES += -I ../../sbe/hwpf/include/plat
INCLUDES += -I ../../sbe/hwpf/include
INCLUDES += -I ../../hwpf/include/plat
INCLUDES += -I ../../hwpf/include/
INCLUDES += -I ../../pk/ppe42/
INCLUDES += -I ../../pk/kernel/
INCLUDES += -I ../../pk/std/
INCLUDES += -I ../../pk/trace/
INCLUDES += -I ../../tools/ppetracepp/
INCLUDES += -I ../../import/hwpf/fapi2/include/
INCLUDES += -I ../../import/chips/p9/xip/
INCLUDES += -I ../../import/tools/imageProcs/

# Under Linux the scheme is to use a common compiler to create procedures.
# However, the common compiler can be VERY slow, so if the system compiler is
# also 4.1.2 we're using that one instead.  Also, the Linux FAPI libraries we
# link with are 32-bit only so we need to force 32-bit mode.

ifeq ($(wildcard /etc/ldap.conf), )
  GSACELL     = ausgsa
else
  GSACELL     = $(shell cat /etc/ldap.conf | grep "host " | \
        cut -d" " -f2 | cut -d. -f1)
endif

GCC-RELEASE = 4.8.2
GCC-VERSION = $(shell gcc -v 2>&1 | grep "$(GCC-RELEASE)")

ifeq ($(GCC-VERSION),)
$(error wrong compiler version. Use $(GCC-RELEASE) compiler. Try: "scl enable devtoolset-2 bash")
else
CC   = gcc
CXX  = g++
endif

UTILITIES-SOURCES = sbe_default_tool.c

UTILITIES = sbe_default_tool

#  Utility targets
UTILITIES-OBJc         = $(patsubst %.c,bin/%.o,$(UTILITIES-SOURCES))
UTILITIES-OBJECTS      += $(patsubst %.C,bin/%.o,$(UTILITIES-OBJc))
UTILITIES-DEPENDENCIES = $(patsubst %.o,%.d,$(UTILITIES-OBJECTS))
UTILITIES-EXECUTABLES  = $(patsubst %,bin/%,$(UTILITIES))


.PHONY : utilities buildBinDir
utilities: buildBinDir $(UTILITIES-EXECUTABLES)

buildBinDir:
	mkdir -p bin

# Build the P9-XIP image code
$(P9_XIP_BINDIR)/p9_xip_image.o:
	$(MAKE) -I $(P9_XIP_SRCDIR) -C $(P9_XIP_SRCDIR) -f Makefile

bin/%.o: %.c
	$(CXX) -std=c++11 $(INCLUDES) $(CXXFLAGS) -DDEBUG_SBE_XIP_IMAGE=1 -DFAPI2_NO_FFDC -c -o $@ $<

bin/sbe_default_tool: $(P9_XIP_BINDIR)/p9_xip_image.o bin/sbe_default_tool.o
	$(CXX) $(CXXFLAGS) ${INCLUDES} -o $@ $^
	ln -sf bin/sbe_default_tool sbe_default_tool

clean:
	rm -f sbe_default_tool
	rm -rf bin
	mkdir -p bin
OpenPOWER on IntegriCloud