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)
makefile phonyinclude $(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) 是用交叉编译器链接和编译文件时必须要加的标志。很多编译出错的原因都是处在此!!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。