2012-04-11 7 views
0

以下のコードは機能しませんが、達成したいことを説明するためのものです。どのようにすればこのコードを動作させることができますか、より良い方法があります。すべてのCSSファイルを1つのファイルにまとめたいが、BASE_CSSの下にあるすべてのファイルがそのファイルの先頭にあることを確認したい。makefileファイルを縮小します

BASE_CSS = %reset.css %reset2.css %reset3.css 
IGNORE_CSS = %main.min.css $(BASE_CSS) 

CSS_FILES = $(filter-out $(IGNORE_CSS),$(wildcard \ 
    public/css/*.css \ 
    public/css/*/*.css \ 
    public/css/*/*/*.css \ 
)) 

minify: 
    cat $(BASE_CSS) $(CSS_FILES) > public/css/main.min.css 

答えて

1

これは私がしたいと思うものを行います。

# Note the ":=". 
# If we use "=", it will run "find" every time ALL_CSS_FILES is mentioned. 
ALL_CSS_FILES := $(shell find public/css -name *.css) 

BASE_PATTERN = %reset.css %reset2.css %reset3.css 

BASE_CSS = $(filter $(BASE_PATTERN), $(ALL_CSS_FILES)) 

CSS_FILES = $(filter-out $(BASE_PATTERN) %main.min.css, $(ALL_CSS_FILES)) 

minify: 
     cat $(BASE_CSS) $(CSS_FILES) > public/css/main.min.css     

EDIT:
順序を指定するには、ちょうどこの操作を行います。

BASE_CSS = $(filter %reset.css, $(ALL_CSS_FILES)) 
BASE_CSS += $(filter %reset2.css, $(ALL_CSS_FILES)) 
BASE_CSS += $(filter %reset3.css, $(ALL_CSS_FILES)) 
+0

感謝を! reset.css、reset2.css、およびreset3.cssの順序を指定する方法はありますか? – teggy

関連する問題