All of lore.kernel.org
 help / color / mirror / Atom feed
From: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
To: buildroot@busybox.net
Subject: [Buildroot] [PATCH v7 3/4] infra: Introduce BR2_HOST_NEEDS_JAVA
Date: Tue, 18 Feb 2014 00:37:12 +0100	[thread overview]
Message-ID: <1392680233-24585-4-git-send-email-maxime.hadjinlian@gmail.com> (raw)
In-Reply-To: <1392680233-24585-1-git-send-email-maxime.hadjinlian@gmail.com>

XBMC needs Java on the host in order to build, because it  uses a
code-generator which is build 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
It also defines the variable in Config.in

Signed-off-by: Maxime Hadjinlian <maxime.hadjinlian@gmail.com>
---
Changes v6 -> v7:
  - Fixes old use of BUILDROOT_CONFIG instead of BR2_CONFIG
  - Add definition of the variable to Config.in
Changes v5 -> v6:
  - Remove useless loop (Thomas Petazzoni)
  - Thanks to Martin Bark idea, change this patch to have a non package
    specific variable.
Changes v1 -> v5:
  - Patch non existant before
---
 Config.in                            | 5 +++++
 support/dependencies/dependencies.sh | 8 ++++++++
 2 files changed, 13 insertions(+)

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..05039ea 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 '$prog' 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
-- 
1.8.5.3

  parent reply	other threads:[~2014-02-17 23:37 UTC|newest]

Thread overview: 21+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-02-17 23:37 [Buildroot] [PATCH v7 0/4] Introducing XBMC Maxime Hadjinlian
2014-02-17 23:37 ` [Buildroot] [PATCH v7 1/4] sdl: add host version Maxime Hadjinlian
2014-02-18 16:13   ` Thomas Petazzoni
2014-02-18 16:41     ` Maxime Hadjinlian
2014-02-19 15:12   ` Peter Korsgaard
2014-02-17 23:37 ` [Buildroot] [PATCH v7 2/4] sdl_image: " Maxime Hadjinlian
2014-02-18 16:11   ` Thomas Petazzoni
2014-02-19 15:14     ` Peter Korsgaard
2014-02-19 15:14   ` Peter Korsgaard
2014-02-17 23:37 ` Maxime Hadjinlian [this message]
2014-02-18 16:18   ` [Buildroot] [PATCH v7 3/4] infra: Introduce BR2_HOST_NEEDS_JAVA Thomas Petazzoni
2014-02-18 16:41     ` Maxime Hadjinlian
2014-02-18 16:44       ` Thomas Petazzoni
2014-02-19 15:19   ` Peter Korsgaard
2014-02-17 23:37 ` [Buildroot] [PATCH v7 4/4] xbmc: new package Maxime Hadjinlian
2014-02-18 16:38   ` Thomas Petazzoni
2014-02-18 17:02     ` Maxime Hadjinlian
2014-02-18 18:30       ` Martin Bark
2014-02-19  0:14         ` Maxime Hadjinlian
2014-02-18 16:57 ` [Buildroot] [PATCH v7 0/4] Introducing XBMC Martin Bark
2014-02-18 17:03   ` Maxime Hadjinlian

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=1392680233-24585-4-git-send-email-maxime.hadjinlian@gmail.com \
    --to=maxime.hadjinlian@gmail.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.