1# 2# Copyright (C) 2014 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17# This tool is prebuilt if we're doing an app-only build. 18ifeq ($(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)),) 19 20# ========================================================== 21# Setup some common variables for the different build 22# targets here. 23# ========================================================== 24LOCAL_PATH:= $(call my-dir) 25 26aaptMain := Main.cpp 27aaptSources := \ 28 AaptAssets.cpp \ 29 AaptConfig.cpp \ 30 AaptUtil.cpp \ 31 AaptXml.cpp \ 32 ApkBuilder.cpp \ 33 Command.cpp \ 34 CrunchCache.cpp \ 35 FileFinder.cpp \ 36 Package.cpp \ 37 StringPool.cpp \ 38 XMLNode.cpp \ 39 ResourceFilter.cpp \ 40 ResourceIdCache.cpp \ 41 ResourceTable.cpp \ 42 Images.cpp \ 43 Resource.cpp \ 44 pseudolocalize.cpp \ 45 SourcePos.cpp \ 46 WorkQueue.cpp \ 47 ZipEntry.cpp \ 48 ZipFile.cpp \ 49 qsort_r_compat.c 50 51aaptTests := \ 52 tests/AaptConfig_test.cpp \ 53 tests/AaptGroupEntry_test.cpp \ 54 tests/ResourceFilter_test.cpp 55 56aaptCIncludes := \ 57 external/libpng \ 58 external/zlib 59 60aaptHostLdLibs := 61aaptHostStaticLibs := \ 62 libandroidfw \ 63 libpng \ 64 liblog \ 65 libutils \ 66 libcutils \ 67 libexpat \ 68 libziparchive-host 69 70aaptCFlags := -DAAPT_VERSION=\"$(BUILD_NUMBER)\" 71 72ifeq ($(HOST_OS),linux) 73 aaptHostLdLibs += -lrt -ldl -lpthread 74endif 75 76# Statically link libz for MinGW (Win SDK under Linux), 77# and dynamically link for all others. 78ifneq ($(strip $(USE_MINGW)),) 79 aaptHostStaticLibs += libz 80else 81 aaptHostLdLibs += -lz 82endif 83 84 85# ========================================================== 86# Build the host static library: libaapt 87# ========================================================== 88include $(CLEAR_VARS) 89 90LOCAL_MODULE := libaapt 91 92LOCAL_SRC_FILES := $(aaptSources) 93LOCAL_C_INCLUDES += $(aaptCIncludes) 94 95LOCAL_CFLAGS += -Wno-format-y2k 96LOCAL_CFLAGS += -DSTATIC_ANDROIDFW_FOR_TOOLS 97LOCAL_CFLAGS += $(aaptCFlags) 98ifeq (darwin,$(HOST_OS)) 99LOCAL_CFLAGS += -D_DARWIN_UNLIMITED_STREAMS 100endif 101 102include $(BUILD_HOST_STATIC_LIBRARY) 103 104 105# ========================================================== 106# Build the host executable: aapt 107# ========================================================== 108include $(CLEAR_VARS) 109 110LOCAL_MODULE := aapt 111 112LOCAL_SRC_FILES := $(aaptMain) 113 114LOCAL_STATIC_LIBRARIES += \ 115 libaapt \ 116 $(aaptHostStaticLibs) 117 118LOCAL_LDLIBS += $(aaptHostLdLibs) 119LOCAL_CFLAGS += $(aaptCFlags) 120 121include $(BUILD_HOST_EXECUTABLE) 122 123 124# ========================================================== 125# Build the host tests: libaapt_tests 126# ========================================================== 127include $(CLEAR_VARS) 128 129LOCAL_MODULE := libaapt_tests 130 131LOCAL_SRC_FILES += $(aaptTests) 132LOCAL_C_INCLUDES += $(LOCAL_PATH) 133 134LOCAL_STATIC_LIBRARIES += \ 135 libaapt \ 136 $(aaptHostStaticLibs) 137 138LOCAL_LDLIBS += $(aaptHostLdLibs) 139LOCAL_CFLAGS += $(aaptCFlags) 140 141include $(BUILD_HOST_NATIVE_TEST) 142 143 144# ========================================================== 145# Build the device executable: aapt 146# ========================================================== 147ifneq ($(SDK_ONLY),true) 148include $(CLEAR_VARS) 149 150LOCAL_MODULE := aapt 151 152LOCAL_SRC_FILES := $(aaptSources) $(aaptMain) 153LOCAL_C_INCLUDES += \ 154 $(aaptCIncludes) \ 155 bionic \ 156 external/stlport/stlport 157 158LOCAL_SHARED_LIBRARIES := \ 159 libandroidfw \ 160 libutils \ 161 libcutils \ 162 libpng \ 163 liblog \ 164 libz 165 166LOCAL_STATIC_LIBRARIES := \ 167 libstlport_static \ 168 libexpat_static 169 170LOCAL_CFLAGS += $(aaptCFlags) 171LOCAL_CPPFLAGS += -Wno-non-virtual-dtor 172 173include $(BUILD_EXECUTABLE) 174 175endif # Not SDK_ONLY 176 177endif # No TARGET_BUILD_APPS or TARGET_BUILD_PDK 178