diff mbox series

[RFC] libdrm: Convert to Android.mk to Android.bp

Message ID 20190917191536.19105-1-john.stultz@linaro.org
State Superseded
Headers show
Series [RFC] libdrm: Convert to Android.mk to Android.bp | expand

Commit Message

John Stultz Sept. 17, 2019, 7:15 p.m. UTC
This patch removes the deprecated Android.mk files and replaces
them with Android.bp files.

This is needed in order to build libdrm/master against recent
Android releases and AOSP/master, as some of the Treble build
options required since Android O cannot be expressed in
Andorid.mk files.

Patch originally by Dan Willemsen with fixes folded in by:
 Jerry Zhang, Eliott Hughes and myself.

With this change, the only patches carried by Android for libdrm
would be the gerrit OWNERS meta-data file.

Cc: Mauro Rossi <issor.oruam@gmail.com>
Cc: Chih-Wei Huang <cwhuang@android-x86.org>
Cc: Robert Foss <robert.foss@collabora.com>
Cc: Tapani Pälli <tapani.palli@intel.com>
Cc: Chih-Wei Huang <cwhuang@android-x86.org>
Cc: Emil Velikov <emil.velikov@collabora.com>
Cc: Sean Paul <seanpaul@chromium.org>
Cc: Rob Clark <robdclark@chromium.org>
Cc: Eric Anholt <anholt@google.com>
Cc: Jiyong Park <jiyong@google.com>
Cc: Alistair Strachan <astrachan@google.com>
Cc: Dan Willemsen <dwillemsen@google.com>
Cc: Sumit Semwal <sumit.semwal@linaro.org>
Cc: Vishal Bhoj <vishal.bhoj@linaro.org>
Signed-off-by: John Stultz <john.stultz@linaro.org>

---
I know last time this was proposed, there was some concern about
maintaining support for old AOSP releases - and while we could
still support both with Android.mk that was a fair concern.

However, now that it is a requirement for newer releases, I'd
contend that being able to build/test libdrm/master against
AOSP/master and recent releases is more valuable then soley
maintaining support for old and unsupported Android releases.

So I wanted to submit this again for discussion.

thanks
-john

---
 Android.bp                        | 66 +++++++++++++++++++++++++++
 Android.common.mk                 | 19 --------
 Android.mk                        | 74 -------------------------------
 Android.sources.bp                | 12 +++++
 Android.sources.bp.mk             | 25 +++++++++++
 amdgpu/Android.bp                 | 16 +++++++
 amdgpu/Android.mk                 | 19 --------
 amdgpu/Android.sources.bp         | 15 +++++++
 data/Android.bp                   |  6 +++
 data/Android.mk                   | 10 -----
 etnaviv/Android.bp                | 11 +++++
 etnaviv/Android.mk                | 14 ------
 etnaviv/Android.sources.bp        | 13 ++++++
 freedreno/Android.bp              | 11 +++++
 freedreno/Android.mk              | 14 ------
 freedreno/Android.sources.bp      | 16 +++++++
 intel/Android.bp                  | 36 +++++++++++++++
 intel/Android.mk                  | 38 ----------------
 intel/Android.sources.bp          | 13 ++++++
 libkms/Android.bp                 | 15 +++++++
 libkms/Android.mk                 | 51 ---------------------
 libkms/Android.sources.bp         | 38 ++++++++++++++++
 nouveau/Android.bp                | 11 +++++
 nouveau/Android.mk                | 14 ------
 nouveau/Android.sources.bp        | 11 +++++
 omap/Android.bp                   | 12 +++++
 omap/Android.mk                   | 13 ------
 omap/Android.sources.bp           |  8 ++++
 radeon/Android.bp                 | 11 +++++
 radeon/Android.mk                 | 14 ------
 radeon/Android.sources.bp         | 13 ++++++
 tegra/Android.bp                  | 14 ++++++
 tests/Android.bp                  |  6 +++
 tests/Android.mk                  |  1 -
 tests/modetest/Android.bp         | 12 +++++
 tests/modetest/Android.mk         | 14 ------
 tests/modetest/Android.sources.bp | 10 +++++
 tests/proptest/Android.bp         |  8 ++++
 tests/proptest/Android.mk         | 14 ------
 tests/util/Android.bp             | 35 +++++++++++++++
 tests/util/Android.mk             | 38 ----------------
 tests/util/Android.sources.bp     | 10 +++++
 42 files changed, 454 insertions(+), 347 deletions(-)
 create mode 100644 Android.bp
 delete mode 100644 Android.common.mk
 delete mode 100644 Android.mk
 create mode 100644 Android.sources.bp
 create mode 100644 Android.sources.bp.mk
 create mode 100644 amdgpu/Android.bp
 delete mode 100644 amdgpu/Android.mk
 create mode 100644 amdgpu/Android.sources.bp
 create mode 100644 data/Android.bp
 delete mode 100644 data/Android.mk
 create mode 100644 etnaviv/Android.bp
 delete mode 100644 etnaviv/Android.mk
 create mode 100644 etnaviv/Android.sources.bp
 create mode 100644 freedreno/Android.bp
 delete mode 100644 freedreno/Android.mk
 create mode 100644 freedreno/Android.sources.bp
 create mode 100644 intel/Android.bp
 delete mode 100644 intel/Android.mk
 create mode 100644 intel/Android.sources.bp
 create mode 100644 libkms/Android.bp
 delete mode 100644 libkms/Android.mk
 create mode 100644 libkms/Android.sources.bp
 create mode 100644 nouveau/Android.bp
 delete mode 100644 nouveau/Android.mk
 create mode 100644 nouveau/Android.sources.bp
 create mode 100644 omap/Android.bp
 delete mode 100644 omap/Android.mk
 create mode 100644 omap/Android.sources.bp
 create mode 100644 radeon/Android.bp
 delete mode 100644 radeon/Android.mk
 create mode 100644 radeon/Android.sources.bp
 create mode 100644 tegra/Android.bp
 create mode 100644 tests/Android.bp
 delete mode 100644 tests/Android.mk
 create mode 100644 tests/modetest/Android.bp
 delete mode 100644 tests/modetest/Android.mk
 create mode 100644 tests/modetest/Android.sources.bp
 create mode 100644 tests/proptest/Android.bp
 delete mode 100644 tests/proptest/Android.mk
 create mode 100644 tests/util/Android.bp
 delete mode 100644 tests/util/Android.mk
 create mode 100644 tests/util/Android.sources.bp

