core: allow external Config.in/makefile code to be integrated
authorThomas Petazzoni <thomas.petazzoni@free-electrons.com>
Thu, 5 Dec 2013 19:11:11 +0000 (20:11 +0100)
committerPeter Korsgaard <peter@korsgaard.com>
Sun, 8 Dec 2013 21:39:42 +0000 (22:39 +0100)
This commit allows the BR2_EXTERNAL directory to contain Config.in and
Makefile code, which gets integrated into the Buildroot build logic:

 - Buildroot automatically includes the $BR2_EXTERNAL/Config.in in the
   top-level configuration menu.

 - Buildroot automatically includes the BR2_EXTERNAL/external.mk in
   the build logic, so it can for example be used to include other .mk
   files that define package recipes.

This is typically intended to be used to create target packages in the
BR2_EXTERNAL directory, but can also be used for bootloaders, host
packages, or other custom make logic.

We also add a dummy Config.in file in support/dummy-external/ to
ensure that the source "$BR2_EXTERNAL/Config.in" line will point to an
existing file even when BR2_EXTERNAL is not used by the user.

Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com>
Reviewed-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Tested-by: "Yann E. MORIN" <yann.morin.1998@free.fr>
Acked-by: Ryan Barnett <rjbarnet@rockwellcollins.com>
Tested-by: "Samuel Martin" <s.martin49@gmail.com>
Acked-by: "Samuel Martin" <s.martin49@gmail.com>
Signed-off-by: Peter Korsgaard <peter@korsgaard.com>
Config.in
Makefile
support/dummy-external/Config.in [new file with mode: 0644]
support/dummy-external/external.mk [new file with mode: 0644]

index ea060bc39a54faf2fe07ad62048959c6b290c887..12d36b5c83acb1c318b53db787e8a7971a2a423b 100644 (file)
--- a/Config.in
+++ b/Config.in
@@ -492,3 +492,5 @@ source "boot/Config.in"
 source "package/Config.in.host"
 
 source "Config.in.legacy"
+
+source "$BR2_EXTERNAL/Config.in"
index f92fd9b2c375ad57ee8bb619d11f59a394d5c2ea..09bc83adda996d28907765d4c42ca732c32dc73d 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -364,6 +364,8 @@ include boot/common.mk
 include linux/linux.mk
 include system/system.mk
 
+include $(BR2_EXTERNAL)/external.mk
+
 TARGETS+=target-finalize
 
 ifeq ($(BR2_ENABLE_LOCALE_PURGE),y)
diff --git a/support/dummy-external/Config.in b/support/dummy-external/Config.in
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/support/dummy-external/external.mk b/support/dummy-external/external.mk
new file mode 100644 (file)
index 0000000..e69de29