制作模式匹配目录

制作模式匹配目录

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

相关内容