Проблема
$(,$(findstring $(dir),$(PROJ)))
Вряд ли у вас есть макрос с именем ,
или ,proj2
. Чтобы проверить ошибки такого рода, всегда запускайте make с --warn-undefined-variables
. Я получил:
$ make -f a --warn
a:3: warning: undefined variable ','
a:3: warning: undefined variable 'ifneq proj2 proj3 proj4'
a:3: warning: undefined variable ',proj2'
a:3: warning: undefined variable 'ifneq proj1 proj3 proj4'
a:3: warning: undefined variable ','
a:3: warning: undefined variable 'ifneq proj1 proj2 proj4'
a:3: warning: undefined variable ','
a:3: warning: undefined variable 'ifneq proj1 proj2 proj3'
Что вы действительно хотели
Жизнь обычно проще. Как насчет использования $(filter …)
?
$ cat a
TEMP_VARIABLE := proj1 proj2 proj3 proj4
PROJ := proj2
TEMP_VARIABLE := $(filter ${PROJ},${TEMP_VARIABLE})
$(error [${TEMP_VARIABLE}])
, дающего
$ make -f a --warn
a:4: *** [proj2]. Stop.