Merge "Convert libelf from Android.mk to Android.bp"
diff --git a/Android.bp b/Android.bp
new file mode 100644
index 0000000..754a6d7
--- /dev/null
+++ b/Android.bp
@@ -0,0 +1,15 @@
+cc_library_static {
+    name: "libelf_headers",
+    host_supported: true,
+    export_include_dirs: [
+        ".",
+        "lib",
+    ],
+    target: {
+        android: {
+            export_include_dirs: ["bionic-fixup"],
+        },
+    },
+}
+
+subdirs = ["libelf"]
diff --git a/Android.mk b/Android.mk
deleted file mode 100755
index 260fae2..0000000
--- a/Android.mk
+++ /dev/null
@@ -1,15 +0,0 @@
-# Copyright (C) 2013 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/libelf/Android.bp b/libelf/Android.bp
new file mode 100644
index 0000000..4f8fd03
--- /dev/null
+++ b/libelf/Android.bp
@@ -0,0 +1,163 @@
+// Copyright (C) 2013 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.
+
+cc_library_static {
+    name: "libelf",
+    host_supported: true,
+
+    srcs:  [
+        "elf32_checksum.c",
+        "elf32_fsize.c",
+        "elf32_getchdr.c",
+        "elf32_getehdr.c",
+        "elf32_getphdr.c",
+        "elf32_getshdr.c",
+        "elf32_newehdr.c",
+        "elf32_newphdr.c",
+        "elf32_offscn.c",
+        "elf32_updatefile.c",
+        "elf32_updatenull.c",
+        "elf32_xlatetof.c",
+        "elf32_xlatetom.c",
+        "elf64_checksum.c",
+        "elf64_fsize.c",
+        "elf64_getchdr.c",
+        "elf64_getehdr.c",
+        "elf64_getphdr.c",
+        "elf64_getshdr.c",
+        "elf64_newehdr.c",
+        "elf64_newphdr.c",
+        "elf64_offscn.c",
+        "elf64_updatefile.c",
+        "elf64_updatenull.c",
+        "elf64_xlatetof.c",
+        "elf64_xlatetom.c",
+        "elf_begin.c",
+        "elf_clone.c",
+        "elf_cntl.c",
+        "elf_compress.c",
+        "elf_end.c",
+        "elf_error.c",
+        "elf_fill.c",
+        "elf_flagdata.c",
+        "elf_flagehdr.c",
+        "elf_flagelf.c",
+        "elf_flagphdr.c",
+        "elf_flagscn.c",
+        "elf_flagshdr.c",
+        "elf_getarhdr.c",
+        "elf_getaroff.c",
+        "elf_getarsym.c",
+        "elf_getbase.c",
+        "elf_getdata.c",
+        "elf_getdata_rawchunk.c",
+        "elf_getident.c",
+        "elf_getphdrnum.c",
+        "elf_getscn.c",
+        "elf_getshdrnum.c",
+        "elf_getshdrstrndx.c",
+        "elf_gnu_hash.c",
+        "elf_hash.c",
+        "elf_kind.c",
+        "elf_memory.c",
+        "elf_ndxscn.c",
+        "elf_newdata.c",
+        "elf_newscn.c",
+        "elf_next.c",
+        "elf_nextscn.c",
+        "elf_rand.c",
+        "elf_rawdata.c",
+        "elf_rawfile.c",
+        "elf_readall.c",
+        "elf_scnshndx.c",
+        "elf_strptr.c",
+        "elf_update.c",
+        "elf_version.c",
+        "gelf_checksum.c",
+        "gelf_fsize.c",
+        "gelf_getauxv.c",
+        "gelf_getchdr.c",
+        "gelf_getclass.c",
+        "gelf_getdyn.c",
+        "gelf_getehdr.c",
+        "gelf_getlib.c",
+        "gelf_getmove.c",
+        "gelf_getnote.c",
+        "gelf_getphdr.c",
+        "gelf_getrela.c",
+        "gelf_getrel.c",
+        "gelf_getshdr.c",
+        "gelf_getsym.c",
+        "gelf_getsyminfo.c",
+        "gelf_getsymshndx.c",
+        "gelf_getverdaux.c",
+        "gelf_getverdef.c",
+        "gelf_getvernaux.c",
+        "gelf_getverneed.c",
+        "gelf_getversym.c",
+        "gelf_newehdr.c",
+        "gelf_newphdr.c",
+        "gelf_offscn.c",
+        "gelf_update_auxv.c",
+        "gelf_update_dyn.c",
+        "gelf_update_ehdr.c",
+        "gelf_update_lib.c",
+        "gelf_update_move.c",
+        "gelf_update_phdr.c",
+        "gelf_update_rela.c",
+        "gelf_update_rel.c",
+        "gelf_update_shdr.c",
+        "gelf_update_sym.c",
+        "gelf_update_syminfo.c",
+        "gelf_update_symshndx.c",
+        "gelf_update_verdaux.c",
+        "gelf_update_verdef.c",
+        "gelf_update_vernaux.c",
+        "gelf_update_verneed.c",
+        "gelf_update_versym.c",
+        "gelf_xlate.c",
+        "gelf_xlatetof.c",
+        "gelf_xlatetom.c",
+        "libelf_crc32.c",
+        "libelf_next_prime.c",
+        "nlist.c",
+    ],
+
+    cflags: [
+        "-DHAVE_CONFIG_H",
+        "-std=gnu99",
+        "-D_GNU_SOURCE",
+        // to suppress the "pointer of type ‘void *’ used in arithmetic" warning
+        "-Wno-pointer-arith",
+    ],
+
+    static_libs: [
+        "libz",
+        "libelf_headers",
+    ],
+
+    export_include_dirs: ["."],
+
+    target: {
+        darwin: {
+            enabled: false,
+        },
+        android: {
+            cflags: [
+                "-D_FILE_OFFSET_BITS=64",
+                "-include AndroidFixup.h",
+            ],
+        },
+    },
+}
diff --git a/libelf/Android.mk b/libelf/Android.mk
deleted file mode 100755
index 6bc31d6..0000000
--- a/libelf/Android.mk
+++ /dev/null
@@ -1,190 +0,0 @@
-# Copyright (C) 2013 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)
-
-LIBELF_SRC_FILES := \
-	elf32_checksum.c \
-	elf32_fsize.c \
-	elf32_getchdr.c \
-	elf32_getehdr.c \
-	elf32_getphdr.c \
-	elf32_getshdr.c \
-	elf32_newehdr.c \
-	elf32_newphdr.c \
-	elf32_offscn.c \
-	elf32_updatefile.c \
-	elf32_updatenull.c \
-	elf32_xlatetof.c \
-	elf32_xlatetom.c \
-	elf64_checksum.c \
-	elf64_fsize.c \
-	elf64_getchdr.c \
-	elf64_getehdr.c \
-	elf64_getphdr.c \
-	elf64_getshdr.c \
-	elf64_newehdr.c \
-	elf64_newphdr.c \
-	elf64_offscn.c \
-	elf64_updatefile.c \
-	elf64_updatenull.c \
-	elf64_xlatetof.c \
-	elf64_xlatetom.c \
-	elf_begin.c \
-	elf_clone.c \
-	elf_cntl.c \
-	elf_compress.c \
-	elf_end.c \
-	elf_error.c \
-	elf_fill.c \
-	elf_flagdata.c \
-	elf_flagehdr.c \
-	elf_flagelf.c \
-	elf_flagphdr.c \
-	elf_flagscn.c \
-	elf_flagshdr.c \
-	elf_getarhdr.c \
-	elf_getaroff.c \
-	elf_getarsym.c \
-	elf_getbase.c \
-	elf_getdata.c \
-	elf_getdata_rawchunk.c \
-	elf_getident.c \
-	elf_getphdrnum.c \
-	elf_getscn.c \
-	elf_getshdrnum.c \
-	elf_getshdrstrndx.c \
-	elf_gnu_hash.c \
-	elf_hash.c \
-	elf_kind.c \
-	elf_memory.c \
-	elf_ndxscn.c \
-	elf_newdata.c \
-	elf_newscn.c \
-	elf_next.c \
-	elf_nextscn.c \
-	elf_rand.c \
-	elf_rawdata.c \
-	elf_rawfile.c \
-	elf_readall.c \
-	elf_scnshndx.c \
-	elf_strptr.c \
-	elf_update.c \
-	elf_version.c \
-	gelf_checksum.c \
-	gelf_fsize.c \
-	gelf_getauxv.c \
-	gelf_getchdr.c \
-	gelf_getclass.c \
-	gelf_getdyn.c \
-	gelf_getehdr.c \
-	gelf_getlib.c \
-	gelf_getmove.c \
-	gelf_getnote.c \
-	gelf_getphdr.c \
-	gelf_getrela.c \
-	gelf_getrel.c \
-	gelf_getshdr.c \
-	gelf_getsym.c \
-	gelf_getsyminfo.c \
-	gelf_getsymshndx.c \
-	gelf_getverdaux.c \
-	gelf_getverdef.c \
-	gelf_getvernaux.c \
-	gelf_getverneed.c \
-	gelf_getversym.c \
-	gelf_newehdr.c \
-	gelf_newphdr.c \
-	gelf_offscn.c \
-	gelf_update_auxv.c \
-	gelf_update_dyn.c \
-	gelf_update_ehdr.c \
-	gelf_update_lib.c \
-	gelf_update_move.c \
-	gelf_update_phdr.c \
-	gelf_update_rela.c \
-	gelf_update_rel.c \
-	gelf_update_shdr.c \
-	gelf_update_sym.c \
-	gelf_update_syminfo.c \
-	gelf_update_symshndx.c \
-	gelf_update_verdaux.c \
-	gelf_update_verdef.c \
-	gelf_update_vernaux.c \
-	gelf_update_verneed.c \
-	gelf_update_versym.c \
-	gelf_xlate.c \
-	gelf_xlatetof.c \
-	gelf_xlatetom.c \
-	libelf_crc32.c \
-	libelf_next_prime.c \
-	nlist.c
-
-ifeq ($(HOST_OS),linux)
-
-#
-# host libelf
-#
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(LIBELF_SRC_FILES)
-
-LOCAL_C_INCLUDES := \
-	$(LOCAL_PATH)/.. \
-	$(LOCAL_PATH)/../lib \
-
-LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE
-
-# to suppress the "pointer of type ‘void *’ used in arithmetic" warning
-LOCAL_CFLAGS += -Wno-pointer-arith
-
-LOCAL_MODULE := libelf
-
-LOCAL_STATIC_LIBRARIES := libz
-
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
-
-include $(BUILD_HOST_STATIC_LIBRARY)
-
-endif # linux
-
-#
-# target libelf
-#
-
-include $(CLEAR_VARS)
-
-LOCAL_SRC_FILES := $(LIBELF_SRC_FILES)
-
-LOCAL_C_INCLUDES := \
-	$(LOCAL_PATH)/.. \
-	$(LOCAL_PATH)/../lib \
-
-LOCAL_C_INCLUDES += $(LOCAL_PATH)/../bionic-fixup
-
-LOCAL_STATIC_LIBRARIES := libz
-
-LOCAL_CFLAGS += -DHAVE_CONFIG_H -std=gnu99 -D_GNU_SOURCE -D_FILE_OFFSET_BITS=64
-
-# to suppress the "pointer of type ‘void *’ used in arithmetic" warning
-LOCAL_CFLAGS += -Wno-pointer-arith
-
-LOCAL_CFLAGS += -include $(LOCAL_PATH)/../bionic-fixup/AndroidFixup.h
-
-LOCAL_MODULE := libelf
-
-LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)
-
-include $(BUILD_STATIC_LIBRARY)