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