-- 
2.17.1

Comments

Eric Anholt Sept. 18, 2019, 9:41 p.m. UTC | #1
John Stultz <john.stultz@linaro.org> writes:

> This patch removes the deprecated Android.mk files and replaces

> them with Android.bp files.

>

> This is needed in order to build libdrm/master against recent

> Android releases and AOSP/master, as some of the Treble build

> options required since Android O cannot be expressed in

> Andorid.mk files.

>

> Patch originally by Dan Willemsen with fixes folded in by:

>  Jerry Zhang, Eliott Hughes and myself.

>

> With this change, the only patches carried by Android for libdrm

> would be the gerrit OWNERS meta-data file.


Acked-by: Eric Anholt <eric@anholt.net>
Eric Engestrom Sept. 18, 2019, 9:49 p.m. UTC | #2
On Tuesday, 2019-09-17 19:15:36 +0000, John Stultz wrote:
> This patch removes the deprecated Android.mk files and replaces
> them with Android.bp files.
> 
> This is needed in order to build libdrm/master against recent
> Android releases and AOSP/master, as some of the Treble build
> options required since Android O cannot be expressed in
> Andorid.mk files.
> 
> Patch originally by Dan Willemsen with fixes folded in by:
>  Jerry Zhang, Eliott Hughes and myself.
> 
> With this change, the only patches carried by Android for libdrm
> would be the gerrit OWNERS meta-data file.
> 
> Cc: Mauro Rossi <issor.oruam@gmail.com>
> Cc: Chih-Wei Huang <cwhuang@android-x86.org>
> Cc: Robert Foss <robert.foss@collabora.com>
> Cc: Tapani Pälli <tapani.palli@intel.com>
> Cc: Chih-Wei Huang <cwhuang@android-x86.org>
> Cc: Emil Velikov <emil.velikov@collabora.com>
> Cc: Sean Paul <seanpaul@chromium.org>
> Cc: Rob Clark <robdclark@chromium.org>
> Cc: Eric Anholt <anholt@google.com>
> Cc: Jiyong Park <jiyong@google.com>
> Cc: Alistair Strachan <astrachan@google.com>
> Cc: Dan Willemsen <dwillemsen@google.com>
> Cc: Sumit Semwal <sumit.semwal@linaro.org>
> Cc: Vishal Bhoj <vishal.bhoj@linaro.org>
> Signed-off-by: John Stultz <john.stultz@linaro.org>
> ---
> I know last time this was proposed, there was some concern about
> maintaining support for old AOSP releases - and while we could
> still support both with Android.mk that was a fair concern.
> 
> However, now that it is a requirement for newer releases, I'd
> contend that being able to build/test libdrm/master against
> AOSP/master and recent releases is more valuable then soley
> maintaining support for old and unsupported Android releases.

Acked-by: Eric Engestrom <eric@engestrom.ch>

But to be clear, what's the earliest android version that supports
blueprint? (might be worth adding that to the commit message)

> 
> So I wanted to submit this again for discussion.
> 
> thanks
> -john
John Stultz Sept. 18, 2019, 9:57 p.m. UTC | #3
On Wed, Sep 18, 2019 at 2:49 PM Eric Engestrom <eric@engestrom.ch> wrote:
> On Tuesday, 2019-09-17 19:15:36 +0000, John Stultz wrote:
> > This patch removes the deprecated Android.mk files and replaces
> > them with Android.bp files.
> >
> > This is needed in order to build libdrm/master against recent
> > Android releases and AOSP/master, as some of the Treble build
> > options required since Android O cannot be expressed in
> > Andorid.mk files.
> >
> > Patch originally by Dan Willemsen with fixes folded in by:
> >  Jerry Zhang, Eliott Hughes and myself.
> >
> > With this change, the only patches carried by Android for libdrm
> > would be the gerrit OWNERS meta-data file.
> >
> > Cc: Mauro Rossi <issor.oruam@gmail.com>
> > Cc: Chih-Wei Huang <cwhuang@android-x86.org>
> > Cc: Robert Foss <robert.foss@collabora.com>
> > Cc: Tapani Pälli <tapani.palli@intel.com>
> > Cc: Chih-Wei Huang <cwhuang@android-x86.org>
> > Cc: Emil Velikov <emil.velikov@collabora.com>
> > Cc: Sean Paul <seanpaul@chromium.org>
> > Cc: Rob Clark <robdclark@chromium.org>
> > Cc: Eric Anholt <anholt@google.com>
> > Cc: Jiyong Park <jiyong@google.com>
> > Cc: Alistair Strachan <astrachan@google.com>
> > Cc: Dan Willemsen <dwillemsen@google.com>
> > Cc: Sumit Semwal <sumit.semwal@linaro.org>
> > Cc: Vishal Bhoj <vishal.bhoj@linaro.org>
> > Signed-off-by: John Stultz <john.stultz@linaro.org>
> > ---
> > I know last time this was proposed, there was some concern about
> > maintaining support for old AOSP releases - and while we could
> > still support both with Android.mk that was a fair concern.
> >
> > However, now that it is a requirement for newer releases, I'd
> > contend that being able to build/test libdrm/master against
> > AOSP/master and recent releases is more valuable then soley
> > maintaining support for old and unsupported Android releases.
>
> Acked-by: Eric Engestrom <eric@engestrom.ch>
>
> But to be clear, what's the earliest android version that supports
> blueprint? (might be worth adding that to the commit message)

