diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..d3f313b
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,98 @@
+//
+// Copyright (C) 2014 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.
+//
+
+//
+// To update:
+//
+
+//  git merge aosp/upstream-master
+//  mma -j
+//  # (Make any necessary Android.bp changes and test the new libxml2.)
+//  git push aosp HEAD:master  # Push directly, avoiding gerrit.
+//  git push aosp HEAD:refs/for/master  # Push to gerrit.
+//
+//  # Now commit any necessary Android.bp changes like normal:
+//  repo start post-sync .
+//  git commit -a
+//
+
+// This comes from the automake-generated Makefile.
+// We deliberately exclude nanoftp.c and nanohttp.c, the trio library, and zlib.
+cc_library {
+    name: "libxml2",
+    host_supported: true,
+    srcs: [
+        "SAX.c",
+        "entities.c",
+        "encoding.c",
+        "error.c",
+        "parserInternals.c",
+        "parser.c",
+        "tree.c",
+        "hash.c",
+        "list.c",
+        "xmlIO.c",
+        "xmlmemory.c",
+        "uri.c",
+        "valid.c",
+        "xlink.c",
+        "debugXML.c",
+        "xpath.c",
+        "xpointer.c",
+        "xinclude.c",
+        "DOCBparser.c",
+        "catalog.c",
+        "globals.c",
+        "threads.c",
+        "c14n.c",
+        "xmlstring.c",
+        "buf.c",
+        "xmlregexp.c",
+        "xmlschemas.c",
+        "xmlschemastypes.c",
+        "xmlunicode.c",
+        "xmlreader.c",
+        "relaxng.c",
+        "dict.c",
+        "SAX2.c",
+        "xmlwriter.c",
+        "legacy.c",
+        "chvalid.c",
+        "pattern.c",
+        "xmlsave.c",
+        "xmlmodule.c",
+        "schematron.c",
+    ],
+    export_include_dirs: ["include"],
+    cflags: [
+        "-DLIBXML_THREAD_ENABLED=1",
+
+        "-Wno-missing-field-initializers",
+        "-Wno-self-assign",
+        "-Wno-sign-compare",
+        "-Wno-tautological-pointer-compare",
+        "-Wno-unused-parameter",
+    ],
+    static: {
+        cflags: ["-fvisibility=hidden"],
+    },
+    target: {
+        host: {
+            host_ldlibs: ["-ldl"],
+        },
+    },
+    shared_libs: ["libicuuc"],
+}
diff --git a/Android.mk b/Android.mk
deleted file mode 100644
index c1ae8bb..0000000
--- a/Android.mk
+++ /dev/null
@@ -1,94 +0,0 @@
-#
-# Copyright (C) 2014 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.
-#
-
-LOCAL_PATH := $(call my-dir)
-
-#
-# To update:
-#
-
-#  git merge aosp/upstream-master
-#  mm -j32
-#  # (Make any necessary Android.mk changes and test the new libxml2.)
-#  git push aosp HEAD:master  # Push directly, avoiding gerrit.
-#  git push aosp HEAD:refs/for/master  # Push to gerrit.
-#
-#  # Now commit any necessary Android.mk changes like normal:
-#  repo start post-sync .
-#  git commit -a
-#
-
-# This comes from the automake-generated Makefile.
-# We deliberately exclude nanoftp.c and nanohttp.c, the trio library, and zlib.
-common_SRC_FILES := SAX.c entities.c encoding.c error.c \
-        parserInternals.c parser.c tree.c hash.c list.c xmlIO.c \
-        xmlmemory.c uri.c valid.c xlink.c \
-        debugXML.c xpath.c xpointer.c xinclude.c \
-        DOCBparser.c catalog.c globals.c threads.c c14n.c xmlstring.c \
-        buf.c xmlregexp.c xmlschemas.c xmlschemastypes.c xmlunicode.c \
-        xmlreader.c relaxng.c dict.c SAX2.c \
-        xmlwriter.c legacy.c chvalid.c pattern.c xmlsave.c xmlmodule.c \
-        schematron.c
-
-common_C_INCLUDES += $(LOCAL_PATH)/include
-
-common_CFLAGS += -DLIBXML_THREAD_ENABLED=1
-
-common_CFLAGS += \
-    -Wno-missing-field-initializers \
-    -Wno-self-assign \
-    -Wno-sign-compare \
-    -Wno-tautological-pointer-compare \
-    -Wno-unused-parameter \
-
-# Static library
-#=======================================================
-
-include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(common_SRC_FILES)
-LOCAL_C_INCLUDES += $(common_C_INCLUDES)
-LOCAL_CFLAGS += $(common_CFLAGS) -fvisibility=hidden
-LOCAL_SHARED_LIBRARIES += libicuuc
-LOCAL_MODULE := libxml2
-LOCAL_CLANG := true
-LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
-include $(BUILD_STATIC_LIBRARY)
-
-# Shared library
-#=======================================================
-
-include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(common_SRC_FILES)
-LOCAL_C_INCLUDES := $(common_C_INCLUDES)
-LOCAL_CFLAGS += $(common_CFLAGS)
-LOCAL_SHARED_LIBRARIES := libicuuc
-LOCAL_MODULE:= libxml2
-LOCAL_CLANG := true
-LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
-include $(BUILD_SHARED_LIBRARY)
-
-# For the host
-# ========================================================
-
-include $(CLEAR_VARS)
-LOCAL_SRC_FILES := $(common_SRC_FILES)
-LOCAL_C_INCLUDES += $(common_C_INCLUDES)
-LOCAL_CFLAGS += $(common_CFLAGS) -fvisibility=hidden
-LOCAL_SHARED_LIBRARIES += libicuuc
-LOCAL_MODULE := libxml2
-LOCAL_CLANG := true
-LOCAL_ADDITIONAL_DEPENDENCIES += $(LOCAL_PATH)/Android.mk
-include $(BUILD_HOST_STATIC_LIBRARY)
