Make не может проанализировать со-цели (несколько целей) в make-файле

Совместные цели (то есть список разделенных пробелами слов для цели) — это хорошо известная функция Make, которая в основном позволяет make-файлу собирать «похожие» цели (т. е. они разделяют тот же рецепт и предпосылки) в единое правило.

Итак, у меня есть make-файл, например:

define targets
foo
bar
baz
endef

$(targets) ::
    @echo '$@'



Выполняя, я получаю:

/bin/sh: 1: Syntax error: Unterminated quoted string
makefile:8: recipe for target 'foo
bar
baz' failed
make: *** [foo
bar
baz] Error 2



Действительно?


person Ji Cha    schedule 27.08.2015    source источник


Ответы (1)


targets := foo bar baz

$(targets) ::
    @echo '$@'

define используется для создания переменной, содержащей символы новой строки. Это не то, что вы хотите, вам просто нужны пробелы.

person Olivier Diotte    schedule 27.08.2015