Merge "Convert perfprofd to Android.bp"
diff --git a/perfprofd/Android.bp b/perfprofd/Android.bp
new file mode 100644
index 0000000..58926dc
--- /dev/null
+++ b/perfprofd/Android.bp
@@ -0,0 +1,76 @@
+perfprofd_cppflags = [
+    "-Wall",
+    "-Wno-sign-compare",
+    "-Wno-unused-parameter",
+    "-Werror",
+]
+
+//
+// Static library containing guts of AWP daemon.
+//
+
+cc_library_static {
+    name: "libperfprofdcore",
+    clang: true,
+
+    local_include_dirs: ["quipper/kernel-headers"],
+    export_include_dirs: ["."],
+    static_libs: ["libbase"],
+    srcs: [
+        "perf_profile.proto",
+        "quipper/perf_utils.cc",
+        "quipper/base/logging.cc",
+        "quipper/address_mapper.cc",
+        "quipper/perf_reader.cc",
+        "quipper/perf_parser.cc",
+        "perf_data_converter.cc",
+        "configreader.cc",
+        "cpuconfig.cc",
+        "perfprofdcore.cc",
+    ],
+
+    cppflags: perfprofd_cppflags,
+
+    proto: {
+        export_proto_headers: true,
+    },
+}
+
+//
+// Static library with primary utilities layer (called by perfprofd core)
+//
+cc_library_static {
+    name: "libperfprofdutils",
+    clang: true,
+
+        cppflags: perfprofd_cppflags,
+    srcs: ["perfprofdutils.cc"],
+}
+
+//
+// Main daemon
+//
+cc_binary {
+    name: "perfprofd",
+    clang: true,
+
+    srcs: ["perfprofdmain.cc"],
+    static_libs: [
+        "libperfprofdcore",
+        "libperfprofdutils",
+    ],
+    shared_libs: [
+        "liblog",
+        "libprotobuf-cpp-lite",
+        "libbase",
+        "libcutils"
+    ],
+    system_shared_libs: [
+        "libc",
+    ],
+    cppflags: perfprofd_cppflags,
+
+    init_rc: ["perfprofd.rc"],
+}
+
+subdirs = ["tests"]
diff --git a/perfprofd/Android.mk b/perfprofd/Android.mk
index ce52e29..73a9ecb 100644
--- a/perfprofd/Android.mk
+++ b/perfprofd/Android.mk
@@ -1,74 +1,3 @@
 LOCAL_PATH:= $(call my-dir)
 
-perfprofd_cppflags := \
-  -Wall \
-  -Wno-sign-compare \
-  -Wno-unused-parameter \
-  -Werror \
-
-#
-# Static library containing guts of AWP daemon.
-#
-include $(CLEAR_VARS)
-LOCAL_CLANG := true
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_MODULE := libperfprofdcore
-LOCAL_MODULE_CLASS := STATIC_LIBRARIES
-LOCAL_MODULE_TAGS := debug
-proto_header_dir := $(call local-generated-sources-dir)/proto/$(LOCAL_PATH)
-LOCAL_C_INCLUDES += $(proto_header_dir) $(LOCAL_PATH)/quipper/kernel-headers
-LOCAL_STATIC_LIBRARIES := libbase
-LOCAL_EXPORT_C_INCLUDE_DIRS += $(proto_header_dir)
-LOCAL_SRC_FILES :=  \
-	perf_profile.proto \
-	quipper/perf_utils.cc \
-	quipper/base/logging.cc \
-	quipper/address_mapper.cc \
-	quipper/perf_reader.cc \
-	quipper/perf_parser.cc \
-	perf_data_converter.cc \
-	configreader.cc \
-	cpuconfig.cc \
-	perfprofdcore.cc \
-
-LOCAL_CPPFLAGS += $(perfprofd_cppflags)
-include $(BUILD_STATIC_LIBRARY)
-
-#
-# Static library with primary utilities layer (called by perfprofd core)
-#
-include $(CLEAR_VARS)
-LOCAL_CLANG := true
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_CXX_STL := libc++
-LOCAL_MODULE := libperfprofdutils
-LOCAL_MODULE_TAGS := debug
-LOCAL_CPPFLAGS += $(perfprofd_cppflags)
-LOCAL_SRC_FILES := perfprofdutils.cc
-include $(BUILD_STATIC_LIBRARY)
-
-#
-# Main daemon
-#
-include $(CLEAR_VARS)
-LOCAL_CLANG := true
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_CXX_STL := libc++
-LOCAL_SRC_FILES := perfprofdmain.cc
-LOCAL_STATIC_LIBRARIES := libperfprofdcore libperfprofdutils
-LOCAL_SHARED_LIBRARIES := liblog libprotobuf-cpp-lite libbase
-LOCAL_SYSTEM_SHARED_LIBRARIES := libc libstdc++
-LOCAL_CPPFLAGS += $(perfprofd_cppflags)
-LOCAL_CFLAGS := -Wall -Werror
-LOCAL_MODULE := perfprofd
-LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
-LOCAL_MODULE_TAGS := debug
-LOCAL_SHARED_LIBRARIES += libcutils
-LOCAL_INIT_RC := perfprofd.rc
-include $(BUILD_EXECUTABLE)
-
-# Clean temp vars
-perfprofd_cppflags :=
-proto_header_dir :=
-
 include $(call first-makefiles-under,$(LOCAL_PATH))
