Makefile筆記之二------make的遞歸執行

1.make的遞歸過程指的是spa

 

    在Makefile中使用「make」做爲一個命令來執行自己或者其它makefile文件的過程。遞歸

 

2.遞歸的意義:編譯

 

    當前目錄下存在一個「subdir」子目錄,在這個子目錄中有描述此目錄編譯規則的makefile文件,在執行make時須要從上層目錄(當前目錄)開始並完成它全部子目錄的編   譯。那麼在當前目錄下能夠使用這樣一個規則來實現對這個子目錄的編譯。變量

 

3.用法舉例:file

 

咱們有一個子目錄叫subdir,這個目錄下有個Makefile文件,來指明瞭這個目錄下文件的編譯規則。那麼咱們總控的Makefile能夠這樣書寫:

    subsystem:
            cd subdir && $(MAKE)

其等價於:

    subsystem:
            $(MAKE) -C subdir

對這兩個規則的命令進行簡單說明,規則中「$(MAKE)」是對變量「MAKE」的引用(變量「MAKE」的值指向make可執行文件,通常爲/usr/bin/make)。第一個規則命令的意思是:進入子目錄,而後在子目錄下執行make。第二個規則使用了make的「-C」選項,一樣是首先進入子目錄然後再執行make。

第二個規則的命令意思即爲「cd subdir && usr/bin/make」

這兩個例子的意思都是先進入「subdir」目錄,而後執行make命令。

咱們把這個Makefile叫作「總控Makefile」,總控Makefile的變量能夠傳遞到下級的Makefile中(若是你顯示的聲明),可是不會覆蓋下層的Makefile中所定義的變量,除非指定了「-e」參數。引用

4.make遞歸時關於變量的傳遞makefile


若是你要傳遞變量到下級Makefile中,那麼你能夠使用這樣的聲明:

    export ;

若是你不想讓某些變量傳遞到下級Makefile中,那麼你能夠這樣聲明: 

    unexport ;

如:
   
    示例一:

        export variable = value

        其等價於:

        variable = value
        export variable

        其等價於:

        export variable := value

        其等價於:

        variable := value
        export variabledi

相關文章
相關標籤/搜索