140e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# 240e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# Copyright (C) 2014 The Android Open Source Project 340e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# 440e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# Licensed under the Apache License, Version 2.0 (the "License"); 540e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# you may not use this file except in compliance with the License. 640e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# You may obtain a copy of the License at 740e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# 840e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# http://www.apache.org/licenses/LICENSE-2.0 940e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# 1040e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# Unless required by applicable law or agreed to in writing, software 1140e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# distributed under the License is distributed on an "AS IS" BASIS, 1240e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 1340e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# See the License for the specific language governing permissions and 1440e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# limitations under the License. 1540e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# 1640e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 1740e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# This tool is prebuilt if we're doing an app-only build. 1840e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiifeq ($(TARGET_BUILD_APPS)$(filter true,$(TARGET_BUILD_PDK)),) 1940e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 2040e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# ========================================================== 2140e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# Setup some common variables for the different build 2240e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# targets here. 2340e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# ========================================================== 2440e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_PATH:= $(call my-dir) 2540e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 2640e8eefbedcafc51948945647d746daaee092f16Adam Lesinskimain := Main.cpp 2740e8eefbedcafc51948945647d746daaee092f16Adam Lesinskisources := \ 2840e8eefbedcafc51948945647d746daaee092f16Adam Lesinski Abi.cpp \ 2940e8eefbedcafc51948945647d746daaee092f16Adam Lesinski Grouper.cpp \ 3040e8eefbedcafc51948945647d746daaee092f16Adam Lesinski Rule.cpp \ 3140e8eefbedcafc51948945647d746daaee092f16Adam Lesinski RuleGenerator.cpp \ 3242eea270a0a2bc54f454312817c41ac357e3a884Adam Lesinski SplitDescription.cpp \ 3342eea270a0a2bc54f454312817c41ac357e3a884Adam Lesinski SplitSelector.cpp 3440e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 3540e8eefbedcafc51948945647d746daaee092f16Adam LesinskitestSources := \ 3640e8eefbedcafc51948945647d746daaee092f16Adam Lesinski Grouper_test.cpp \ 3740e8eefbedcafc51948945647d746daaee092f16Adam Lesinski Rule_test.cpp \ 38dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski RuleGenerator_test.cpp \ 3942eea270a0a2bc54f454312817c41ac357e3a884Adam Lesinski SplitSelector_test.cpp \ 40dcdfe9fef4b07ee53d312c3fbecc74cb215ace6fAdam Lesinski TestRules.cpp 4140e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 4240e8eefbedcafc51948945647d746daaee092f16Adam LesinskicIncludes := \ 4340e8eefbedcafc51948945647d746daaee092f16Adam Lesinski external/zlib \ 4440e8eefbedcafc51948945647d746daaee092f16Adam Lesinski frameworks/base/tools 4540e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 4640e8eefbedcafc51948945647d746daaee092f16Adam LesinskihostLdLibs := 4740e8eefbedcafc51948945647d746daaee092f16Adam LesinskihostStaticLibs := \ 4840e8eefbedcafc51948945647d746daaee092f16Adam Lesinski libaapt \ 4940e8eefbedcafc51948945647d746daaee092f16Adam Lesinski libandroidfw \ 5040e8eefbedcafc51948945647d746daaee092f16Adam Lesinski libpng \ 5140e8eefbedcafc51948945647d746daaee092f16Adam Lesinski liblog \ 5240e8eefbedcafc51948945647d746daaee092f16Adam Lesinski libutils \ 5340e8eefbedcafc51948945647d746daaee092f16Adam Lesinski libcutils \ 5440e8eefbedcafc51948945647d746daaee092f16Adam Lesinski libexpat \ 5540e8eefbedcafc51948945647d746daaee092f16Adam Lesinski libziparchive-host 5640e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 57c3dc0b57b8d0b3875f868788e110aa67fb032b4aAdam LesinskicFlags := -Wall -Werror 5840e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 5940e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiifeq ($(HOST_OS),linux) 6040e8eefbedcafc51948945647d746daaee092f16Adam Lesinski hostLdLibs += -lrt -ldl -lpthread 6140e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiendif 6240e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 6340e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# Statically link libz for MinGW (Win SDK under Linux), 6440e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# and dynamically link for all others. 6540e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiifneq ($(strip $(USE_MINGW)),) 6640e8eefbedcafc51948945647d746daaee092f16Adam Lesinski hostStaticLibs += libz 6740e8eefbedcafc51948945647d746daaee092f16Adam Lesinskielse 6840e8eefbedcafc51948945647d746daaee092f16Adam Lesinski hostLdLibs += -lz 6940e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiendif 7040e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 7140e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 7240e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# ========================================================== 7340e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# Build the host static library: libsplit-select 7440e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# ========================================================== 7540e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiinclude $(CLEAR_VARS) 7640e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_MODULE := libsplit-select 7740e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 7840e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_SRC_FILES := $(sources) 7940e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 8040e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_C_INCLUDES += $(cIncludes) 8140e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_CFLAGS += $(cFlags) -D_DARWIN_UNLIMITED_STREAMS 8240e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 8340e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiinclude $(BUILD_HOST_STATIC_LIBRARY) 8440e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 8540e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 8640e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# ========================================================== 8740e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# Build the host tests: libsplit-select_tests 8840e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# ========================================================== 8940e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiinclude $(CLEAR_VARS) 9040e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_MODULE := libsplit-select_tests 9140e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_MODULE_TAGS := tests 9240e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 9340e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_SRC_FILES := $(testSources) 9440e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 9540e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_C_INCLUDES += $(cIncludes) 9640e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_STATIC_LIBRARIES += libsplit-select $(hostStaticLibs) 9740e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_LDLIBS += $(hostLdLibs) 9840e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_CFLAGS += $(cFlags) 9940e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 10040e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiinclude $(BUILD_HOST_NATIVE_TEST) 10140e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 10240e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# ========================================================== 10340e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# Build the host executable: split-select 10440e8eefbedcafc51948945647d746daaee092f16Adam Lesinski# ========================================================== 10540e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiinclude $(CLEAR_VARS) 10640e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_MODULE := split-select 10740e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 10840e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_SRC_FILES := $(main) 10940e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 11040e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_C_INCLUDES += $(cIncludes) 11140e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_STATIC_LIBRARIES += libsplit-select $(hostStaticLibs) 11240e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_LDLIBS += $(hostLdLibs) 11340e8eefbedcafc51948945647d746daaee092f16Adam LesinskiLOCAL_CFLAGS += $(cFlags) 11440e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 11540e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiinclude $(BUILD_HOST_EXECUTABLE) 11640e8eefbedcafc51948945647d746daaee092f16Adam Lesinski 11740e8eefbedcafc51948945647d746daaee092f16Adam Lesinskiendif # No TARGET_BUILD_APPS or TARGET_BUILD_PDK 118