代码之家  ›  专栏  ›  技术社区  ›  user2869816

Buildroot无法对自定义主机包使用本地站点方法

  •  0
  • user2869816  · 技术社区  · 12 年前

    我已经成功地使用了“本地站点”方法来包含需要为其构建并部署到我们的目标平台的项目特定代码。

    我需要构建/维护一个在主机上运行的工具,该主机的工作是打包内核和文件系统以部署到设备。我想使用本地站点方法来维护这个代码,但我运气不太好。

    在xxxx.mk中,我指定了:

    XXXX_SITE_METHOD = local
    

    我正在使用:

    $(eval $(host-autotools-package))
    

    但是,尝试使用以下内容进行构建:

    make host-xxxx
    

    导致buildroot试图获取一个不存在的tarball(在那里它会同步非主机包的源代码)。

    这是受支持的配置吗?

    我的xxxx.mk文件的内容是:

    XXXX_VERSION= 1.0
    XXXX_SITE = $(TOPDIR)/../apps.git/xxxx
    XXXX_SITE_METHOD = local
    $(eval $(host-autotools-package))
    
    define XXX_EXTRACT_CMDS
            cp -r package/yyyy/xxxx/src/* $(@D)
    endef
    
    1 回复  |  直到 9 年前
        1
  •  1
  •   Thomas Petazzoni    12 年前

    啊,你是对的,有一个bug。下面的补丁为我修复了它。也就是说,如果你对Buildroot有问题,你应该在项目邮件列表或项目错误跟踪器上报告。我们不一定经常查看Stack Overflow中的错误报告。

    From 9cf6971b5e787375d418c4e34c10a89603e3e6e2 Mon Sep 17 00:00:00 2001
    From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Date: Sat, 12 Oct 2013 12:10:13 +0200
    Subject: [PATCH] package: fix 'local' site method for host packages
    
    Using the 'local' site method works just fine for target
    packages. However, for host packages, when HOST_<pkg>_SITE is
    automatically defined by the package infrastructure to be equal to
    <pkg>_SITE, when defining the <pkg>_OVERRIDE_SRCDIR, the $($(2)_SITE)
    is empty, due to a missing additional dollar sign.
    
    This patch ensures that the <pkg>_OVERRIDE_SRCDIR gets the correct
    value, regardless of whether the HOST_<pkg>_SITE variable has been
    defined by the package itself, or inferred by the package
    infrastructure using the <pkg>_SITE value.
    
    Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
    Reported-by: http://stackoverflow.com/questions/19311747/buildroot-cant-use-local-site-method-for-custom-host-packages
    ---
     package/pkg-generic.mk | 2 +-
     1 file changed, 1 insertion(+), 1 deletion(-)
    
    diff --git a/package/pkg-generic.mk b/package/pkg-generic.mk
    index a46457c..4bba4b5 100644
    --- a/package/pkg-generic.mk
    +++ b/package/pkg-generic.mk
    @@ -281,7 +281,7 @@ endif
    
     ifeq ($$($(2)_SITE_METHOD),local)
     ifeq ($$($(2)_OVERRIDE_SRCDIR),)
    -$(2)_OVERRIDE_SRCDIR = $($(2)_SITE)
    +$(2)_OVERRIDE_SRCDIR = $$($(2)_SITE)
     endif
     endif
    
    -- 
    1.8.1.2