Android.mk revision b6ea175b6b4d0aaac85ed6cd8ccac01ab896486b
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	BufferedTextOutput.cpp \
24cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project	CallStack.cpp \
25cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project	Debug.cpp \
26cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project	FileMap.cpp \
27a580e68cc3bea688167eb5e55122bec8e83ab939Mathias Agopian	Flattenable.cpp \
28b6ea175b6b4d0aaac85ed6cd8ccac01ab896486bRaph Levien	JenkinsHash.cpp \
29b86c8e4e55c860a6a7e1009fda2a4803da45b412Jason Simmons	LinearTransform.cpp \
306454f461665a44b1e47d277d8b92415b5bbce2d8Jeff Brown	Log.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 \
38254406e313f8fcb2b63e63494573673e82036dd9Mathias Agopian	StringArray.cpp \
39cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project	SystemClock.cpp \
40cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project	TextOutput.cpp \
41cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project	Threads.cpp \
42cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project	Timers.cpp \
43647925ddf053989b641b4c5c8a51efd55c931f22Jeff Brown	Tokenizer.cpp \
44ba0165bef09729a33ab8e0ca329342be05e0d859Kenny Root	Unicode.cpp \
45cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project	VectorImpl.cpp \
4627e6eaae879309d6bbfb708e1e1aa75d7431a3a4Jeff Brown	WorkQueue.cpp \
473abdea92efbe85c66d7f2dc662953d0b5ed59451Colin Cross	ZipFileCRO.cpp \
483abdea92efbe85c66d7f2dc662953d0b5ed59451Colin Cross	ZipFileRO.cpp \
493abdea92efbe85c66d7f2dc662953d0b5ed59451Colin Cross	ZipUtils.cpp \
5014d978d02d93f8976ff8b01c2f827fc7c83f4fbdMathias Agopian	misc.cpp
51cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
52a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehhost_commonCflags := -DLIBUTILS_NATIVE=1 $(TOOL_CFLAGS)
53cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
54cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectifeq ($(HOST_OS),windows)
55cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectifeq ($(strip $(USE_CYGWIN),),)
56cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# Under MinGW, ctype.h doesn't need multi-byte support
57a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehhost_commonCflags += -DMB_CUR_MAX=1
58cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectendif
59cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectendif
60cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
61a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehhost_commonLdlibs :=
62a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh
6326ad34522e85b4427ec0ae662dd43eb78a2c5f95Iliyan Malchevifeq ($(TARGET_OS),linux)
64a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehhost_commonLdlibs += -lrt -ldl
6526ad34522e85b4427ec0ae662dd43eb78a2c5f95Iliyan Malchevendif
6626ad34522e85b4427ec0ae662dd43eb78a2c5f95Iliyan Malchev
67a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh
68a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh# For the host
69a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh# =====================================================
70a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehinclude $(CLEAR_VARS)
71a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_SRC_FILES:= $(commonSources)
724e371cec7fa13273f81b9266c88ca846ece87096Keun young Parkifeq ($(HOST_OS), linux)
734e371cec7fa13273f81b9266c88ca846ece87096Keun young ParkLOCAL_SRC_FILES += Looper.cpp
744e371cec7fa13273f81b9266c88ca846ece87096Keun young Parkendif
75a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_MODULE:= libutils
76e29b5c384b0dc7658ba320d1fba38a4a772e1bf1Colin CrossLOCAL_STATIC_LIBRARIES := libz
77e29b5c384b0dc7658ba320d1fba38a4a772e1bf1Colin CrossLOCAL_C_INCLUDES := \
78e29b5c384b0dc7658ba320d1fba38a4a772e1bf1Colin Cross	external/zlib
79a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_CFLAGS += $(host_commonCflags)
80a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_LDLIBS += $(host_commonLdlibs)
81a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehinclude $(BUILD_HOST_STATIC_LIBRARY)
82a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh
83a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh
84a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh# For the host, 64-bit
85a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsieh# =====================================================
86a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew Hsiehinclude $(CLEAR_VARS)
87a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_SRC_FILES:= $(commonSources)
884e371cec7fa13273f81b9266c88ca846ece87096Keun young Parkifeq ($(HOST_OS), linux)
894e371cec7fa13273f81b9266c88ca846ece87096Keun young ParkLOCAL_SRC_FILES += Looper.cpp
904e371cec7fa13273f81b9266c88ca846ece87096Keun young Parkendif
91a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_MODULE:= lib64utils
92e29b5c384b0dc7658ba320d1fba38a4a772e1bf1Colin CrossLOCAL_STATIC_LIBRARIES := libz
93e29b5c384b0dc7658ba320d1fba38a4a772e1bf1Colin CrossLOCAL_C_INCLUDES := \
94e29b5c384b0dc7658ba320d1fba38a4a772e1bf1Colin Cross	external/zlib
95a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_CFLAGS += $(host_commonCflags) -m64
96a19d2c7e3bf4aadad064163029bccf3f03c300cbAndrew HsiehLOCAL_LDLIBS += $(host_commonLdlibs)
97cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinclude $(BUILD_HOST_STATIC_LIBRARY)
98cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
99cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
100cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# For the device
101cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# =====================================================
102cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinclude $(CLEAR_VARS)
103cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
104cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
105cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project# we have the common sources, plus some device-specific stuff
106cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_SRC_FILES:= \
107cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project	$(commonSources) \
1082ccfe1a0606f59b5cefd177f9dd5c837d0ea2d0bJamie Gennis	Looper.cpp \
1092ccfe1a0606f59b5cefd177f9dd5c837d0ea2d0bJamie Gennis	Trace.cpp
110cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
111cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectifeq ($(TARGET_OS),linux)
112cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_LDLIBS += -lrt -ldl
113cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectendif
114cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
115cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_C_INCLUDES += \
1163abdea92efbe85c66d7f2dc662953d0b5ed59451Colin Cross		bionic/libc/private \
1173abdea92efbe85c66d7f2dc662953d0b5ed59451Colin Cross		external/zlib
1181555436473afd296488235f0aa22bb17162a929fMathias Agopian
119cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_LDLIBS += -lpthread
120cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
121cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_SHARED_LIBRARIES := \
122cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project	liblog \
1239c63a80f1f39fb969ec439e6b51614abb883d370Mathias Agopian	libcutils \
124ea45b01f9bc2d1ef1f8d97ca0480336d23e0aa97Jeff Brown	libdl \
1253abdea92efbe85c66d7f2dc662953d0b5ed59451Colin Cross	libcorkscrew \
1263abdea92efbe85c66d7f2dc662953d0b5ed59451Colin Cross	libz
127cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
128cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source ProjectLOCAL_MODULE:= libutils
129cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Projectinclude $(BUILD_SHARED_LIBRARY)
130cbb1011c95e0c25c29e40e203a6a31bccd029da3The Android Open Source Project
1317aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brown# Include subdirectory makefiles
1327aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brown# ============================================================
1337aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brown
1347aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brown# If we're building with ONE_SHOT_MAKEFILE (mm, mmm), then what the framework
1357aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brown# team really wants is to build the stuff defined by this makefile.
1367aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Brownifeq (,$(ONE_SHOT_MAKEFILE))
1377aba23129b339f6f6ea4c378aa5f3a78d7f677ddJeff Browninclude $(call first-makefiles-under,$(LOCAL_PATH))
138c28f214f6c65c56936b11fff68564d9631cfae70Christopher Tateendif
139