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