sgx_src: Update sgx_src with missing files and platform rev
[android-sdk/device-ti-proprietary-open.git] / jacinto6 / sgx_src / eurasia_km / eurasiacon / build / linux2 / common / android / platform_version.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 # Figure out the version of Android we're building against.
42 #
43 PLATFORM_VERSION := $(shell \
44         if [ -f $(TARGET_ROOT)/product/$(TARGET_DEVICE)/system/build.prop ]; then \
45                 cat $(TARGET_ROOT)/product/$(TARGET_DEVICE)/system/build.prop | \
46                         grep ^ro.build.version.release | cut -f2 -d'=' | cut -f1 -d'-'; \
47         else \
48                 echo 5.0; \
49         fi)
51 define version-starts-with
52 $(shell echo $(PLATFORM_VERSION) | grep -q ^$(1); \
53         [ "$$?" = "0" ] && echo 1 || echo 0)
54 endef
56 # ro.build.version.release contains the version number for release builds, or
57 # the version codename otherwise. In this case we need to assume that the
58 # version of Android we're building against has the features that are in the
59 # final release of that version, so we set PLATFORM_VERSION to the
60 # corresponding release number.
61 #
62 # NOTE: It's the _string_ ordering that matters here, not the version number
63 # ordering. You need to make sure that strings that are sub-strings of other
64 # checked strings appear _later_ in this list.
65 #
66 # e.g. 'JellyBeanMR' starts with 'JellyBean', but it is not JellyBean.
67 #
68 ifeq ($(call version-starts-with,JellyBeanMR1),1)
69 PLATFORM_VERSION := 4.2
70 else ifeq ($(call version-starts-with,JellyBeanMR),1)
71 PLATFORM_VERSION := 4.3
72 else ifeq ($(call version-starts-with,JellyBean),1)
73 PLATFORM_VERSION := 4.1
74 else ifeq ($(call version-starts-with,KeyLimePie),1)
75 PLATFORM_VERSION := 4.4
76 else ifeq ($(call version-starts-with,KitKat),1)
77 PLATFORM_VERSION := 4.4
78 else ifeq ($(shell echo $(PLATFORM_VERSION) | grep -qE "[A-Za-z]+"; echo $$?),0)
79 PLATFORM_VERSION := 5.0
80 endif
82 PLATFORM_VERSION_MAJ   := $(shell echo $(PLATFORM_VERSION) | cut -f1 -d'.')
83 PLATFORM_VERSION_MIN   := $(shell echo $(PLATFORM_VERSION) | cut -f2 -d'.')
84 PLATFORM_VERSION_PATCH := $(shell echo $(PLATFORM_VERSION) | cut -f3 -d'.')
86 # Not all versions have a patchlevel; fix that up here
87 #
88 ifeq ($(PLATFORM_VERSION_PATCH),)
89 PLATFORM_VERSION_PATCH := 0
90 endif
92 # Macros to help categorize support for features and API_LEVEL for tests.
93 #
94 is_at_least_jellybean := \
95         $(shell ( test $(PLATFORM_VERSION_MAJ) -gt 4 || \
96                                 ( test $(PLATFORM_VERSION_MAJ) -eq 4 && \
97                                   test $(PLATFORM_VERSION_MIN) -ge 1 ) ) && echo 1 || echo 0)
98 is_at_least_jellybean_mr1 := \
99         $(shell ( test $(PLATFORM_VERSION_MAJ) -gt 4 || \
100                                 ( test $(PLATFORM_VERSION_MAJ) -eq 4 && \
101                                   test $(PLATFORM_VERSION_MIN) -ge 2 ) ) && echo 1 || echo 0)
102 is_at_least_jellybean_mr2 := \
103         $(shell ( test $(PLATFORM_VERSION_MAJ) -gt 4 || \
104                                 ( test $(PLATFORM_VERSION_MAJ) -eq 4 && \
105                                   test $(PLATFORM_VERSION_MIN) -ge 3 ) ) && echo 1 || echo 0)
106 is_at_least_kitkat := \
107         $(shell ( test $(PLATFORM_VERSION_MAJ) -gt 4 || \
108                                 ( test $(PLATFORM_VERSION_MAJ) -eq 4 && \
109                                   test $(PLATFORM_VERSION_MIN) -ge 4 ) ) && echo 1 || echo 0)
111 # FIXME: Assume "future versions" are >=5.0, but we don't really know
112 is_future_version := \
113         $(shell ( test $(PLATFORM_VERSION_MAJ) -ge 5 ) && echo 1 || echo 0)
115 # Picking an exact match of API_LEVEL for the platform we're building
116 # against can avoid compatibility theming and affords better integration.
118 ifeq ($(is_future_version),1)
119 API_LEVEL := 20
120 else ifeq ($(is_at_least_kitkat),1)
121 API_LEVEL := 19
122 else ifeq ($(is_at_least_jellybean_mr2),1)
123 API_LEVEL := 18
124 else ifeq ($(is_at_least_jellybean_mr1),1)
125 API_LEVEL := 17
126 else ifeq ($(is_at_least_jellybean),1)
127 API_LEVEL := 16
128 else
129 $(error Must build against Android >= 4.1)
130 endif
132 # Each DDK is tested against only a single version of the platform.
133 # Warn if a different platform version is used.
135 ifeq ($(is_future_version),1)
136 $(info WARNING: Android version is newer than this DDK supports)
137 else ifneq ($(is_at_least_jellybean_mr2),1)
138 $(info WARNING: Android version is older than this DDK supports)
139 endif