处理Windows上的MAKEFILE_LIST空间

时间:2013-10-03 07:26:13

标签: windows makefile

我想以跨平台的方式获取makefile列表。

但是在Windows上,MAKEFILE_LIST不支持空间(不受保护):

$(warning MAKEFILE_LIST=$(MAKEFILE_LIST))

给出以下结果(因为Makefile包含在另一个中):

MAKEFILE_LIST= Makefile C:/Program Files/MyApp/Makefile.include

make字符串操作的功能不足以处理它,并且获取顶级Makefile的常规方法不起作用:

THIS_MAKEFILE := $(lastword $(MAKEFILE_LIST))

显然会返回此损坏的结果(因为 lastword 基于空格):

THIS_MAKEFILE=Files/MyApp/Makefile.include

任何解决方案都要干净利落(意味着使用make函数或系统命令调用)?

1 个答案:

答案 0 :(得分:0)

基本答案是make不支持带有空格的文件名。如果你愿意做很多额外的工作,一些非常有限的使用可以在一些非常有限的情况下成功。 MAKEFILE_LIST不是那些有限的情况之一。

最简单的方法是将包含空格的路径名视为不受支持。只是不要这样做。