パターンマッチングディレクトリの作成

パターンマッチングディレクトリの作成

私はいくつかの設定(ドットファイル)を管理するためにgnu makeとstowを使用しています。
私のリポジトリに複数のディレクトリがあります。

dotfiles/
├── Makefile
├── package1/
└── package2/

現在私のMakefileは次のようになります。

PACKAGES = package1 package2

.PHONY: all $(PACKAGES)

all: $(PACKAGES)

package1:
    stow --no-fold $@

package2:
    stow --no-fold $@

パッケージの基本ルールを定義したいので、次のようにしました。

PACKAGES = package1 package2

.PHONY: all $(PACKAGES)

all: $(PACKAGES)

%:
    stow --no-fold $@

しかし、これはうまくいきませんでした。

$ make
make: Nothing to be done for `all'.
$ make package1
make: Nothing to be done for `package1'.
$ make package2
make: Nothing to be done for `package2'.

それでは、ディレクトリの「デフォルト」ルールを定義することは可能ですか?では、どうすればよいですか?

答え1

ルールを次に置き換えることができます。

$(PACKAGES):
    stow --no-fold $@

関連情報