Android.mk revision 9c8ba9666d2fad27baae11e56d63485a22812d17
19066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#
2fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Copyright (C) 2014 The Android Open Source Project
3fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski#
4fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Licensed under the Apache License, Version 2.0 (the "License");
5fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# you may not use this file except in compliance with the License.
6fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# You may obtain a copy of the License at
7fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski#
8fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski#      http://www.apache.org/licenses/LICENSE-2.0
9fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski#
10fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Unless required by applicable law or agreed to in writing, software
11fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# distributed under the License is distributed on an "AS IS" BASIS,
12fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# See the License for the specific language governing permissions and
14fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# limitations under the License.
159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project#
169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1774905e5b0a471f727ae5bed770c2c7441f5163a1Joe Onorato# This tool is prebuilt if we're doing an app-only build.
1874bebf6faed2d34814ffc3d46664330ea568f7b2Ying Wangifeq ($(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)),)
1974905e5b0a471f727ae5bed770c2c7441f5163a1Joe Onorato
20fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
21fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Setup some common variables for the different build
22fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# targets here.
23fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
24fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_PATH:= $(call my-dir)
259066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
26fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiaaptMain := Main.cpp
27fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiaaptSources := \
28fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    AaptAssets.cpp \
29fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    AaptConfig.cpp \
30fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    AaptUtil.cpp \
31ad2d07d2d98a46babb2a9472413fe9ce5080ca76Adam Lesinski    AaptXml.cpp \
32fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    ApkBuilder.cpp \
33fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    Command.cpp \
34fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    CrunchCache.cpp \
35fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    FileFinder.cpp \
364bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam Lesinski    Images.cpp \
37fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    Package.cpp \
384bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam Lesinski    pseudolocalize.cpp \
394bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam Lesinski    Resource.cpp \
40fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    ResourceFilter.cpp \
41fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    ResourceIdCache.cpp \
42fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    ResourceTable.cpp \
4355e3d60da5626752ffe1d15150d35ccb8fa644e7Mathias Agopian    SourcePos.cpp \
444bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam Lesinski    StringPool.cpp \
45fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    WorkQueue.cpp \
464bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam Lesinski    XMLNode.cpp \
4755e3d60da5626752ffe1d15150d35ccb8fa644e7Mathias Agopian    ZipEntry.cpp \
484bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam Lesinski    ZipFile.cpp
49fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
50fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiaaptTests := \
51fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    tests/AaptConfig_test.cpp \
52fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    tests/AaptGroupEntry_test.cpp \
53fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    tests/ResourceFilter_test.cpp
54fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
55fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiaaptCIncludes := \
56fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    external/libpng \
57fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    external/zlib
58fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
59fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiaaptHostLdLibs :=
60fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiaaptHostStaticLibs := \
61fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libandroidfw \
62fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libpng \
63fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    liblog \
64fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libutils \
65fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libcutils \
66fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libexpat \
679c8ba9666d2fad27baae11e56d63485a22812d17Narayan Kamath    libziparchive-host \
689c8ba9666d2fad27baae11e56d63485a22812d17Narayan Kamath    libbase
6955e3d60da5626752ffe1d15150d35ccb8fa644e7Mathias Agopian
70ad751224401564dcc8338df3d5c4c5de7722be8fAdam LesinskiaaptCFlags := -DAAPT_VERSION=\"$(BUILD_NUMBER)\"
7101f185633c1c12017731336e7f926fe398c69781Colin CrossaaptCFlags += -Wall -Werror
72ad751224401564dcc8338df3d5c4c5de7722be8fAdam Lesinski
73fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiifeq ($(HOST_OS),linux)
74fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    aaptHostLdLibs += -lrt -ldl -lpthread
75fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiendif
76fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
77fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Statically link libz for MinGW (Win SDK under Linux),
78fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# and dynamically link for all others.
79fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiifneq ($(strip $(USE_MINGW)),)
80fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    aaptHostStaticLibs += libz
81fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskielse
82fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    aaptHostLdLibs += -lz
83fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiendif
84fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
85fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
86fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
87fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the host static library: libaapt
88fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
89fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringertinclude $(CLEAR_VARS)
90fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
91fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := libaapt
924bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CFLAGS += -Wno-format-y2k -DSTATIC_ANDROIDFW_FOR_TOOLS $(aaptCFlags)
934bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CPPFLAGS += $(aaptCppFlags)
9441bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying Wangifeq (darwin,$(HOST_OS))
9541bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying WangLOCAL_CFLAGS += -D_DARWIN_UNLIMITED_STREAMS
9641bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying Wangendif
974bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_C_INCLUDES += $(aaptCIncludes)
984bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_SRC_FILES := $(aaptSources)
9941bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying Wang
100fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(BUILD_HOST_STATIC_LIBRARY)
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1029066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
103fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
104fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the host executable: aapt
105fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
106fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(CLEAR_VARS)
1079066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
108fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := aapt
109ad751224401564dcc8338df3d5c4c5de7722be8fAdam LesinskiLOCAL_CFLAGS += $(aaptCFlags)
1104bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CPPFLAGS += $(aaptCppFlags)
1114bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_LDLIBS += $(aaptHostLdLibs)
1124bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_SRC_FILES := $(aaptMain)
1134bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_STATIC_LIBRARIES += libaapt $(aaptHostStaticLibs)
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinclude $(BUILD_HOST_EXECUTABLE)
1169066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
117fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
118fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
119fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the host tests: libaapt_tests
120fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
121fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringertinclude $(CLEAR_VARS)
12288ba339aefd74ffe0ea978ebb659a430f82940f0Dan AlbertLOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
123fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
124fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := libaapt_tests
1254bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CFLAGS += $(aaptCFlags)
1264bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CPPFLAGS += $(aaptCppFlags)
1274bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_LDLIBS += $(aaptHostLdLibs)
128fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_SRC_FILES += $(aaptTests)
129fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_C_INCLUDES += $(LOCAL_PATH)
1304bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_STATIC_LIBRARIES += libaapt $(aaptHostStaticLibs)
131fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
132fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(BUILD_HOST_NATIVE_TEST)
133fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
134fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
135fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
136fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the device executable: aapt
137fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
138fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiifneq ($(SDK_ONLY),true)
139fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(CLEAR_VARS)
140fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
141fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := aapt
1424bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CFLAGS += $(aaptCFlags)
143fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_SRC_FILES := $(aaptSources) $(aaptMain)
1443fd340028fc24198edb23ddf5eb5a0a100bab745Adam LesinskiLOCAL_C_INCLUDES += $(aaptCIncludes)
1455675b97f6591310d012a013a94a0ae9bd188d975Stephen HinesLOCAL_SHARED_LIBRARIES := \
146fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libandroidfw \
147fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libutils \
148fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libcutils \
149fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libpng \
150fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    liblog \
151fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libz
152fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn BringertLOCAL_STATIC_LIBRARIES := \
153fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libexpat_static
154fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
155fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringertinclude $(BUILD_EXECUTABLE)
156fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
157fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiendif # Not SDK_ONLY
158fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
15974bebf6faed2d34814ffc3d46664330ea568f7b2Ying Wangendif # No TARGET_BUILD_APPS or TARGET_BUILD_PDK
160