You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
102 lines
2.2 KiB
102 lines
2.2 KiB
#
|
|
# Copyright (c) 2024, Arm Limited and Contributors. All rights reserved.
|
|
#
|
|
# SPDX-License-Identifier: BSD-3-Clause
|
|
#
|
|
|
|
space :=
|
|
space := $(space) $(space)
|
|
comma := ,
|
|
|
|
null := �
|
|
|
|
compat-path = $(subst $(space),$(null),$(1))
|
|
decompat-path = $(subst $(null), ,$(1))
|
|
|
|
absolute-path = $(call decompat-path,$(abspath $(call compat-path,$(1))))
|
|
real-path = $(call decompat-path,$(realpath $(call compat-path,$(1))))
|
|
|
|
file-name = $(call decompat-path,$(notdir $(call compat-path,$(1))))
|
|
directory-name = $(call decompat-path,$(dir $(call compat-path,$(1))))
|
|
|
|
escape-shell = '$(subst ','\'',$(1))'
|
|
|
|
#
|
|
# Upper-case a string value.
|
|
#
|
|
# Parameters:
|
|
#
|
|
# - $(1): The string to upper-case.
|
|
#
|
|
# Example usage:
|
|
#
|
|
# $(call uppercase,HeLlO wOrLd) # "HELLO WORLD"
|
|
#
|
|
|
|
uppercase = $(shell echo $(call escape-shell,$(1)) | tr '[:lower:]' '[:upper:]')
|
|
|
|
#
|
|
# Lower-case a string value.
|
|
#
|
|
# Parameters:
|
|
#
|
|
# - $(1): The string to lower-case.
|
|
#
|
|
# Example usage:
|
|
#
|
|
# $(call lowercase,HeLlO wOrLd) # "hello world"
|
|
#
|
|
|
|
lowercase = $(shell echo $(call escape-shell,$(1)) | tr '[:upper:]' '[:lower:]')
|
|
|
|
#
|
|
# Determine the "truthiness" of a value.
|
|
#
|
|
# Parameters:
|
|
#
|
|
# - $(1): The value to determine the truthiness of.
|
|
#
|
|
# A value is considered to be falsy if it is:
|
|
#
|
|
# - empty, or
|
|
# - equal to "0", "N", "NO", "F" or "FALSE" after upper-casing.
|
|
#
|
|
# If the value is truthy then the value is returned as-is, otherwise no value
|
|
# is returned.
|
|
#
|
|
# Example usage:
|
|
#
|
|
# truthy := y
|
|
# truthy-bool := $(call bool,$(truthy)) # "y"
|
|
#
|
|
# falsy := n
|
|
# falsy-bool := $(call bool,$(falsy)) # <empty>
|
|
#
|
|
|
|
bool = $(filter-out 0 n no f false,$(call lowercase,$(1)))
|
|
|
|
#
|
|
# Determine the "truthiness" of a value, returning 0 or 1.
|
|
#
|
|
# Parameters:
|
|
#
|
|
# - $(1): The value to determine the truthiness of.
|
|
#
|
|
# A value is considered to be falsy if it is:
|
|
#
|
|
# - empty, or
|
|
# - equal to "0", "N", "NO", "F" or "FALSE" after upper-casing.
|
|
#
|
|
# If the value is truthy then the value is returned as-is, otherwise no value
|
|
# is returned.
|
|
#
|
|
# Example usage:
|
|
#
|
|
# truthy := y
|
|
# truthy-bool := $(call bool,$(truthy)) # "1"
|
|
#
|
|
# falsy := n
|
|
# falsy-bool := $(call bool,$(falsy)) # "0"
|
|
#
|
|
|
|
bool-01 = $(if $(call bool,$(1)),1,0)
|
|
|