Fix java version detection when _JAVA_OPTIONS is set.

_JAVA_OPTIONS is an environment variable that
can be used to affect the behavior of java and javac.
It is currently required to get Android to build on
some configurations, where the default Java heap size
is too small. Unfortunately, if _JAVA_OPTIONS is set,
both java and javac will output its value to the console
as the first line on every invocation, including trivial
ones like java -version. This will confuse main.mk’s
version detection, which only looks at the first line of
output. Tweak the version detection to run grep before
head, so that the _JAVA_OPTIONS line is filtered by the grep.

Change-Id: I69aee52b56d27711b7d3087ec6b3ebab07ffc3af
This commit is contained in:
Peter Ammon 2014-03-31 15:36:02 -07:00
parent 1c380c13d9
commit bb406bf4c0
1 changed files with 6 additions and 6 deletions

View File

@ -180,12 +180,12 @@ endif # if requires_openjdk
# EXPERIMENTAL_USE_JAVA7 is set, 1.6 otherwise.
ifneq ($(EXPERIMENTAL_USE_JAVA7),)
required_version := "1.7.x"
java_version := $(shell java -version 2>&1 | head -n 1 | grep '^java .*[ "]1\.7[\. "$$]')
javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1\.7[\. "$$]')
java_version := $(shell java -version 2>&1 | grep '^java .*[ "]1\.7[\. "$$]' | head -n 1)
javac_version := $(shell javac -version 2>&1 | grep '[ "]1\.7[\. "$$]' | head -n 1 )
else # if EXPERIMENTAL_USE_JAVA7
required_version := "1.6.x"
java_version := $(shell java -version 2>&1 | head -n 1 | grep '^java .*[ "]1\.6[\. "$$]')
javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1\.6[\. "$$]')
java_version := $(shell java -version 2>&1 | grep '^java .*[ "]1\.6[\. "$$]' | head -n 1)
javac_version := $(shell javac -version 2>&1 | grep '[ "]1\.6[\. "$$]' | head -n 1)
endif # if EXPERIMENTAL_USE_JAVA7
ifeq ($(strip $(java_version)),)
@ -193,7 +193,7 @@ $(info ************************************************************)
$(info You are attempting to build with the incorrect version)
$(info of java.)
$(info $(space))
$(info Your version is: $(shell java -version 2>&1 | head -n 1).)
$(info Your version is: $(shell java -version 2>&1 | grep '^java' | head -n 1).)
$(info The required version is: $(required_version))
$(info $(space))
$(info Please follow the machine setup instructions at)
@ -208,7 +208,7 @@ $(info ************************************************************)
$(info You are attempting to build with the incorrect version)
$(info of javac.)
$(info $(space))
$(info Your version is: $(shell javac -version 2>&1 | head -n 1).)
$(info Your version is: $(shell javac -version 2>&1 | grep '^javac' | head -n 1).)
$(info The required version is: $(required_java_version))
$(info $(space))
$(info Please follow the machine setup instructions at)