diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..8fae10e
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,129 @@
+// Copyright (C) 2015 The Android Open Source Project
+//
+// Licensed under the Apache License, Version 2.0 (the "License");
+// you may not use this file except in compliance with the License.
+// You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+// Unless required by applicable law or agreed to in writing, software
+// distributed under the License is distributed on an "AS IS" BASIS,
+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+// See the License for the specific language governing permissions and
+// limitations under the License.
+//
+//
+
+// Gmock builds 2 libraries: libgmock and libgmock_main. libgmock
+// contains most of the code (assertions...) and libgmock_main just
+// provide a common main to run the test (ie if you link against
+// libgmock_main you won't/should not provide a main() entry point.
+//
+// We build these 2 libraries for the target device and for the host if
+// it is running linux and using ASTL.
+//
+
+cc_defaults {
+    name: "gmock_flags",
+
+    local_include_dirs: ["include"],
+    export_include_dirs: ["include"],
+    include_dirs: ["external/gtest/include"],
+
+    cflags: ["-Wno-missing-field-initializers"],
+}
+
+cc_defaults {
+    name: "gmock_ndk",
+    sdk_version: "9",
+    stl: "gnustl_static",
+    cppflags: ["-std=c++11"],
+}
+
+cc_defaults {
+    name: "gmock_defaults",
+    host_supported: true,
+    sanitize: {
+        never: true,
+    },
+    target: {
+        windows: {
+            enabled: true,
+        },
+    },
+}
+
+//######################################################################
+// gmock lib for the NDK
+cc_library_static {
+    name: "libgmock_ndk",
+    defaults: ["gmock_ndk", "gmock_flags"],
+    srcs: ["src/gmock-all.cc"],
+}
+
+//######################################################################
+// gmock_main for the NDK
+cc_library_static {
+    name: "libgmock_main_ndk",
+    defaults: ["gmock_ndk", "gmock_flags"],
+    srcs: ["src/gmock_main.cc"],
+}
+
+//######################################################################
+// gmock lib target and host
+cc_library_static {
+    name: "libgmock",
+    defaults: ["gmock_defaults", "gmock_flags"],
+    srcs: ["src/gmock-all.cc"],
+    rtti: true,
+}
+
+//######################################################################
+// gmock_main lib target and host
+cc_library_static {
+    name: "libgmock_main",
+    defaults: ["gmock_defaults", "gmock_flags"],
+    srcs: ["src/gmock_main.cc"],
+}
+
+//######################################################################
+// gmock lib host
+// Deprecated: use libgmock instead
+cc_library_host_static {
+    name: "libgmock_host",
+    defaults: ["gmock_defaults", "gmock_flags"],
+    srcs: ["src/gmock-all.cc"],
+    rtti: true,
+}
+
+// Test for gmock. Run using 'runtest'.
+// The linux build and tests are run under valgrind by 'runtest'.
+
+cc_test {
+    name: "libgmock_test",
+    gtest: false,
+    host_supported: true,
+    test_per_src: true,
+
+    // The remaining tests aren't executed by the configure/make/make check sequence.
+    srcs: [
+        "test/gmock_test.cc",
+        "test/gmock-spec-builders_test.cc",
+        "test/gmock_link_test.cc",
+    ],
+
+    cflags: ["-Wno-empty-body"],
+    static_libs: [
+        "libgmock_main",
+        "libgmock",
+        "libgtest",
+        "libgtest_main",
+    ],
+
+    target: {
+        host: {
+            cflags: ["-O0"],
+            host_ldlibs: ["-lpthread"],
+        },
+    },
+}
diff --git a/Android.mk b/Android.mk
deleted file mode 100644
index 44199ab..0000000
--- a/Android.mk
+++ /dev/null
@@ -1,17 +0,0 @@
-# Copyright (C) 2009 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-
-include $(call all-subdir-makefiles)
diff --git a/src/Android.mk b/src/Android.mk
deleted file mode 100644
index 1248fa4..0000000
--- a/src/Android.mk
+++ /dev/null
@@ -1,145 +0,0 @@
-# Copyright (C) 2015 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-
-# Gmock builds 2 libraries: libgmock and libgmock_main. libgmock
-# contains most of the code (assertions...) and libgmock_main just
-# provide a common main to run the test (ie if you link against
-# libgmock_main you won't/should not provide a main() entry point.
-
-# TODO: The targets below have some redundancy. Check if we cannot
-# condense them using function(s) for the common code.
-
-LOCAL_PATH := $(call my-dir)
-
-libgmock_target_includes := \
-  $(LOCAL_PATH)/.. \
-  $(LOCAL_PATH)/../include \
-  $(TOP)/external/gtest/include
-
-libgmock_host_includes := \
-  $(LOCAL_PATH)/.. \
-  $(LOCAL_PATH)/../include \
-  $(TOP)/external/gtest/include
-
-libgmock_cflags := \
-  -Wno-missing-field-initializers \
-
-#######################################################################
-# gmock lib for the NDK
-
-include $(CLEAR_VARS)
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
-LOCAL_SDK_VERSION := 9
-LOCAL_NDK_STL_VARIANT := gnustl_static
-
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_SRC_FILES := gmock-all.cc
-LOCAL_C_INCLUDES := $(libgmock_target_includes)
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/../include
-LOCAL_CPPFLAGS := -std=c++11
-LOCAL_CFLAGS += $(libgmock_cflags)
-LOCAL_MODULE := libgmock_ndk
-
-include $(BUILD_STATIC_LIBRARY)
-
-#######################################################################
-# gmock_main for the NDK
-
-include $(CLEAR_VARS)
-LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
-
-LOCAL_SDK_VERSION := 9
-LOCAL_NDK_STL_VARIANT := gnustl_static
-
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_SRC_FILES := gmock_main.cc
-LOCAL_C_INCLUDES := $(libgmock_target_includes)
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/../include
-LOCAL_CPPFLAGS := -std=c++11
-LOCAL_CFLAGS += $(libgmock_cflags)
-LOCAL_MODULE := libgmock_main_ndk
-
-include $(BUILD_STATIC_LIBRARY)
-
-# Don't build for unbundled branches
-ifeq (,$(TARGET_BUILD_APPS))
-#######################################################################
-# gmock lib host
-
-include $(CLEAR_VARS)
-
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_SRC_FILES := gmock-all.cc
-LOCAL_C_INCLUDES := $(libgmock_host_includes)
-LOCAL_CFLAGS += $(libgmock_cflags)
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/../include
-LOCAL_MODULE := libgmock_host
-LOCAL_MULTILIB := both
-LOCAL_SANITIZE := never
-LOCAL_RTTI_FLAG := -frtti
-LOCAL_MODULE_HOST_OS := linux darwin windows
-
-include $(BUILD_HOST_STATIC_LIBRARY)
-
-#######################################################################
-# gmock_main lib host
-
-include $(CLEAR_VARS)
-
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_SRC_FILES := gmock_main.cc
-LOCAL_C_INCLUDES := $(libgmock_host_includes)
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/../include
-LOCAL_CFLAGS += $(libgmock_cflags)
-LOCAL_MODULE := libgmock_main_host
-LOCAL_MULTILIB := both
-LOCAL_SANITIZE := never
-LOCAL_MODULE_HOST_OS := linux darwin windows
-
-include $(BUILD_HOST_STATIC_LIBRARY)
-
-#######################################################################
-# gmock lib target
-
-include $(CLEAR_VARS)
-
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_SRC_FILES := gmock-all.cc
-LOCAL_C_INCLUDES := $(libgmock_target_includes)
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/../include
-LOCAL_CFLAGS += $(libgmock_cflags)
-LOCAL_MODULE := libgmock
-LOCAL_SANITIZE := never
-LOCAL_RTTI_FLAG := -frtti
-
-include $(BUILD_STATIC_LIBRARY)
-
-#######################################################################
-# gmock_main lib target
-
-include $(CLEAR_VARS)
-
-LOCAL_CPP_EXTENSION := .cc
-LOCAL_SRC_FILES := gmock_main.cc
-LOCAL_C_INCLUDES := $(libgmock_target_includes)
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/../include
-LOCAL_CFLAGS += $(libgmock_cflags)
-LOCAL_MODULE := libgmock_main
-LOCAL_SANITIZE := never
-
-include $(BUILD_STATIC_LIBRARY)
-endif
diff --git a/test/Android.mk b/test/Android.mk
deleted file mode 100644
index 8aca24b..0000000
--- a/test/Android.mk
+++ /dev/null
@@ -1,84 +0,0 @@
-# Copyright (C) 2015 The Android Open Source Project
-#
-# Licensed under the Apache License, Version 2.0 (the "License");
-# you may not use this file except in compliance with the License.
-# You may obtain a copy of the License at
-#
-#      http://www.apache.org/licenses/LICENSE-2.0
-#
-# Unless required by applicable law or agreed to in writing, software
-# distributed under the License is distributed on an "AS IS" BASIS,
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-# See the License for the specific language governing permissions and
-# limitations under the License.
-#
-#
-
-# Test for gmock. Run using 'runtest'.
-# The linux build and tests are run under valgrind by 'runtest'.
-
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-# TODO: Refactor these as 1st class build templates as suggested in
-# review of the original import.
-
-libgmock_test_common_includes := \
-    $(LOCAL_PATH)/../include \
-    $(LOCAL_PATH)/.. \
-    $(TOP)/external/gtest/include \
-
-libgmock_test_includes := $(libgmock_test_common_includes)
-libgmock_test_static_lib := libgmock_main libgmock libgtest libgtest_main
-libgmock_test_ldflags :=
-
-libgmock_test_host_includes := $(libgmock_test_common_includes)
-libgmock_test_host_static_lib := libgmock_main_host libgmock_host libgtest_host libgtest_main_host
-libgmock_test_host_ldflags := -lpthread
-
-# $(2) and $(4) must be set or cleared in sync. $(2) is used to
-# generate the right make target (host vs device). $(4) is used in the
-# module's name and to have different module names for the host vs
-# device builds. Finally $(4) is used to pick up the right set of
-# libraries, typically the host libs have a _host suffix in their
-# names.
-# $(1): source list
-# $(2): "HOST_" or empty
-# $(3): extra CFLAGS or empty
-# $(4): "_host" or empty
-# $(5): "TARGET_OUT_DATA_NATIVE_TESTS" or empty (where to install)
-define _define-test
-$(foreach file,$(1), \
-  $(eval include $(CLEAR_VARS)) \
-  $(eval LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk) \
-  $(eval LOCAL_CPP_EXTENSION := .cc) \
-  $(eval LOCAL_SRC_FILES := $(file)) \
-  $(eval LOCAL_C_INCLUDES := $(libgmock_test$(4)_includes)) \
-  $(eval LOCAL_MODULE := $(notdir $(file:%.cc=%))$(4)) \
-  $(eval LOCAL_CFLAGS += $(3) -Wno-empty-body) \
-  $(eval LOCAL_LDFLAGS += $(libgmock_test$(4)_ldflags)) \
-  $(eval LOCAL_STATIC_LIBRARIES := $(libgmock_test$(4)_static_lib)) \
-  $(eval LOCAL_SHARED_LIBRARIES := $(libgmock_test$(4)_shared_lib)) \
-  $(if $(2),,$(eval LOCAL_MODULE_TAGS := tests)) \
-  $(eval LOCAL_MODULE_PATH := $($(5))) \
-  $(eval include $(BUILD_$(2)EXECUTABLE)) \
-)
-endef
-
-define host-test
-$(call _define-test,$(1),HOST_,-O0,_host,)
-endef
-
-define target-test
-$(call _define-test,$(1),,,,TARGET_OUT_DATA_NATIVE_TESTS)
-endef
-
-sources := \
-    gmock_test.cc \
-    gmock-spec-builders_test.cc \
-    gmock_link_test.cc \
-
-# The remaining tests aren't executed by the configure/make/make check sequence.
-
-$(call host-test, $(sources))
-$(call target-test, $(sources))
