]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/device-ti-proprietary-open.git/blob - jacinto6/sgx_src/eurasia_km/eurasiacon/build/linux2/defs.mk
jacinto6: sgx: update DDK version to 1.12/2701748
[android-sdk/device-ti-proprietary-open.git] / jacinto6 / sgx_src / eurasia_km / eurasiacon / build / linux2 / defs.mk
1 ########################################################################### ###
2 #@Copyright     Copyright (c) Imagination Technologies Ltd. All Rights Reserved
3 #@License       Dual MIT/GPLv2
4
5 # The contents of this file are subject to the MIT license as set out below.
6
7 # Permission is hereby granted, free of charge, to any person obtaining a copy
8 # of this software and associated documentation files (the "Software"), to deal
9 # in the Software without restriction, including without limitation the rights
10 # to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11 # copies of the Software, and to permit persons to whom the Software is
12 # furnished to do so, subject to the following conditions:
13
14 # The above copyright notice and this permission notice shall be included in
15 # all copies or substantial portions of the Software.
16
17 # Alternatively, the contents of this file may be used under the terms of
18 # the GNU General Public License Version 2 ("GPL") in which case the provisions
19 # of GPL are applicable instead of those above.
20
21 # If you wish to allow use of your version of this file only under the terms of
22 # GPL, and not to allow others to use your version of this file under the terms
23 # of the MIT license, indicate your decision by deleting the provisions above
24 # and replace them with the notice and other provisions required by GPL as set
25 # out in the file called "GPL-COPYING" included in this distribution. If you do
26 # not delete the provisions above, a recipient may use your version of this file
27 # under the terms of either the MIT license or GPL.
28
29 # This License is also included in this distribution in the file called
30 # "MIT-COPYING".
31
32 # EXCEPT AS OTHERWISE STATED IN A NEGOTIATED AGREEMENT: (A) THE SOFTWARE IS
33 # PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING
34 # BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
35 # PURPOSE AND NONINFRINGEMENT; AND (B) IN NO EVENT SHALL THE AUTHORS OR
36 # COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER
37 # IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN
38 # CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
39 ### ###########################################################################
41 define must-be-defined
42 $(if $(filter undefined,$(origin $(1))),$(error In makefile $(THIS_MAKEFILE): $$($(1)) must be defined),)
43 endef
45 define must-be-nonempty
46 $(if $(strip $($(1))),,$(error In makefile $(THIS_MAKEFILE): $$($(1)) must contain a value))
47 endef
49 define directory-must-exist
50 $(if $(wildcard $(abspath $(1)/)),,$(error Directory $(1) must exist))
51 endef
53 define one-word-only
54 $(if $(filter-out $(firstword $($(1))),$($(1))),$(error In makefile $(THIS_MAKEFILE): $$($(1)) must contain only one word),)
55 endef
57 define target-intermediates-of
58 $(addprefix $(TARGET_OUT)/intermediates/$(1)/,$(2))
59 endef
61 define host-intermediates-of
62 $(addprefix $(HOST_OUT)/intermediates/$(1)/,$(2))
63 endef
65 define module-library
66 $(patsubst lib%.so,%,$(if $($(1)_target),$($(1)_target),$(1).so))
67 endef
69 # This is done to allow module type makefiles to use $(THIS_MAKEFILE)
70 define register-module
71 INTERNAL_MAKEFILE_FOR_MODULE_$(1) := $(THIS_MAKEFILE)
72 endef
74 define process-module
75 THIS_MODULE := $(1)
76 THIS_MAKEFILE := $(INTERNAL_MAKEFILE_FOR_MODULE_$(1))
77 include $$(MAKE_TOP)/this_makefile.mk
78 $$(call must-be-nonempty,THIS_MAKEFILE)
79 $$(call must-be-nonempty,$(1)_type)
80 MODULE_HOST_BUILD := $$(if $(filter host_%,$($(1)_type)),true,)
81 include $$(MAKE_TOP)/moduledefs.mk
82 include $$(MAKE_TOP)/$$(patsubst host_%,%,$($(1)_type)).mk
83 INTERNAL_TARGETS_FOR_$(THIS_MODULE) := $(MODULE_TARGETS)
84 endef
86 # This can be used by module_type.mk files to indicate that they can't be
87 # built as host_module_type
88 define target-build-only
89 $(if $(filter true,$(MODULE_HOST_BUILD)),$(error In makefile $(THIS_MAKEFILE): Module $(THIS_MODULE) attempted to build a host $(1), which is not supported))
90 endef
92 define relative-to-top
93 $(patsubst $(TOP)/%,%,$(1))
94 endef
96 define cc-check
97 $(shell \
98         CC_CHECK=$(patsubst @%,%,$(CC_CHECK)) && \
99         $(patsubst @%,%,$(CHMOD)) +x $$CC_CHECK && \
100         $$CC_CHECK --cc "$(1)" --out "$(2)" $(3))
101 endef
103 define cc-is-64bit
104 $(call cc-check,$(1),$(OUT),--64)
105 endef
107 define cc-is-clang
108 $(call cc-check,$(patsubst @%,%,$(CC)),$(OUT),--clang)
109 endef
111 define cc-option
112 $(call cc-check,$(patsubst @%,%,$(CC)),$(OUT),$(1))
113 endef
115 define cxx-option
116 $(call cc-check,$(patsubst @%,%,$(CXX)),$(OUT),$(1))
117 endef
119 define host-cc-option
120 $(call cc-check,$(patsubst @%,%,$(HOST_CC)),$(OUT),$(1))
121 endef
123 define host-cxx-option
124 $(call cc-check,$(patsubst @%,%,$(HOST_CXX)),$(OUT),$(1))
125 endef
127 define kernel-cc-option
128 $(call cc-check,$(KERNEL_CROSS_COMPILE)gcc,$(OUT),$(1))
129 endef
131 # Turn a particular warning on, or explicitly turn it off, depending on
132 # the value of W. The "-W" or "-Wno-" part of the warning need not be
133 # specified.
134 define cc-optional-warning
135 $(call cc-option,-W$(if $(W),,no-)$(patsubst -W%,%,$(patsubst -Wno-%,%,$(1))))
136 endef
138 define host-cc-optional-warning
139 $(call host-cc-option,-W$(if $(W),,no-)$(patsubst -W%,%,$(patsubst -Wno-%,%,$(1))))
140 endef
142 define kernel-cc-optional-warning
143 $(call kernel-cc-option,-W$(if $(W),,no-)$(patsubst -W%,%,$(patsubst -Wno-%,%,$(1))))
144 endef
146 define module-info-line
147 $(if $(filter modules,$(D)),$(info $(1)),)
148 endef