openwrt下面创建/添加package----Makefile模版

蹲街弑〆低调 提交于 2019-12-04 07:57:37

openwrt下面创建/添加package----Makefile模版

分类: linux openwrt makefile 创建 添加 package

by:韩大卫@吉林师范大学

**********************

进入 openwrt/package/,

mkdir eep

以eep为示例

cd eep

mkdir src

把代码放在src下面, src 中中的makefile 是用特定的交叉编译器编译自己的代码。

同在 eep 下面还有一个Makefile ,这个makefile  是openwrt 用来查找,添加,编译这个目录(eep)的。编译后的的内容会出现的这个系统中。

编译自己的package, 把下面Makefile 中的 eep  换成自己目录名字即可。

********************************

这个Makefile 是 openwrt/package/eep 下面的。

**********************************

include $(TOPDIR)/rules.mk                                                                                                           

 
PKG_NAME:=eep
PKG_VERSION:=5.0
PKG_RELEASE:=1
 
PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)
 
include $(INCLUDE_DIR)/package.mk
 
define Package/$(PKG_NAME)  
    SECTION:=utils
    CATEGORY:=Utilities
    TITLE:=eep      -- i2c general program
    MAINTAINER:=handawei
endef
 
define Package/$(PKG_NAME)/description
    i2c general program
endef
 
define Build/Prepare
    mkdir -p $(PKG_BUILD_DIR)
    $(CP) ./src/* $(PKG_BUILD_DIR)/
endef
 
define Package/eep/install
    $(INSTALL_DIR) $(1)/bin
    $(INSTALL_BIN) $(PKG_BUILD_DIR)/eep $(1)/bin/
endef
 
$(eval $(call BuildPackage,eep))

******************************************

下面是src  中的makefile

********************************************

 

OBJECTS = eep                                                                                                                        
 
all : $(OBJECTS)
 
PKG_NAME=docs
 
eep: main.o i2c.o
    $(CC) $(LDFLAGS) $^ -o $@
 
i2c.o:i2c.c
    $(CC) $(CFLAGS)  -c $<
main.o:main.c
 $(CC) $(CFLAGS)  -c $<
 
.PHONY:clean
clean:
    @-rm *.o  eep
*****************************************

把eep换成自己的目录名字即可。i2c.c 是main.c 的依赖文件。不需要的话删除即可。

另外,$(CC)  是openwrt 的特定交叉编译器,在编译openwrt 时候创建的,在此直接使用即可。

注意:  $(LDFLAGS)  , $(CFLAGS) 是用交叉编译器链接和编译文件时必须要加的标志。很多编译出错的原因都是处在此!!
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!