Buildroot Archive on lore.kernel.org
 help / color / mirror / Atom feed
From: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH 2/3] Add support for BR2_EXTERNAL
Date: Fri, 13 Sep 2013 09:10:48 +0200	[thread overview]
Message-ID: <20130913091048.0423cf51@skate> (raw)
In-Reply-To: <CAEvN+1jveAKCG0d9fY_YKwhnpJ38PsObZ=ahKp8AFSc3jnhf0Q@mail.gmail.com>

Dear Tzu-Jung Lee,

On Fri, 13 Sep 2013 14:43:11 +0800, Tzu-Jung Lee wrote:

> >>   I'm not really convinced by the principle. The external.mk is exactly
> >> the same as the local override .mk; the Config.in appears at the very end
> >> of the top-level menu. Instead, I think we should enforce the buildroot
> >> hierarchy in the external dir, i.e.
> >>
> >> source <path-to-external-dir>/package/Config.in
> >>
> >> at the top of package/Config.in, and
> >>
> >> -include $(sort $(wildcard $(BR2_EXTERNAL)/package/*/*.mk))
> >>
> >> in the top-level Makefile.
> >
> > This is what I had originally done, but it seemed to me that the
> > external stuff may wish to add other Kconfig options than just
> > packages. That said, I've done this BR2_EXTERNAL stuff mainly for
> > packages, so if people think that we should restrict this to packages,
> > I'm fine with that.
> >
> 
> We do want to support the absolute paths for both Config.in and *.mk.
> 
> As a "buildroot overlay", we have similar structures in overlay/ like
> the buildroot/,
> such as configs, fs, packages, etc.
> 
> This requires the buildroot to support only only the *.mk and
> Config.in in the top
> level over overlay/, but also those in their sub directories.
> 
> The *.mk case may be get rid of with Arnount's suggestion.
> But I'm wondering could we solve the Config.in case in a less trickier way?

I am not sure what you mean here. What do you mean by "support the
absolute paths for both Config.in and *.mk" ?

> The overlay/Makefile plays a trick, which allows us to work under overlay/ as we
> work under buildroot/
> 
> Suppose we have the following configs,
> 
>   overlay/configs/foo_defconfig
> 
> Our build sequence will be:
> 
>   $ cd overlay
>   $ make O=../output/foo foo_defconfig
>   $ make O=../output/foo
> 
> With either Thomas's patch or our local patch, other targets supported by
> buildroot, such as menuconfig, help, etc also works under overlay/ as they do
> under buildroot/.
> 
> ##### overlay/Makefile #######
> EXTERNAL_OVERLAY       ?= $(realpath $(dir $(lastword $(MAKEFILE_LIST))))
> export EXTERNAL_OVERLAY
> 
> BUILDROOT_TOP           = ../buildroot
> 
> all:
>         ln -fs ../overlay $(BUILDROOT_TOP)
>         make -C $(BUILDROOT_TOP)
> 
> %:
>         ln -fs ../overlay $(BUILDROOT_TOP)
>         make -C $(BUILDROOT_TOP) $(MAKECMDGOALS)
> 
> ##### overlay/local.mk #######
> -include overlay/package/*/*.mk
> -include overlay/package/*/*/*.mk
> 
> -include overlay/cust/*/*.mk
> -include overlay/cust/*/*/*.mk
> 
> -include overlay/linux/*.mk
> 
> ###### overlay/Config.in ######
> source "overlay/package/Config.in"
> source "overlay/cust/Config.in"
> 
> ###### overlay/package/Config.in ######
> source "overlay/package/xxx/Config.in"

This is what BR2_EXTERNAL allows. Of course, doing a
BR2_EXTERNAL/Makefile that allows to run Buildroot from the external
(overlay) directory is something left for the person who creates the
overlay, I believe.

Best regards,

Thomas
-- 
Thomas Petazzoni, Free Electrons
Kernel, drivers, real-time and embedded Linux
development, consulting, training and support.
http://free-electrons.com

  reply	other threads:[~2013-09-13  7:10 UTC|newest]

Thread overview: 84+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-09-08 13:15 [Buildroot] [PATCH 0/3] Support for out-of-tree Buildroot customization Thomas Petazzoni
2013-09-08 13:15 ` [Buildroot] [PATCH 1/3] Makefile: factorize *config dependencies Thomas Petazzoni
2013-09-11  2:06   ` rjbarnet at rockwellcollins.com
2013-09-11 17:39   ` Yann E. MORIN
2013-09-08 13:15 ` [Buildroot] [PATCH 2/3] Add support for BR2_EXTERNAL Thomas Petazzoni
2013-09-11  2:03   ` rjbarnet at rockwellcollins.com
2013-09-11 17:03     ` Yann E. MORIN
2013-09-11 17:12       ` Ryan Barnett
2013-09-12 21:05     ` Arnout Vandecappelle
2013-09-12 21:30       ` Ryan Barnett
2013-09-12 21:41         ` Arnout Vandecappelle
2013-09-12 21:51           ` Ryan Barnett
2013-09-12 21:57             ` Arnout Vandecappelle
2013-09-12 22:11               ` Ryan Barnett
2013-09-13 20:56                 ` Arnout Vandecappelle
2013-09-14  5:29                   ` Thomas Petazzoni
2013-09-11  2:07   ` rjbarnet at rockwellcollins.com
2013-09-12 21:04   ` Arnout Vandecappelle
2013-09-13  3:48     ` Thomas Petazzoni
2013-09-13  6:43       ` Tzu-Jung Lee
2013-09-13  7:10         ` Thomas Petazzoni [this message]
2013-09-13  7:47           ` Tzu-Jung Lee
     [not found]   ` <CAC2S8kiHUwNFprvvYd85UEGjDJhEX0Jgtb4e7Pd1vwwFGF7m_w@mail.gmail.com>
2013-09-12 21:53     ` [Buildroot] Fwd: " Ryan Barnett
2013-09-08 13:15 ` [Buildroot] [PATCH 3/3] docs/manual: add explanations about BR2_EXTERNAL Thomas Petazzoni
2013-09-11  2:09   ` rjbarnet at rockwellcollins.com
2013-09-12 21:46   ` Arnout Vandecappelle
2013-09-13  6:53     ` Thomas Petazzoni
2013-09-11  1:32 ` [Buildroot] [PATCH 0/3] Support for out-of-tree Buildroot customization rjbarnet at rockwellcollins.com
2013-09-11  7:17   ` Thomas Petazzoni
2013-09-11 15:55     ` Ryan Barnett
2013-09-11 17:27       ` Yann E. MORIN
2013-09-12  7:54         ` Thomas De Schampheleire
2013-09-12 18:21           ` Thomas Petazzoni
2013-09-12 18:25             ` ANDY KENNEDY
2013-09-12 18:33               ` Thomas Petazzoni
2013-09-12 18:44                 ` ANDY KENNEDY
2013-09-12 22:04                 ` Arnout Vandecappelle
2013-09-12 22:12                   ` Yann E. MORIN
2013-09-13 21:50                     ` Arnout Vandecappelle
2013-09-14 22:16                       ` Yann E. MORIN
2013-09-16 15:43                         ` ANDY KENNEDY
2013-09-16 17:30                           ` Yann E. MORIN
2013-09-16 18:26                             ` Thomas Petazzoni
2013-09-16 18:58                               ` ANDY KENNEDY
2013-09-16 16:21                         ` [Buildroot] Is GPLv2 the right license for Buildroot? Thomas Petazzoni
2013-09-16 17:08                           ` Yann E. MORIN
2013-09-16 17:45                             ` ANDY KENNEDY
2013-09-16 18:01                               ` Thomas Petazzoni
2013-09-16 18:16                                 ` Yann E. MORIN
2013-09-16 21:17                                 ` Peter Korsgaard
2013-09-18  1:50                                 ` Jason Rennie
2013-09-18  7:22                                   ` Peter Korsgaard
2013-09-18 22:09                                   ` Yann E. MORIN
2013-09-19  0:25                                     ` Jason Rennie
2013-09-19 17:54                                       ` Yann E. MORIN
2013-09-16 17:58                             ` Thomas Petazzoni
2013-09-16 18:15                               ` Yann E. MORIN
2013-09-16 18:24                                 ` Thomas Petazzoni
2013-09-16 18:56                                   ` ANDY KENNEDY
2013-09-16 20:04                                   ` Yann E. MORIN
2013-09-17  4:17                                     ` Thomas Petazzoni
2013-09-16 19:50                             ` Grant Edwards
2013-09-16 20:15                               ` Yann E. MORIN
2013-09-18  1:52                               ` Jason Rennie
2013-09-16 19:53                             ` Arnout Vandecappelle
2013-09-16 21:13                             ` Peter Korsgaard
2013-09-16 21:12                           ` Peter Korsgaard
2013-09-17  4:44                             ` Thomas Petazzoni
2013-09-17 14:53                               ` Grant Edwards
2013-09-17 15:17                                 ` Jeremy Rosen
2013-09-17 15:22                                   ` Grant Edwards
2013-09-17 15:29                                 ` Peter Korsgaard
2013-09-16 18:56                         ` [Buildroot] [PATCH 0/3] Support for out-of-tree Buildroot customization Arnout Vandecappelle
2013-09-12 22:07                 ` Yann E. MORIN
2013-09-12 22:28                   ` ANDY KENNEDY
2013-09-12 22:47                     ` Yann E. MORIN
2013-09-15 13:18                       ` Thomas De Schampheleire
2013-09-12 21:51             ` Yann E. MORIN
2013-09-13  7:35             ` Thomas De Schampheleire
2013-09-13 15:55               ` Ryan Barnett
2013-09-12 21:50           ` Yann E. MORIN
2013-09-12 18:18         ` Thomas Petazzoni
2013-09-12 22:24           ` Yann E. MORIN
2013-09-11  5:00 ` Baruch Siach

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20130913091048.0423cf51@skate \
    --to=thomas.petazzoni@free-electrons.com \
    --cc=buildroot@busybox.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox