$(error Directory names containing spaces not supported)
endif
- ifneq ($(EXPERIMENTAL_USE_JAVA7_OPENJDK),)
+ # Check for the current JDK.
+ #
+ # For Java 1.7, we require OpenJDK on linux and Oracle JDK on Mac OS.
+ # For Java 1.6, we require Oracle for all host OSes.
+ requires_openjdk := false
+ ifneq ($(EXPERIMENTAL_USE_JAVA7),)
+ ifeq ($(HOST_OS), linux)
+ requires_openjdk := true
+ endif
+ endif
+
+java_version_str := $(shell java -version 2>&1)
+javac_version_str := $(shell javac -version 2>&1)
+
+# Check for the current jdk
-ifeq ($(shell java -version 2>&1 | grep -i openjdk),)
+ ifeq ($(requires_openjdk), true)
+# The user asked for java7 openjdk, so check that the host
+# java version is really openjdk
+ifeq ($(shell echo '$(java_version_str)' | grep -i openjdk),)
$(info ************************************************************)
-$(info You are attempting to build with an unsupported JDK.)
-$(info $(space))
-$(info This build requires OpenJDK, but you are using:
-$(info $(shell java -version 2>&1 | head -n 2).)
-$(info Please follow the machine setup instructions at)
-$(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html)
+$(info You asked for an OpenJDK 7 build but your version is)
+$(info $(java_version_str).)
$(info ************************************************************)
$(error stop)
endif # java version is not OpenJdk
- else # if EXPERIMENTAL_USE_JAVA7_OPENJDK
+ else # if requires_openjdk
-ifneq ($(shell java -version 2>&1 | grep -i openjdk),)
+ifneq ($(shell echo '$(java_version_str)' | grep -i openjdk),)
$(info ************************************************************)
$(info You are attempting to build with an unsupported JDK.)
$(info $(space))
$(info ************************************************************)
$(error stop)
endif # java version is not Sun Oracle JDK
- endif # if EXPERIMENTAL_USE_JAVA7_OPENJDK
+ endif # if requires_openjdk
# Check for the correct version of java, should be 1.7 if
- # EXPERIMENTAL_USE_JAVA7_OPENJDK is set, 1.6 otherwise.
- ifneq ($(EXPERIMENTAL_USE_JAVA7_OPENJDK),)
- required_version := "OpenJDK 1.7"
+ # 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[\. "$$]')
+required_javac_version := "1.7"
+java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.7[\. "$$]')
+javac_version := $(shell echo '$(javac_version_str)' | grep '[ "]1\.7[\. "$$]')
- else # if EXPERIMENTAL_USE_JAVA7_OPENJDK
- required_version := "JavaSE 1.6"
+ 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[\. "$$]')
+required_javac_version := "1.6"
+java_version := $(shell echo '$(java_version_str)' | grep '^java .*[ "]1\.6[\. "$$]')
+javac_version := $(shell echo '$(javac_version_str)' | head -n 1 | grep '[ "]1\.6[\. "$$]')
- endif # if EXPERIMENTAL_USE_JAVA7_OPENJDK
+ endif # if EXPERIMENTAL_USE_JAVA7
ifeq ($(strip $(java_version)),)
$(info ************************************************************)