1# 2# Copyright (C) 2015 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17# Build time settings used by system services 18# ======================================================== 19ifdef OSRELEASED_DIRECTORY 20 21include $(CLEAR_VARS) 22LOCAL_MODULE := product_id 23LOCAL_MODULE_CLASS := ETC 24LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/$(OSRELEASED_DIRECTORY) 25include $(BUILD_SYSTEM)/base_rules.mk 26 27# Attempt to populate the product id from a file in the product path. 28LOADED_BRILLO_PRODUCT_ID := $(call cfgtree-get-if-exists,brillo/product_id) 29 30# We don't really have a default value for the product id as the backend 31# interaction will not work if this is not set correctly. 32$(LOCAL_BUILT_MODULE): BRILLO_PRODUCT_ID ?= "$(LOADED_BRILLO_PRODUCT_ID)" 33$(LOCAL_BUILT_MODULE): 34 $(hide)mkdir -p $(dir $@) 35 echo $(BRILLO_PRODUCT_ID) > $@ 36 37include $(CLEAR_VARS) 38LOCAL_MODULE := product_version 39LOCAL_MODULE_CLASS := ETC 40LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/$(OSRELEASED_DIRECTORY) 41include $(BUILD_SYSTEM)/base_rules.mk 42 43 44# The version is set to 0.0.0 if the user did not set the actual version and 45# a version cannot be loaded from the product cfgtree. 46# This allows us to have a valid version number while being easy to filter. 47ifeq ($(BRILLO_PRODUCT_VERSION),) 48# Load from file first 49BRILLO_PRODUCT_VERSION := $(call cfgtree-get-if-exists,brillo/product_version) 50endif 51# If the version is still empty, override it with 0.0.0 52ifeq ($(BRILLO_PRODUCT_VERSION),) 53BRILLO_PRODUCT_VERSION := "0.0.0" 54endif 55ifeq ($(shell echo $(BRILLO_PRODUCT_VERSION) | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$$'),) 56$(error Invalid BRILLO_PRODUCT_VERSION "$(BRILLO_PRODUCT_VERSION)", must be \ 57 three numbers separated by dots. Example: "1.2.0") 58endif 59 60# Append BUILD_NUMBER if it is a number or a build timestamp otherwise. 61# We don't want to use BUILD_DATETIME_FROM_FILE as this timestamp must be 62# different at every build. 63# If you don' want this to change at every build, you can define BUILD_NUMBER in 64# your product makefile and increase it manually. 65$(LOCAL_BUILT_MODULE): 66 $(hide)mkdir -p $(dir $@) 67ifeq ($(shell echo $(BUILD_NUMBER) | grep -E '[^0-9]'),) 68 echo $(BRILLO_PRODUCT_VERSION).$(BUILD_NUMBER) > $@ 69else 70 echo $(BRILLO_PRODUCT_VERSION).$(BUILD_DATETIME) > $@ 71endif 72 73endif 74