1cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# Copyright (C) 2008 The Android Open Source Project 2cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# 3cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# Licensed under the Apache License, Version 2.0 (the "License"); 4cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# you may not use this file except in compliance with the License. 5cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# You may obtain a copy of the License at 6cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# 7cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# http://www.apache.org/licenses/LICENSE-2.0 8cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# 9cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# Unless required by applicable law or agreed to in writing, software 10cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# distributed under the License is distributed on an "AS IS" BASIS, 11cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# See the License for the specific language governing permissions and 13cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# limitations under the License. 14cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 15cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_PATH:= $(call my-dir) 16cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 17cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# libutils is a little unique: It's built twice, once for the host 18cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# and once for the device. 19cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 20cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectcommonSources:= \ 21e735f23018b398f45bd052b63616d7a45e29515bJeff Brown BasicHashtable.cpp \ 221a20993c1000da3f008b34b7a5e6dbbd6fe291a6Jamie Gennis BlobCache.cpp \ 23cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project CallStack.cpp \ 24cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project FileMap.cpp \ 25b6ea175b6b4d0aaac85ed6cd8ccac01ab896486bRaph Levien JenkinsHash.cpp \ 26551fcf4fe39e68fab17d56cc6c4b8a61164891ffChris Craik LinearAllocator.cpp \ 27b86c8e4e55c860a6a7e1009fda2a4803da45b412Jason Simmons LinearTransform.cpp \ 286454f461665a44b1e47d277d8b92415b5bbce2d8Jeff Brown Log.cpp \ 29ec79ef2e7b6b1d81266637ca0e002b5c0c5a789bIgor Murashkin Printer.cpp \ 30ec79ef2e7b6b1d81266637ca0e002b5c0c5a789bIgor Murashkin ProcessCallStack.cpp \ 3104cbbc1c47c68e805d2674d9fc702fc44385805fJeff Brown PropertyMap.cpp \ 32cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project RefBase.cpp \ 33cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project SharedBuffer.cpp \ 34cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project Static.cpp \ 35cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project StopWatch.cpp \ 36cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project String8.cpp \ 37cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project String16.cpp \ 38cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project SystemClock.cpp \ 39cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project Threads.cpp \ 40cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project Timers.cpp \ 41647925ddf053989b641b4c5c8a51efd55c931f22Jeff Brown Tokenizer.cpp \ 42ba0165bef09729a33ab8e0ca329342be05e0d859Kenny Root Unicode.cpp \ 43cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project VectorImpl.cpp \ 4414d978d02d93f8976ff8b01c2f827fc7c83f4fbdMathias Agopian misc.cpp 45cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 46a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehhost_commonCflags := -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS) 47cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 48cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectifeq ($(HOST_OS),windows) 49cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectifeq ($(strip $(USE_CYGWIN),),) 50cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# Under MinGW, ctype.h doesn't need multi-byte support 51a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehhost_commonCflags += -DMB_CUR_MAX=1 52cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectendif 53cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectendif 54cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 55a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehhost_commonLdlibs := 56a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh 5726ad34522e85b4427ec0ae662dd43eb78a2c5f95Iliyan Malchevifeq ($(TARGET_OS),linux) 58a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehhost_commonLdlibs += -lrt -ldl 5926ad34522e85b4427ec0ae662dd43eb78a2c5f95Iliyan Malchevendif 6026ad34522e85b4427ec0ae662dd43eb78a2c5f95Iliyan Malchev 61a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh 62a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh# For the host 63a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh# ===================================================== 64a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehinclude $(CLEAR_VARS) 65a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_SRC_FILES:= $(commonSources) 664e371cec7fa13273f81b9266c88ca846ece87096Keun young Parkifeq ($(HOST_OS), linux) 674e371cec7fa13273f81b9266c88ca846ece87096Keun young ParkLOCAL_SRC_FILES += Looper.cpp 684e371cec7fa13273f81b9266c88ca846ece87096Keun young Parkendif 69a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_MODULE:= libutils 70946003ae6472ab4661c10d11c2b6ded42fe701caColin CrossLOCAL_STATIC_LIBRARIES := liblog 71a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_CFLAGS += $(host_commonCflags) 72a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_LDLIBS += $(host_commonLdlibs) 73a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehinclude $(BUILD_HOST_STATIC_LIBRARY) 74a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh 75a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh 76a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh# For the host, 64-bit 77a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh# ===================================================== 78a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehinclude $(CLEAR_VARS) 79a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_SRC_FILES:= $(commonSources) 804e371cec7fa13273f81b9266c88ca846ece87096Keun young Parkifeq ($(HOST_OS), linux) 814e371cec7fa13273f81b9266c88ca846ece87096Keun young ParkLOCAL_SRC_FILES += Looper.cpp 824e371cec7fa13273f81b9266c88ca846ece87096Keun young Parkendif 83a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_MODULE:= lib64utils 84946003ae6472ab4661c10d11c2b6ded42fe701caColin CrossLOCAL_STATIC_LIBRARIES := liblog 85a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_CFLAGS += $(host_commonCflags) -m64 86a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_LDLIBS += $(host_commonLdlibs) 87cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinclude $(BUILD_HOST_STATIC_LIBRARY) 88cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 89cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 9000c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringert# For the device, static 91cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# ===================================================== 92cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinclude $(CLEAR_VARS) 93cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 94cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 95cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# we have the common sources, plus some device-specific stuff 96cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_SRC_FILES:= \ 97cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project $(commonSources) \ 982ccfe1a0606f59b5cefd177f9dd5c837d0ea2d0bJamie Gennis Looper.cpp \ 992ccfe1a0606f59b5cefd177f9dd5c837d0ea2d0bJamie Gennis Trace.cpp 100cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 101cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectifeq ($(TARGET_OS),linux) 102cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_LDLIBS += -lrt -ldl 103cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectendif 104cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 105551fcf4fe39e68fab17d56cc6c4b8a61164891ffChris Craikifeq ($(TARGET_ARCH),mips) 106551fcf4fe39e68fab17d56cc6c4b8a61164891ffChris CraikLOCAL_CFLAGS += -DALIGN_DOUBLE 107551fcf4fe39e68fab17d56cc6c4b8a61164891ffChris Craikendif 108551fcf4fe39e68fab17d56cc6c4b8a61164891ffChris Craik 109cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_C_INCLUDES += \ 1103abdea92efbe85c66d7f2dc662953d0b5ed59451Colin Cross bionic/libc/private \ 1113abdea92efbe85c66d7f2dc662953d0b5ed59451Colin Cross external/zlib 1121555436473afd296488235f0aa22bb17162a929fMathias Agopian 113cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_LDLIBS += -lpthread 114cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 11500c14b4be46bf08cc0a351663e247690f59acfa8Bjorn BringertLOCAL_STATIC_LIBRARIES := \ 1169eb2a3b1c0cc1ff3082a9283e24c8babc112f56bMathias Agopian libcutils 117cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 11800c14b4be46bf08cc0a351663e247690f59acfa8Bjorn BringertLOCAL_SHARED_LIBRARIES := \ 11900c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringert libcorkscrew \ 12000c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringert liblog \ 12100c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringert libdl 12200c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringert 12300c14b4be46bf08cc0a351663e247690f59acfa8Bjorn BringertLOCAL_MODULE:= libutils 12400c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringertinclude $(BUILD_STATIC_LIBRARY) 12500c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringert 12600c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringert# For the device, shared 12700c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringert# ===================================================== 12800c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringertinclude $(CLEAR_VARS) 129cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_MODULE:= libutils 13000c14b4be46bf08cc0a351663e247690f59acfa8Bjorn BringertLOCAL_WHOLE_STATIC_LIBRARIES := libutils 13100c14b4be46bf08cc0a351663e247690f59acfa8Bjorn BringertLOCAL_SHARED_LIBRARIES := \ 13200c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringert liblog \ 13300c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringert libcutils \ 13400c14b4be46bf08cc0a351663e247690f59acfa8Bjorn Bringert libdl \ 1359eb2a3b1c0cc1ff3082a9283e24c8babc112f56bMathias Agopian libcorkscrew 1369eb2a3b1c0cc1ff3082a9283e24c8babc112f56bMathias Agopian 137cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinclude $(BUILD_SHARED_LIBRARY) 138cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project 1397aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brown# Include subdirectory makefiles 1407aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brown# ============================================================ 1417aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brown 1427aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brown# If we're building with ONE_SHOT_MAKEFILE (mm, mmm), then what the framework 1437aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brown# team really wants is to build the stuff defined by this makefile. 1447aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brownifeq (,$(ONE_SHOT_MAKEFILE)) 1457aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Browninclude $(call first-makefiles-under,$(LOCAL_PATH)) 146c28f214f6c65c56936b11fff68564d9631cfae70Christopher Tateendif 147