blob: 0538c5299d544a68b3dba092a456e7db380003bf [file] [log] [blame]
The Android Open Source Project88b60792009-03-03 19:28:42 -08001# Selects a Java compiler.
2#
3# Inputs:
Primiano Tucci994c84f2014-06-02 17:37:38 +01004# CUSTOM_JAVA_COMPILER -- "eclipse", "openjdk". or nothing for the system
The Android Open Source Project88b60792009-03-03 19:28:42 -08005# default
Brian Carlstromb6dcef82014-01-09 15:33:06 -08006# ALTERNATE_JAVAC -- the alternate java compiler to use
The Android Open Source Project88b60792009-03-03 19:28:42 -08007#
8# Outputs:
9# COMMON_JAVAC -- Java compiler command with common arguments
Ying Wangad690992013-09-20 17:11:43 -070010#
11
Colin Cross79e2f732016-12-21 14:29:13 -080012ifndef ANDROID_COMPILE_WITH_JACK
Colin Cross75b50422017-07-27 12:34:34 -070013 # TODO(b/64113890, b/35788202): remove PRODUCT_COMPILE_WITH_JACK
14 ifdef PRODUCT_COMPILE_WITH_JACK
15 ANDROID_COMPILE_WITH_JACK := $(PRODUCT_COMPILE_WITH_JACK)
16 else
17 # TODO(b/62038127): remove TARGET_BUILD_APPS check
18 ifdef TARGET_BUILD_APPS
19 ANDROID_COMPILE_WITH_JACK := true
20 else
21 ANDROID_COMPILE_WITH_JACK := false
22 endif
23 endif
Colin Cross79e2f732016-12-21 14:29:13 -080024endif
25
Neil Fuller2428bfe2016-01-15 19:41:26 -080026common_jdk_flags := -Xmaxerrs 9999999
Ying Wangad690992013-09-20 17:11:43 -070027
Tobias Thierer1b53ea02017-07-26 13:59:39 +010028ifeq ($(OVERRIDE_ANDROID_JAVA_HOME),)
Colin Crosse97e6932017-06-30 16:01:45 -070029ANDROID_JAVA_HOME := prebuilts/jdk/jdk8/$(HOST_PREBUILT_TAG)
Tobias Thierer1b53ea02017-07-26 13:59:39 +010030else
31# Use this build toolchain instead of the bundled one.
32ANDROID_JAVA_HOME := $(OVERRIDE_ANDROID_JAVA_HOME)
33endif
Colin Crosse97e6932017-06-30 16:01:45 -070034ANDROID_JAVA_TOOLCHAIN := $(ANDROID_JAVA_HOME)/bin
Colin Cross3a1544a2017-07-24 19:25:17 -070035export JAVA_HOME := $(abspath $(ANDROID_JAVA_HOME))
Colin Crosse97e6932017-06-30 16:01:45 -070036
Brian Carlstromb6dcef82014-01-09 15:33:06 -080037# Use the indexer wrapper to index the codebase instead of the javac compiler
38ifeq ($(ALTERNATE_JAVAC),)
Colin Crosse97e6932017-06-30 16:01:45 -070039JAVACC := $(ANDROID_JAVA_TOOLCHAIN)/javac
Brian Carlstromb6dcef82014-01-09 15:33:06 -080040else
41JAVACC := $(ALTERNATE_JAVAC)
42endif
The Android Open Source Project88b60792009-03-03 19:28:42 -080043
Colin Crosse97e6932017-06-30 16:01:45 -070044JAVA := $(ANDROID_JAVA_TOOLCHAIN)/java
45JAVADOC := $(ANDROID_JAVA_TOOLCHAIN)/javadoc
46JAR := $(ANDROID_JAVA_TOOLCHAIN)/jar
Colin Cross0851df82017-06-30 13:55:38 -070047
Primiano Tucci994c84f2014-06-02 17:37:38 +010048# The actual compiler can be wrapped by setting the JAVAC_WRAPPER var.
49ifdef JAVAC_WRAPPER
50 ifneq ($(JAVAC_WRAPPER),$(firstword $(JAVACC)))
51 JAVACC := $(JAVAC_WRAPPER) $(JAVACC)
52 endif
53endif
54
Colin Crossa12d38a2017-03-22 20:41:14 -070055COMMON_JAVAC := $(JAVACC) -J-Xmx2048M $(common_jdk_flags)
The Android Open Source Project88b60792009-03-03 19:28:42 -080056
Ying Wang447d6962015-09-01 19:12:05 -070057GLOBAL_JAVAC_DEBUG_FLAGS := -g
58
The Android Open Source Project88b60792009-03-03 19:28:42 -080059HOST_JAVAC ?= $(COMMON_JAVAC)
60TARGET_JAVAC ?= $(COMMON_JAVAC)
Brian Carlstromb6dcef82014-01-09 15:33:06 -080061
The Android Open Source Project88b60792009-03-03 19:28:42 -080062#$(info HOST_JAVAC=$(HOST_JAVAC))
63#$(info TARGET_JAVAC=$(TARGET_JAVAC))