OpenWRT Build/Configure 学习记录

在给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中的定义


OpenWRT Build/Configure 学习记录_第1张图片

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

CONFIGURE_CMD,replace_script

OpenWRT Build/Configure 学习记录_第2张图片
CONFIGURE_VARS

OpenWRT Build/Configure 学习记录_第3张图片
CONFIGURE_ARGS

按照代码来看,Build/Configure/Default中已经指定了交叉编译所需要而--target,--host,--build等参数


OpenWRT Build/Configure 学习记录_第4张图片
configure过程

那这样的话,问题还是应该出在rp-pppoe/src/configure的脚本中


OpenWRT Build/Configure 学习记录_第5张图片
cross_compiling定义

configure中是通过判断--build和--host参数是否相同来判断是否是交叉编译


OpenWRT Build/Configure 学习记录_第6张图片
交叉编译

OpenWRT Build/Configure 学习记录_第7张图片
loading

执行到checking packing order of bit fields ... no defaults for cross_compiling
会直接退出configure
源代码如下图所示


OpenWRT Build/Configure 学习记录_第8张图片
image.png

OpenWRT Build/Configure 学习记录_第9张图片
image.png

问题应该就是怎么修改这个configure脚本,使得它能够支持cross_compiling

你可能感兴趣的:(OpenWRT Build/Configure 学习记录)