Use prebuilt turbine jar for unbundled javac builds.

Test: m -j
Change-Id: If2ab85f8591fe7ab275a1d4fefdd80d871f2c36d
diff --git a/android/package_ctx.go b/android/package_ctx.go
index f781dd4..8e37a83 100644
--- a/android/package_ctx.go
+++ b/android/package_ctx.go
@@ -149,6 +149,15 @@
 	})
 }
 
+func (p AndroidPackageContext) HostJavaToolPath(config interface{}, path string) (Path, error) {
+	ctx := &configErrorWrapper{p, config.(Config), []error{}}
+	pa := PathForOutput(ctx, "host", ctx.config.PrebuiltOS(), "framework", path)
+	if len(ctx.errors) > 0 {
+		return nil, ctx.errors[0]
+	}
+	return pa, nil
+}
+
 // IntermediatesPathVariable returns a Variable whose value is the intermediate
 // directory appended with the supplied path. It may only be called during a Go
 // package's initialization - either from the init() function or as part of a
diff --git a/java/config/config.go b/java/config/config.go
index 94dfa19..5eb44e8 100644
--- a/java/config/config.go
+++ b/java/config/config.go
@@ -93,10 +93,21 @@
 			return path.String(), nil
 		}
 	})
+	pctx.VariableFunc("TurbineJar", func(config interface{}) (string, error) {
+		turbine := "turbine.jar"
+		if config.(android.Config).UnbundledBuild() {
+			return "prebuilts/build-tools/common/framework/" + turbine, nil
+		} else {
+			path, err := pctx.HostJavaToolPath(config, turbine)
+			if err != nil {
+				return "", err
+			}
+			return path.String(), nil
+		}
+	})
 
 	pctx.HostJavaToolVariable("JarjarCmd", "jarjar.jar")
 	pctx.HostJavaToolVariable("DesugarJar", "desugar.jar")
-	pctx.HostJavaToolVariable("TurbineJar", "turbine.jar")
 
 	pctx.HostBinToolVariable("SoongJavacWrapper", "soong_javac_wrapper")