概要
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_FTPbool "ftp"helpftp 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 = READMEdefine FTP_BUILD_CMDS$(TARGET_MAKE_ENV) $(MAKE1) -C $(@D)
endefdefine FTP_INSTALL_STAGING_CMDScp -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 = READMEdefine FTP_BUILD_CMDS$(TARGET_MAKE_ENV) $(MAKE1) -C $(@D)
endefdefine FTP_INSTALL_STAGING_CMDScp -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拷贝到指定目录。

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

buildroot添加编译自定义APP源码的方法相关推荐

  1. 绿豆pro前端APP源码v5.1.7编译教程,后端配置全开源安装搭建全图文操作萝卜白菜app通用说明带视频教程_多啦咪

    绿豆pro前端APP源码v5.1.7编译教程全图文操作萝卜白菜app通用: 图文一: 打开前端加载项目后,选择图下文件名为app.java文件打开操作修改位置如下: public static Str ...

  2. 直播视频app源码,自定义可点击可滑动的通用RatingBar

    直播视频app源码,自定义可点击可滑动的通用RatingBar实现的相关代码 绘制ratingbar 绘制未选中的背景 /*** 未选中Bitmap*/ private val starBgBitma ...

  3. 婚恋交友app源码,如何自定义线程池

    自定义线程池是婚恋交友app源码开发会用到的,那么婚恋交友app源码是怎样实现的呢? 1.任务队列 2.拒绝策略(抛出异常.直接丢弃.阻塞.临时队列) 3.init( min ) 4.active 5 ...

  4. mui打包ios_优品视界,聚合影视APP源码。mui框架,hbuilder即可编译,云打包生成ios的Android的app...

    [实例简介] 影视APP源码,mui框架的.hbuilderx或hbuilder打包即可,只包含前端web app源码文件.基本功能都齐全,有需要的可以拿去.卖好几百的东西.聚合影视源码 Movie ...

  5. 视频直播APP源码开发iOS音频播放流程

    视频直播APP源码开发iOS音频播放流程 概览 随着移动互联网的发展,如今的手机早已不是打电话.发短信那么简单了,播放音乐.视频.录音.拍照等都是很常用的功能.在iOS中对于多媒体的支持是非常强大的, ...

  6. apicloud影视解析APP源码 HTML

    集合vip影视接口到一个android app中 方便观看各平台影视资源及直播,用apicloud搭建影视APP源码,无后台,调用接口同步api解析网址和直接自定义设置的方式设置api解析网址,方便自 ...

  7. 用成品短视频App源码开发您的下一个创意项目

    您是否曾经有过一个创意项目,但是不知道如何实现?成品短视频App源码可以帮助您快速开发出一个小视频App.本文将介绍如何使用成品短视频App源码来开发您的下一个创意项目. 什么是成品短视频App源码? ...

  8. 速通AOSP,成功编译调试Android源码

    /   今日科技快讯   / 近日据不少网友反馈,爱奇艺App开始对投屏功能作出限制,之前黄金VIP会员支持最高4K清晰度投屏,现在只能选最低的480P清晰度,要想进行4K投屏必须购买白金VIP会员. ...

  9. VS2019编译python解释器源码及学习方法

    Python源码编译   Python是当下很火的一门编程语言,在人工智能.数据分析.后端开发等领域可谓是人人都会的语言,在用python实现各种应用服务的同时,估计很少有人去关注python的实现, ...

最新文章

  1. VS Code - Debugger for Chrome调试JavaScript的两种方式
  2. Sql Server函数全解三数据类型转换函数和文本图像函数
  3. LINUX DNS服务的配置(一)
  4. Merge Intervals
  5. AR研究-Demo集
  6. SPA(单页面应用)和MPA(多页面应用)
  7. Numpy——numpy属性
  8. .NET 2.0泛型集合类与.NET 1.1集合类的区别(一)
  9. 计算机学院军训条幅,最新各大高校欢迎新生横幅,确认过眼神,师兄师姐Skr人才。...
  10. js css自动幻灯片切换,纯js和CSS3炫酷自动幻灯片特效
  11. 新手教程:采用AD9软件画原理图
  12. 财税打印机LQ 670K+ win10驱动
  13. 初步用Echarts实现圆饼图
  14. sharp s2 android 9,夏普s2第三方ROM AOSP(Android P)v105
  15. PHP+经贸时间轴 毕业设计-附源码211617
  16. numpy求矩阵特征值与特征向量
  17. 华三模拟器命令(陆续更新)
  18. Ubuntu-安装汉语拼音输入法
  19. android xp wifi连接不上,笔记本xp系统连接不上wifi怎么办
  20. linux设备授权命令,# Linux命令

热门文章

  1. postgresql dblink mysql_PostgreSQL dblink使用过程
  2. 达梦DBLINK之DM访问Oracle问题处理
  3. linux charg修改目录,Thinkpad在linux(ubuntu)下修改电池充电阈值,成功解决Thinkpad在Linux...
  4. 维特比算法浅析,如何理解时序的动态规划
  5. 游戏开发之旅——使用CocosCreator完成卡牌2048主要逻辑
  6. Oracle19C+PLSQL安装和配置详细教程
  7. 设立各种专项,重奖高层次人才
  8. JavaScript换行符的使用
  9. GitHub 通过 jsdelivr CDN加持
  10. Android 实现 Facebook 第三方登录