您的位置:首页 > 运维架构

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)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: