如果在 makefile 裏要建立一個新目錄,如果該目錄已經存在了,則會發生 mkdir: cannot create directory `test': File exists 的錯誤,並且會停止執行。但有時我們並不希望執行被中斷,所以就要先判斷目錄是否存在再建立。可以利用 wildcard 函數來判斷目錄是否存在。

OUTPUT_PATH := test all: ifeq "$(wildcard $(OUTPUT_PATH))" "" mkdir $(OUTPUT_PATH) echo "directory not existed" else echo "directory existed" endif

另外還有一個更簡單的方法,就是直接下 make -p $(OUTPUT_PATH),-p 的用意就是當目錄存在時,不會產生錯誤。沒錯誤發生,當然執行不會被中斷囉。

-p 的作用還有另一個,就是當你要建立二層以上的新目錄時,也就是 mkdir test1/test2,test1 及 test2 都不存在時,一般都是要先 mkdir test1,才能做 mkdir test1/test。如果直接下 mkdri -p test1/test2,則會自動幫你建立 test1 及 test2。

台南小新 發表在 痞客邦 PIXNET 留言(0) 人氣()