【发布时间】:2012-02-23 07:23:17
【问题描述】:
我有一个脚本可以压缩我的 css 文件并输出输出文件的文件名。
我正在尝试构建一个 makefile 来自动化该过程:
all:
@echo "Compiling CSS"
CSS_OUTPUT=$(shell php minify_css.php )
echo $(CSS_OUTPUT)
我正在尝试将输出文件名存储在 CSS_OUTPUT 变量中,但我做错了,因为整个 makefile 只是打印:
$ make
abcdefg.css
Compiling CSS
CSS_OUTPUT=
echo
所以输出没有分配给CSS_OUTPUT。另外,为什么在@echo "Compiling CSS"之前打印php输出?
我试过这个:
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
编辑 按照 cmets 中提供的答案,建议使用 eval:
@echo "Compiling CSS"
$(eval CSS_OUTPUT:=$(shell php minify_css.php))
echo ${CSS_OUTPUT}
输出:
make: *** No targets specified and no makefile found. Stop.
【问题讨论】:
-
他们都没有回答我的问题...
-
this one 怎么样?
-
使用 eval 会抛出这个问题:make: *** 没有指定目标,也没有找到 makefile。停止。
标签: makefile