Use correct install paths in generated Android.mk

Extract Soong's install path and put it in the generated Android.mk file
so that tests get installed in the correct place.

Change-Id: Id4726855c5677855406de20773a5da533bdd4cea
diff --git a/common/androidmk.go b/common/androidmk.go
index 49380e0..a16a652 100644
--- a/common/androidmk.go
+++ b/common/androidmk.go
@@ -38,6 +38,7 @@
 
 type AndroidMkData struct {
 	Class      string
+	SubName    string
 	OutputFile OptionalPath
 	Disabled   bool
 
@@ -141,6 +142,10 @@
 		return err
 	}
 
+	if data.SubName != "" {
+		name += "_" + data.SubName
+	}
+
 	hostCross := false
 	if amod.Host() && amod.HostType() != CurrentHostType() {
 		hostCross = true
diff --git a/common/module.go b/common/module.go
index 8e45952..ee028da 100644
--- a/common/module.go
+++ b/common/module.go
@@ -76,8 +76,8 @@
 	ExpandSources(srcFiles, excludes []string) Paths
 	Glob(outDir, globPattern string, excludes []string) Paths
 
-	InstallFile(installPath OutputPath, srcPath Path, deps ...Path) Path
-	InstallFileName(installPath OutputPath, name string, srcPath Path, deps ...Path) Path
+	InstallFile(installPath OutputPath, srcPath Path, deps ...Path) OutputPath
+	InstallFileName(installPath OutputPath, name string, srcPath Path, deps ...Path) OutputPath
 	CheckbuildFile(srcPath Path)
 
 	AddMissingDependencies(deps []string)
@@ -531,7 +531,7 @@
 }
 
 func (a *androidModuleContext) InstallFileName(installPath OutputPath, name string, srcPath Path,
-	deps ...Path) Path {
+	deps ...Path) OutputPath {
 
 	fullInstallPath := installPath.Join(a, name)
 
@@ -552,7 +552,7 @@
 	return fullInstallPath
 }
 
-func (a *androidModuleContext) InstallFile(installPath OutputPath, srcPath Path, deps ...Path) Path {
+func (a *androidModuleContext) InstallFile(installPath OutputPath, srcPath Path, deps ...Path) OutputPath {
 	return a.InstallFileName(installPath, filepath.Base(srcPath.String()), srcPath, deps...)
 }
 
diff --git a/common/paths.go b/common/paths.go
index 93cad13..554ce3f 100644
--- a/common/paths.go
+++ b/common/paths.go
@@ -478,6 +478,10 @@
 	return filepath.Join(p.config.buildDir, p.path)
 }
 
+func (p OutputPath) RelPathString() string {
+	return p.path
+}
+
 // Join creates a new OutputPath with paths... joined with the current path. The
 // provided paths... may not use '..' to escape from the current path.
 func (p OutputPath) Join(ctx PathContext, paths ...string) OutputPath {