Makefile笔记之二------make的递归执行
1.make的遞歸過程指的是:
?
在Makefile中使用“make”作為一個命令來執(zhí)行本身或者其它makefile文件的過程。
?
2.遞歸的意義:
?
當(dāng)前目錄下存在一個“subdir”子目錄,在這個子目錄中有描述此目錄編譯規(guī)則的makefile文件,在執(zhí)行make時需要從上層目錄(當(dāng)前目錄)開始并完成它所有子目錄的編 ? 譯。那么在當(dāng)前目錄下可以使用這樣一個規(guī)則來實現(xiàn)對這個子目錄的編譯。
?
3.用法舉例:
?
我們有一個子目錄叫subdir,這個目錄下有個Makefile文件,來指明了這個目錄下文件的編譯規(guī)則。那么我們總控的Makefile可以這樣書寫:
??? subsystem:
??????????? cd subdir && $(MAKE)
其等價于:
??? subsystem:
??????????? $(MAKE) -C subdir
對這兩個規(guī)則的命令進(jìn)行簡單說明,規(guī)則中“$(MAKE)”是對變量“MAKE”的引用(變量“MAKE”的值指向make可執(zhí)行文件,一般為/usr/bin/make)。第一個規(guī)則命令的意思是:進(jìn)入子目錄,然后在子目錄下執(zhí)行make。第二個規(guī)則使用了make的“-C”選項,同樣是首先進(jìn)入子目錄而后再執(zhí)行make。
第二個規(guī)則的命令意思即為“cd subdir && usr/bin/make”
這兩個例子的意思都是先進(jìn)入“subdir”目錄,然后執(zhí)行make命令。
我們把這個Makefile叫做“總控Makefile”,總控Makefile的變量可以傳遞到下級的Makefile中(如果你顯示的聲明),但是不會覆蓋下層的Makefile中所定義的變量,除非指定了“-e”參數(shù)。
4.make遞歸時關(guān)于變量的傳遞
如果你要傳遞變量到下級Makefile中,那么你可以使用這樣的聲明:
??? export?;
如果你不想讓某些變量傳遞到下級Makefile中,那么你可以這樣聲明:?
??? unexport?;
如:
???
??? 示例一:
??????? export variable = value
??????? 其等價于:
??????? variable = value
??????? export variable
??????? 其等價于:
??????? export variable := value
??????? 其等價于:
??????? variable := value
??????? export variable
轉(zhuǎn)載于:https://www.cnblogs.com/echo93/p/6252316.html
總結(jié)
以上是生活随笔為你收集整理的Makefile笔记之二------make的递归执行的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 将jsp页面转化为图片或pdf(一)(q
- 下一篇: 如何静态添加toolbar到datagr