OpenWRT Build/Configure 學(xué)習(xí)記錄

在給openwrt添加rp-pppoe過(guò)程中,需要在package/rp-pppoe/下定義Makefile,其中定義Build/Configure如下
define Build/Configure $(call Build/Configure/Default) endef
但是這樣在執(zhí)行
make package/rp-pppoe/configure V=s
會(huì)出現(xiàn)停止,原因是configure腳本中檢測(cè)到了交叉編譯,需要指定cross_compiling

OpenWRT中有三個(gè).mk文件中定義了
define Build/Configure/Default
分別是openwrt/include/路徑下的cmake.mk, scons.mk, package-default.mk, 在添加package包的時(shí)候,撰寫(xiě)Makefile中包含了package.mk,而package.mk中include了package-default.mk。
至于cmake.mk和scons.mk中定義define Build/Configure/Default是什么作用,暫時(shí)還未搞清楚。

先來(lái)看package-default.mk中的定義


$(PKG_BUILD_DIR)=build_dir/target-arm_v7-a_uClibc-0.9.33.2_eabi/rp-pppoe-3.10

CONFIGURE_CMD,replace_script

CONFIGURE_VARS

CONFIGURE_ARGS

按照代碼來(lái)看,Build/Configure/Default中已經(jīng)指定了交叉編譯所需要而--target,--host,--build等參數(shù)


configure過(guò)程

那這樣的話,問(wèn)題還是應(yīng)該出在rp-pppoe/src/configure的腳本中


cross_compiling定義

configure中是通過(guò)判斷--build和--host參數(shù)是否相同來(lái)判斷是否是交叉編譯


交叉編譯

loading

執(zhí)行到checking packing order of bit fields ... no defaults for cross_compiling
會(huì)直接退出configure
源代碼如下圖所示


image.png

image.png

問(wèn)題應(yīng)該就是怎么修改這個(gè)configure腳本,使得它能夠支持cross_compiling

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容