blob: 51e5671889722a5b436a830d674c2b5b866ff357 [file] [log] [blame]
#
# Copyright (C) 2015 Google
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at:
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
#
LOCAL_PATH:= $(call my-dir)
#
# Workaround for libchrome and -DNDEBUG usage.
#
# Test whether the original HOST_GLOBAL_CFLAGS and
# TARGET_GLOBAL_CFLAGS contain -DNDEBUG .
# This is needed as a workaround to make sure that
# libchrome and local files calling logging::InitLogging()
# are consistent with the usage of -DNDEBUG .
# ========================================================
ifneq (,$(findstring NDEBUG,$(HOST_GLOBAL_CFLAGS)))
btservice_orig_HOST_NDEBUG := -DBT_LIBCHROME_NDEBUG
else
btservice_orig_HOST_NDEBUG :=
endif
ifneq (,$(findstring NDEBUG,$(TARGET_GLOBAL_CFLAGS)))
btservice_orig_TARGET_NDEBUG := -DBT_LIBCHROME_NDEBUG
else
btservice_orig_TARGET_NDEBUG :=
endif
# Source variables
# ========================================================
btserviceCommonSrc := \
common/bluetooth/adapter_state.cc \
common/bluetooth/advertise_data.cc \
common/bluetooth/advertise_settings.cc \
common/bluetooth/descriptor.cc \
common/bluetooth/characteristic.cc \
common/bluetooth/scan_filter.cc \
common/bluetooth/scan_result.cc \
common/bluetooth/scan_settings.cc \
common/bluetooth/service.cc \
common/bluetooth/util/address_helper.cc \
common/bluetooth/util/atomic_string.cc \
common/bluetooth/uuid.cc
btserviceCommonBinderSrc := \
common/android/bluetooth/IBluetooth.aidl \
common/android/bluetooth/IBluetoothCallback.aidl \
common/android/bluetooth/IBluetoothGattClient.aidl \
common/android/bluetooth/IBluetoothGattClientCallback.aidl \
common/android/bluetooth/IBluetoothGattServer.aidl \
common/android/bluetooth/IBluetoothGattServerCallback.aidl \
common/android/bluetooth/IBluetoothLeAdvertiser.aidl \
common/android/bluetooth/IBluetoothLeAdvertiserCallback.aidl \
common/android/bluetooth/IBluetoothLeScanner.aidl \
common/android/bluetooth/IBluetoothLeScannerCallback.aidl \
common/android/bluetooth/IBluetoothLowEnergy.aidl \
common/android/bluetooth/IBluetoothLowEnergyCallback.aidl \
common/android/bluetooth/advertise_data.cc \
common/android/bluetooth/advertise_settings.cc \
common/android/bluetooth/bluetooth_gatt_characteristic.cc \
common/android/bluetooth/bluetooth_gatt_descriptor.cc \
common/android/bluetooth/bluetooth_gatt_included_service.cc \
common/android/bluetooth/bluetooth_gatt_service.cc \
common/android/bluetooth/scan_filter.cc \
common/android/bluetooth/scan_result.cc \
common/android/bluetooth/scan_settings.cc \
common/android/bluetooth/uuid.cc \
btserviceCommonAidlInclude := \
system/bt/service/common \
frameworks/native/aidl/binder
btserviceDaemonSrc := \
adapter.cc \
daemon.cc \
gatt_client.cc \
gatt_server.cc \
gatt_server_old.cc \
hal/bluetooth_gatt_interface.cc \
hal/bluetooth_interface.cc \
ipc/ipc_handler.cc \
ipc/ipc_manager.cc \
logging_helpers.cc \
low_energy_advertiser.cc \
low_energy_scanner.cc \
low_energy_client.cc \
settings.cc
btserviceLinuxSrc := \
ipc/ipc_handler_linux.cc \
ipc/linux_ipc_host.cc
btserviceBinderDaemonImplSrc := \
ipc/binder/bluetooth_binder_server.cc \
ipc/binder/bluetooth_gatt_client_binder_server.cc \
ipc/binder/bluetooth_gatt_server_binder_server.cc \
ipc/binder/bluetooth_le_advertiser_binder_server.cc \
ipc/binder/bluetooth_le_scanner_binder_server.cc \
ipc/binder/bluetooth_low_energy_binder_server.cc \
ipc/binder/interface_with_instances_base.cc \
ipc/binder/ipc_handler_binder.cc \
btserviceBinderDaemonSrc := \
$(btserviceCommonBinderSrc) \
$(btserviceBinderDaemonImplSrc)
btserviceCommonIncludes := \
$(LOCAL_PATH)/../ \
$(LOCAL_PATH)/common
# Main unit test sources. These get built for host and target.
# ========================================================
btserviceBaseTestSrc := \
hal/fake_bluetooth_gatt_interface.cc \
hal/fake_bluetooth_interface.cc \
test/adapter_unittest.cc \
test/advertise_data_unittest.cc \
test/fake_hal_util.cc \
test/gatt_client_unittest.cc \
test/gatt_server_unittest.cc \
test/low_energy_advertiser_unittest.cc \
test/low_energy_client_unittest.cc \
test/low_energy_scanner_unittest.cc \
test/settings_unittest.cc \
test/util_unittest.cc \
test/uuid_unittest.cc
# Native system service for target
# ========================================================
include $(CLEAR_VARS)
LOCAL_CPP_EXTENSION := .cc
LOCAL_SRC_FILES := \
$(btserviceCommonSrc) \
$(btserviceBinderDaemonSrc) \
$(btserviceLinuxSrc) \
$(btserviceDaemonSrc) \
main.cc
LOCAL_AIDL_INCLUDES = $(btserviceCommonAidlInclude)
LOCAL_C_INCLUDES := $(btserviceCommonIncludes)
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := bluetoothtbd
LOCAL_REQUIRED_MODULES := bluetooth.default
LOCAL_STATIC_LIBRARIES := libbtcore
LOCAL_SHARED_LIBRARIES := \
libbinder \
libchrome \
libcutils \
libhardware \
liblog \
libutils
LOCAL_INIT_RC := bluetoothtbd.rc
LOCAL_CFLAGS += $(bluetooth_CFLAGS) $(btservice_orig_TARGET_NDEBUG)
LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
include $(BUILD_EXECUTABLE)
# Native system service unit tests for host
# ========================================================
include $(CLEAR_VARS)
LOCAL_CPP_EXTENSION := .cc
LOCAL_SRC_FILES := \
$(btserviceBaseTestSrc) \
$(btserviceCommonSrc) \
$(btserviceDaemonSrc) \
test/main.cc \
test/stub_ipc_handler_binder.cc
ifeq ($(HOST_OS),linux)
LOCAL_SRC_FILES += \
$(btserviceLinuxSrc) \
test/ipc_linux_unittest.cc
LOCAL_LDLIBS += -lrt
else
LOCAL_SRC_FILES += \
test/stub_ipc_handler_linux.cc
endif
LOCAL_C_INCLUDES := $(btserviceCommonIncludes)
LOCAL_MODULE_TAGS := debug tests
LOCAL_MODULE := bluetoothtbd-host_test
LOCAL_SHARED_LIBRARIES := libchrome
LOCAL_STATIC_LIBRARIES := libgmock_host libgtest_host liblog
LOCAL_CFLAGS += $(bluetooth_CFLAGS) $(btservice_orig_HOST_NDEBUG)
LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
include $(BUILD_HOST_NATIVE_TEST)
# Native system service unit tests for target.
# This includes Binder related tests that can only be run
# on target.
# ========================================================
include $(CLEAR_VARS)
LOCAL_CPP_EXTENSION := .cc
LOCAL_SRC_FILES := \
$(btserviceBaseTestSrc) \
$(btserviceCommonSrc) \
$(btserviceBinderDaemonSrc) \
$(btserviceDaemonSrc) \
test/main.cc \
test/parcelable_unittest.cc \
test/ParcelableTest.aidl
LOCAL_AIDL_INCLUDES := $(btserviceCommonAidlInclude)
LOCAL_AIDL_INCLUDES += ./
LOCAL_C_INCLUDES := $(btserviceCommonIncludes)
LOCAL_MODULE_TAGS := debug tests
LOCAL_MODULE := bluetoothtbd_test
LOCAL_SHARED_LIBRARIES := \
libbinder \
libchrome \
libutils
LOCAL_STATIC_LIBRARIES := libgmock libgtest liblog
LOCAL_CFLAGS += $(bluetooth_CFLAGS) $(btservice_orig_TARGET_NDEBUG)
LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
include $(BUILD_NATIVE_TEST)
# Client library for interacting with Bluetooth daemon
# This is a static library for target.
# ========================================================
include $(CLEAR_VARS)
LOCAL_CPP_EXTENSION := .cc
LOCAL_SRC_FILES := \
$(btserviceCommonSrc) \
$(btserviceCommonBinderSrc)
LOCAL_AIDL_INCLUDES := $(btserviceCommonAidlInclude)
LOCAL_C_INCLUDES := $(btserviceCommonIncludes)
LOCAL_EXPORT_C_INCLUDE_DIRS := $(LOCAL_PATH)/common
LOCAL_MODULE := libbluetooth-client
LOCAL_SHARED_LIBRARIES := libbinder libchrome libutils
LOCAL_CFLAGS += $(bluetooth_CFLAGS) $(btservice_orig_TARGET_NDEBUG)
LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
include $(BUILD_STATIC_LIBRARY)
# Native system service CLI for target
# ========================================================
include $(CLEAR_VARS)
LOCAL_CPP_EXTENSION := .cc
LOCAL_SRC_FILES := client/main.cc
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := bluetooth-cli
LOCAL_STATIC_LIBRARIES := libbluetooth-client
LOCAL_SHARED_LIBRARIES := \
libbinder \
libchrome \
libutils
LOCAL_CFLAGS += $(bluetooth_CFLAGS) $(btservice_orig_TARGET_NDEBUG)
LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
include $(BUILD_EXECUTABLE)
# Heart Rate GATT service example for target
# ========================================================
# TODO(armansito): Move this into a new makefile under examples/ once we build
# a client static library that the examples can depend on.
include $(CLEAR_VARS)
LOCAL_CPP_EXTENSION := .cc
LOCAL_SRC_FILES := \
example/heart_rate/heart_rate_server.cc \
example/heart_rate/server_main.cc
LOCAL_C_INCLUDES := $(LOCAL_PATH)/../
LOCAL_MODULE_TAGS := optional
LOCAL_MODULE := bt-example-hr-server
LOCAL_STATIC_LIBRARIES := libbluetooth-client
LOCAL_SHARED_LIBRARIES := \
libbinder \
libchrome \
libutils
LOCAL_CFLAGS += $(bluetooth_CFLAGS) $(btservice_orig_TARGET_NDEBUG)
LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
include $(BUILD_EXECUTABLE)