У меня есть список заголовочных файлов, созданных таким образом:
expand=$(1)/$(1).h
HDRS=$(foreach x, $(DIRS), $(call expand,$(x)))
Который дает список вроде a / a.h b / b.h ...
но когда я использую это в цикле for:
for i in $(HDRS) ; do \
echo $$i \
cp $$i $(some_dir) \
done
$$ я пуст. И cp не работает, имея только один аргумент.
Обычные варианты $$ i ($ i, $$ i, $ (i), $ {i}) ничего не меняют, как и обычные варианты $ (HDRS) ("$ (HDRS) ) и т. д.).
gmake повторяет цикл for как
for i in a.h b.h ; \
do \
echo $i \
cp $i somedir \
done
Что выглядит правильно.
Но неявная оболочка bash выдает ошибку "/ bin / sh -c: строка 5: синтаксическая ошибка: неожиданный конец файла"
Затем gmake завершает работу из-за неудачной команды.