2024年3月23日发(作者:)

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)/

PKG_NAME:=eep

PKG_VERSION:=5.0

PKG_RELEASE:=1

PKG_BUILD_DIR:= $(BUILD_DIR)/$(PKG_NAME)

include $(INCLUDE_DIR)/

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) 是用交叉编译器链接和编译文件时必须要加的标志。很多编译出错的

原因都是处在此!!