openwrt makefile编写

openwrt makefile编写

0、细节

编写Makefile(测试时可建立软连接从feeds到package/feeds里)
主包一般完全编译,子包一般都是根据配置选项,来拷贝文件到安装目录

1、包名及版本号

$(PKG_NAME) 包名
$(PKG_VERSION) 版本号

openwrt会以 包名-版本号 创建文件夹解压源码并编译。

2、地址,git方式或者http方式

$(PKG_SOURCE) 包源码全名

openwrt会以该名字命名下载的源码压缩包

$(PKG_SOURCE_URL) 包源码地址

openwrt会以该地址下载源码压缩包

$(PKG_HASH) 包源码hash

openwrt会检查源码包hash与该变量对比

3、menuconfig选项,包名依赖

define Package/rhash
  SECTION:=libs
  CATEGORY:=Libraries
  TITLE:=rhash
  URL:=https://github.com/rhash/RHash
endef

定义包名
CATEGORY为menuconfig中目录名
TITLE是menuconfig中显示名
URL是包的官网地址

4、Build/Prepare

复制文件或解压文件、配置环境等

5、Build/Configure

配置:分为几种:configure、cmake、meson

1、configure

单独调用 include $(INCLUDE_DIR)/package.mk 时为此方式。
有脚本则运行脚本

define Build/Configure
        (cd $(PKG_BUILD_DIR); ./autogen.sh)
        $(call Build/Configure/Default)
endef

无脚本无configure,调用默认配置

define Build/Configure
        $(call Build/Configure/Default)
endef

有configure,需要配置

define Build/Configure
		$(call Build/Configure/Default,
		‘选项’)
endef
2、cmake

调用include $(INCLUDE_DIR)/package.mk
后再include $(INCLUDE_DIR)/cmake.mk即为cmake

3、meson

暂时未研究

6、Build/Compile

编译包的配置

define Build/Compile
	$(MAKE) -C $(PKG_BUILD_DIR) \
		$(TARGET_CONFIGURE_OPTS) CFLAGS="$(TARGET_CFLAGS) -I$(LINUX_DIR)/include"
Endef

7、Build/InstallDev

openwrt会在根目录创建 tmp/stage- 文件夹。
安装时,调用该过程,执行命令把相应文件夹创建、文件拷贝。
然后将该文件夹的内容复制到 staging_dir/targetXXX/usr文件夹中。
依赖该库的其他包会在这里检查依赖。

define Build/InstallDev
		$(INSTALL_DIR) $(1)/usr/{lib/pkgconfig,include/}
		$(CP) \
				$(PKG_INSTALL_DIR)/usr/lib/*.{so*,la} \
				$(1)/usr/lib/
		$(INSTALL_DATA) \
				$(PKG_INSTALL_DIR)/usr/lib/pkgconfig/* \
				$(1)/usr/lib/pkgconfig/
endef

8、Package/<>/install

安装所用

define Package/libdrm-armada/install
        $(INSTALL_DIR) $(1)/usr/lib/
        $(CP) \
                $(PKG_INSTALL_DIR)/usr/lib/*.so* \
                $(1)/usr/lib/
endef

9、$(eval $(call BuildPackage,pwrtray))

调用包构建命令

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值