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