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 \ 53cbb1e676b56677ae3585c067f29646dddffb4857Igor Viarheichyk tests/Pseudolocales_test.cpp \ 54beb9e33bfb79847c25aac98e39f3ea620a953ef7Adam Lesinski tests/ResourceFilter_test.cpp \ 55beb9e33bfb79847c25aac98e39f3ea620a953ef7Adam Lesinski tests/ResourceTable_test.cpp 56fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski 57fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiaaptHostStaticLibs := \ 58fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski libandroidfw \ 59fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski libpng \ 60fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski libutils \ 61d90d8d615a99ad9f75e2911e98a166b396a89053Sergio Giro liblog \ 62fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski libcutils \ 63fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski libexpat \ 649a1a3bcb164d331480100bd815f3bd89230ff9bcColin Cross libziparchive \ 659c8ba9666d2fad27baae11e56d63485a22812d17Narayan Kamath libbase 6655e3d60da5626752ffe1d15150d35ccb8fa644e7Mathias Agopian 6706e04f76715e05ad5a49b13f541cdebb11f41409Colin CrossaaptCFlags := -DAAPT_VERSION=\"$(BUILD_NUMBER_FROM_FILE)\" 6801f185633c1c12017731336e7f926fe398c69781Colin CrossaaptCFlags += -Wall -Werror 69ad751224401564dcc8338df3d5c4c5de7722be8fAdam Lesinski 704aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenaaptHostLdLibs_linux := -lrt -ldl -lpthread 71fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski 72fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Statically link libz for MinGW (Win SDK under Linux), 73fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# and dynamically link for all others. 744aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenaaptHostStaticLibs_windows := libz 754aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenaaptHostLdLibs_linux += -lz 764aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenaaptHostLdLibs_darwin := -lz 77fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski 78fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski 79fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ========================================================== 80fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the host static library: libaapt 81fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ========================================================== 82fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringertinclude $(CLEAR_VARS) 83fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert 84fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := libaapt 854aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_MODULE_HOST_OS := darwin linux windows 864aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_CFLAGS := -Wno-format-y2k -DSTATIC_ANDROIDFW_FOR_TOOLS $(aaptCFlags) 874aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_CPPFLAGS := $(aaptCppFlags) 884aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_CFLAGS_darwin := -D_DARWIN_UNLIMITED_STREAMS 894bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_SRC_FILES := $(aaptSources) 904aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_STATIC_LIBRARIES := $(aaptHostStaticLibs) 914aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_STATIC_LIBRARIES_windows := $(aaptHostStaticLibs_windows) 9241bdb03ffb81d7bcbf6fa35d7b40e196635c86f3Ying Wang 93fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(BUILD_HOST_STATIC_LIBRARY) 949066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 95fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ========================================================== 96fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the host executable: aapt 97fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ========================================================== 98fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(CLEAR_VARS) 999066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 100fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := aapt 1014aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_MODULE_HOST_OS := darwin linux windows 1024aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_CFLAGS := $(aaptCFlags) 1034aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_CPPFLAGS := $(aaptCppFlags) 1044aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_LDLIBS_darwin := $(aaptHostLdLibs_darwin) 1054aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_LDLIBS_linux := $(aaptHostLdLibs_linux) 1064bf58108d442b37ab4adf5ce3a4ecd63472ce254Adam LesinskiLOCAL_SRC_FILES := $(aaptMain) 1074aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_STATIC_LIBRARIES := libaapt $(aaptHostStaticLibs) 1084aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_STATIC_LIBRARIES_windows := $(aaptHostStaticLibs_windows) 1099066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 1109066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Projectinclude $(BUILD_HOST_EXECUTABLE) 1119066cfe9886ac131c34d59ed0e2d287b0e3c0087The Android Open Source Project 112fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski 113fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ========================================================== 114fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# Build the host tests: libaapt_tests 115fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski# ========================================================== 116fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringertinclude $(CLEAR_VARS) 117fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert 118fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam LesinskiLOCAL_MODULE := libaapt_tests 1194aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_CFLAGS := $(aaptCFlags) 1204aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_CPPFLAGS := $(aaptCppFlags) 1214aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_LDLIBS_darwin := $(aaptHostLdLibs_darwin) 1224aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_LDLIBS_linux := $(aaptHostLdLibs_linux) 1234aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_SRC_FILES := $(aaptTests) 1244aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_C_INCLUDES := $(LOCAL_PATH) 1254aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_STATIC_LIBRARIES := libaapt $(aaptHostStaticLibs) 1264aa679ff969c3ec2159088cd3740df1034c9ee24Dan WillemsenLOCAL_STATIC_LIBRARIES_windows := $(aaptHostStaticLibs_windows) 127fb903a45d7b924c1dfacadaa99ebdf93fd8a1de4Bjorn Bringert 128fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinskiinclude $(BUILD_HOST_NATIVE_TEST) 129fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski 130fab50875b98e8274ac8ee44b38ba42521bbbf1f9Adam Lesinski 13174bebf6faed2d34814ffc3d46664330ea568f7b2Ying Wangendif # No TARGET_BUILD_APPS or TARGET_BUILD_PDK 132