TBR Generate mojom files and depend on correct packages

Change-Id: I21e3d79af3d6854cd77217be6101a2b5c88e1780
diff --git a/.gitignore b/.gitignore
index 360baf2..aa1ee85 100644
--- a/.gitignore
+++ b/.gitignore
@@ -2,3 +2,4 @@
 .idea/
 *.iml
 gen/
+mojom/mojo/public/interfaces/bindings/mojom_types.mojom
diff --git a/Makefile b/Makefile
index cc874fc..b48cd9c 100644
--- a/Makefile
+++ b/Makefile
@@ -10,5 +10,22 @@
 	MOJO_SHARED_LIB := $(PWD)/gen/lib/linux_amd64/libsystem_thunk.a
 endif
 
-$(BUILD_DIR)/v23proxy.mojo: $(MOJO_SHARED_LIB)
+build: $(BUILD_DIR)/v23proxy.mojo
+
+$(BUILD_DIR)/v23proxy.mojo: $(MOJO_SHARED_LIB) gen/go/src/mojom/v23proxy/v23proxy.mojom.go | mojo-env-check
 	$(call MOGO_BUILD,v.io/x/mojo/proxy,$@)
+
+mojom/mojo/public/interfaces/bindings/mojom_types.mojom: $(MOJO_DIR)/src/mojo/public/interfaces/bindings/mojom_types.mojom
+	mkdir -p mojom/mojo/public/interfaces/bindings
+	ln -s $(MOJO_DIR)/src/mojo/public/interfaces/bindings/mojom_types.mojom mojom/mojo/public/interfaces/bindings/mojom_types.mojom
+
+gen/go/src/mojo/public/interfaces/bindings/mojom_types/mojom_types.mojom.go: mojom/mojo/public/interfaces/bindings/mojom_types.mojom | mojo-env-check
+	$(call MOJOM_GEN,$<,mojom,gen,go)
+	gofmt -w $@
+
+gen/go/src/mojom/v23proxy/v23proxy.mojom.go: mojom/mojom/v23proxy.mojom gen/go/src/mojo/public/interfaces/bindings/mojom_types/mojom_types.mojom.go | mojo-env-check
+	$(call MOJOM_GEN,$<,mojom,gen,go)
+	gofmt -w $@
+
+
+.PHONY: build
diff --git a/go/src/v.io/x/mojo/client/client.go b/go/src/v.io/x/mojo/client/client.go
index 5eb61eb..388ee3e 100644
--- a/go/src/v.io/x/mojo/client/client.go
+++ b/go/src/v.io/x/mojo/client/client.go
@@ -4,7 +4,7 @@
 	"mojo/public/go/application"
 	"mojo/public/go/bindings"
 
-	"mojo/public/interfaces/bindings/v23proxy"
+	"mojom/v23proxy"
 )
 
 func ConnectToRemoteService(ctx application.Context, r application.ServiceRequest, v23Name string) {
diff --git a/go/src/v.io/x/mojo/proxy/proxy.go b/go/src/v.io/x/mojo/proxy/proxy.go
index e88b7c7..88fb4f9 100644
--- a/go/src/v.io/x/mojo/proxy/proxy.go
+++ b/go/src/v.io/x/mojo/proxy/proxy.go
@@ -11,11 +11,12 @@
 	"v.io/v23/security"
 	"v.io/v23/vdl"
 
+	"mojom/v23proxy"
+
 	"mojo/public/go/application"
 	"mojo/public/go/bindings"
 	"mojo/public/go/system"
 	"mojo/public/interfaces/bindings/mojom_types"
-	"mojo/public/interfaces/bindings/v23proxy"
 
 	"v.io/x/mojo/transcoder"
 	_ "v.io/x/ref/runtime/factories/static"
diff --git a/mojom/mojom/v23proxy.mojom b/mojom/mojom/v23proxy.mojom
new file mode 100644
index 0000000..acdbeb4
--- /dev/null
+++ b/mojom/mojom/v23proxy.mojom
@@ -0,0 +1,7 @@
+module v23proxy;
+
+import "../mojo/public/interfaces/bindings/mojom_types.mojom";
+
+interface V23 {
+  SetupProxy(string v23Name, mojo.bindings.types.MojomInterface ifaceSig, map<string, mojo.bindings.types.UserDefinedType> mapping, string serviceName, handle<message_pipe> futureMessages);
+};