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