3

私は GNU Make を使用して、静的な html ドキュメントの 3 つの異なるエディションを作成しています。

CSS プリプロセッサとして Less を使用します。

私のディレクトリ構造は次のようになります。

Makefile
160x600/style.less
300x250/style.less
728x90/style.less

これは私の Makefile です:

LESSC=lessc -x # use -x for debugging

.PHONY: all clean

all: 160x600 300x250 728x90

%.css: %.less
    $(LESSC) $< > $@

160x600: 160x600/style.css
300x250: 300x250/style.css
728x90: 728x90/style.css

clean:
    rm -f 160x600/*.css
    rm -f 300x250/*.css
    rm -f 728x90/*.css

このようにして、 make 160x600style.less から style.css を構築するために使用できます。

ただし、各ディレクトリのターゲット ルールを明示的に一覧表示する必要はありません。代わりに、3 つのディレクトリ固有のルールの代わりに、このルールを追加してみました。

%: %/style.css

しかし、それはうまくいきません。その例から、私の目標が何であるかは明らかだと思います。all:ルールにディレクトリ名をリストするだけでよいように、任意のディレクトリをターゲットとして受け入れる方法はありますか?

4

1 に答える 1

3

静的パターン ルールを使用します。

res_dirs = 160x600 300x250 728x90

$(res_dirs): %: %/style.css
于 2013-01-18T14:23:38.483 に答える