Add experimental flag to support OpenJDK builds.

bug: 8992787

Change-Id: Ice0fc7dea1d855914fdab9a01b1ac9c722031288
diff --git a/core/main.mk b/core/main.mk
index fd9ac10..18a1099 100644
--- a/core/main.mk
+++ b/core/main.mk
@@ -140,7 +140,18 @@
 $(error Directory names containing spaces not supported)
 endif
 
-# Check for the corrent jdk
+# Check for the current jdk
+ifneq ($(EXPERIMENTAL_USE_JAVA7_OPENJDK),)
+# The user asked for java7 openjdk, so check that the host
+# java version is really openjdk
+ifeq ($(shell java -version 2>&1 | grep -i openjdk),)
+$(info ************************************************************)
+$(info You asked for an OpenJDK 7 build but your version is)
+$(info $(shell java -version 2>&1 | head -n 2).)
+$(info ************************************************************)
+$(error stop)
+endif # java version is not OpenJdk
+else # if EXPERIMENTAL_USE_JAVA7_OPENJDK
 ifneq ($(shell java -version 2>&1 | grep -i openjdk),)
 $(info ************************************************************)
 $(info You are attempting to build with an unsupported JDK.)
@@ -150,17 +161,30 @@
 $(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html)
 $(info ************************************************************)
 $(error stop)
-endif
+endif # java version is not Sun Oracle JDK
+endif # if EXPERIMENTAL_USE_JAVA7_OPENJDK
 
-# Check for the correct version of java
+# 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"
+required_javac_version := "1.7"
+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[\. "$$]')
+else # if EXPERIMENTAL_USE_JAVA7_OPENJDK
+required_version := "JavaSE 1.6"
+required_javac_version := "1.6"
 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[\. "$$]')
+endif # if EXPERIMENTAL_USE_JAVA7_OPENJDK
+
 ifeq ($(strip $(java_version)),)
 $(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 The correct version is: Java SE 1.6.)
+$(info The required version is: $(required_version))
 $(info $(space))
 $(info Please follow the machine setup instructions at)
 $(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html)
@@ -169,14 +193,13 @@
 endif
 
 # Check for the correct version of javac
-javac_version := $(shell javac -version 2>&1 | head -n 1 | grep '[ "]1\.6[\. "$$]')
 ifeq ($(strip $(javac_version)),)
 $(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 The correct version is: 1.6.)
+$(info The required version is: $(required_javac_version))
 $(info $(space))
 $(info Please follow the machine setup instructions at)
 $(info $(space)$(space)$(space)$(space)https://source.android.com/source/download.html)