今天犯了一个很大的错误:在makefile中的语法完全用shell里面的语法来等同,现在就把所犯的错误列出来,希望各位同仁不要和我一样再犯这种错误,也能够给我留个备份了,以备遗忘:
1.makefile变量的定义:在规则前定义,否则用echo 输出变量时为空。
2.makefile中的变量的引用需要用$加{}或者是()来引用这个变量,但是shell脚本中是不需要括号的。
3.test指令中的字符串比较:
(1).左右两边比较的是字符串变量,则格式为:
str1=....
str2=....
if [ ”$(str1)“ = ”$(str2)“ ];then cmd;else cmd;fi
(2).有一方为变量一方为const的字符串(用""括住的),则格式为:
str1=....
if[ "$(str1)" == "...." ];then cmd;else cmd;fi
做了将近一年的开发,到现在才弄清了这点,原来没有用到都没去想,也忘记了这些语法了,看来还是要捡起来了...