【发布时间】:2012-09-28 07:03:42
【问题描述】:
我要定义一个shell函数
#!/bin/sh
test ()
{
do_some_complicated_tests $1 $2;
if something; then
build_thisway $1 $2;
else
build_otherway $1 $2;
fi
}
以这样一种方式,我可以在我的 Makefile 的每个规则中使用它,例如:
foo: bar
test foo baz
明确地说,我希望 shell 函数成为 Makefile 的一部分。最优雅的方法是什么?如果您可以在不递归调用 make 的情况下做到这一点,则可以加分。
背景:
我的实际问题是make -n 产生了一个非常长且不可读的输出。每个规则都使用几乎相同的不可读的 shell 命令序列,并且规则很多。上述解决方案将使make -n 的输出更有用。
【问题讨论】:
-
我做了@JonathanLeffler 说做不到的事情?至少在一个月内,我会对自己感到非常满意。
-
为什么不把代码放到一个shell脚本中然后调用呢?
标签: shell makefile gnu-make sh