斜杠后允许空格继续一行(在GNU make中)

时间:2016-06-30 17:00:55

标签: makefile gnu-make

我正在编写一个Python脚本,其中我需要手动解析target: pre1 pre2 . . .行,并且我可能有多行预先设定的目标。

编写良好的makefile是否可以在 \之后 <{1}}(和\在同一行)?

1 个答案:

答案 0 :(得分:2)

From GNU make documentation

  

因此,您可以通过在语句中间添加换行符来格式化makefile以提高可读性:通过使用反斜杠()字符转义内部换行符来执行此操作。
  [...]
  在配方行之外,反斜杠/换行符将转换为单个空格字符。完成后,反斜杠/换行符周围的所有空格都会压缩到一个空格中:这包括反斜杠前面的所有空格,反斜杠/换行符后行开头的所有空格以及任何连续的反斜杠/换行符组合。

所以,不,如果你的意图是继续行,你不能在反斜杠和换行符之间有任何空格,因为反斜杠会逃避空格,而不是换行符。

newline escape handling is different in recipes

可能会引起人们的兴趣
  

但是,与在makefile中的其他位置处理它们的方式相反(请参阅拆分长行),反斜杠/换行符对不会从配方中删除。反斜杠和换行符都会被保留并传递给shell。 如何解释反斜杠/换行符取决于你的shell