Makefile : contains string
Solution 1:
The findstring function is what your heart desires:
$(findstring find,in)
Searches in for an occurrence of find. If it occurs, the value is find; otherwise, the value is empty. You can use this function in a conditional to test for the presence of a specific substring in a given string. Thus, the two examples,
$(findstring a,a b c) $(findstring a,b c)
produce the values
"a"
and""
(the empty string), respectively. See Testing Flags, for a practical application offindstring
.
Something like:
ifneq (,$(findstring NT-5.1,$(VARIABLE)))
# Found
else
# Not found
endif
What is the comma here for
ifneq (,$(...
?
Parse it as ifneq(A,B)
where A is the empty string and B is $(findstring...)
. It looks odd because you don't quote strings in Makefiles.
Solution 2:
VARIABLE=NT-5.1_Can_be_any_string
ifeq ($(findstring NT-5.1,$(VARIABLE)),NT-5.1)
# Found
RESULT=found
else
# Not found
RESULT=notfound
endif
all:
@echo "RESULT=${RESULT} , output=$(findstring NT-5.1,$(VARIABLE))"
It matches the given string and returns