1f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)# Copyright 2014 The Chromium Authors. All rights reserved. 2f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)# Use of this source code is governed by a BSD-style license that can be 3f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)# found in the LICENSE file. 4f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 5f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_PATH := $(call my-dir) 6f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 7f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)crazy_linker_sources := \ 8f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_api.cpp \ 9f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_ashmem.cpp \ 10f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_debug.cpp \ 11f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_elf_loader.cpp \ 12f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_elf_relocations.cpp \ 13f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_elf_relro.cpp \ 14f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_elf_symbols.cpp \ 15f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_elf_view.cpp \ 16f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_error.cpp \ 17f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_globals.cpp \ 18f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_library_list.cpp \ 19f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_library_view.cpp \ 20f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_line_reader.cpp \ 21f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_proc_maps.cpp \ 22f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_rdebug.cpp \ 23f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_search_path_list.cpp \ 24f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_shared_library.cpp \ 25f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_thread.cpp \ 26f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_util.cpp \ 27f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_wrappers.cpp \ 28f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_system.cpp \ 29f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/linker_phdr.cpp \ 30f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 31f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)# The crazy linker itself. 32f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)include $(CLEAR_VARS) 33f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_MODULE := crazy_linker 34f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_C_INCLUDES = $(LOCAL_PATH)/include $(LOCAL_PATH)/src 35f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_CFLAGS := -Os -fvisibility=hidden -Wall -Werror 36f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_SRC_FILES := $(crazy_linker_sources) 37f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_EXPORT_C_INCLUDES := $(LOCAL_PATH)/include 38f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_EXPORT_LDLIBS := -llog 39f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)include $(BUILD_STATIC_LIBRARY) 40f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 41f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)# The crazy linker unit tests. 42f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)include $(CLEAR_VARS) 43f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 44f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_MODULE := crazylinker_unittest 45f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_SRC_FILES := \ 46f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) $(crazy_linker_sources) \ 47f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_ashmem_unittest.cpp \ 48f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_error_unittest.cpp \ 49f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_line_reader_unittest.cpp \ 50f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_system_mock.cpp \ 51f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_system_unittest.cpp \ 52f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_globals_unittest.cpp \ 53f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_proc_maps_unittest.cpp \ 54f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_search_path_list_unittest.cpp \ 55f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_util_unittest.cpp \ 56f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) src/crazy_linker_thread_unittest.cpp \ 57f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) minitest/minitest.cc \ 58f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 59f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_C_INCLUDES := $(LOCAL_PATH)/include $(LOCAL_PATH)/src 60f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_CFLAGS += -DUNIT_TESTS 61f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)LOCAL_LDLIBS := -llog 62f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 63f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles)include $(BUILD_EXECUTABLE) 64f8ee788a64d60abd8f2d742a5fdedde054ecd910Torne (Richard Coles) 65