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_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 24LOCAL_LICENSE_CONDITIONS := notice 25LOCAL_MODULE_CLASS := FAKE 26LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/$(OSRELEASED_DIRECTORY) 27include $(BUILD_SYSTEM)/base_rules.mk 28 29$(LOCAL_BUILT_MODULE): 30 $(hide) mkdir -p $(dir $@) 31 echo $(BRILLO_PRODUCT_ID) > $@ 32 $(hide) mkdir -p $(TARGET_OUT_ETC)/$(OSRELEASED_DIRECTORY) 33 ln -sf /oem/$(OSRELEASED_DIRECTORY)/product_id $(TARGET_OUT_ETC)/$(OSRELEASED_DIRECTORY) 34 35include $(CLEAR_VARS) 36LOCAL_MODULE := system_id 37LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 38LOCAL_LICENSE_CONDITIONS := notice 39LOCAL_MODULE_CLASS := ETC 40LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/$(OSRELEASED_DIRECTORY) 41include $(BUILD_SYSTEM)/base_rules.mk 42 43$(LOCAL_BUILT_MODULE): 44 $(hide) mkdir -p $(dir $@) 45 echo $(BRILLO_SYSTEM_ID) > $@ 46 47 48include $(CLEAR_VARS) 49LOCAL_MODULE := product_version 50LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 51LOCAL_LICENSE_CONDITIONS := notice 52LOCAL_MODULE_CLASS := FAKE 53LOCAL_MODULE_PATH := $(TARGET_OUT_OEM)/$(OSRELEASED_DIRECTORY) 54include $(BUILD_SYSTEM)/base_rules.mk 55 56# The version is set to 0.0.0.0 if the user did not set the actual version. 57# This allows us to have a valid version number while being easy to filter. 58BRILLO_PRODUCT_VERSION ?= "0.0.0.0" 59ifeq ($(shell echo $(BRILLO_PRODUCT_VERSION) | grep -E '^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$$'),) 60$(error Invalid BRILLO_PRODUCT_VERSION "$(BRILLO_PRODUCT_VERSION)", must be \ 61 four numbers separated by dots. Example: "1.2.0.0") 62endif 63 64$(LOCAL_BUILT_MODULE): 65 $(hide) mkdir -p $(dir $@) 66 echo $(BRILLO_PRODUCT_VERSION) > $@ 67 $(hide) mkdir -p $(TARGET_OUT_ETC)/$(OSRELEASED_DIRECTORY) 68 ln -sf /oem/$(OSRELEASED_DIRECTORY)/product_version $(TARGET_OUT_ETC)/$(OSRELEASED_DIRECTORY) 69 70 71include $(CLEAR_VARS) 72LOCAL_MODULE := system_version 73LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 74LOCAL_LICENSE_CONDITIONS := notice 75LOCAL_MODULE_CLASS := ETC 76LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/$(OSRELEASED_DIRECTORY) 77include $(BUILD_SYSTEM)/base_rules.mk 78 79# The version is set to 0.0.0 if the user did not set the actual version. 80# This allows us to have a valid version number while being easy to filter. 81BRILLO_SYSTEM_VERSION ?= "0.0.0" 82ifeq ($(shell echo $(BRILLO_SYSTEM_VERSION) | grep -E '^[0-9]+\.[0-9]+\.[0-9]+$$'),) 83$(error Invalid BRILLO_SYSTEM_VERSION "$(BRILLO_SYSTEM_VERSION)", must be \ 84 three numbers separated by dots. Example: "1.2.0") 85endif 86 87# Append BUILD_NUMBER if it is a number or a build timestamp otherwise. 88# If you don' want this to change at every build, you can define BUILD_NUMBER in 89# your product makefile and increase it manually. 90$(LOCAL_BUILT_MODULE): 91 $(hide) mkdir -p $(dir $@) 92ifeq ($(strip $(HAS_BUILD_NUMBER)),true) 93 echo $(BRILLO_SYSTEM_VERSION).$(shell cat $(BUILD_NUMBER_FILE)) > $@ 94else 95 echo $(BRILLO_SYSTEM_VERSION).$(BUILD_DATETIME_FROM_FILE) > $@ 96endif 97 98endif 99