makefile规则和独立目录

makefile规则和独立目录,makefile,pylint,Makefile,Pylint,我有一个gnu makefile在一堆脚本上运行pylint。它有一个很好的特性,pylint只在更新的脚本上运行。我如何修改它,使lint_报告文件进入并行目录或子目录 scripts := $(wildcard *.py) lint_reports = $(scripts:.py=.lint_report) all: $(lint_reports) $(lint_reports): %.lint_report: %.py -pylint3 $< > $@ 您可以执行

我有一个gnu makefile在一堆脚本上运行pylint。它有一个很好的特性,pylint只在更新的脚本上运行。我如何修改它,使lint_报告文件进入并行目录或子目录

scripts := $(wildcard *.py)
lint_reports = $(scripts:.py=.lint_report)

all: $(lint_reports)

$(lint_reports): %.lint_report: %.py
    -pylint3 $< > $@
您可以执行以下操作:

report_dir := otherdir
scripts := $(wildcard *.py)
lint_reports := $(addprefix $(report_dir)/,$(scripts:.py=.lint_report))    

all: $(lint_reports)

$(lint_reports): $(report_dir)/%.lint_report: %.py
    -pylint3 $< > $@

或lint_reports:=$patsubst%.py,$report_dir/%.lint_report,$scripti使用了HardcoreHenry的答案和report_dir:=../lint。工作很愉快。