I believe it was Android N which was the first to use blueprint.

Thanks for the review, I'll add such a note to the commit and resubmit
w/o RFC in a few days.

thanks
-john
diff mbox series

Patch

diff --git a/Android.bp b/Android.bp
new file mode 100644
index 00000000..6fe434c6
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,66 @@ 
+//
+// Copyright © 2011-2012 Intel Corporation
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice (including the next
+// paragraph) shall be included in all copies or substantial portions of the
+// Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+//
+
+subdirs = ["*"]
+build = ["Android.sources.bp"]
+
+cc_defaults {
+    name: "libdrm_defaults",
+    cflags: [
+        // XXX: Consider moving these to config.h analogous to autoconf.
+        "-DMAJOR_IN_SYSMACROS=1",
+        "-DHAVE_VISIBILITY=1",
+        "-DHAVE_LIBDRM_ATOMIC_PRIMITIVES=1",
+
+        "-Wall",
+        "-Werror",
+        "-Wno-deprecated-declarations",
+        "-Wno-format",
+        "-Wno-gnu-variable-sized-type-not-at-end",
+        "-Wno-pointer-arith",
+        "-Wno-unused-parameter",
+        "-Wno-unused-variable",
+        "-Wno-missing-field-initializers",
+    ],
+    export_include_dirs: ["."],
+}
+
+// Library for the device
+cc_library {
+    name: "libdrm",
+    recovery_available: true,
+    vendor_available: true,
+    defaults: [
+        "libdrm_defaults",
+        "libdrm_sources",
+    ],
+
+    export_include_dirs: ["include/drm", "android"],
+
+    cflags: [
+        "-Wno-enum-conversion",
+        "-Wno-pointer-arith",
+        "-Wno-sign-compare",
+        "-Wno-tautological-compare",
+    ],
+}
diff --git a/Android.common.mk b/Android.common.mk
deleted file mode 100644
index d0e5d559..00000000
--- a/Android.common.mk
+++ /dev/null
@@ -1,19 +0,0 @@ 
-# XXX: Consider moving these to config.h analogous to autoconf.
-LOCAL_CFLAGS += \
-	-DMAJOR_IN_SYSMACROS=1 \
-	-DHAVE_VISIBILITY=1 \
-	-fvisibility=hidden \
-	-DHAVE_LIBDRM_ATOMIC_PRIMITIVES=1
-
-LOCAL_CFLAGS += \
-	-Wno-error \
-	-Wno-unused-parameter \
-	-Wno-missing-field-initializers \
-	-Wno-pointer-arith \
-	-Wno-enum-conversion
-
-# Quiet down the build system and remove any .h files from the sources
-LOCAL_SRC_FILES := $(patsubst %.h, , $(LOCAL_SRC_FILES))
-LOCAL_EXPORT_C_INCLUDE_DIRS += $(LOCAL_PATH)
-
-LOCAL_PROPRIETARY_MODULE := true
diff --git a/Android.mk b/Android.mk
deleted file mode 100644
index 0ab6f0f9..00000000
--- a/Android.mk
+++ /dev/null
@@ -1,74 +0,0 @@ 
-#
-# Copyright © 2011-2012 Intel Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-#
-
-LIBDRM_ANDROID_MAJOR_VERSION := $(word 1, $(subst ., , $(PLATFORM_VERSION)))
-ifneq ($(filter 2 4, $(LIBDRM_ANDROID_MAJOR_VERSION)),)
-$(error "Android 4.4 and earlier not supported")
-endif
-
-LIBDRM_COMMON_MK := $(call my-dir)/Android.common.mk
-
-LOCAL_PATH := $(call my-dir)
-LIBDRM_TOP := $(LOCAL_PATH)
-
-include $(CLEAR_VARS)
-
-# Import variables LIBDRM_{,H,INCLUDE_H,INCLUDE_ANDROID_H,INCLUDE_VMWGFX_H}_FILES
-include $(LOCAL_PATH)/Makefile.sources
-
-#static library for the device (recovery)
-include $(CLEAR_VARS)
-LOCAL_MODULE := libdrm
-
-LOCAL_SRC_FILES := $(LIBDRM_FILES)
-LOCAL_EXPORT_C_INCLUDE_DIRS := \
-	$(LOCAL_PATH) \
-	$(LOCAL_PATH)/include/drm \
-	$(LOCAL_PATH)/android
-
-LOCAL_C_INCLUDES := \
-	$(LOCAL_PATH)/include/drm
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_STATIC_LIBRARY)
-
-# Shared library for the device
-include $(CLEAR_VARS)
-LOCAL_MODULE := libdrm
-
-LOCAL_SRC_FILES := $(LIBDRM_FILES)
-LOCAL_EXPORT_C_INCLUDE_DIRS := \
-	$(LOCAL_PATH) \
-	$(LOCAL_PATH)/include/drm \
-	$(LOCAL_PATH)/android
-
-LOCAL_SHARED_LIBRARIES := \
-	libcutils
-
-LOCAL_C_INCLUDES := \
-        $(LOCAL_PATH)/include/drm
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_SHARED_LIBRARY)
-
-include $(call all-makefiles-under,$(LOCAL_PATH))
diff --git a/Android.sources.bp b/Android.sources.bp
new file mode 100644
index 00000000..73356dd8
--- /dev/null
+++ b/Android.sources.bp
@@ -0,0 +1,12 @@ 
+// Autogenerated with Android.sources.bp.mk
+
+cc_defaults {
+    name: "libdrm_sources",
+    srcs: [
+        "xf86drm.c",
+        "xf86drmHash.c",
+        "xf86drmRandom.c",
+        "xf86drmSL.c",
+        "xf86drmMode.c",
+    ],
+}
diff --git a/Android.sources.bp.mk b/Android.sources.bp.mk
new file mode 100644
index 00000000..26b61c1e
--- /dev/null
+++ b/Android.sources.bp.mk
@@ -0,0 +1,25 @@ 
+# Usage: make -f path/to/Android.sources.bp.mk NAMES=<> >Android.sources.bp
+#
+# It will read the Makefile.sources in the current directory, and
+# write <NAME>_FILES to stdout as an Android.bp cc_defaults module.
+
+.PHONY: all
+all:
+	@# Do nothing
+
+include Makefile.sources
+
+empty :=
+indent := $(empty)    $(empty)
+
+$(info // Autogenerated with Android.sources.bp.mk)
+$(foreach NAME,$(NAMES), \
+  $(eval lower_name := $(shell echo $(PREFIX)$(NAME) | tr 'A-Z' 'a-z')) \
+  $(info ) \
+  $(info cc_defaults {) \
+  $(info $(indent)name: "$(lower_name)_sources",) \
+  $(info $(indent)srcs: [) \
+  $(foreach f,$(filter %.c,$($(NAME)_FILES)), \
+    $(info $(indent)$(indent)"$(f)",)) \
+  $(info $(indent)],) \
+  $(info }))
diff --git a/amdgpu/Android.bp b/amdgpu/Android.bp
new file mode 100644
index 00000000..976f03e9
--- /dev/null
+++ b/amdgpu/Android.bp
@@ -0,0 +1,16 @@ 
+build = ["Android.sources.bp"]
+
+cc_library_shared {
+    name: "libdrm_amdgpu",
+
+    cflags: [
+	"-DAMDGPU_ASIC_ID_TABLE=\"/vendor/etc/hwdata/amdgpu.ids\""
+    ],
+
+    defaults: [
+        "libdrm_defaults",
+        "libdrm_amdgpu_sources",
+    ],
+    vendor: true,
+    shared_libs: ["libdrm"],
+}
diff --git a/amdgpu/Android.mk b/amdgpu/Android.mk
deleted file mode 100644
index 1f028d0b..00000000
--- a/amdgpu/Android.mk
+++ /dev/null
@@ -1,19 +0,0 @@ 
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-# Import variables LIBDRM_AMDGPU_FILES, LIBDRM_AMDGPU_H_FILES
-include $(LOCAL_PATH)/Makefile.sources
-
-LOCAL_MODULE := libdrm_amdgpu
-
-LOCAL_SHARED_LIBRARIES := libdrm
-
-LOCAL_SRC_FILES := $(LIBDRM_AMDGPU_FILES)
-
-LOCAL_CFLAGS := \
-	-DAMDGPU_ASIC_ID_TABLE=\"/vendor/etc/hwdata/amdgpu.ids\"
-
-LOCAL_REQUIRED_MODULES := amdgpu.ids
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_SHARED_LIBRARY)
diff --git a/amdgpu/Android.sources.bp b/amdgpu/Android.sources.bp
new file mode 100644
index 00000000..be85283d
--- /dev/null
+++ b/amdgpu/Android.sources.bp
@@ -0,0 +1,15 @@ 
+// Autogenerated with Android.sources.bp.mk
+
+cc_defaults {
+    name: "libdrm_amdgpu_sources",
+    srcs: [
+	"amdgpu_asic_id.c",
+        "amdgpu_bo.c",
+        "amdgpu_cs.c",
+        "amdgpu_device.c",
+        "amdgpu_gpu_info.c",
+        "amdgpu_vamgr.c",
+	"amdgpu_vm.c",
+        "handle_table.c",
+    ],
+}
diff --git a/data/Android.bp b/data/Android.bp
new file mode 100644
index 00000000..47f64371
--- /dev/null
+++ b/data/Android.bp
@@ -0,0 +1,6 @@ 
+prebuilt_etc {
+    name: "amdgpu.ids",
+    proprietary: true,
+    sub_dir: "hwdata",
+    src: "amdgpu.ids",
+}
diff --git a/data/Android.mk b/data/Android.mk
deleted file mode 100644
index 62013f0c..00000000
--- a/data/Android.mk
+++ /dev/null
@@ -1,10 +0,0 @@ 
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-LOCAL_MODULE := amdgpu.ids
-LOCAL_MODULE_TAGS := optional
-LOCAL_MODULE_CLASS := ETC
-LOCAL_PROPRIETARY_MODULE := true
-LOCAL_MODULE_RELATIVE_PATH := hwdata
-LOCAL_SRC_FILES := $(LOCAL_MODULE)
-include $(BUILD_PREBUILT)
diff --git a/etnaviv/Android.bp b/etnaviv/Android.bp
new file mode 100644
index 00000000..21deda99
--- /dev/null
+++ b/etnaviv/Android.bp
@@ -0,0 +1,11 @@ 
+build = ["Android.sources.bp"]
+
+cc_library_shared {
+    name: "libdrm_etnaviv",
+    defaults: [
+        "libdrm_defaults",
+        "libdrm_etnaviv_sources",
+    ],
+    vendor: true,
+    shared_libs: ["libdrm"],
+}
diff --git a/etnaviv/Android.mk b/etnaviv/Android.mk
deleted file mode 100644
index 390f9a98..00000000
--- a/etnaviv/Android.mk
+++ /dev/null
@@ -1,14 +0,0 @@ 
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-# Import variables LIBDRM_ETNAVIV_FILES, LIBDRM_ETNAVIV_H_FILES
-include $(LOCAL_PATH)/Makefile.sources
-
-LOCAL_MODULE := libdrm_etnaviv
-
-LOCAL_SHARED_LIBRARIES := libdrm
-
-LOCAL_SRC_FILES := $(LIBDRM_ETNAVIV_FILES)
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_SHARED_LIBRARY)
diff --git a/etnaviv/Android.sources.bp b/etnaviv/Android.sources.bp
new file mode 100644
index 00000000..aa828900
--- /dev/null
+++ b/etnaviv/Android.sources.bp
@@ -0,0 +1,13 @@ 
+// Autogenerated with Android.sources.bp.mk
+
+cc_defaults {
+    name: "libdrm_etnaviv_sources",
+    srcs: [
+        "etnaviv_device.c",
+        "etnaviv_gpu.c",
+        "etnaviv_bo.c",
+        "etnaviv_bo_cache.c",
+        "etnaviv_pipe.c",
+        "etnaviv_cmd_stream.c",
+    ],
+}
diff --git a/freedreno/Android.bp b/freedreno/Android.bp
new file mode 100644
index 00000000..9fca9b12
--- /dev/null
+++ b/freedreno/Android.bp
@@ -0,0 +1,11 @@ 
+build = ["Android.sources.bp"]
+
+cc_library_shared {
+    name: "libdrm_freedreno",
+    defaults: [
+        "libdrm_defaults",
+        "libdrm_freedreno_sources",
+    ],
+    vendor: true,
+    shared_libs: ["libdrm"],
+}
diff --git a/freedreno/Android.mk b/freedreno/Android.mk
deleted file mode 100644
index 2b582aed..00000000
--- a/freedreno/Android.mk
+++ /dev/null
@@ -1,14 +0,0 @@ 
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-# Import variables LIBDRM_FREEDRENO_FILES, LIBDRM_FREEDRENO_H_FILES
-include $(LOCAL_PATH)/Makefile.sources
-
-LOCAL_MODULE := libdrm_freedreno
-
-LOCAL_SHARED_LIBRARIES := libdrm
-
-LOCAL_SRC_FILES := $(LIBDRM_FREEDRENO_FILES)
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_SHARED_LIBRARY)
diff --git a/freedreno/Android.sources.bp b/freedreno/Android.sources.bp
new file mode 100644
index 00000000..3c1ca316
--- /dev/null
+++ b/freedreno/Android.sources.bp
@@ -0,0 +1,16 @@ 
+// Autogenerated with Android.sources.bp.mk
+
+cc_defaults {
+    name: "libdrm_freedreno_sources",
+    srcs: [
+        "freedreno_device.c",
+        "freedreno_pipe.c",
+        "freedreno_ringbuffer.c",
+        "freedreno_bo.c",
+        "freedreno_bo_cache.c",
+        "msm/msm_bo.c",
+        "msm/msm_device.c",
+        "msm/msm_pipe.c",
+        "msm/msm_ringbuffer.c",
+    ],
+}
diff --git a/intel/Android.bp b/intel/Android.bp
new file mode 100644
index 00000000..22713acc
--- /dev/null
+++ b/intel/Android.bp
@@ -0,0 +1,36 @@ 
+//
+// Copyright © 2011 Intel Corporation
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice (including the next
+// paragraph) shall be included in all copies or substantial portions of the
+// Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+//
+
+build = ["Android.sources.bp"]
+
+cc_library_shared {
+    name: "libdrm_intel",
+    defaults: [
+        "libdrm_defaults",
+        "libdrm_intel_sources",
+    ],
+    vendor: true,
+
+    // Removed dependency to libpciaccess: not used on Android
+    shared_libs: ["libdrm"],
+}
diff --git a/intel/Android.mk b/intel/Android.mk
deleted file mode 100644
index f45312dd..00000000
--- a/intel/Android.mk
+++ /dev/null
@@ -1,38 +0,0 @@ 
-#
-# Copyright © 2011 Intel Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-#
-
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-# Import variables LIBDRM_INTEL_FILES, LIBDRM_INTEL_H_FILES
-include $(LOCAL_PATH)/Makefile.sources
-
-LOCAL_MODULE := libdrm_intel
-
-LOCAL_SRC_FILES := $(LIBDRM_INTEL_FILES)
-
-LOCAL_SHARED_LIBRARIES := \
-	libdrm
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_SHARED_LIBRARY)
diff --git a/intel/Android.sources.bp b/intel/Android.sources.bp
new file mode 100644
index 00000000..46e0328f
--- /dev/null
+++ b/intel/Android.sources.bp
@@ -0,0 +1,13 @@ 
+// Autogenerated with Android.sources.bp.mk
+
+cc_defaults {
+    name: "libdrm_intel_sources",
+    srcs: [
+        "intel_bufmgr.c",
+        "intel_bufmgr_fake.c",
+        "intel_bufmgr_gem.c",
+        "intel_decode.c",
+        "intel_chipset.c",
+        "mm.c",
+    ],
+}
diff --git a/libkms/Android.bp b/libkms/Android.bp
new file mode 100644
index 00000000..b09dbf42
--- /dev/null
+++ b/libkms/Android.bp
@@ -0,0 +1,15 @@ 
+build = ["Android.sources.bp"]
+
+cc_library_shared {
+    name: "libkms",
+    defaults: [
+        "libdrm_defaults",
+        "libkms_sources",
+        "libkms_vmwgfx_sources",
+        "libkms_intel_sources",
+        "libkms_nouveau_sources",
+        "libkms_radeon_sources",
+    ],
+    vendor: true,
+    shared_libs: ["libdrm"],
+}
diff --git a/libkms/Android.mk b/libkms/Android.mk
deleted file mode 100644
index a8b9489f..00000000
--- a/libkms/Android.mk
+++ /dev/null
@@ -1,51 +0,0 @@ 
-DRM_GPU_DRIVERS := $(strip $(filter-out swrast, $(BOARD_GPU_DRIVERS)))
-
-intel_drivers := i915 i965 i915g iris
-radeon_drivers := r300g r600g radeonsi
-nouveau_drivers := nouveau
-virgl_drivers := virgl
-vmwgfx_drivers := vmwgfx
-
-valid_drivers := \
-	$(intel_drivers) \
-	$(radeon_drivers) \
-	$(nouveau_drivers) \
-	$(virgl_drivers) \
-	$(vmwgfx_drivers)
-
-# warn about invalid drivers
-invalid_drivers := $(filter-out $(valid_drivers), $(DRM_GPU_DRIVERS))
-ifneq ($(invalid_drivers),)
-$(warning invalid GPU drivers: $(invalid_drivers))
-# tidy up
-DRM_GPU_DRIVERS := $(filter-out $(invalid_drivers), $(DRM_GPU_DRIVERS))
-endif
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-include $(LOCAL_PATH)/Makefile.sources
-
-LOCAL_SRC_FILES := $(LIBKMS_FILES)
-
-ifneq ($(filter $(vmwgfx_drivers), $(DRM_GPU_DRIVERS)),)
-LOCAL_SRC_FILES += $(LIBKMS_VMWGFX_FILES)
-endif
-
-ifneq ($(filter $(intel_drivers), $(DRM_GPU_DRIVERS)),)
-LOCAL_SRC_FILES += $(LIBKMS_INTEL_FILES)
-endif
-
-ifneq ($(filter $(nouveau_drivers), $(DRM_GPU_DRIVERS)),)
-LOCAL_SRC_FILES += $(LIBKMS_NOUVEAU_FILES)
-endif
-
-ifneq ($(filter $(radeon_drivers), $(DRM_GPU_DRIVERS)),)
-LOCAL_SRC_FILES += $(LIBKMS_RADEON_FILES)
-endif
-
-LOCAL_MODULE := libkms
-LOCAL_SHARED_LIBRARIES := libdrm
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_SHARED_LIBRARY)
diff --git a/libkms/Android.sources.bp b/libkms/Android.sources.bp
new file mode 100644
index 00000000..5582f235
--- /dev/null
+++ b/libkms/Android.sources.bp
@@ -0,0 +1,38 @@ 
+// Autogenerated with Android.sources.bp.mk
+
+cc_defaults {
+    name: "libkms_sources",
+    srcs: [
+        "linux.c",
+        "dumb.c",
+        "api.c",
+    ],
+}
+
+cc_defaults {
+    name: "libkms_vmwgfx_sources",
+    srcs: [
+        "vmwgfx.c",
+    ],
+}
+
+cc_defaults {
+    name: "libkms_intel_sources",
+    srcs: [
+        "intel.c",
+    ],
+}
+
+cc_defaults {
+    name: "libkms_nouveau_sources",
+    srcs: [
+        "nouveau.c",
+    ],
+}
+
+cc_defaults {
+    name: "libkms_radeon_sources",
+    srcs: [
+        "radeon.c",
+    ],
+}
diff --git a/nouveau/Android.bp b/nouveau/Android.bp
new file mode 100644
index 00000000..12c37e3d
--- /dev/null
+++ b/nouveau/Android.bp
@@ -0,0 +1,11 @@ 
+build = ["Android.sources.bp"]
+
+cc_library_shared {
+    name: "libdrm_nouveau",
+    defaults: [
+        "libdrm_defaults",
+        "libdrm_nouveau_sources",
+    ],
+    vendor: true,
+    shared_libs: ["libdrm"],
+}
diff --git a/nouveau/Android.mk b/nouveau/Android.mk
deleted file mode 100644
index b430af4f..00000000
--- a/nouveau/Android.mk
+++ /dev/null
@@ -1,14 +0,0 @@ 
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-# Import variables LIBDRM_NOUVEAU_FILES, LIBDRM_NOUVEAU_H_FILES
-include $(LOCAL_PATH)/Makefile.sources
-
-LOCAL_MODULE := libdrm_nouveau
-
-LOCAL_SHARED_LIBRARIES := libdrm
-
-LOCAL_SRC_FILES := $(LIBDRM_NOUVEAU_FILES)
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_SHARED_LIBRARY)
diff --git a/nouveau/Android.sources.bp b/nouveau/Android.sources.bp
new file mode 100644
index 00000000..5ecdb53c
--- /dev/null
+++ b/nouveau/Android.sources.bp
@@ -0,0 +1,11 @@ 
+// Autogenerated with Android.sources.bp.mk
+
+cc_defaults {
+    name: "libdrm_nouveau_sources",
+    srcs: [
+        "nouveau.c",
+        "pushbuf.c",
+        "bufctx.c",
+        "abi16.c",
+    ],
+}
diff --git a/omap/Android.bp b/omap/Android.bp
new file mode 100644
index 00000000..05ca7d2d
--- /dev/null
+++ b/omap/Android.bp
@@ -0,0 +1,12 @@ 
+build = ["Android.sources.bp"]
+
+cc_library_shared {
+    name: "libdrm_omap",
+    defaults: [
+        "libdrm_defaults",
+        "libdrm_omap_sources",
+    ],
+    vendor: true,
+
+    shared_libs: ["libdrm"],
+}
diff --git a/omap/Android.mk b/omap/Android.mk
deleted file mode 100644
index b25cca13..00000000
--- a/omap/Android.mk
+++ /dev/null
@@ -1,13 +0,0 @@ 
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-LOCAL_MODULE := libdrm_omap
-LOCAL_VENDOR_MODULE := true
-
-LOCAL_SRC_FILES := omap_drm.c
-
-LOCAL_SHARED_LIBRARIES := libdrm
-
-include $(LIBDRM_COMMON_MK)
-
-include $(BUILD_SHARED_LIBRARY)
diff --git a/omap/Android.sources.bp b/omap/Android.sources.bp
new file mode 100644
index 00000000..3c7da94a
--- /dev/null
+++ b/omap/Android.sources.bp
@@ -0,0 +1,8 @@ 
+// Autogenerated with Android.sources.bp.mk
+
+cc_defaults {
+    name: "libdrm_omap_sources",
+    srcs: [
+	"omap_drm.c",
+    ],
+}
diff --git a/radeon/Android.bp b/radeon/Android.bp
new file mode 100644
index 00000000..9d0a09ec
--- /dev/null
+++ b/radeon/Android.bp
@@ -0,0 +1,11 @@ 
+build = ["Android.sources.bp"]
+
+cc_library_shared {
+    name: "libdrm_radeon",
+    defaults: [
+        "libdrm_defaults",
+        "libdrm_radeon_sources",
+    ],
+    vendor: true,
+    shared_libs: ["libdrm"],
+}
diff --git a/radeon/Android.mk b/radeon/Android.mk
deleted file mode 100644
index 71040dab..00000000
--- a/radeon/Android.mk
+++ /dev/null
@@ -1,14 +0,0 @@ 
-LOCAL_PATH := $(call my-dir)
-include $(CLEAR_VARS)
-
-# Import variables LIBDRM_RADEON_FILES, LIBDRM_RADEON_H_FILES
-include $(LOCAL_PATH)/Makefile.sources
-
-LOCAL_MODULE := libdrm_radeon
-
-LOCAL_SHARED_LIBRARIES := libdrm
-
-LOCAL_SRC_FILES := $(LIBDRM_RADEON_FILES)
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_SHARED_LIBRARY)
diff --git a/radeon/Android.sources.bp b/radeon/Android.sources.bp
new file mode 100644
index 00000000..820ac4d6
--- /dev/null
+++ b/radeon/Android.sources.bp
@@ -0,0 +1,13 @@ 
+// Autogenerated with Android.sources.bp.mk
+
+cc_defaults {
+    name: "libdrm_radeon_sources",
+    srcs: [
+        "radeon_bo_gem.c",
+        "radeon_cs_gem.c",
+        "radeon_cs_space.c",
+        "radeon_bo.c",
+        "radeon_cs.c",
+        "radeon_surface.c",
+    ],
+}
diff --git a/tegra/Android.bp b/tegra/Android.bp
new file mode 100644
index 00000000..33eaf6c5
--- /dev/null
+++ b/tegra/Android.bp
@@ -0,0 +1,14 @@ 
+cc_library_shared {
+    name: "libdrm_tegra",
+    vendor: true,
+    shared_libs: ["libdrm"],
+
+    srcs: ["tegra.c"],
+
+    cflags: [
+        "-DHAVE_LIBDRM_ATOMIC_PRIMITIVES=1",
+        "-Wall",
+        "-Werror",
+        "-Wno-unused-variable",
+    ],
+}
diff --git a/tests/Android.bp b/tests/Android.bp
new file mode 100644
index 00000000..cdc6c2cf
--- /dev/null
+++ b/tests/Android.bp
@@ -0,0 +1,6 @@ 
+subdirs = ["*"]
+
+cc_library_headers {
+    name: "libdrm_test_headers",
+    export_include_dirs: ["."],
+}
diff --git a/tests/Android.mk b/tests/Android.mk
deleted file mode 100644
index 5053e7d6..00000000
--- a/tests/Android.mk
+++ /dev/null
@@ -1 +0,0 @@ 
-include $(call all-subdir-makefiles)
diff --git a/tests/modetest/Android.bp b/tests/modetest/Android.bp
new file mode 100644
index 00000000..ca811fee
--- /dev/null
+++ b/tests/modetest/Android.bp
@@ -0,0 +1,12 @@ 
+build = ["Android.sources.bp"]
+
+cc_test {
+    name: "modetest",
+    defaults: [
+        "libdrm_defaults",
+        "modetest_sources",
+    ],
+
+    shared_libs: ["libdrm"],
+    static_libs: ["libdrm_util"],
+}
diff --git a/tests/modetest/Android.mk b/tests/modetest/Android.mk
deleted file mode 100644
index c1a71fd9..00000000
--- a/tests/modetest/Android.mk
+++ /dev/null
@@ -1,14 +0,0 @@ 
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-include $(LOCAL_PATH)/Makefile.sources
-
-LOCAL_SRC_FILES := $(MODETEST_FILES)
-
-LOCAL_MODULE := modetest
-
-LOCAL_SHARED_LIBRARIES := libdrm
-LOCAL_STATIC_LIBRARIES := libdrm_util
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_EXECUTABLE)
diff --git a/tests/modetest/Android.sources.bp b/tests/modetest/Android.sources.bp
new file mode 100644
index 00000000..c6aca2ef
--- /dev/null
+++ b/tests/modetest/Android.sources.bp
@@ -0,0 +1,10 @@ 
+// Autogenerated with Android.sources.bp.mk
+
+cc_defaults {
+    name: "modetest_sources",
+    srcs: [
+        "buffers.c",
+        "cursor.c",
+        "modetest.c",
+    ],
+}
diff --git a/tests/proptest/Android.bp b/tests/proptest/Android.bp
new file mode 100644
index 00000000..28c87e91
--- /dev/null
+++ b/tests/proptest/Android.bp
@@ -0,0 +1,8 @@ 
+cc_test {
+    name: "proptest",
+    defaults: ["libdrm_defaults"],
+    srcs: ["proptest.c"],
+
+    shared_libs: ["libdrm"],
+    static_libs: ["libdrm_util"],
+}
diff --git a/tests/proptest/Android.mk b/tests/proptest/Android.mk
deleted file mode 100644
index 91a590fc..00000000
--- a/tests/proptest/Android.mk
+++ /dev/null
@@ -1,14 +0,0 @@ 
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-include $(LOCAL_PATH)/Makefile.sources
-
-LOCAL_SRC_FILES := $(PROPTEST_FILES)
-
-LOCAL_MODULE := proptest
-
-LOCAL_SHARED_LIBRARIES := libdrm
-LOCAL_STATIC_LIBRARIES := libdrm_util
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_EXECUTABLE)
diff --git a/tests/util/Android.bp b/tests/util/Android.bp
new file mode 100644
index 00000000..36d18206
--- /dev/null
+++ b/tests/util/Android.bp
@@ -0,0 +1,35 @@ 
+//
+// Copyright © 2015 NVIDIA Corporation
+//
+// Permission is hereby granted, free of charge, to any person obtaining a
+// copy of this software and associated documentation files (the "Software"),
+// to deal in the Software without restriction, including without limitation
+// the rights to use, copy, modify, merge, publish, distribute, sublicense,
+// and/or sell copies of the Software, and to permit persons to whom the
+// Software is furnished to do so, subject to the following conditions:
+//
+// The above copyright notice and this permission notice (including the next
+// paragraph) shall be included in all copies or substantial portions of the
+// Software.
+//
+// THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+// IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+// FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
+// THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
+// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
+// IN THE SOFTWARE.
+//
+
+build = ["Android.sources.bp"]
+
+cc_library_static {
+    name: "libdrm_util",
+    defaults: [
+        "libdrm_defaults",
+        "libdrm_util_sources",
+    ],
+    shared_libs: ["libdrm"],
+    header_libs: ["libdrm_test_headers"],
+    export_header_lib_headers: ["libdrm_test_headers"],
+}
diff --git a/tests/util/Android.mk b/tests/util/Android.mk
deleted file mode 100644
index 12eccb42..00000000
--- a/tests/util/Android.mk
+++ /dev/null
@@ -1,38 +0,0 @@ 
-#
-# Copyright © 2015 NVIDIA Corporation
-#
-# Permission is hereby granted, free of charge, to any person obtaining a
-# copy of this software and associated documentation files (the "Software"),
-# to deal in the Software without restriction, including without limitation
-# the rights to use, copy, modify, merge, publish, distribute, sublicense,
-# and/or sell copies of the Software, and to permit persons to whom the
-# Software is furnished to do so, subject to the following conditions:
-#
-# The above copyright notice and this permission notice (including the next
-# paragraph) shall be included in all copies or substantial portions of the
-# Software.
-#
-# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
-# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
-# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL
-# THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
-# LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
-# FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS
-# IN THE SOFTWARE.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-include $(CLEAR_VARS)
-include $(LOCAL_PATH)/Makefile.sources
-
-LOCAL_MODULE := libdrm_util
-
-LOCAL_SHARED_LIBRARIES := libdrm
-
-LOCAL_SRC_FILES := $(UTIL_FILES)
-
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LIBDRM_TOP)/tests
-
-include $(LIBDRM_COMMON_MK)
-include $(BUILD_STATIC_LIBRARY)
diff --git a/tests/util/Android.sources.bp b/tests/util/Android.sources.bp
new file mode 100644
index 00000000..529e1124
--- /dev/null
+++ b/tests/util/Android.sources.bp
@@ -0,0 +1,10 @@ 
+// Autogenerated with Android.sources.bp.mk
+
+cc_defaults {
+    name: "libdrm_util_sources",
+    srcs: [
+        "format.c",
+        "kms.c",
+        "pattern.c",
+    ],
+}