在给openwrt添加rp-pppoe过程中,需要在package/rp-pppoe/下定义Makefile,其中定义Build/Configure如下
define Build/Configure $(call Build/Configure/Default) endef
但是这样在执行
make package/rp-pppoe/configure V=s
会出现停止,原因是configure脚本中检测到了交叉编译,需要指定cross_compiling
OpenWRT中有三个.mk文件中定义了
define Build/Configure/Default
分别是openwrt/include/路径下的cmake.mk, scons.mk, package-default.mk, 在添加package包的时候,撰写Makefile中包含了package.mk,而package.mk中include了package-default.mk。
至于cmake.mk和scons.mk中定义define Build/Configure/Default
是什么作用,暂时还未搞清楚。
先来看package-default.mk中的定义
$(PKG_BUILD_DIR)
=build_dir/target-arm_v7-a_uClibc-0.9.33.2_eabi/rp-pppoe-3.10
按照代码来看,Build/Configure/Default中已经指定了交叉编译所需要而--target,--host,--build等参数
那这样的话,问题还是应该出在rp-pppoe/src/configure的脚本中
configure中是通过判断--build和--host参数是否相同来判断是否是交叉编译
执行到checking packing order of bit fields ... no defaults for cross_compiling
会直接退出configure
源代码如下图所示
问题应该就是怎么修改这个configure脚本,使得它能够支持cross_compiling