在makefile中执行命令

时间:2012-04-10 23:40:11

标签: bash makefile gnu-make

我在makefile中执行以下命令。当我必须打开file2时,它会给我一个错误。换句话说,如果file1.c中有任何基于我选择的开关的变化,那么make就会在这一行完全失败。

unifdef -DSW1 -DSW2 -USW3 file1.c >file2.c

好的,unifdef是一个为我做部分预处理的工具。 file1.c输入到unifdef并输出file2.c。我的makefile简单明了,我对file1.c或file2.c没有任何依赖。 Makefile依赖项正常运行。

谢谢,

1 个答案:

答案 0 :(得分:0)

默认情况下,如果unifdef对输入文件进行任何更改,则退出状态码为1。将此视为失败。您可以通过在命令前加上 -

来告诉make忽略退出状态

unifdef的2.7版(2013年3月发布)有一个-x选项来控制退出状态逻辑,因此它可以更好地与make一起使用。您可能希望使用-x1,以便make确保unifdef确实进行了更改。见http://dotat.at/prog/unifdef/