Makefile将相似的规则组合在一起
我的makefile中有一些类似的规则:Makefile将相似的规则组合在一起,makefile,gnu-make,Makefile,Gnu Make,我的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 $@ include.env include.env.loc
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 $@
include.env
include.env.local
var/make/.env:.env | var/make
@sed的/=/?=/'$<>$@
var/make/.env.local:.env.local | var/make
@sed的/=/?=/'$<>$@
变量/品牌:
mkdir$@
有没有办法制定一个通用规则
var/make/.env*: name-matching-previous-.env* | var/make
@sed 's/=/?=/' $< > $@
var/make/.env*:名称与先前的-.env*| var/make匹配
@sed的/=/?=/'$<>$@
.env*一次只作为一个文件是的,您可以编写:
var/make/.en%:.en%| var/make
@sed的/=/?=/'$<>$@
%
与目标名称的变量部分匹配。(目标必须以en%
结尾,而不是env%
,因为%
不能匹配空字符串。)
var/make/.en%: .en% | var/make
@sed 's/=/?=/' $< > $@