Revert "Support per-module MakeVars"

This reverts commit 2019658b86efa7c3ff1ad3853e408cafb32c2953.

Reason for revert: broke builds where makefiles were using M4 without depending upon it

Change-Id: I18304246e7a8a8f8c2620dd2c65ed77acd256be2
diff --git a/android/makevars.go b/android/makevars.go
index 86f4b42..ff7c8e4 100644
--- a/android/makevars.go
+++ b/android/makevars.go
@@ -17,7 +17,6 @@
 import (
 	"bytes"
 	"fmt"
-	"sort"
 	"strconv"
 	"strings"
 
@@ -35,16 +34,43 @@
 }
 
 ///////////////////////////////////////////////////////////////////////////////
-
-// BaseMakeVarsContext contains the common functions for other packages to use
-// to declare make variables
-type BaseMakeVarsContext interface {
+// Interface for other packages to use to declare make variables
+type MakeVarsContext interface {
 	Config() Config
 	DeviceConfig() DeviceConfig
 	AddNinjaFileDeps(deps ...string)
 
+	ModuleName(module blueprint.Module) string
+	ModuleDir(module blueprint.Module) string
+	ModuleSubDir(module blueprint.Module) string
+	ModuleType(module blueprint.Module) string
+	BlueprintFile(module blueprint.Module) string
+
+	ModuleErrorf(module blueprint.Module, format string, args ...interface{})
+	Errorf(format string, args ...interface{})
 	Failed() bool
 
+	VisitAllModules(visit func(Module))
+	VisitAllModulesIf(pred func(Module) bool, visit func(Module))
+
+	// Verify the make variable matches the Soong version, fail the build
+	// if it does not. If the make variable is empty, just set it.
+	Strict(name, ninjaStr string)
+	// Check to see if the make variable matches the Soong version, warn if
+	// it does not. If the make variable is empty, just set it.
+	Check(name, ninjaStr string)
+
+	// These are equivalent to the above, but sort the make and soong
+	// variables before comparing them. They also show the unique entries
+	// in each list when displaying the difference, instead of the entire
+	// string.
+	StrictSorted(name, ninjaStr string)
+	CheckSorted(name, ninjaStr string)
+
+	// Evaluates a ninja string and returns the result. Used if more
+	// complicated modification needs to happen before giving it to Make.
+	Eval(ninjaStr string) (string, error)
+
 	// These are equivalent to Strict and Check, but do not attempt to
 	// evaluate the values before writing them to the Makefile. They can
 	// be used when all ninja variables have already been evaluated through
@@ -82,48 +108,6 @@
 	DistForGoalsWithFilename(goals []string, path Path, filename string)
 }
 
-// MakeVarsContext contains the set of functions available for MakeVarsProvider
-// and SingletonMakeVarsProvider implementations.
-type MakeVarsContext interface {
-	BaseMakeVarsContext
-
-	ModuleName(module blueprint.Module) string
-	ModuleDir(module blueprint.Module) string
-	ModuleSubDir(module blueprint.Module) string
-	ModuleType(module blueprint.Module) string
-	BlueprintFile(module blueprint.Module) string
-
-	ModuleErrorf(module blueprint.Module, format string, args ...interface{})
-	Errorf(format string, args ...interface{})
-
-	VisitAllModules(visit func(Module))
-	VisitAllModulesIf(pred func(Module) bool, visit func(Module))
-
-	// Verify the make variable matches the Soong version, fail the build
-	// if it does not. If the make variable is empty, just set it.
-	Strict(name, ninjaStr string)
-	// Check to see if the make variable matches the Soong version, warn if
-	// it does not. If the make variable is empty, just set it.
-	Check(name, ninjaStr string)
-
-	// These are equivalent to the above, but sort the make and soong
-	// variables before comparing them. They also show the unique entries
-	// in each list when displaying the difference, instead of the entire
-	// string.
-	StrictSorted(name, ninjaStr string)
-	CheckSorted(name, ninjaStr string)
-
-	// Evaluates a ninja string and returns the result. Used if more
-	// complicated modification needs to happen before giving it to Make.
-	Eval(ninjaStr string) (string, error)
-}
-
-// MakeVarsModuleContext contains the set of functions available for modules
-// implementing the ModuleMakeVarsProvider interface.
-type MakeVarsModuleContext interface {
-	BaseMakeVarsContext
-}
-
 var _ PathContext = MakeVarsContext(nil)
 
 type MakeVarsProvider func(ctx MakeVarsContext)
@@ -151,14 +135,6 @@
 	return func(ctx MakeVarsContext) { singleton.MakeVars(ctx) }
 }
 
-// ModuleMakeVarsProvider is a Module with an extra method to provide extra values to be exported to Make.
-type ModuleMakeVarsProvider interface {
-	Module
-
-	// MakeVars uses a MakeVarsModuleContext to provide extra values to be exported to Make.
-	MakeVars(ctx MakeVarsModuleContext)
-}
-
 ///////////////////////////////////////////////////////////////////////////////
 
 func makeVarsSingletonFunc() Singleton {
@@ -233,45 +209,10 @@
 		dists = append(dists, mctx.dists...)
 	}
 
-	ctx.VisitAllModules(func(m Module) {
-		if provider, ok := m.(ModuleMakeVarsProvider); ok {
-			mctx := &makeVarsContext{
-				SingletonContext: ctx,
-			}
-
-			provider.MakeVars(mctx)
-
-			vars = append(vars, mctx.vars...)
-			phonies = append(phonies, mctx.phonies...)
-			dists = append(dists, mctx.dists...)
-		}
-	})
-
 	if ctx.Failed() {
 		return
 	}
 
-	sort.Slice(vars, func(i, j int) bool {
-		return vars[i].name < vars[j].name
-	})
-	sort.Slice(phonies, func(i, j int) bool {
-		return phonies[i].name < phonies[j].name
-	})
-	lessArr := func(a, b []string) bool {
-		if len(a) == len(b) {
-			for i := range a {
-				if a[i] < b[i] {
-					return true
-				}
-			}
-			return false
-		}
-		return len(a) < len(b)
-	}
-	sort.Slice(dists, func(i, j int) bool {
-		return lessArr(dists[i].goals, dists[j].goals) || lessArr(dists[i].paths, dists[j].paths)
-	})
-
 	outBytes := s.writeVars(vars)
 
 	if err := pathtools.WriteFileIfChanged(outFile, outBytes, 0666); err != nil {