私はいくつかの設定(ドットファイル)を管理するために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 $@