[Buildroot] [git commit branch/next] infra: Introduce BR2_HOST_NEEDS_JAVA
Peter Korsgaard
peter at korsgaard.com
Wed Feb 19 15:17:48 UTC 2014
commit: http://git.buildroot.net/buildroot/commit/?id=aac3d2b402fd2b8b91f125cf9314f4805b88f72a
branch: http://git.buildroot.net/buildroot/commit/?id=refs/heads/next
XBMC needs Java on the host in order to build, because it uses a
code-generator which is built in two phases: In the first phase SWIG is used
to parse C++ header files that define the API. SWIG outputs an XML file
that contains a complete description of the structure of the API. In the
second phase, the XML file is ingested by a Groovy (Java) program that then
creates C++ code that forms the bridge to the scripting language (Python).
The second phase is why we need java on the host.
You can learn more at the XBMC's wiki:
http://wiki.xbmc.org/index.php?title=Codegeneration#How_it_works
In order to check that, this patch introduce this mechanism in
dependencies.sh, and it also defines the variable in Config.in
[Peter: fix error message]
Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian at gmail.com>
Signed-off-by: Peter Korsgaard <peter at korsgaard.com>
---
Config.in | 5 +++++
support/dependencies/dependencies.sh | 8 ++++++++
2 files changed, 13 insertions(+), 0 deletions(-)
diff --git a/Config.in b/Config.in
index bcfefc7..8afd156 100644
--- a/Config.in
+++ b/Config.in
@@ -18,6 +18,11 @@ config BR2_EXTERNAL
string
option env="BR2_EXTERNAL"
+# Hidden boolean selected by packages in need of Java in order to build
+# (example: xbmc)
+config BR2_HOST_NEEDS_JAVA
+ bool
+
# Hidden boolean selected by pre-built packages for x86, when they
# need to run on x86-64 machines (example: pre-built external
# toolchains, binary tools like SAM-BA, etc.).
diff --git a/support/dependencies/dependencies.sh b/support/dependencies/dependencies.sh
index 0e7e1fa..a965c68 100755
--- a/support/dependencies/dependencies.sh
+++ b/support/dependencies/dependencies.sh
@@ -191,6 +191,14 @@ if grep -q ^BR2_PACKAGE_CLASSPATH=y $BR2_CONFIG ; then
done
fi
+if grep -q ^BR2_HOST_NEEDS_JAVA=y $BR2_CONFIG ; then
+ if ! which java > /dev/null ; then
+ echo >&2
+ echo "You must install 'java' on your build machine" >&2
+ exit 1
+ fi
+fi
+
if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $BR2_CONFIG ; then
if test ! -f /lib/ld-linux.so.2 ; then
echo
More information about the buildroot
mailing list