1.獲取 系統(tǒng) 位數(shù)
巴馬網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián),巴馬網(wǎng)站設(shè)計(jì)制作,有大型網(wǎng)站制作公司豐富經(jīng)驗(yàn)。已為巴馬上千余家提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\外貿(mào)網(wǎng)站建設(shè)要多少錢(qián),請(qǐng)找那個(gè)售后服務(wù)好的巴馬做網(wǎng)站的公司定做!
ARCH =x64
ifeq ($(shell getconf LONG_BIT), 32)
ARCH = x86
endif
all:
ifeq ($(ARCH),x64)
echo "x64"
else
echo "x86"
endif
備注 這里 的 標(biāo)紅部分不能有縮進(jìn),否則 會(huì)引起、
ifeq (x64, x64)
/bin/sh: -c: line 0: syntax error near unexpected token `x64,'
/bin/sh: -c: line 0: `ifeq (x64, x64)'
原因
Makefile中,當(dāng) ifeq, else 和 endif 沒(méi)有縮進(jìn)時(shí),make會(huì)正確識(shí)別它們,將其作為分支選擇的標(biāo)識(shí)
當(dāng) ifeq, else 和 endif 有縮進(jìn)時(shí),make將它們當(dāng)做普通的shell script
參考http://blog.csdn.net/yasi_xi/article/details/39155529 感謝博主
2. make 遍歷 目錄
有時(shí)候,在開(kāi)發(fā)目錄,依賴的 動(dòng)態(tài)庫(kù) 是 放在不同的 子目錄下,防止混淆,便于管理,但發(fā)布到現(xiàn)網(wǎng)時(shí),又希望這寫(xiě)依賴庫(kù)能放到同一個(gè) 目錄lib下,
在makefile 尾部 增加 下述,可以遍歷 依賴庫(kù) 子目錄,并拷貝其 lib.so, 注,要求 所有的 依賴庫(kù)子目錄下都有 lib子目錄
DEP_DIRS := $(shell ls ./dep/)
DEP_LIB_CP:
for dir_dep in $(DEP_DIRS);\
do \
cp -f ./dep/$$dir_dep/lib/lib* ./lib/; \
done \
3.make 傳參數(shù) 和多個(gè)condition
make args=value
舉例
ifeq ($(VV),suse32) echo $(VV) else ifeq ($(VV), suse64) echo $(VV) else echo $(VV) endif endif
make VV=suse32 輸出suse32
make VV=suse64 輸出suse64
make VV=other 輸出other