У меня есть script, который сжимает мои файлы css и выводит имя файла выходного файла.
Я пытаюсь создать make файл для автоматизации процесса:
all:
@echo "Compiling CSS"
CSS_OUTPUT=$(shell php minify_css.php )
echo $(CSS_OUTPUT)
Я пытаюсь сохранить имя выходного файла в переменной CSS_OUTPUT, но я делаю что-то неправильно, поскольку весь этот make файл просто печатает:
$ make
abcdefg.css
Compiling CSS
CSS_OUTPUT=
echo
Таким образом, вывод не присваивается CSS_OUTPUT
. Кроме того, почему вывод php напечатан перед @echo "Compiling CSS"
?
Я пробовал с этим:
all:
@echo "Compiling CSS"
CSS_OUTPUT=$(shell echo php minify_css.php )
echo $(CSS_OUTPUT)
Но это только ухудшается:
$ make
Compiling CSS
CSS_OUTPUT=php minify_css.php
./minify_css.php: line 1: ?php: No such file or directory
./minify_css.php: line 3: syntax error near unexpected token `dirname'
./minify_css.php: line 3: `require_once( dirname(__FILE__) . DIRECTORY_SEPARATOR . 'maintenance.php' );'
make: *** [css] Error 2
Edit После ответа, представленного в комментариях, который предлагает использовать eval:
@echo "Compiling CSS"
$(eval CSS_OUTPUT:=$(shell php minify_css.php))
echo ${CSS_OUTPUT}
Выходы:
make: *** No targets specified and no makefile found. Stop.