Makefile教程 六 MakeFile使用函式

2021-09-30 01:25:39 字數 832 閱讀 1776

一、if函式

if函式很像gnu的make所支援的條件語句——ifeq,if函式的語法是:

$(if ,)

或是$(if ,,)

可見,if函式可以包含「else」部分,或是不含。即if函式的引數可以是兩個,也可以是三個。引數是if的表示式,如果其返回的為非空字串,那麼這個表示式就相當於返回真,於是,會被計算,否則會被計算。

而if函式的返回值是,如果為真(非空字串),那個會是整個函式的返回值,如果為假(空字串),那麼會是整個函式的返回值,此時如果沒有被定義,那麼,整個函式返回空字串。

所以,和只會有乙個被計算。

一、ifeq函式

(1)ifeq的用法

ifeq ($(變數名), 變數值 )

........

else ifeq ($(..), ..)   

.........

else  

.........  

endif

(2)ifeq並沒有像其他程式語言那樣有 邏輯或(||)  邏輯與(&&) 的符號可用。這時候需要變通一下。

邏輯與變通實現:

舉例說明:比如需要判斷兩個變數 value1 和 value2 的值都存在才執行某個動作,這需要邏輯與的判斷

c語言的邏輯:  if ( value1  &&  value2) 可以用findstring函式做如下變通實現:

#如果value1或者value2為v1或v2,則findstring 不會返回空。

ifneq ($(findstring $(value1)$(value2),  v1  v2),)

do something...

endif

(一)make之make和makefile初識

1.1 make 和makefile 1.1.1 make make 是乙個應用程式 1.1.2 makefile makefile是乙個描述檔案 1.1.3 makefile本質 makefile實際就是乙個指令碼程式,類似於shell指令碼。由於 塊中沒有make的,所以用bash來代替make...

make 與makefile的作用

在開發乙個系統時,一般是將乙個系統分成幾個模組,這樣做提高了系統的可維護性,但由於各個模組間不可避免存在關聯,所以當乙個模組改動後,其他模組也許會有所更新,當然對小系統來說,手工編譯連線是沒問題,但是如果是乙個大系統,存在很多個模組,那麼手工編譯的方法就不適用了。為此,在linux系統中,專門提供了...

make命令和makefile檔案

make命令是用於程式編譯的工具,當需要通過多個輸入檔案來生成輸出檔案時,可以利用它來完成。make命令的一些可選引數 b 無條件編譯所有目標 c dir 讀取makefile之前切換到指定的目錄dir f 告訴make命令將哪個檔案作為makefile檔案 n 讓make命令輸出將要執行的操作步驟...