小编Hol*_*ger的帖子

如何在Makefile中定义全局shell函数?

我想定义一个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更有用.

shell makefile sh gnu-make

17
推荐指数
6
解决办法
7241
查看次数

标签 统计

gnu-make ×1

makefile ×1

sh ×1

shell ×1