Run bpfix at the end of androidmk

Bug: 38351765
Test: androidmk Android.mk > Android.bp
Change-Id: Iefcae1b01f4e915ec20782b302ba4350a20d0f1a
diff --git a/androidmk/Android.bp b/androidmk/Android.bp
index 67baf0a..442452f 100644
--- a/androidmk/Android.bp
+++ b/androidmk/Android.bp
@@ -29,6 +29,7 @@
     deps: [
         "androidmk-parser",
         "blueprint-parser",
+        "bpfix-lib",
     ],
 }
 
diff --git a/androidmk/cmd/androidmk/androidmk.go b/androidmk/cmd/androidmk/androidmk.go
index 1d94b65..d26643a 100644
--- a/androidmk/cmd/androidmk/androidmk.go
+++ b/androidmk/cmd/androidmk/androidmk.go
@@ -8,6 +8,8 @@
 	"strings"
 	"text/scanner"
 
+	"android/soong/bpfix/bpfix"
+
 	mkparser "android/soong/androidmk/parser"
 
 	bpparser "github.com/google/blueprint/parser"
@@ -176,10 +178,18 @@
 		}
 	}
 
-	out, err := bpparser.Print(&bpparser.File{
+	tree := &bpparser.File{
 		Defs:     file.defs,
 		Comments: file.comments,
-	})
+	}
+
+	// check for common supported but undesirable structures and clean them up
+	fixed, err := bpfix.FixTree(tree, bpfix.NewFixRequest().AddAll())
+	if err != nil {
+		return "", []error{err}
+	}
+
+	out, err := bpparser.Print(fixed)
 	if err != nil {
 		return "", []error{err}
 	}