Skip to contentSkip to conversation

infra: Add generic check_prog_host function

PATCH New Maxime Hadjinlian 3 participants 5 messages May 3, 2014 – Jun 14, 2014

lore
Share & tools
lore
#0 lore raw

PATCH v3 1/2 infra: Add generic check_prog_host function

Avoid copy/pasting the same block of code to check if a program is available on the host machine.

---
Changes v2 -> v3:
- None
Changes v1 -> v2:
- Remove the introduction of BR2_NEEDS_HOST_JAVAC & BR2_NEEDS_HOST_JAR to add them in the classpath patch. (Thomas De Schampheleire)

---
 support/dependencies/dependencies.sh | 30 ++++++++++++++----------------
 1 file changed, 14 insertions(+), 16 deletions(-)
support/dependencies/dependencies.sh +14 -16
index 0566814..655b4c6 100755
@@ -51,18 +51,20 @@ if test -n "$PERL_MM_OPT" ; then
 	exit 1
 fi
 
-# Verify that which is installed
-if ! which which > /dev/null ; then
-	echo
-	echo "You must install 'which' on your build machine";
-	exit 1;
-fi;
+check_prog_host()
+{
+	prog="$1"
+	if ! which $prog > /dev/null ; then
+		echo >&2
+		echo "You must install '$prog' on your build machine" >&2
+		exit 1
+	fi
+}
 
-if ! which sed > /dev/null ; then
-	echo
-	echo "You must install 'sed' on your build machine"
-	exit 1
-fi
+# Verify that which is installed
+check_prog_host "which"
+# Verify that sed is installed
+check_prog_host "sed"
 
 # Check make
 MAKE=$(which make 2> /dev/null)
@@ -196,11 +198,7 @@ if grep -q ^BR2_PACKAGE_CLASSPATH=y $BR2_CONFIG ; then
 fi
 
 if grep -q ^BR2_NEEDS_HOST_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
+	check_prog_host "java"
 fi
 
 if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $BR2_CONFIG ; then
Signature · 1 line
1.9.2
#1 lore raw

PATCH v3 2/2 classpath: Use generic check for host program

Remove the specific check that was done in dependencies.sh to use the generic one that were introduced by the previous patch.

Also, introduce, BR2_NEEDS_HOST_JAVAC and BR2_NEEDS_HOST_JAR as it is needed by classpath.

---
Changes v2 -> v3:
- Fix commit log
Changes v1 -> v2:
- Add the introduction of BR2_NEEDS_HOST_JAVAC & BR2_NEEDS_HOST_JAR in this patch instead of the previous one.

---
 Config.in                            | 10 ++++++++++
 package/classpath/Config.in          |  2 ++
 support/dependencies/dependencies.sh | 18 ++++++++----------
 3 files changed, 20 insertions(+), 10 deletions(-)
Config.in +10 -0
index 79a455d..0d90ecc 100644
@@ -23,6 +23,16 @@ config BR2_EXTERNAL
 config BR2_NEEDS_HOST_JAVA
 	bool
 
+# Hidden boolean selected by packages in need of javac in order to build
+# (example: classpath)
+config BR2_NEEDS_HOST_JAVAC
+	bool
+
+# Hidden boolean selected by packages in need of jar in order to build
+# (example: classpath)
+config BR2_NEEDS_HOST_JAR
+	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.).
package/classpath/Config.in +2 -0
index 0153bca..a11845c 100644
@@ -1,5 +1,7 @@
 config BR2_PACKAGE_CLASSPATH
 	bool "classpath"
+	select BR2_NEEDS_HOST_JAR
+	select BR2_NEEDS_HOST_JAVAC
 	depends on BR2_PACKAGE_JAMVM
 	depends on BR2_INET_IPV6
 	help
support/dependencies/dependencies.sh +8 -10
index 655b4c6..255a07b 100755
@@ -187,20 +187,18 @@ if grep ^BR2_TOOLCHAIN_BUILDROOT=y $BR2_CONFIG > /dev/null && \
 	fi
 fi
 
-if grep -q ^BR2_PACKAGE_CLASSPATH=y $BR2_CONFIG ; then
-	for prog in javac jar; do
-		if ! which $prog > /dev/null ; then
-			echo >&2
-			echo "You must install '$prog' on your build machine" >&2
-			exit 1
-		fi
-	done
-fi
-
 if grep -q ^BR2_NEEDS_HOST_JAVA=y $BR2_CONFIG ; then
 	check_prog_host "java"
 fi
 
+if grep -q ^BR2_NEEDS_HOST_JAVAC=y $BR2_CONFIG ; then
+	check_prog_host "javac"
+fi
+
+if grep -q ^BR2_NEEDS_HOST_JAR=y $BR2_CONFIG ; then
+	check_prog_host "jar"
+fi
+
 if grep -q ^BR2_HOSTARCH_NEEDS_IA32_LIBS=y $BR2_CONFIG ; then
 	if test ! -f /lib/ld-linux.so.2 ; then
 		echo
Signature · 1 line
1.9.2
#2 lore raw

PATCH v3 2/2 classpath: Use generic check for host program

Dear Maxime Hadjinlian,

Quoted 6 lines · Maxime Hadjinlian

Remove the specific check that was done in dependencies.sh to use the generic one that were introduced by the previous patch.

Also, introduce, BR2_NEEDS_HOST_JAVAC and BR2_NEEDS_HOST_JAR as it is needed by classpath.

Quoted 8 lines

---
Changes v2 -> v3:
- Fix commit log
Changes v1 -> v2:
- Add the introduction of BR2_NEEDS_HOST_JAVAC & BR2_NEEDS_HOST_JAR in this patch instead of the previous one.

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com
#3 lore raw

PATCH v3 1/2 infra: Add generic check_prog_host function

In reply to Maxime Hadjinlian

Maxime Hadjinlian <[email protected]> schreef:

Quoted 4 lines

Avoid copy/pasting the same block of code to check if a program is available on the host machine.

As mentioned in the discussion of v1, there are many more improvements possible in dependencies.sh, but these can be done in a later patch...

Best regards,
Thomas

#4 lore raw

PATCH v3 1/2 infra: Add generic check_prog_host function

In reply to Maxime Hadjinlian

Dear Maxime Hadjinlian,

Quoted 11 lines · Maxime Hadjinlian

Avoid copy/pasting the same block of code to check if a program is available on the host machine.

---
Changes v2 -> v3:
- None
Changes v1 -> v2:
- Remove the introduction of BR2_NEEDS_HOST_JAVAC & BR2_NEEDS_HOST_JAR to add them in the classpath patch. (Thomas De Schampheleire)

Applied, thanks.

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux, Kernel and Android engineering
http://free-electrons.com