summaryrefslogtreecommitdiffstats
path: root/src/build/mkrules/passes.env.mk
blob: b7dc79423d5dfcd21aaf9a9e1e83b2eb9dfb4354 (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
# IBM_PROLOG_BEGIN_TAG
# This is an automatically generated prolog.
#
# $Source: src/build/mkrules/passes.env.mk $
#
# OpenPOWER HostBoot Project
#
# Contributors Listed Below - COPYRIGHT 2013,2016
# [+] International Business Machines Corp.
#
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#     http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
# implied. See the License for the specific language governing
# permissions and limitations under the License.
#
# IBM_PROLOG_END_TAG

# File: passes.env.mk
# Description:
#     Definition of the passes and their default contents.
#
# DEFAULT_PASSES are what get run when you do a 'make' or 'make all'.  The
# order of the passes in the variable define an ordering.
#
# OTHER_PASSES are special passes that get triggered by 'make NAME_PASS'.
# Sometimes these have a shortcut, like 'make name'.  The content for these
# are in their own special name.rules.mk.

DEFAULT_PASSES = GEN CODE IMAGE
OTHER_PASSES = CLEAN GCOV BEAM

## GEN_PASS
##    Create the $(GENFILES) content.
GENTARGET = $(addprefix $(GENDIR)/, $(1))
GENPLUGINTARGET = $(addprefix $(GENDIR_PLUGINS)/, $(1))

GEN_PASS_BODY += $(addprefix $(GENDIR)/, $(GENFILES))
CLEAN_TARGETS += $(addprefix $(GENDIR)/, $(GENFILES))
GEN_PASS_BODY += $(addprefix $(GENDIR_PLUGINS)/, $(GENFILES_PLUGINS))
CLEAN_TARGETS += $(addprefix $(GENDIR_PLUGINS)/, $(GENFILES_PLUGINS))

ifneq ($(strip $(GEN_PASS_BODY))$(strip $(GEN_PASS_PRE)),)
make_gendir:
	@mkdir -p $(GENDIR)
	@mkdir -p $(GENDIR_PLUGINS)
.PHONY: make_gendir
GEN_PASS_PRE += make_gendir
endif

## CODE_PASS
##    Compile the $(OBJS) and build the $(LIBS).
CODE_PASS_BODY += $(OBJECTS) $(LIBRARIES) $(EXTRA_PARTS)
ifdef BUILD_OBJECT_LIST
CODE_PASS_BODY += $(OBJECTS:.o=.list)
endif
CLEAN_TARGETS += $(OBJECTS) $(OBJECTS:.o=.o.hash) $(OBJECTS:.o=.dep) \
                 $(OBJECTS:.o=.list) $(LIBRARIES) $(EXTRA_PARTS)
ifeq ($(MAKECMDGOALS),_BUILD/PASSES/CODE/BODY/ACT)
    -include $(OBJECTS:.o=.dep)
endif


## IMAGE_PASS
##    Build the $(IMGS).
IMAGE_PASS_BODY += $(IMAGES)
CLEAN_TARGETS += $(IMAGES) \
                 $(IMAGES:.bin=.bin.modinfo) $(IMAGES:.bin=_extended.bin)

## CLEAN_PASS
##    Make the repo clean again by removing all the $(CLEAN_TARGETS).
CLEAN_PASS_BODY += $(addprefix _BUILD/CLEAN/,$(wildcard $(CLEAN_TARGETS)))

.PHONY: clean
clean: CLEAN_PASS

.PHONY: clobber
clobber: clean
	rm -rf obj/modules/* obj/core/* img/* obj/genfiles/* obj/cscope/* \
               obj/beam/* obj/doxygen/*
OpenPOWER on IntegriCloud