Bash может привести к перестановкам (cartesian product):Makefile перестановка
$ echo {1,2}{a,b}
1a 1b 2a 2b
Я хотел бы сделать что-то подобное с Makefile. Вот пример Makefile:
all: 1a 1b 2a 2b
Я хотел бы что-то подобное, если это возможно:
NOV = 1 2
OSC = a b
all: $(NOV)$(OSC)
Однако, когда я использую пример, как, что он просто создает «1 2а б» вместо комбинирования их. Это возможно?
Марка не работает без оболочки. Каждая строка рецепта в файле Makefile представляет собой синтаксис оболочки, для которого запускается отдельный процесс оболочки, так что вы не можете выполнить 'cd' в одной строке и быть в этом каталоге в следующей строке. Таким образом, в принципе, это спорный вопрос. Конкретный аспект этого, который не является «чистым», заключается в том, что используется представление данных с разделителями-запятыми, которое не играет хорошо как список «Список слов». – Kaz
Однако конечная переменная 'EXP' делает, по крайней мере, то, что она стоит. Я помещал foreach в один и тот же Makefile. Сравнение бок о бок. :) – Kaz