Support sanitizer builds inside make

Make expects libraries built with address sanitizer to be installed into
/data, and can't handle multiple variants of modules.

Change-Id: Ice575ff6f0788a88f296e7b3ee521a2b9771f55f
diff --git a/cc/sanitize.go b/cc/sanitize.go
index 676d5b3..670443b 100644
--- a/cc/sanitize.go
+++ b/cc/sanitize.go
@@ -69,6 +69,7 @@
 
 	SanitizerEnabled bool `blueprint:"mutated"`
 	SanitizeDep      bool `blueprint:"mutated"`
+	InData           bool `blueprint:"mutated"`
 }
 
 type sanitize struct {
@@ -266,6 +267,10 @@
 	return flags
 }
 
+func (sanitize *sanitize) inData() bool {
+	return sanitize.Properties.InData
+}
+
 func (sanitize *sanitize) Sanitizer(t sanitizerType) bool {
 	if sanitize == nil {
 		return false
@@ -314,14 +319,24 @@
 	return func(mctx common.AndroidBottomUpMutatorContext) {
 		if c, ok := mctx.Module().(*Module); ok && c.sanitize != nil {
 			if d, ok := c.linker.(baseLinkerInterface); ok && d.isDependencyRoot() && c.sanitize.Sanitizer(t) {
-				mctx.CreateVariations(t.String())
+				modules := mctx.CreateVariations(t.String())
+				modules[0].(*Module).sanitize.SetSanitizer(t, true)
+				if mctx.AConfig().EmbeddedInMake() {
+					modules[0].(*Module).sanitize.Properties.InData = true
+				}
 			} else if c.sanitize.Properties.SanitizeDep {
-				modules := mctx.CreateVariations("", t.String())
-				modules[0].(*Module).sanitize.SetSanitizer(t, false)
-				modules[1].(*Module).sanitize.SetSanitizer(t, true)
-				modules[1].(*Module).appendVariantName("_" + t.String())
-				modules[0].(*Module).sanitize.Properties.SanitizeDep = false
-				modules[1].(*Module).sanitize.Properties.SanitizeDep = false
+				if mctx.AConfig().EmbeddedInMake() {
+					modules := mctx.CreateVariations(t.String())
+					modules[0].(*Module).sanitize.SetSanitizer(t, true)
+					modules[0].(*Module).sanitize.Properties.InData = true
+				} else {
+					modules := mctx.CreateVariations("", t.String())
+					modules[0].(*Module).sanitize.SetSanitizer(t, false)
+					modules[1].(*Module).sanitize.SetSanitizer(t, true)
+					modules[1].(*Module).appendVariantName("_" + t.String())
+					modules[0].(*Module).sanitize.Properties.SanitizeDep = false
+					modules[1].(*Module).sanitize.Properties.SanitizeDep = false
+				}
 			}
 			c.sanitize.Properties.SanitizeDep = false
 		}