Makefile affecter la sortie d'une commande à une variable

J'ai un script qui comprime mes fichiers css et sorties le nom de fichier du fichier de sortie.
Je suis en train de construire un makefile pour automatiser le processus:

all:
    @echo "Compiling CSS"
    CSS_OUTPUT=$(shell php minify_css.php )
    echo $(CSS_OUTPUT)

Je suis en train de stocker le nom du fichier de sortie dans CSS_OUTPUT variable, mais je suis en train de faire quelque chose de mal, comme tout ce makefile imprime juste:

$ make
abcdefg.css
Compiling CSS
CSS_OUTPUT=
echo 

Donc de sortie n'est pas affecté à CSS_OUTPUT. Aussi, pourquoi est sortie php imprimé avant la @echo "Compiling CSS"?

J'ai essayé avec ceci:

all:
    @echo "Compiling CSS"
    CSS_OUTPUT=$(shell echo php minify_css.php )
    echo $(CSS_OUTPUT)

Mais il ne fait que s'aggraver:

$ 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

Modifier
À la suite de la réponse dans les commentaires, ce qui suggère l'utilisation d'eval:

@echo "Compiling CSS"
$(eval CSS_OUTPUT:=$(shell php minify_css.php))
echo ${CSS_OUTPUT}

Sorties:

make: *** No targets specified and no makefile found.  Stop.
J'ai lu ceci: stackoverflow.com/questions/2019989/...
Et ceci: stackoverflow.com/questions/2373081/...
Aucun d'eux ne répond à mon problème...
Que diriez - celui-ci?
À l'aide de la fonction eval me lance ceci: make: *** Pas de cibles spécifiées et aucun makefile trouvé. Stop.

OriginalL'auteur Raúl Ferràs | 2012-01-31