天天看點

我們也說說Android.mk(5) - 計算怎麼辦?我們也說說Android.mk(5) - 計算怎麼辦?

前面我們把makefile做為一門語言的主要特性大緻做了一個描述,它集合了目标式的模式和函數式的模式,還有大量的宏的思想,已經可以寫出相當複雜的makefile了。

但是,很不幸的是,雖然已經很複雜了,我們在實際的android.mk當中還是會發現有很多事情光用makefile的字元串替換搞不定啊,這可如何是好?

其實,這就是我們在第一講的最開始就講shell函數的原因,因為這要靠shell腳本來解決了。

我們看個實際的例子:core.mk中判斷make的版本号大于等于3.81版的腳本:

expr語句可以用來計算變量計算結果的值。

加法:+

減法:-

乘法:\*

除法:/

求餘數: %

特别注意一下乘法,要在*之前加一個\

在實際寫makefile的過程中,有時候需要修改環境變量。shell中提供了unset語句

不多說,直接上例子:

shell總算是可以做些簡單的計算了,但是對于規模到一定程度的需求,還是搞不定,怎麼辦?

在android.mk系統中,您可以看到python,ruby紛紛被引進來了,需要用的話,别客氣。完成工作是主要的,方法不重要。