我使用OpenWrt构建我的软件,以部署在客户的目标设备上。为了成功,我需要在主机系统上使用一个特殊工具。任何人都可以给我一些关于如何编写一个为主机而不是目标构建工具的软件包的提示和提示吗?
在过去几个小时内在Internet上搜索OpenWrt主机工具和主机软件包之后,我提出的最好的工具是以下软件包Makefile。但是这些命令不会被OpenWrt调用。
我错过了什么?或者我整体上走错了路?
include $(TOPDIR)/rules.mk
PKG_NAME := project-traits
PKG_VERSION := 6.0.0
PKG_SOURCE_URL := <internal git repository>
HOST_BUILD_PARALLEL := 1
HOST_CONFIGURE_PARALLEL := 1
HOST_BUILD_DIR := $(BUILD_DIR_HOST)/$(PKG_NAME)-$(PKG_VERSION)
include $(INCLUDE_DIR)/host-build.mk
include $(INCLUDE_DIR)/cmake.mk
MAKE_PATH := llvm-build
CMAKE_OPTIONS += -B$(HOST_BUILD_DIR)/$(MAKE_PATH) -H$(HOST_BUILD_DIR)/llvm && echo
define Host/Prepare
echo 'This is the generator build!'
# stripped: fetch the LLVM source code
# stripped: fetch the traits generator source code
endef
# Use Host/Compile from cmake.mk
define Host/Install
# stripped: install the build generator into the staging dir
endef
$(eval $(call HostBuild))
在要求目标包中,我已经包含
PKG_BUILD_DEPENDS += project-traits/host
为了保密并且为了将粘贴的代码简化为必需品,我删掉了一些东西或者将它们排除在外。但是你 应该得到意图。我在命令行或构建日志中看不到任何构建的输出。 OpenWrt似乎只是忽略了我的生成器工具,因此无法构建目标包。
如果它有任何不同之处:我没有构建直接的OpenWrt源文件。相反,我从客户那里获得了一个预先构建的OpenWrt SDK。但除了预先填充的设备配置文件外,我还无法弄清楚区别的是什么。
对此有任何帮助&#34;轻轻地&#34;记录的主题表示赞赏。
答案 0 :(得分:0)
Creating packages
在make menuconfig
例如。在grep -rns PKG_SOURCE_URL ./
目录下想到Linux命令openwrt-17.01.4/package/utils
,您将获得Makefile。
复制此文件以构建您自己的包。
答案 1 :(得分:0)
你有OpenWrt SDK
吗?如果是,我建议您将包Makefile存储在$ROOT_DIR/feeds/packages/utils/$package_name
中。如果没有从www.downloads.openwrt.org
下载。
完成此操作后,请在./feeds/update -i
中输入$ROOT_DIR
来更新Feed包。稍后在同一$ROOT_DIR
类型./feeds/install $package_name
中。如果一切正常,您将收到$package_name was installed
最后,你必须compile
包来获取.ipk
文件。您可以在make package/$package_name/compile
中再次键入$ROOT_DIR
来完成此操作。您可以在$ROOT_DIR/bin/...