188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# Copyright (C) 2008 The Android Open Source Project 388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# Licensed under the Apache License, Version 2.0 (the "License"); 588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# you may not use this file except in compliance with the License. 688b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# You may obtain a copy of the License at 788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# http://www.apache.org/licenses/LICENSE-2.0 988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 1088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# Unless required by applicable law or agreed to in writing, software 1188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# distributed under the License is distributed on an "AS IS" BASIS, 1288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# See the License for the specific language governing permissions and 1488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# limitations under the License. 1588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 1688b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 1788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 1888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# Handle various build version information. 1988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 2088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# Guarantees that the following are defined: 2188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# PLATFORM_VERSION 2288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# PLATFORM_SDK_VERSION 239bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn# PLATFORM_VERSION_CODENAME 249bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn# DEFAULT_APP_TARGET_SDK 2588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# BUILD_ID 2688b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# BUILD_NUMBER 2788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 2888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 2988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# Look for an optional file containing overrides of the defaults, 3088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# but don't cry if we don't find it. We could just use -include, but 3188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# the build.prop target also wants INTERNAL_BUILD_ID_MAKEFILE to be set 3288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# if the file exists. 3388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project# 3488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source ProjectINTERNAL_BUILD_ID_MAKEFILE := $(wildcard $(BUILD_SYSTEM)/build_id.mk) 3588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectifneq "" "$(INTERNAL_BUILD_ID_MAKEFILE)" 3688b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project include $(INTERNAL_BUILD_ID_MAKEFILE) 3788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectendif 3888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 3988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectifeq "" "$(PLATFORM_VERSION)" 4088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # This is the canonical definition of the platform version, 4188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # which is the version that we reveal to the end user. 4288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # Update this value when the platform version changes (rather 4388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # than overriding it somewhere else). Can be an arbitrary string. 440421d0b115208b50015781b09f3661b65d72e858Dianne Hackborn PLATFORM_VERSION := 5.1 4588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectendif 4688b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 4788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectifeq "" "$(PLATFORM_SDK_VERSION)" 4888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # This is the canonical definition of the SDK version, which defines 499537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackborn # the set of APIs and functionality available in the platform. It 509537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackborn # is a single integer that increases monotonically as updates to 519537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackborn # the SDK are released. It should only be incremented when the APIs for 529537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackborn # the new release are frozen (so that developers don't write apps against 539537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackborn # intermediate builds). During development, this number remains at the 549537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackborn # SDK version the branch is based on and PLATFORM_VERSION_CODENAME holds 559537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackborn # the code-name of the new development work. 564a6a7524b398cabe144ccb02372ce8420c1b9780Dianne Hackborn PLATFORM_SDK_VERSION := 22 5788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectendif 5888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 599537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackbornifeq "" "$(PLATFORM_VERSION_CODENAME)" 609537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackborn # This is the current development code-name, if the build is not a final 619537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackborn # release build. If this is a final release build, it is simply "REL". 62105df2f1d2882f6c49f0619c7c46b05d52a2e07aDianne Hackborn PLATFORM_VERSION_CODENAME := REL 636ee3c4327d706c6bb0c0875f3094ab43bf96a7fdDianne Hackborn 646ee3c4327d706c6bb0c0875f3094ab43bf96a7fdDianne Hackborn # This is all of the development codenames that are active. Should be either 656ee3c4327d706c6bb0c0875f3094ab43bf96a7fdDianne Hackborn # the same as PLATFORM_VERSION_CODENAME or a comma-separated list of additional 666ee3c4327d706c6bb0c0875f3094ab43bf96a7fdDianne Hackborn # codenames after PLATFORM_VERSION_CODENAME. 67997b896eeb49b5aca9807a58ae39b14436ab6e98Dianne Hackborn PLATFORM_VERSION_ALL_CODENAMES := $(PLATFORM_VERSION_CODENAME) 689537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackbornendif 699537884b0dabe81bf612c79d12c7b4bf40de10a5Dianne Hackborn 709bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackbornifeq "" "$(DEFAULT_APP_TARGET_SDK)" 719bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn # This is the default minSdkVersion and targetSdkVersion to use for 729bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn # all .apks created by the build system. It can be overridden by explicitly 739bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn # setting these in the .apk's AndroidManifest.xml. It is either the code 749bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn # name of the development build or, if this is a release build, the official 759bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn # SDK version of this release. 769bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn ifeq "REL" "$(PLATFORM_VERSION_CODENAME)" 779bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn DEFAULT_APP_TARGET_SDK := $(PLATFORM_SDK_VERSION) 789bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn else 799bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn DEFAULT_APP_TARGET_SDK := $(PLATFORM_VERSION_CODENAME) 809bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn endif 819bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackbornendif 829bd5404a9d30b82ba3d2750c0cb8cae88b33f82dDianne Hackborn 8388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectifeq "" "$(BUILD_ID)" 8488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # Used to signify special builds. E.g., branches and/or releases, 8588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # like "M5-RC7". Can be an arbitrary string, but must be a single 8688b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # word and a valid file name. 8788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # 8888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # If there is no BUILD_ID set, make it obvious. 8988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project BUILD_ID := UNKNOWN 9088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectendif 9188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project 9288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectifeq "" "$(BUILD_NUMBER)" 9388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # BUILD_NUMBER should be set to the source control value that 9488b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # represents the current state of the source code. E.g., a 9588b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # perforce changelist number or a git hash. Can be an arbitrary string 9688b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # (to allow for source control that uses something other than numbers), 9788b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # but must be a single word and a valid file name. 9888b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # 9988b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # If no BUILD_NUMBER is set, create a useful "I am an engineering build 10088b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # from this date/time" value. Make it start with a non-digit so that 10188b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project # anyone trying to parse it as an integer will probably get "0". 10288b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Project BUILD_NUMBER := eng.$(USER).$(shell date +%Y%m%d.%H%M%S) 10388b607994a148f4af5bffee163e39ce8296750c6The Android Open Source Projectendif 104