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    qsort_r_compat.c \
404bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam Lesinski    Resource.cpp \
41fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    ResourceFilter.cpp \
42fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    ResourceIdCache.cpp \
43fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    ResourceTable.cpp \
4455e3d60da5626752ffe1d15150d35ccb8fa644e7Mathias Agopian    SourcePos.cpp \
454bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam Lesinski    StringPool.cpp \
46fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    WorkQueue.cpp \
474bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam Lesinski    XMLNode.cpp \
4855e3d60da5626752ffe1d15150d35ccb8fa644e7Mathias Agopian    ZipEntry.cpp \
494bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam Lesinski    ZipFile.cpp
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
914bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CFLAGS += -Wno-format-y2k -DSTATIC_ANDROIDFW_FOR_TOOLS $(aaptCFlags)
924bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CPPFLAGS += $(aaptCppFlags)
9341bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying Wangifeq (darwin,$(HOST_OS))
9441bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying WangLOCAL_CFLAGS += -D_DARWIN_UNLIMITED_STREAMS
9541bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying Wangendif
964bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_C_INCLUDES += $(aaptCIncludes)
974bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_SRC_FILES := $(aaptSources)
9841bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying Wang
99fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(BUILD_HOST_STATIC_LIBRARY)
1009066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1019066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
102fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
103fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the host executable: aapt
104fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
105fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(CLEAR_VARS)
1069066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
107fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := aapt
108ad751224401564dcc8338df3d5c4c5de7722be8fAdam LesinskiLOCAL_CFLAGS += $(aaptCFlags)
1094bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CPPFLAGS += $(aaptCppFlags)
1104bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_LDLIBS += $(aaptHostLdLibs)
1114bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_SRC_FILES := $(aaptMain)
1124bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_STATIC_LIBRARIES += libaapt $(aaptHostStaticLibs)
1139066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
1149066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinclude $(BUILD_HOST_EXECUTABLE)
1159066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project
116fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
117fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
118fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the host tests: libaapt_tests
119fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
120fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringertinclude $(CLEAR_VARS)
121fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
122fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := libaapt_tests
1234bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CFLAGS += $(aaptCFlags)
1244bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CPPFLAGS += $(aaptCppFlags)
1254bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_LDLIBS += $(aaptHostLdLibs)
126fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_SRC_FILES += $(aaptTests)
127fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_C_INCLUDES += $(LOCAL_PATH)
1284bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_STATIC_LIBRARIES += libaapt $(aaptHostStaticLibs)
129fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
130fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(BUILD_HOST_NATIVE_TEST)
131fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
132fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
133fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
134fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the device executable: aapt
135fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ==========================================================
136fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiifneq ($(SDK_ONLY),true)
137fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(CLEAR_VARS)
138fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
139fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := aapt
1404bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_CFLAGS += $(aaptCFlags)
141fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_SRC_FILES := $(aaptSources) $(aaptMain)
142fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_C_INCLUDES += \
143fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    $(aaptCIncludes) \
144fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    bionic \
145fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    external/stlport/stlport
1465675b97f6591310d012a013a94a0ae9bd188d975Stephen HinesLOCAL_SHARED_LIBRARIES := \
147fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libandroidfw \
148fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libutils \
149fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libcutils \
150fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libpng \
151fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    liblog \
152fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libz
153fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn BringertLOCAL_STATIC_LIBRARIES := \
154fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libstlport_static \
155fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski    libexpat_static
156fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
157fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringertinclude $(BUILD_EXECUTABLE)
158fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski
159fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiendif # Not SDK_ONLY
160fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert
16174bebf6faed2d34814ffc3d46664330ea568f7b2Ying Wangendif # No TARGET_BUILD_APPS or TARGET_BUILD_PDK
162