来自本地源的带有快照的buildroot软件包

时间:2018-07-11 18:35:06

标签: buildroot

我想派生buildroot,添加一个自定义包,直接在树中添加包的源,并让buildroot使用树中源来构建自定义包。在chapter 17 of the buildroot user manual之后,我已经做到了,但是 buildroot似乎并没有掌握我所做的本地更改

例如,我构建了整个图像,还构建了自定义应用程序。然后,我进入了自定义应用程序的源代码,并添加了一个故意的语法错误-但随后我再次运行make,它使用我的自定义应用程序的旧版本愉快地生成了图像

即使已缓存具有匹配版本的程序包,我如何告诉buildroot查找本地源代码修改?

这些是我添加到buildroot分支中的新文件:

buildroot/
  package/
    customapp/
      customapp.mk
      Config.in
  customapp/
    configure.ac
    Makefile.am
    README
    src/
      main.c
      Makefile.am

(我还编辑了buildroot/package/Config.in,以便它获取buildroot/package/customapp/Config.in文件。所有的Config.in东西只是一个启用customapp的简单布尔值,它们工作正常,因此我将其省略从这个问题开始。)

以下是与构建相关的文件的内容:

  

buildroot / package / customapp / customapp.mk

CUSTOMAPP_VERSION = 0.1
CUSTOMAPP_SITE = customapp
CUSTOMAPP_SITE_METHOD = local
CUSTOMAPP_AUTORECONF = YES

$(eval $(autotools-package))
  

buildroot / customapp / configure.ac

AC_INIT([customapp], [0.1], [name@email.tld])
AM_INIT_AUTOMAKE([-Wall -Werror foreign])
AC_PROG_CC
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_FILES([
 Makefile
 src/Makefile
])
AC_OUTPUT
  

buildroot / customapp / Makefile.am

SUBDIRS = src
dist_doc_DATA = README
  

buildroot / customapp / src / Makefile.am

bin_PROGRAMS = customapp
customapp_SOURCES = main.c

2 个答案:

答案 0 :(得分:2)

buildroot手册的

Section 8.3说明了如何重建单个软件包。最简单的方法是使用[package name]-rebuild目标。在您的情况下,将是:

make customapp-rebuild

您可能还希望在软件包重新构建完成后触发buildroot后构建操作来重新构建目标设备文件系统映像:

make target-post-image

答案 1 :(得分:0)

要重建buildroot软件包,必须删除output / build / customapp-version / .stamp *中的标记文件。最简单的方法是删除整个构建目录。

Buildroot仅依靠.stamp文件来了解需要重建的内容。