更改openwrt编译包的默认目录src

Change default directory src for openwrt compiling package

我正在为包含多个模块的 openwrt 创建一个包。 如果结构是:

,包编译正确
package_name
. Makefile<s>.txt</s>
. files
. src
    + CMakeLists.txt
    + Module1
    + Module2
    + ...
    + Modulen

但是如果我将名称 src 更改为 modules 它会显示错误。我知道搜索 src 目录的默认结构,但是, 我应该向我的 Makefile.txt 添加什么以将默认值 src 更改为任何其他值?

谢谢。

OpenWRt 包结构can be found here。对您来说有趣的部分是 Bundle source code with OpenWrt Makefile

(恐怕 Makefile 应该只是 Makefile 而没有 txt 扩展名。如果你能 post 你的完整 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_UNPACK 如下:PKG_UNPACK=$(CP) ./modules/. $(PKG_BUILD_DIR)
  • 如下覆盖默认准备部分(或复制递归,具体取决于您的结构):

.

define Build/Prepare
        $(call Build/Prepare/Default)
        $(CP) ./modules/* $(PKG_BUILD_DIR)/
endef