Makefile 更改openwrt编译包的默认目录src
我正在为openwrt创建一个包含几个模块的包。 如果结构是:Makefile 更改openwrt编译包的默认目录src,makefile,package,openwrt,Makefile,Package,Openwrt,我正在为openwrt创建一个包含几个模块的包。 如果结构是: package_name . Makefile<s>.txt</s> . files . src + CMakeLists.txt + Module1 + Module2 + ... + Modulen package\u名称 . Makefile.txt . 文件夹 . src +CMakeLists.txt +模块1 +模块2 + ... +模块化 但是如果我通
package_name
. Makefile<s>.txt</s>
. files
. src
+ CMakeLists.txt
+ Module1
+ Module2
+ ...
+ Modulen
package\u名称
. Makefile.txt
. 文件夹
. src
+CMakeLists.txt
+模块1
+模块2
+ ...
+模块化
但是如果我通过modules更改名称src,则会显示错误。我知道搜索src目录的默认结构,但是,
我应该向Makefile.txt添加什么来将默认值src更改为任何其他值
谢谢。OpenWRt包结构。您的交互测试部分是
将源代码与OpenWrt Makefile捆绑在一起
(恐怕Makefile
应该是Makefile
而没有txt
扩展名。如果您可以发布完整的Makefile,这将很有帮助,但我将尝试不使用它。另外,请指出您使用的OpenWRT版本,答案可能取决于版本)
我在include/package defaults.mk
中找到了以下[OpenWRT 19.07.1]:
Build/Patch:=$(Build/Patch/Default)
ifneq ($(strip $(PKG_UNPACK)),)
define Build/Prepare/Default
$(PKG_UNPACK)
[ ! -d ./src/ ] || $(CP) ./src/. $(PKG_BUILD_DIR)
$(Build/Patch)
endef
endif
对我来说,这意味着你:
- 在Makefile中定义
,如下所示:PKG\u UNPACK
PKG\u UNPACK=$(CP)。/modules/$(PKG\U BUILD\U DIR)
- 按如下方式覆盖默认的“准备”部分(或复制递归,具体取决于您的结构):
它解决了这个问题。你是对的,Makefile没有.txt。写这个问题是个错误。我阅读了您随附的关于软件包的文档,但找不到解决方案。脚本对我来说非常密集。你选择定义“PKG_解包”还是“重写构建/准备”?我定义了PKG_解包。如果我不知道范围,我不太喜欢override这个词。但我把它作为评论写了下来。
define Build/Prepare
$(call Build/Prepare/Default)
$(CP) ./modules/* $(PKG_BUILD_DIR)/
endef