微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

开放式WRT Makefile 目标模式不包含“%”

如何解决开放式WRT Makefile 目标模式不包含“%”

我正在尝试编译 OpenWRT 包。已经编译工具链。从 here 我知道使用静态模式规则时可以,但我没有。我检查了整个文件是否有语法错误 - 一切正常(也许我错过了一些东西)。

操作系统:Ubuntu 20.04 服务器
g++:9.3.0
OpenWRT:19.07.7

wiha@osBoxes:~/source$ ./scripts/Feeds update mypackage
Updating Feed 'mypackage' from '\home\wiha\package_src\package' ...
Create index file './Feeds/mypackage.index' 
/home/wiha/source/Feeds/mypackage.tmp/info/.files-packageinfo.mk:1: *** target pattern contains no '%'.  Stop.

生成文件

include $(TOPDIR)/rules.mk

PKG_NAME:=mypackage
PKG_VERSION:=0.1
PKG_RELEASE:=1

SOURCE_DIR:=../../..

include $(INCLUDE_DIR)/package.mk

define Package/mypackage
    SECTION:=mypackage
    CATEGORY:=Network
    TITLE:=The router`s agent
    DEPENDS:=+libopenssl +libjson-c +libcurl
    URL:=https://www.example.com
endef

define Build/Prepare
    mkdir -p $(PKG_BUILD_DIR)

    # copy source files
    $(CP) -r $(SOURCE_DIR)/src $(PKG_BUILD_DIR)/src
    $(CP) $(SOURCE_DIR)/CMakeLists.txt $(PKG_BUILD_DIR)

    rm -f $(PKG_BUILD_DIR)/CMakeCache.txt
    rm -fR $(PKG_BUILD_DIR)/CMakeFiles
    rm -f $(PKG_BUILD_DIR)/Makefile
    rm -f $(PKG_BUILD_DIR)/cmake_install.cmake
    rm -f $(PKG_BUILD_DIR)/progress.make
endef

define Build/Configure
    IN_OPENWRT=1 \
    AR="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ar" \
    AS="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC) -c $(TARGET_CFLAGS)" \
    LD="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ld" \
    NM="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)nm" \
    CC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" \
    GCC="$(TOOLCHAIN_DIR)/bin/$(TARGET_CC)" \
    CXX="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)g++" \
    RANLIB="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)ranlib" \
    STRIP="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)strip" \
    OBJcopY="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)objcopy" \
    OBJDUMP="$(TOOLCHAIN_DIR)/bin/$(TARGET_CROSS)objdump" \
    TARGET_CPPFLAGS="$(TARGET_CPPFLAGS)" \
    TARGET_CFLAGS="$(TARGET_CFLAGS)" \
    TARGET_LDFLAGS="$(TARGET_LDFLAGS)" \
    cmake $(PKG_BUILD_DIR)/CMakeLists.txt
endef

define Build/Compile
    $(MAKE) -C $(PKG_BUILD_DIR)
    $(STRIP) $(PKG_BUILD_DIR)/mypackage
endef

define Package/mypackage/install
    $(CP) $(SOURCE_DIR)/files/* $(1)/

    $(INSTALL_DIR) $(1)/usr/bin
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/mypackage $(1)/usr/bin/
endef

$(eval $(call BuildPackage,mypackage))

.files-packageinfo.mk:

$(eval $(call PackageDir,Makefile:$(eval $(call BuildPackage,mypackage)),))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。