Build files for USB support libraries

Change-Id: Ibaf0aae2c9fe61f6af2af7f41bd3b74d5ecdab70
diff --git a/host/libs/Android.bp b/host/libs/Android.bp
index 7ad9281..c72b589 100644
--- a/host/libs/Android.bp
+++ b/host/libs/Android.bp
@@ -16,4 +16,6 @@
 subdirs = [
     "config",
     "ivserver",
+    "vadb",
+    "usbip",
 ]
diff --git a/host/libs/usbip/Android.bp b/host/libs/usbip/Android.bp
new file mode 100644
index 0000000..7824843
--- /dev/null
+++ b/host/libs/usbip/Android.bp
@@ -0,0 +1,20 @@
+cc_library_host_static {
+    name: "libusbip",
+    srcs: [
+        "client.cpp",
+        "device_pool.cpp",
+        "messages.cpp",
+        "server.cpp",
+        "vhci_instrument.cpp",
+    ],
+    header_libs: [
+        "cuttlefish_glog",
+    ],
+    static_libs: [
+	"libcuttlefish_fs",
+	"cuttlefish_auto_resources",
+	"libbase",
+	"libgflags",
+    ],
+    defaults: ["cuttlefish_host"],
+}
diff --git a/host/vadb/usbip/README.md b/host/libs/usbip/README.md
similarity index 100%
rename from host/vadb/usbip/README.md
rename to host/libs/usbip/README.md
diff --git a/host/vadb/usbip/client.cpp b/host/libs/usbip/client.cpp
similarity index 98%
rename from host/vadb/usbip/client.cpp
rename to host/libs/usbip/client.cpp
index 317e9e4..2e8ee0e 100644
--- a/host/vadb/usbip/client.cpp
+++ b/host/libs/usbip/client.cpp
@@ -13,13 +13,13 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include "host/vadb/usbip/client.h"
+#include "host/libs/usbip/client.h"
 
 #include <glog/logging.h>
 #include <iostream>
 
