OpenWrt集成非官方包之Makefile规则
2015-01-23 15:39
176 查看
http://blog.csdn.net/openme_openwrt/article/details/7390569
原文地址:http://www.right.com.cn/forum/thread-48530-1-1.html
其他可参考:http://www.asxzy.net/?p=228
最近看到有人问这个就写个吧
转载请注明出处
首先进入源码包根目录里的package 创建个文件夹 自己起个名字
然后进入那个文件夹 创建Makefile
注意: 一定要用linux文本编辑器创建 否则不认 或者用UltraEdit转换成unix换行符
文件内容: (方括号为需要自己修改的内容)
[cpp] view
plaincopy
include $(TOPDIR)/rules.mk
PKG_NAME:=[软件包名字 和文件夹名称一样]
PKG_VERSION:=[软件包版本 自己写个]
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=utils
CATEGORY:=[软件包在menuconfig里的位置 比如Base system]
DEPENDS:=[依赖包 两个之间通过空格分隔 前面加+为默认显示 选中该软件包自动选中依赖包 不加+为默认不显示 选中依赖包才显示]
TITLE:=[标题]
PKGARCH:=[平台 比如ar71xx 全部写all]
MAINTAINER:=[作者]
endef
define Package/$(PKG_NAME)/description
[软件包简介]
endef
define Build/Prepare
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/$(PKG_NAME)/conffiles
[升级时保留文件/备份时备份文件 一个文件一行]
endef
define Package/$(PKG_NAME)/install
$(CP) ./files/* $(1)/
[安装(编译)时执行的脚本 记得加上#!/bin/sh 没有就空着]
endef
define Package/$(PKG_NAME)/preinst
[安装前执行的脚本 记得加上#!/bin/sh 没有就空着]
endef
define Package/$(PKG_NAME)/postinst
[安装后执行的脚本 记得加上#!/bin/sh 没有就空着]
endef
Package/$(PKG_NAME)/prerm
[删除前执行的脚本 记得加上#!/bin/sh 没有就空着]
endef
Package/$(PKG_NAME)/postrm
[删除后执行的脚本 记得加上#!/bin/sh 没有就空着]
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
然后在文件夹里新建个files文件夹 把需要集成的东西一起扔进去(把files当作路由根目录 注意如果文件有冲突需要在安装前脚本里加入删除命令)
ok 这样就好了 进menuconfig选中软件包编译就行了 ipk在源码包根目录的bin/[系列]/packages里
附: 安装前/后 删除前/后的脚本里请用变量 如: $(CP) $(RM) 根目录表示为$(1)
原文地址:http://www.right.com.cn/forum/thread-48530-1-1.html
其他可参考:http://www.asxzy.net/?p=228
最近看到有人问这个就写个吧
转载请注明出处
首先进入源码包根目录里的package 创建个文件夹 自己起个名字
然后进入那个文件夹 创建Makefile
注意: 一定要用linux文本编辑器创建 否则不认 或者用UltraEdit转换成unix换行符
文件内容: (方括号为需要自己修改的内容)
[cpp] view
plaincopy
include $(TOPDIR)/rules.mk
PKG_NAME:=[软件包名字 和文件夹名称一样]
PKG_VERSION:=[软件包版本 自己写个]
PKG_RELEASE:=1
PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)
include $(INCLUDE_DIR)/package.mk
define Package/$(PKG_NAME)
SECTION:=utils
CATEGORY:=[软件包在menuconfig里的位置 比如Base system]
DEPENDS:=[依赖包 两个之间通过空格分隔 前面加+为默认显示 选中该软件包自动选中依赖包 不加+为默认不显示 选中依赖包才显示]
TITLE:=[标题]
PKGARCH:=[平台 比如ar71xx 全部写all]
MAINTAINER:=[作者]
endef
define Package/$(PKG_NAME)/description
[软件包简介]
endef
define Build/Prepare
endef
define Build/Configure
endef
define Build/Compile
endef
define Package/$(PKG_NAME)/conffiles
[升级时保留文件/备份时备份文件 一个文件一行]
endef
define Package/$(PKG_NAME)/install
$(CP) ./files/* $(1)/
[安装(编译)时执行的脚本 记得加上#!/bin/sh 没有就空着]
endef
define Package/$(PKG_NAME)/preinst
[安装前执行的脚本 记得加上#!/bin/sh 没有就空着]
endef
define Package/$(PKG_NAME)/postinst
[安装后执行的脚本 记得加上#!/bin/sh 没有就空着]
endef
Package/$(PKG_NAME)/prerm
[删除前执行的脚本 记得加上#!/bin/sh 没有就空着]
endef
Package/$(PKG_NAME)/postrm
[删除后执行的脚本 记得加上#!/bin/sh 没有就空着]
endef
$(eval $(call BuildPackage,$(PKG_NAME)))
然后在文件夹里新建个files文件夹 把需要集成的东西一起扔进去(把files当作路由根目录 注意如果文件有冲突需要在安装前脚本里加入删除命令)
ok 这样就好了 进menuconfig选中软件包编译就行了 ipk在源码包根目录的bin/[系列]/packages里
附: 安装前/后 删除前/后的脚本里请用变量 如: $(CP) $(RM) 根目录表示为$(1)
相关文章推荐
- OpenWrt集成非官方包之Makefile规则
- openwrt makefile 摸版规则
- 【OpenWRT】【RT5350】【三】MakeFile文件编写规则和OpenWRT驱动开发步骤
- makefile双冒号规则
- Makefile规则
- [003-Makefile-笔记] Makefile的规则
- Makefile特殊规则
- 跟我一起写Makefile:隐含规则
- Makefile的常用语法 及 规则
- Makefile通用编写规则
- makefile规则(转)
- openwrt笔记:libzlog 库编译进 openwrt 固件的 Makefile
- 规则引擎以及blaze 规则库的集成初探之三——Blaze规则引擎和SRL
- 分布式小练习FastDFS, exec 函数复习,log模块集成 gdb调试复习,Makefile
- (杂记)Makefile的几种规则
- 学习日记:如何写Makefile(二)——规则篇(上)
- 一、Makefile的规则
- makefile高级用法--隐含规则
- makefile的编写规则
- Makefile之隐含规则