Run makevars singleton after all other registered singletons

Move the makevars singleton after all dyamically registered
singletons, but before the env singleton, to ensure that it
can reference values initialized in other singletons.

Test: m checkbuild
Change-Id: I6ea45d3a174b94d4e89f3168894399e7022733e4
diff --git a/android/makevars.go b/android/makevars.go
index 366bb6b..2c2fb6f 100644
--- a/android/makevars.go
+++ b/android/makevars.go
@@ -92,10 +92,6 @@
 
 ///////////////////////////////////////////////////////////////////////////////
 
-func init() {
-	RegisterSingletonType("makevars", makeVarsSingletonFunc)
-}
-
 func makeVarsSingletonFunc() Singleton {
 	return &makeVarsSingleton{}
 }
diff --git a/android/register.go b/android/register.go
index 6c88af1..10e14fe 100644
--- a/android/register.go
+++ b/android/register.go
@@ -99,5 +99,9 @@
 
 	registerMutators(ctx.Context, preArch, preDeps, postDeps)
 
+	// Register makevars after other singletons so they can export values through makevars
+	ctx.RegisterSingletonType("makevars", SingletonFactoryAdaptor(makeVarsSingletonFunc))
+
+	// Register env last so that it can track all used environment variables
 	ctx.RegisterSingletonType("env", SingletonFactoryAdaptor(EnvSingleton))
 }