短Makefile的麻烦

时间:2011-07-13 20:01:58

标签: makefile

我有这个简短的makefile。 UNAME来自uname命令,但出于示例的目的,它只是硬编码。我想检查一下,如果UNAME以字符串“MINGW32_NT”开头,那么内部代码应该执行。

UNAME := Linux  # MINGW32_NT-6.1

ifneq ( $(findstr MINGW32_NT, $(UNAME)) , "" )  
      UNAME := MINGW32
endif


info:   
      @echo Compiling for "$(UNAME)"

编辑:问题是引号和空格。 ; - )

ifneq ($(findstring MINGW32_NT, $(UNAME)),)

1 个答案:

答案 0 :(得分:1)

假设您正在使用GNU make,该函数应为findstring

此外,Makefile中的字符串和空格规则有点严格。以下作品:

UNAME := Linux  # MINGW32_NT-6.1

ifneq ($(findstring MINGW32_NT,$(UNAME)),)  
      UNAME := MINGW32
endif


info:   
      @echo Compiling for "$(UNAME)"

(请注意,我删除了ifneq测试中的所有虚假空格。)