OpenWrt集成非官方包之Makefile规则

来源:互联网 发布:mac appstore更新不了 编辑:程序博客网 时间:2024/06/06 14:09

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
  1. include $(TOPDIR)/rules.mk  
  2.   
  3. PKG_NAME:=[软件包名字 和文件夹名称一样]  
  4. PKG_VERSION:=[软件包版本 自己写个]  
  5. PKG_RELEASE:=1  
  6.   
  7. PKG_BUILD_DIR := $(BUILD_DIR)/$(PKG_NAME)  
  8.   
  9. include $(INCLUDE_DIR)/package.mk  
  10.   
  11. define Package/$(PKG_NAME)  
  12.         SECTION:=utils  
  13.         CATEGORY:=[软件包在menuconfig里的位置 比如Base system]  
  14.         DEPENDS:=[依赖包 两个之间通过空格分隔 前面加+为默认显示 选中该软件包自动选中依赖包 不加+为默认不显示 选中依赖包才显示]  
  15.         TITLE:=[标题]  
  16.         PKGARCH:=[平台 比如ar71xx 全部写all]  
  17.         MAINTAINER:=[作者]  
  18. endef  
  19.   
  20. define Package/$(PKG_NAME)/description  
  21.         [软件包简介]  
  22. endef  
  23.   
  24. define Build/Prepare  
  25. endef  
  26.   
  27. define Build/Configure  
  28. endef  
  29.   
  30. define Build/Compile  
  31. endef  
  32.   
  33. define Package/$(PKG_NAME)/conffiles  
  34. [升级时保留文件/备份时备份文件 一个文件一行]  
  35. endef  
  36.   
  37. define Package/$(PKG_NAME)/install  
  38.         $(CP) ./files/* $(1)/  
  39. [安装(编译)时执行的脚本 记得加上#!/bin/sh 没有就空着]  
  40. endef  
  41.   
  42. define Package/$(PKG_NAME)/preinst  
  43. [安装前执行的脚本 记得加上#!/bin/sh 没有就空着]  
  44. endef  
  45.   
  46. define Package/$(PKG_NAME)/postinst  
  47. [安装后执行的脚本 记得加上#!/bin/sh 没有就空着]  
  48. endef  
  49.   
  50. Package/$(PKG_NAME)/prerm  
  51. [删除前执行的脚本 记得加上#!/bin/sh 没有就空着]  
  52. endef  
  53.   
  54. Package/$(PKG_NAME)/postrm  
  55. [删除后执行的脚本 记得加上#!/bin/sh 没有就空着]  
  56. endef  
  57.   
  58. $(eval $(call BuildPackage,$(PKG_NAME)))  

然后在文件夹里新建个files文件夹 把需要集成的东西一起扔进去(把files当作路由根目录 注意如果文件有冲突需要在安装前脚本里加入删除命令)

ok 这样就好了 进menuconfig选中软件包编译就行了 ipk在源码包根目录的bin/[系列]/packages里

附: 安装前/后 删除前/后的脚本里请用变量 如: $(CP) $(RM) 根目录表示为$(1)


0 0
原创粉丝点击