Android.mk输出功能信息仅打印单行

时间:2014-07-07 06:11:48

标签: android build android-ndk android-source android.mk

我在Android.mk中使用了一些shell命令,比如

$(shell rm -rfv $(TARGET_OUT)/xxx)

我希望看到在建设过程中输出的命令。但是,当我使用

时,输出总是单行
$(info $(shell rm -frv $(TARGET_OUT)/www))

$(info "$(shell rm -frv $(TARGET_OUT)/www)")

结果就像

removed `out/target/product/xxx/system/xxx/xxx.xxx' removed directory: `out/target/product/xxx/system/xxx/xxx'

而不是

removed `out/target/product/xxx/system/xxx/xxx.xxx' 
removed directory: `out/target/product/xxx/system/xxx/xxx'

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:2)

对于GNU Make来说,这根本不可能,因为$(shell)的输出总是以用空格替换换行符的方式扩展。顺便说一句,这是故意的。

一般来说,使用$(shell ...)命令对文件系统进行任何类型的更改都是一个坏主意,因为当GNU Make稍后尝试计算依赖关系/哪些操作时,其中一些更改将不可见跑步。在某些情况下,这可能导致不可预测的行为。