Makefile GNU中带有两个%标记的规则make
我正在尝试使用GNUMake自动化我的分析管道。我有一个脚本,它读取模式为data/sub001/sub001_input.txt的文件,并写入data/sub001/sub001_output.txt。如何为每个主题编写与此模式匹配的规则?以下是我迄今为止的尝试:Makefile GNU中带有两个%标记的规则make,makefile,gnu-make,Makefile,Gnu Make,我正在尝试使用GNUMake自动化我的分析管道。我有一个脚本,它读取模式为data/sub001/sub001_input.txt的文件,并写入data/sub001/sub001_output.txt。如何为每个主题编写与此模式匹配的规则?以下是我迄今为止的尝试: # List of all the subjects SUBJECTS ?= sub001 sub002 sub003 /data/%/%_output.txt : process.py data/%/%_input.txt
# List of all the subjects
SUBJECTS ?= sub001 sub002 sub003
/data/%/%_output.txt : process.py data/%/%_input.txt
python process.py $*
# for each $SUBJECT in $SUBJECTS
all : /data/$(SUBJECT)/$(SUBJECT)_output.txt
@echo 'Data analysis complete!'
我希望all
目标调用:
python process.py sub001
python process.py sub002
python process.py sub003
如果相应的
sub######u input.txt
文件更改,我希望重新处理单个主题,如果process.py
文件更改,我希望所有主题都重新处理。在模式规则中不能使用多个模式字符
您可以使用一个代表整个中间部分的图案,然后按如下方式剥离所需的零件:
/data/%_output.txt : process.py data/%_input.txt
python process.py $(*F)
不能在模式规则中使用多个模式字符 您可以使用一个代表整个中间部分的图案,然后按如下方式剥离所需的零件:
/data/%_output.txt : process.py data/%_input.txt
python process.py $(*F)