如何在 Makefile 中获取 `$^` 的尾部
How to get the tail of `$^` in Makefile
我在 Makefile 中有以下规则
%/collapsed_flow_profile.png: \
code/piv/plot_collapsed_flow_profiles.R \
%/experiment2/averaged_flow_profile.csv \
%/experiment3/averaged_flow_profile.csv \
%/experiment4/averaged_flow_profile.csv \
%/experiment6/averaged_flow_profile.csv \
%/experiment7/averaged_flow_profile.csv
code/piv/plot_collapsed_flow_profiles.R \
$*/collapsed_flow_profile.png \
$*/experiment2/averaged_flow_profile.csv \
$*/experiment3/averaged_flow_profile.csv \
$*/experiment4/averaged_flow_profile.csv \
$*/experiment6/averaged_flow_profile.csv \
$*/experiment7/averaged_flow_profile.csv
如您所见,我将除第一个依赖项之外的所有依赖项作为参数传递给配方中使用的代码。由于 $^
自动变量包含所有依赖项,因此可以从 $^
中删除第一个依赖项并将其作为参数传递给代码?
有 $(firstword a b c)
-> a
和 $(filter-out ...)
和 $(wordlist s,e,text)
函数用于转换文本。将它们结合起来也许可以做你想做的事。 excellent documentation 有详细信息。
PS:实验5怎么了?异常值?不符合预期? :-)
我在 Makefile 中有以下规则
%/collapsed_flow_profile.png: \
code/piv/plot_collapsed_flow_profiles.R \
%/experiment2/averaged_flow_profile.csv \
%/experiment3/averaged_flow_profile.csv \
%/experiment4/averaged_flow_profile.csv \
%/experiment6/averaged_flow_profile.csv \
%/experiment7/averaged_flow_profile.csv
code/piv/plot_collapsed_flow_profiles.R \
$*/collapsed_flow_profile.png \
$*/experiment2/averaged_flow_profile.csv \
$*/experiment3/averaged_flow_profile.csv \
$*/experiment4/averaged_flow_profile.csv \
$*/experiment6/averaged_flow_profile.csv \
$*/experiment7/averaged_flow_profile.csv
如您所见,我将除第一个依赖项之外的所有依赖项作为参数传递给配方中使用的代码。由于 $^
自动变量包含所有依赖项,因此可以从 $^
中删除第一个依赖项并将其作为参数传递给代码?
有 $(firstword a b c)
-> a
和 $(filter-out ...)
和 $(wordlist s,e,text)
函数用于转换文本。将它们结合起来也许可以做你想做的事。 excellent documentation 有详细信息。
PS:实验5怎么了?异常值?不符合预期? :-)