Hybrid soong/mk build using prebuilts

Change-Id: I96daa69af27bd19c8bfbe327a1318f51c738fc03
diff --git a/cc/androidmk.go b/cc/androidmk.go
new file mode 100644
index 0000000..7554ef4
--- /dev/null
+++ b/cc/androidmk.go
@@ -0,0 +1,83 @@
+// Copyright 2015 Google Inc. All rights reserved.
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//     http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+
+package cc
+
+import (
+	"io"
+	"path/filepath"
+	"strings"
+
+	"android/soong/common"
+)
+
+func (c *CCLibrary) AndroidMk() (ret common.AndroidMkData) {
+	if c.static() {
+		ret.Class = "STATIC_LIBRARIES"
+	} else {
+		ret.Class = "SHARED_LIBRARIES"
+	}
+	ret.OutputFile = c.outputFile()
+	ret.Extra = func(name, prefix, outputFile string, arch common.Arch) (ret []string) {
+		exportedIncludes := c.exportedFlags()
+		for i := range exportedIncludes {
+			exportedIncludes[i] = strings.TrimPrefix(exportedIncludes[i], "-I")
+		}
+		if len(exportedIncludes) > 0 {
+			ret = append(ret, "LOCAL_EXPORT_C_INCLUDE_DIRS := "+strings.Join(exportedIncludes, " "))
+		}
+
+		ret = append(ret, "LOCAL_MODULE_SUFFIX := "+filepath.Ext(outputFile))
+		ret = append(ret, "LOCAL_SHARED_LIBRARIES_"+arch.ArchType.String()+" := "+strings.Join(c.savedDepNames.SharedLibs, " "))
+
+		if c.Properties.Relative_install_path != "" {
+			ret = append(ret, "LOCAL_MODULE_RELATIVE_PATH := "+c.Properties.Relative_install_path)
+		}
+
+		// These are already included in LOCAL_SHARED_LIBRARIES
+		ret = append(ret, "LOCAL_CXX_STL := none")
+		ret = append(ret, "LOCAL_SYSTEM_SHARED_LIBRARIES :=")
+
+		return
+	}
+	return
+}
+
+func (c *ccObject) AndroidMk() (ret common.AndroidMkData) {
+	ret.OutputFile = c.outputFile()
+	ret.Custom = func(w io.Writer, name, prefix string) {
+		out := c.outputFile()
+
+		io.WriteString(w, "$("+prefix+"TARGET_OUT_INTERMEDIATE_LIBRARIES)/"+name+objectExtension+": "+out+" | $(ACP)\n")
+		io.WriteString(w, "\t$(copy-file-to-target)\n")
+	}
+	return
+}
+
+func (c *CCBinary) AndroidMk() (ret common.AndroidMkData) {
+	ret.Class = "EXECUTABLES"
+	ret.Extra = func(name, prefix, outputFile string, arch common.Arch) []string {
+		ret := []string{
+			"LOCAL_CXX_STL := none",
+			"LOCAL_SYSTEM_SHARED_LIBRARIES :=",
+			"LOCAL_SHARED_LIBRARIES_" + arch.ArchType.String() + " += " + strings.Join(c.savedDepNames.SharedLibs, " "),
+		}
+		if c.Properties.Relative_install_path != "" {
+			ret = append(ret, "LOCAL_MODULE_RELATIVE_PATH_"+arch.ArchType.String()+" := "+c.Properties.Relative_install_path)
+		}
+		return ret
+	}
+	ret.OutputFile = c.outputFile()
+	return
+}