我正在使用 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 $@