Makefile 结合相似的规则
Makefile combine similar rules
我的 makefile 中有一些类似的规则:
include .env
include .env.local
var/make/.env: .env | var/make
@sed 's/=/?=/' $< > $@
var/make/.env.local: .env.local | var/make
@sed 's/=/?=/' $< > $@
var/make:
mkdir $@
有没有办法制定通用规则?
var/make/.env*: name-matching-previous-.env* | var/make
@sed 's/=/?=/' $< > $@
.env* 一次一个文件
是的,你可以写一个pattern rule:
var/make/.en%: .en% | var/make
@sed 's/=/?=/' $< > $@
%
匹配目标名称的可变部分。 (目标必须以 en%
而不是 env%
结尾,因为 %
不能匹配空字符串。)
我的 makefile 中有一些类似的规则:
include .env
include .env.local
var/make/.env: .env | var/make
@sed 's/=/?=/' $< > $@
var/make/.env.local: .env.local | var/make
@sed 's/=/?=/' $< > $@
var/make:
mkdir $@
有没有办法制定通用规则?
var/make/.env*: name-matching-previous-.env* | var/make
@sed 's/=/?=/' $< > $@
.env* 一次一个文件
是的,你可以写一个pattern rule:
var/make/.en%: .en% | var/make
@sed 's/=/?=/' $< > $@
%
匹配目标名称的可变部分。 (目标必须以 en%
而不是 env%
结尾,因为 %
不能匹配空字符串。)