buildroot添加编译自定义APP源码的方法


风晓
风晓 2024-01-05 11:05:56 49807 赞同 0 反对 0
分类: 资源
概要 buildroot添加编译自定义APP源码, 首先在package/Config.in中添加指向新增APP目录的Config.in; 然后在package中新增目录APP,并在里面添加Config.in和app.mk;最后添加对应的APP源码目录。

 

1、修改添加package/Config.in入口
系统在make menuconfig的时候就可以找到对应的APP的Config.in,就是在package/Config.in的最下面增加如下内容:

menu "Source code written by private"
        source "package/libiconv/Config.in"
        source "package/ftp/Config.in"
        source "package/7za/Config.in"
        source "package/clamav/Config.in"
endmenu

如果在make menuconfig的时候选中自定义增加的APP,在make savedefconfig的时候就会打开BR2_PACKAGE_APP=y。

2、配置APP对应的Config.in和mk文件

APP/Config.in文件,通过make menuconfig可以对APP进行选择。只有在BR2_PACKAGE_APP=y条件下,才会调用app.mk进行编译。

Config.in文件写法以FTP举例如下:

config BR2_PACKAGE_FTP
        bool "ftp"
        help
           ftp mod by private

MK文件写法以FTP举例如下:

buildroot编译APP所需要的设置app.mk,包括源码位置、安装目录、权限设置等。
以下是源码压缩包方式放入dl/ftp目录下,源码压缩包名称及版本号需要与mk文件一致,只需设置FTP_SOURCE ,FTP_SITE 可不设置,如下:

################################################################################
#
# ftp mod by private
#
################################################################################

FTP_VERSION = 1.0.1
FTP_SOURCE = ftp-$(FTP_VERSION).tar.gz
FTP_SITE = NONE
FTP_INSTALL_STAGING = YES
FTP_LICENSE = ftp license
FTP_LICENSE_FILES = README

define FTP_BUILD_CMDS
        $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D)
endef

define FTP_INSTALL_STAGING_CMDS
        cp -a $(@D)/ftp/ftp $(TARGET_DIR)/usr/bin
endef

$(eval $(generic-package))


root@user-PC:/buildroot-2021.08.1/dl/ftp# ls
ftp-1.0.1.tar.gz

以下是源码非压缩包方式放入dl/ftp目录下,源码路径需要与mk文件一致。只需设置FTP_SITE ,FTP_SOURCE 可不设置,如下:。

################################################################################
#
# ftp mod by private
#
################################################################################

FTP_VERSION = 1.0.1
FTP_SITE = /buildroot-2021.08.1/dl/ftp
HELLOWORLD_SITE_METHOD = local
FTP_LICENSE = ftp license
FTP_LICENSE_FILES = README

define FTP_BUILD_CMDS
        $(TARGET_MAKE_ENV) $(MAKE1) -C $(@D)
endef

define FTP_INSTALL_STAGING_CMDS
        cp -a $(@D)/ftp/ftp $(TARGET_DIR)/usr/bin
endef

$(eval $(generic-package))


如果源码在git或svn上,需要如下设置:

 DMA_TEST_VERSION:=master--------------------------------------仓库分支名称
 DMA_TEST_SITE:=http://.../dma.git-----------------------------仓库git地址
 DMA_TEST_SITE_METHOD:=git-------------------------------------获取源码的方式

参数解释:

_VERSION结尾的变量是源码的版本号;_SITE_METHOD结尾的变量是源码下载方法;_SITE结尾变量是源码下载地址。

_BUILD_CMDS结尾的变量会在buildroot框架编译的时候执行,用于给源码的Makefile传递编译选项和链接选项,调用源码的Makefile。

_INSTALL_TARGET_CMDS结尾的变量是在编译完之后,自动安装执行,一般是让buildroot把编译出来的的bin或lib拷贝到指定目录。

( e v a l (eval(eval(generic-package)) 最核心的就是这个东西了,一定不能够漏了,不然源码不会被编译,这个函数就是把整个.mk构建脚本,通过Buildroot框架的方式,展开到Buildroot/目录下的Makfile中,生成的构建目标。

如果您发现该资源为电子书等存在侵权的资源或对该资源描述不正确等,可点击“私信”按钮向作者进行反馈;如作者无回复可进行平台仲裁,我们会在第一时间进行处理!

评价 0 条
风晓L1
粉丝 1 资源 2038 + 关注 私信
最近热门资源
银河麒麟桌面操作系统备份用户数据  127
统信桌面专业版【全盘安装UOS系统】介绍  122
银河麒麟桌面操作系统安装佳能打印机驱动方法  114
银河麒麟桌面操作系统 V10-SP1用户密码修改  105
最近下载排行榜
银河麒麟桌面操作系统备份用户数据 0
统信桌面专业版【全盘安装UOS系统】介绍 0
银河麒麟桌面操作系统安装佳能打印机驱动方法 0
银河麒麟桌面操作系统 V10-SP1用户密码修改 0
作者收入月榜
1

prtyaa 收益393.62元

2

zlj141319 收益218元

3

1843880570 收益214.2元

4

IT-feng 收益209.03元

5

风晓 收益208.24元

6

777 收益172.71元

7

Fhawking 收益106.6元

8

信创来了 收益105.84元

9

克里斯蒂亚诺诺 收益91.08元

10

技术-小陈 收益79.5元

请使用微信扫码

加入交流群

请使用微信扫一扫!