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 \
36fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    Package.cpp \
37fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    StringPool.cpp \
38fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    XMLNode.cpp \
39fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    ResourceFilter.cpp \
40fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    ResourceIdCache.cpp \
41fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    ResourceTable.cpp \
42fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    Images.cpp \
43fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    Resource.cpp \
44fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert    pseudolocalize.cpp \
4555e3d60da5626752ffe1d15150d35ccb8fa644e7Mathias Agopian    SourcePos.cpp \
46fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    WorkQueue.cpp \
4755e3d60da5626752ffe1d15150d35ccb8fa644e7Mathias Agopian    ZipEntry.cpp \
48823abb63145c7a7db2b766cf7bb816cbdac1de66Dima Zavin    ZipFile.cpp \
49fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    qsort_r_compat.c
50fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
51fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiaaptTests := \
52fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    tests/AaptConfig_test.cpp \
53fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    tests/AaptGroupEntry_test.cpp \
54fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    tests/ResourceFilter_test.cpp
55fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
56fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiaaptCIncludes := \
57fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    external/libpng \
58fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    external/zlib
59fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
60fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiaaptHostLdLibs :=
61fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiaaptHostStaticLibs := \
62fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libandroidfw \
63fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libpng \
64fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    liblog \
65fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libutils \
66fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libcutils \
67fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libexpat \
68fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libziparchive-host
6955e3d60da5626752ffe1d15150d35ccb8fa644e7Mathias Agopian
70ad751224401564dcc8338df3d5c4c5de7722be8fAdam LesinskiaaptCFlags := -DAAPT_VERSION=\"$(BUILD_NUMBER)\"
71ad751224401564dcc8338df3d5c4c5de7722be8fAdam Lesinski
72fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiifeq ($(HOST_OS),linux)
73fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    aaptHostLdLibs += -lrt -ldl -lpthread
74fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiendif
75fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
76fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Statically link libz for MinGW (Win SDK under Linux),
77fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# and dynamically link for all others.
78fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiifneq ($(strip $(USE_MINGW)),)
79fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    aaptHostStaticLibs += libz
80fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskielse
81fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    aaptHostLdLibs += -lz
82fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiendif
83fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
84fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
85fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
86fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the host static library: libaapt
87fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
88fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringertinclude $(CLEAR_VARS)
89fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
90fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := libaapt
91fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
92fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_SRC_FILES := $(aaptSources)
93fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_C_INCLUDES += $(aaptCIncludes)
949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
959066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source ProjectLOCAL_CFLAGS += -Wno-format-y2k
96fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_CFLAGS += -DSTATIC_ANDROIDFW_FOR_TOOLS
97ad751224401564dcc8338df3d5c4c5de7722be8fAdam LesinskiLOCAL_CFLAGS += $(aaptCFlags)
9841bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying Wangifeq (darwin,$(HOST_OS))
9941bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying WangLOCAL_CFLAGS += -D_DARWIN_UNLIMITED_STREAMS
10041bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying Wangendif
10141bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying Wang
102fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(BUILD_HOST_STATIC_LIBRARY)
1039066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1049066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
105fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
106fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the host executable: aapt
107fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
108fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(CLEAR_VARS)
1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
110fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := aapt
1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
112fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_SRC_FILES := $(aaptMain)
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
114fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_STATIC_LIBRARIES += \
115fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libaapt \
116fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    $(aaptHostStaticLibs)
117ad751224401564dcc8338df3d5c4c5de7722be8fAdam Lesinski
118fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_LDLIBS += $(aaptHostLdLibs)
119ad751224401564dcc8338df3d5c4c5de7722be8fAdam LesinskiLOCAL_CFLAGS += $(aaptCFlags)
1209066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1219066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinclude $(BUILD_HOST_EXECUTABLE)
1229066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
123fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
124fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
125fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the host tests: libaapt_tests
126fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
127fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringertinclude $(CLEAR_VARS)
128fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
129fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := libaapt_tests
130fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
131fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_SRC_FILES += $(aaptTests)
132fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_C_INCLUDES += $(LOCAL_PATH)
133fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
134fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_STATIC_LIBRARIES += \
135fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libaapt \
136fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    $(aaptHostStaticLibs)
137ad751224401564dcc8338df3d5c4c5de7722be8fAdam Lesinski
138fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_LDLIBS += $(aaptHostLdLibs)
139ad751224401564dcc8338df3d5c4c5de7722be8fAdam LesinskiLOCAL_CFLAGS += $(aaptCFlags)
140fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
141fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(BUILD_HOST_NATIVE_TEST)
142fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
143fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
144fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
145fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the device executable: aapt
146fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
147fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiifneq ($(SDK_ONLY),true)
148fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(CLEAR_VARS)
149fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
150fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := aapt
151fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
152fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_SRC_FILES := $(aaptSources) $(aaptMain)
153fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_C_INCLUDES += \
154fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    $(aaptCIncludes) \
155fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    bionic \
156fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    external/stlport/stlport
157fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
1585675b97f6591310d012a013a94a0ae9bd188d975Stephen HinesLOCAL_SHARED_LIBRARIES := \
159fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libandroidfw \
160fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libutils \
161fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libcutils \
162fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libpng \
163fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    liblog \
164fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libz
1655675b97f6591310d012a013a94a0ae9bd188d975Stephen Hines
166fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn BringertLOCAL_STATIC_LIBRARIES := \
167fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libstlport_static \
168fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libexpat_static
169fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
170ad751224401564dcc8338df3d5c4c5de7722be8fAdam LesinskiLOCAL_CFLAGS += $(aaptCFlags)
171fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_CPPFLAGS += -Wno-non-virtual-dtor
172fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
173fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringertinclude $(BUILD_EXECUTABLE)
174fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
175fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiendif # Not SDK_ONLY
176fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
17774bebf6faed2d34814ffc3d46664330ea568f7b2Ying Wangendif # No TARGET_BUILD_APPS or TARGET_BUILD_PDK
178