在給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



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

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

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


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


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