我想定义一个shell函数
#!/bin/sh
test ()
{
do_some_complicated_tests $1 $2;
if something; then
build_thisway $1 $2;
else
build_otherway $1 $2;
fi
}
Run Code Online (Sandbox Code Playgroud)
以这种方式,我可以在我的Makefile的每个规则中使用它,例如:
foo: bar
test foo baz
Run Code Online (Sandbox Code Playgroud)
要清楚,我希望shell函数成为Makefile的一部分.这样做最优雅的方法是什么?如果您可以在不递归调用make的情况下执行此操作,则可获得积分.
背景:我的实际问题是make -n
产生一个非常长且不可读的输出.每个规则使用几乎相同的不可读shell命令序列,并且有许多规则.上述解决方案将使输出make -n
更有用.