diff --git a/perfprofd/tests/Android.bp b/perfprofd/tests/Android.bp
new file mode 100644
index 0000000..f3a5bb8
--- /dev/null
+++ b/perfprofd/tests/Android.bp
@@ -0,0 +1,42 @@
+// Build the unit tests.
+
+perfprofd_test_cppflags = [
+    "-Wall",
+    "-Wno-sign-compare",
+    "-Wno-unused-parameter",
+    "-Werror",
+]
+
+//
+// Static library with mockup utilities layer (called by unit test).
+//
+cc_library_static {
+    name: "libperfprofdmockutils",
+    clang: true,
+
+    include_dirs: ["system/extras/perfprofd"],
+    cppflags: perfprofd_test_cppflags,
+    srcs: ["perfprofdmockutils.cc"],
+}
+
+//
+// Unit test for perfprofd
+//
+cc_test {
+    name: "perfprofd_test",
+    clang: true,
+
+    stl: "libc++",
+    static_libs: [
+        "libperfprofdcore",
+        "libperfprofdmockutils",
+        "libbase",
+    ],
+    shared_libs: [
+        "libprotobuf-cpp-lite",
+        "liblog",
+        "libcutils",
+    ],
+    srcs: ["perfprofd_test.cc"],
+    cppflags: perfprofd_test_cppflags,
+}
diff --git a/perfprofd/tests/Android.mk b/perfprofd/tests/Android.mk
index a9c370d..30ea7c9 100644
--- a/perfprofd/tests/Android.mk
+++ b/perfprofd/tests/Android.mk
@@ -1,20 +1,6 @@
-# Build the unit tests.
 LOCAL_PATH := $(call my-dir)
 
-perfprofd_test_cppflags := -Wall -Wno-sign-compare -Wno-unused-parameter -Werror
-
-#
-# Static library with mockup utilities layer (called by unit test).
-#
-include $(CLEAR_VARS)
-LOCAL_CLANG := true
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_CXX_STL := libc++
-LOCAL_C_INCLUDES += system/extras/perfprofd
-LOCAL_MODULE := libperfprofdmockutils
-LOCAL_CPPFLAGS += $(perfprofd_test_cppflags)
-LOCAL_SRC_FILES := perfprofdmockutils.cc
-include $(BUILD_STATIC_LIBRARY)
+# Unit tests are in Android.bp
 
 #
 # Canned perf.data file needed by unit test.
@@ -37,22 +23,3 @@
 LOCAL_MODULE_PATH := $(TARGET_OUT_DATA_NATIVE_TESTS)/perfprofd_test
 LOCAL_SRC_FILES := callchain.canned.perf.data
 include $(BUILD_PREBUILT)
-
-#
-# Unit test for perfprofd
-#
-include $(CLEAR_VARS)
-LOCAL_CLANG := true
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_CXX_STL := libc++
-LOCAL_STATIC_LIBRARIES := libperfprofdcore libperfprofdmockutils libgtest libbase
-LOCAL_SHARED_LIBRARIES := libprotobuf-cpp-lite
-LOCAL_C_INCLUDES += system/extras/perfprofd external/protobuf/src
-LOCAL_SRC_FILES := perfprofd_test.cc
-LOCAL_CPPFLAGS += $(perfprofd_test_cppflags)
-LOCAL_SHARED_LIBRARIES += liblog libcutils
-LOCAL_MODULE := perfprofd_test
-include $(BUILD_NATIVE_TEST)
-
-# Clean temp vars
-perfprofd_test_cppflags :=