Home | History | Annotate | Download | only in brillo_config
      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 # ========================================================
     19 ifdef OSRELEASED_DIRECTORY
     20 
     21 include $(CLEAR_VARS)
     22 LOCAL_MODULE := product_id
     23 LOCAL_MODULE_CLASS := ETC
     24 LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/$(OSRELEASED_DIRECTORY)
     25 include $(BUILD_SYSTEM)/base_rules.mk
     26 
     27 # Attempt to populate the product id from a file in the product path.
     28 LOADED_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 
     37 include $(CLEAR_VARS)
     38 LOCAL_MODULE := product_version
     39 LOCAL_MODULE_CLASS := ETC
     40 LOCAL_MODULE_PATH := $(TARGET_OUT_ETC)/$(OSRELEASED_DIRECTORY)
     41 include $(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.
     47 ifeq ($(BRILLO_PRODUCT_VERSION),)
     48 # Load from file first
     49 BRILLO_PRODUCT_VERSION := $(call cfgtree-get-if-exists,brillo/product_version)
     50 endif
     51 # If the version is still empty, override it with 0.0.0
     52 ifeq ($(BRILLO_PRODUCT_VERSION),)
     53 BRILLO_PRODUCT_VERSION := "0.0.0"
     54 endif
     55 ifeq ($(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")
     58 endif
     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 $@)
     67 ifeq ($(shell echo $(BUILD_NUMBER) | grep -E '[^0-9]'),)
     68 	echo $(BRILLO_PRODUCT_VERSION).$(BUILD_NUMBER) > $@
     69 else
     70 	echo $(BRILLO_PRODUCT_VERSION).$(BUILD_DATETIME) > $@
     71 endif
     72 
     73 endif
     74