-#include "host/vadb/usbip/device.h"
-#include "host/vadb/usbip/messages.h"
+#include "host/libs/usbip/device.h"
+#include "host/libs/usbip/messages.h"
 
 namespace vadb {
 namespace usbip {
diff --git a/host/vadb/usbip/client.h b/host/libs/usbip/client.h
similarity index 96%
rename from host/vadb/usbip/client.h
rename to host/libs/usbip/client.h
index 577524b..c0704a1 100644
--- a/host/vadb/usbip/client.h
+++ b/host/libs/usbip/client.h
@@ -17,8 +17,8 @@
 
 #include "common/libs/fs/shared_fd.h"
 #include "common/libs/fs/shared_select.h"
-#include "host/vadb/usbip/device_pool.h"
-#include "host/vadb/usbip/messages.h"
+#include "host/libs/usbip/device_pool.h"
+#include "host/libs/usbip/messages.h"
 
 namespace vadb {
 namespace usbip {
diff --git a/host/vadb/usbip/device.h b/host/libs/usbip/device.h
similarity index 98%
rename from host/vadb/usbip/device.h
rename to host/libs/usbip/device.h
index 9764ed2..f310c8e 100644
--- a/host/vadb/usbip/device.h
+++ b/host/libs/usbip/device.h
@@ -21,7 +21,7 @@
 #include <memory>
 #include <vector>
 
-#include "host/vadb/usbip/messages.h"
+#include "host/libs/usbip/messages.h"
 
 namespace vadb {
 namespace usbip {
diff --git a/host/vadb/usbip/device_pool.cpp b/host/libs/usbip/device_pool.cpp
similarity index 95%
rename from host/vadb/usbip/device_pool.cpp
rename to host/libs/usbip/device_pool.cpp
index a068be2..22f334b 100644
--- a/host/vadb/usbip/device_pool.cpp
+++ b/host/libs/usbip/device_pool.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "host/vadb/usbip/device_pool.h"
+#include "host/libs/usbip/device_pool.h"
 
 #include <glog/logging.h>
 
diff --git a/host/vadb/usbip/device_pool.h b/host/libs/usbip/device_pool.h
similarity index 97%
rename from host/vadb/usbip/device_pool.h
rename to host/libs/usbip/device_pool.h
index 4a7c637..1ba8527 100644
--- a/host/vadb/usbip/device_pool.h
+++ b/host/libs/usbip/device_pool.h
@@ -18,7 +18,7 @@
 #include <map>
 #include <string>
 
-#include "host/vadb/usbip/device.h"
+#include "host/libs/usbip/device.h"
 
 namespace vadb {
 namespace usbip {
diff --git a/host/vadb/usbip/messages.cpp b/host/libs/usbip/messages.cpp
similarity index 98%
rename from host/vadb/usbip/messages.cpp
rename to host/libs/usbip/messages.cpp
index 0c57023..27af986 100644
--- a/host/vadb/usbip/messages.cpp
+++ b/host/libs/usbip/messages.cpp
@@ -13,7 +13,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-#include "host/vadb/usbip/messages.h"
+#include "host/libs/usbip/messages.h"
 
 #include <netinet/in.h>
 #include <iostream>
diff --git a/host/vadb/usbip/messages.h b/host/libs/usbip/messages.h
similarity index 100%
rename from host/vadb/usbip/messages.h
rename to host/libs/usbip/messages.h
diff --git a/host/vadb/usbip/server.cpp b/host/libs/usbip/server.cpp
similarity index 98%
rename from host/vadb/usbip/server.cpp
rename to host/libs/usbip/server.cpp
index ceb70e8..299da22 100644
--- a/host/vadb/usbip/server.cpp
+++ b/host/libs/usbip/server.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "host/vadb/usbip/server.h"
+#include "host/libs/usbip/server.h"
 
 #include <glog/logging.h>
 #include <netinet/in.h>
diff --git a/host/vadb/usbip/server.h b/host/libs/usbip/server.h
similarity index 95%
rename from host/vadb/usbip/server.h
rename to host/libs/usbip/server.h
index 06b5e30..6413617 100644
--- a/host/vadb/usbip/server.h
+++ b/host/libs/usbip/server.h
@@ -19,8 +19,8 @@
 #include <string>
 
 #include "common/libs/fs/shared_fd.h"
-#include "host/vadb/usbip/client.h"
-#include "host/vadb/usbip/device_pool.h"
+#include "host/libs/usbip/client.h"
+#include "host/libs/usbip/device_pool.h"
 
 namespace vadb {
 namespace usbip {
diff --git a/host/vadb/usbip/vhci_instrument.cpp b/host/libs/usbip/vhci_instrument.cpp
similarity index 99%
rename from host/vadb/usbip/vhci_instrument.cpp
rename to host/libs/usbip/vhci_instrument.cpp
index 8f484f2..53bdf3b 100644
--- a/host/vadb/usbip/vhci_instrument.cpp
+++ b/host/libs/usbip/vhci_instrument.cpp
@@ -27,7 +27,7 @@
 #include "common/libs/fs/shared_select.h"
 
 #include "common/libs/fs/shared_fd.h"
-#include "host/vadb/usbip/vhci_instrument.h"
+#include "host/libs/usbip/vhci_instrument.h"
 
 namespace vadb {
 namespace usbip {
diff --git a/host/vadb/usbip/vhci_instrument.h b/host/libs/usbip/vhci_instrument.h
similarity index 100%
rename from host/vadb/usbip/vhci_instrument.h
rename to host/libs/usbip/vhci_instrument.h
diff --git a/host/libs/vadb/Android.bp b/host/libs/vadb/Android.bp
new file mode 100644
index 0000000..c8b9ea2
--- /dev/null
+++ b/host/libs/vadb/Android.bp
@@ -0,0 +1,22 @@
+cc_library_host_static {
+    name: "libvadb",
+    srcs: [
+        "usb_cmd_attach.cpp",
+        "usb_cmd_control_transfer.cpp",
+        "usb_cmd_data_transfer.cpp",
+        "usb_cmd_device_list.cpp",
+        "usb_cmd_heartbeat.cpp",
+        "virtual_adb_client.cpp",
+        "virtual_adb_server.cpp",
+    ],
+    header_libs: [
+        "cuttlefish_glog",
+    ],
+    static_libs: [
+	"libcuttlefish_fs",
+	"cuttlefish_auto_resources",
+	"libbase",
+	"libgflags",
+    ],
+    defaults: ["cuttlefish_host"],
+}
diff --git a/host/vadb/README.md b/host/libs/vadb/README.md
similarity index 100%
rename from host/vadb/README.md
rename to host/libs/vadb/README.md
diff --git a/host/vadb/usb_cmd.h b/host/libs/vadb/usb_cmd.h
similarity index 100%
rename from host/vadb/usb_cmd.h
rename to host/libs/vadb/usb_cmd.h
diff --git a/host/vadb/usb_cmd_attach.cpp b/host/libs/vadb/usb_cmd_attach.cpp
similarity index 96%
rename from host/vadb/usb_cmd_attach.cpp
rename to host/libs/vadb/usb_cmd_attach.cpp
index 9c3dcda..af4f1a5 100644
--- a/host/vadb/usb_cmd_attach.cpp
+++ b/host/libs/vadb/usb_cmd_attach.cpp
@@ -16,7 +16,7 @@
 #include <glog/logging.h>
 
 #include "common/libs/usbforward/protocol.h"
-#include "host/vadb/usb_cmd_attach.h"
+#include "host/libs/vadb/usb_cmd_attach.h"
 
 namespace vadb {
 bool USBCmdAttach::OnRequest(const avd::SharedFD& fd) {
diff --git a/host/vadb/usb_cmd_attach.h b/host/libs/vadb/usb_cmd_attach.h
similarity index 97%
rename from host/vadb/usb_cmd_attach.h
rename to host/libs/vadb/usb_cmd_attach.h
index 7bb36c6..c814b90 100644
--- a/host/vadb/usb_cmd_attach.h
+++ b/host/libs/vadb/usb_cmd_attach.h
@@ -15,7 +15,7 @@
  */
 #pragma once
 
-#include "host/vadb/usb_cmd.h"
+#include "host/libs/vadb/usb_cmd.h"
 
 namespace vadb {
 // Request remote device attach (~open).
@@ -41,4 +41,4 @@
   USBCmdAttach(const USBCmdAttach& other) = delete;
   USBCmdAttach& operator=(const USBCmdAttach& other) = delete;
 };
-}  // namespace vadb
\ No newline at end of file
+}  // namespace vadb
diff --git a/host/vadb/usb_cmd_control_transfer.cpp b/host/libs/vadb/usb_cmd_control_transfer.cpp
similarity index 97%
rename from host/vadb/usb_cmd_control_transfer.cpp
rename to host/libs/vadb/usb_cmd_control_transfer.cpp
index 189c174..2d8ce5c 100644
--- a/host/vadb/usb_cmd_control_transfer.cpp
+++ b/host/libs/vadb/usb_cmd_control_transfer.cpp
@@ -15,7 +15,7 @@
  */
 #include <glog/logging.h>
 
-#include "host/vadb/usb_cmd_control_transfer.h"
+#include "host/libs/vadb/usb_cmd_control_transfer.h"
 
 namespace vadb {
 USBCmdControlTransfer::USBCmdControlTransfer(
diff --git a/host/vadb/usb_cmd_control_transfer.h b/host/libs/vadb/usb_cmd_control_transfer.h
similarity index 96%
rename from host/vadb/usb_cmd_control_transfer.h
rename to host/libs/vadb/usb_cmd_control_transfer.h
index c9ad2ac..7723de6 100644
--- a/host/vadb/usb_cmd_control_transfer.h
+++ b/host/libs/vadb/usb_cmd_control_transfer.h
@@ -20,8 +20,8 @@
 #include <stdint.h>
 
 #include "common/libs/usbforward/protocol.h"
-#include "host/vadb/usb_cmd.h"
-#include "host/vadb/usbip/device.h"
+#include "host/libs/vadb/usb_cmd.h"
+#include "host/libs/usbip/device.h"
 
 namespace vadb {
 // Execute control transfer.
diff --git a/host/vadb/usb_cmd_data_transfer.cpp b/host/libs/vadb/usb_cmd_data_transfer.cpp
similarity index 97%
rename from host/vadb/usb_cmd_data_transfer.cpp
rename to host/libs/vadb/usb_cmd_data_transfer.cpp
index 3dcfacd..5c8031d 100644
--- a/host/vadb/usb_cmd_data_transfer.cpp
+++ b/host/libs/vadb/usb_cmd_data_transfer.cpp
@@ -15,7 +15,7 @@
  */
 #include <glog/logging.h>
 
-#include "host/vadb/usb_cmd_data_transfer.h"
+#include "host/libs/vadb/usb_cmd_data_transfer.h"
 
 namespace vadb {
 USBCmdDataTransfer::USBCmdDataTransfer(
diff --git a/host/vadb/usb_cmd_data_transfer.h b/host/libs/vadb/usb_cmd_data_transfer.h
similarity index 95%
rename from host/vadb/usb_cmd_data_transfer.h
rename to host/libs/vadb/usb_cmd_data_transfer.h
index f07b0ab..5cb3cb3 100644
--- a/host/vadb/usb_cmd_data_transfer.h
+++ b/host/libs/vadb/usb_cmd_data_transfer.h
@@ -19,8 +19,8 @@
 #include <stdint.h>
 
 #include "common/libs/usbforward/protocol.h"
-#include "host/vadb/usb_cmd.h"
-#include "host/vadb/usbip/device.h"
+#include "host/libs/vadb/usb_cmd.h"
+#include "host/libs/usbip/device.h"
 
 namespace vadb {
 // Execute control transfer.
diff --git a/host/vadb/usb_cmd_device_list.cpp b/host/libs/vadb/usb_cmd_device_list.cpp
similarity index 97%
rename from host/vadb/usb_cmd_device_list.cpp
rename to host/libs/vadb/usb_cmd_device_list.cpp
index 03ccb7c..4fb514e 100644
--- a/host/vadb/usb_cmd_device_list.cpp
+++ b/host/libs/vadb/usb_cmd_device_list.cpp
@@ -15,7 +15,7 @@
  */
 #include <glog/logging.h>
 
-#include "host/vadb/usb_cmd_device_list.h"
+#include "host/libs/vadb/usb_cmd_device_list.h"
 
 namespace vadb {
 bool USBCmdDeviceList::OnRequest(const avd::SharedFD& data) {
diff --git a/host/vadb/usb_cmd_device_list.h b/host/libs/vadb/usb_cmd_device_list.h
similarity index 97%
rename from host/vadb/usb_cmd_device_list.h
rename to host/libs/vadb/usb_cmd_device_list.h
index 911db81..9438b7b 100644
--- a/host/vadb/usb_cmd_device_list.h
+++ b/host/libs/vadb/usb_cmd_device_list.h
@@ -18,7 +18,7 @@
 #include <functional>
 #include <vector>
 #include "common/libs/usbforward/protocol.h"
-#include "host/vadb/usb_cmd.h"
+#include "host/libs/vadb/usb_cmd.h"
 
 namespace vadb {
 // Request device list from remote host.
diff --git a/host/vadb/usb_cmd_heartbeat.cpp b/host/libs/vadb/usb_cmd_heartbeat.cpp
similarity index 95%
rename from host/vadb/usb_cmd_heartbeat.cpp
rename to host/libs/vadb/usb_cmd_heartbeat.cpp
index 8584de6..f2d3b48 100644
--- a/host/vadb/usb_cmd_heartbeat.cpp
+++ b/host/libs/vadb/usb_cmd_heartbeat.cpp
@@ -16,7 +16,7 @@
 #include <glog/logging.h>
 
 #include "common/libs/usbforward/protocol.h"
-#include "host/vadb/usb_cmd_heartbeat.h"
+#include "host/libs/vadb/usb_cmd_heartbeat.h"
 
 namespace vadb {
 bool USBCmdHeartbeat::OnRequest(const avd::SharedFD& fd) { return true; }
diff --git a/host/vadb/usb_cmd_heartbeat.h b/host/libs/vadb/usb_cmd_heartbeat.h
similarity index 97%
rename from host/vadb/usb_cmd_heartbeat.h
rename to host/libs/vadb/usb_cmd_heartbeat.h
index 894c5f2..6d6a586 100644
--- a/host/vadb/usb_cmd_heartbeat.h
+++ b/host/libs/vadb/usb_cmd_heartbeat.h
@@ -15,7 +15,7 @@
  */
 #pragma once
 
-#include "host/vadb/usb_cmd.h"
+#include "host/libs/vadb/usb_cmd.h"
 
 namespace vadb {
 // Request remote device attach (~open).
diff --git a/host/vadb/virtual_adb_client.cpp b/host/libs/vadb/virtual_adb_client.cpp
similarity index 94%
rename from host/vadb/virtual_adb_client.cpp
rename to host/libs/vadb/virtual_adb_client.cpp
index b165287..3abf93a 100644
--- a/host/vadb/virtual_adb_client.cpp
+++ b/host/libs/vadb/virtual_adb_client.cpp
@@ -15,13 +15,19 @@
  */
 #include <algorithm>
 #include <memory>
+#include <gflags/gflags.h>
+
 #include "common/libs/fs/shared_select.h"
-#include "host/vadb/usb_cmd_attach.h"
-#include "host/vadb/usb_cmd_control_transfer.h"
-#include "host/vadb/usb_cmd_data_transfer.h"
-#include "host/vadb/usb_cmd_device_list.h"
-#include "host/vadb/usb_cmd_heartbeat.h"
-#include "host/vadb/virtual_adb_client.h"
+#include "host/libs/vadb/usb_cmd_attach.h"
+#include "host/libs/vadb/usb_cmd_control_transfer.h"
+#include "host/libs/vadb/usb_cmd_data_transfer.h"
+#include "host/libs/vadb/usb_cmd_device_list.h"
+#include "host/libs/vadb/usb_cmd_heartbeat.h"
+#include "host/libs/vadb/virtual_adb_client.h"
+
+DEFINE_bool(debug_adb_client, false, "Turn on verbose logging in the virtual_adb_client.cpp");
+
+#define VLOG(X) if (FLAGS_debug_adb_client) LOG(VERBOSE)
 
 namespace vadb {
 namespace {
diff --git a/host/vadb/virtual_adb_client.h b/host/libs/vadb/virtual_adb_client.h
similarity index 95%
rename from host/vadb/virtual_adb_client.h
rename to host/libs/vadb/virtual_adb_client.h
index 8fae2d7..e1c9813 100644
--- a/host/vadb/virtual_adb_client.h
+++ b/host/libs/vadb/virtual_adb_client.h
@@ -20,11 +20,11 @@
 #include "common/libs/fs/shared_fd.h"
 #include "common/libs/fs/shared_select.h"
 #include "common/libs/usbforward/protocol.h"
-#include "host/vadb/usb_cmd.h"
-#include "host/vadb/usbip/device.h"
-#include "host/vadb/usbip/device_pool.h"
-#include "host/vadb/usbip/messages.h"
-#include "host/vadb/usbip/vhci_instrument.h"
+#include "host/libs/vadb/usb_cmd.h"
+#include "host/libs/usbip/device.h"
+#include "host/libs/usbip/device_pool.h"
+#include "host/libs/usbip/messages.h"
+#include "host/libs/usbip/vhci_instrument.h"
 
 namespace vadb {
 // VirtualADBClient is a companion class for USBForwarder, running on
diff --git a/host/vadb/virtual_adb_server.cpp b/host/libs/vadb/virtual_adb_server.cpp
similarity index 97%
rename from host/vadb/virtual_adb_server.cpp
rename to host/libs/vadb/virtual_adb_server.cpp
index bf39bb3..92fabd3 100644
--- a/host/vadb/virtual_adb_server.cpp
+++ b/host/libs/vadb/virtual_adb_server.cpp
@@ -14,7 +14,7 @@
  * limitations under the License.
  */
 
-#include "host/vadb/virtual_adb_server.h"
+#include "host/libs/vadb/virtual_adb_server.h"
 
 namespace vadb {
 
diff --git a/host/vadb/virtual_adb_server.h b/host/libs/vadb/virtual_adb_server.h
similarity index 95%
rename from host/vadb/virtual_adb_server.h
rename to host/libs/vadb/virtual_adb_server.h
index 91f6611..33946c3 100644
--- a/host/vadb/virtual_adb_server.h
+++ b/host/libs/vadb/virtual_adb_server.h
@@ -19,8 +19,8 @@
 #include <string>
 
 #include "common/libs/fs/shared_fd.h"
-#include "host/vadb/usbip/device_pool.h"
-#include "host/vadb/virtual_adb_client.h"
+#include "host/libs/usbip/device_pool.h"
+#include "host/libs/vadb/virtual_adb_client.h"
 
 namespace vadb {
 // VirtualADBServer manages incoming VirtualUSB/ADB connections from QEmu.
diff --git a/host/vadb/BUILD b/host/vadb/BUILD
deleted file mode 100644
index 26a5dd4..0000000
--- a/host/vadb/BUILD
+++ /dev/null
@@ -1,39 +0,0 @@
-cc_binary(
-    name = "adbshell",
-    srcs = [
-        "adbshell.c",
-    ],
-)
-
-cc_library(
-    name = "vadb_lib",
-    srcs = [
-        "usb_cmd.h",
-        "usb_cmd_attach.cpp",
-        "usb_cmd_attach.h",
-        "usb_cmd_control_transfer.cpp",
-        "usb_cmd_control_transfer.h",
-        "usb_cmd_data_transfer.cpp",
-        "usb_cmd_data_transfer.h",
-        "usb_cmd_device_list.cpp",
-        "usb_cmd_device_list.h",
-        "usb_cmd_heartbeat.cpp",
-        "usb_cmd_heartbeat.h",
-        "virtual_adb_client.cpp",
-        "virtual_adb_client.h",
-        "virtual_adb_server.cpp",
-        "virtual_adb_server.h",
-    ],
-    visibility = ["//visibility:public"],
-    linkopts = [
-        "-ludev",
-    ],
-    deps = [
-        "@cuttlefish//common/libs/fs",
-        "@cuttlefish//common/libs/usbforward:protocol",
-        "@gflags_repo//:gflags",
-        "@glog_repo//:glog",
-        "//host/vadb/usbip:usbip_lib",
-    ],
-)
-
diff --git a/host/vadb/usbip/BUILD b/host/vadb/usbip/BUILD
deleted file mode 100644
index d1594b1..0000000
--- a/host/vadb/usbip/BUILD
+++ /dev/null
@@ -1,30 +0,0 @@
-cc_library(
-    name = "usbip_lib",
-    srcs = [
-        "client.cpp",
-        "client.h",
-        "device.h",
-        "device_pool.cpp",
-        "device_pool.h",
-        "messages.cpp",
-        "messages.h",
-        "server.cpp",
-        "server.h",
-        "vhci_instrument.cpp",
-        "vhci_instrument.h",
-    ],
-    hdrs = [
-        "client.h",
-        "device.h",
-        "device_pool.h",
-        "messages.h",
-        "server.h",
-    ],
-    deps = [
-        "@cuttlefish//common/libs/fs",
-        "@gflags_repo//:gflags",
-        "@glog_repo//:glog",
-    ],
-    visibility = [ "//visibility:public" ]
-)
-