# # 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.cpp \ common/bluetooth/advertise_data.cpp \ common/bluetooth/advertise_settings.cpp \ common/bluetooth/gatt_identifier.cpp \ common/bluetooth/scan_filter.cpp \ common/bluetooth/scan_result.cpp \ common/bluetooth/scan_settings.cpp \ common/bluetooth/util/address_helper.cpp \ common/bluetooth/util/atomic_string.cpp \ common/bluetooth/uuid.cpp btserviceCommonBinderSrc := \ common/bluetooth/binder/IBluetooth.cpp \ common/bluetooth/binder/IBluetoothCallback.cpp \ common/bluetooth/binder/IBluetoothGattClient.cpp \ common/bluetooth/binder/IBluetoothGattClientCallback.cpp \ common/bluetooth/binder/IBluetoothGattServer.cpp \ common/bluetooth/binder/IBluetoothGattServerCallback.cpp \ common/bluetooth/binder/IBluetoothLowEnergy.cpp \ common/bluetooth/binder/IBluetoothLowEnergyCallback.cpp \ common/bluetooth/binder/parcel_helpers.cpp btserviceDaemonSrc := \ adapter.cpp \ daemon.cpp \ gatt_client.cpp \ gatt_server.cpp \ gatt_server_old.cpp \ hal/gatt_helpers.cpp \ hal/bluetooth_gatt_interface.cpp \ hal/bluetooth_interface.cpp \ ipc/ipc_handler.cpp \ ipc/ipc_manager.cpp \ logging_helpers.cpp \ low_energy_client.cpp \ settings.cpp btserviceLinuxSrc := \ ipc/ipc_handler_linux.cpp \ ipc/linux_ipc_host.cpp btserviceBinderDaemonImplSrc := \ ipc/binder/bluetooth_binder_server.cpp \ ipc/binder/bluetooth_gatt_client_binder_server.cpp \ ipc/binder/bluetooth_gatt_server_binder_server.cpp \ ipc/binder/bluetooth_low_energy_binder_server.cpp \ ipc/binder/interface_with_instances_base.cpp \ ipc/binder/ipc_handler_binder.cpp \ 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.cpp \ hal/fake_bluetooth_interface.cpp \ test/adapter_unittest.cpp \ test/advertise_data_unittest.cpp \ test/fake_hal_util.cpp \ test/gatt_client_unittest.cpp \ test/gatt_identifier_unittest.cpp \ test/gatt_server_unittest.cpp \ test/low_energy_client_unittest.cpp \ test/settings_unittest.cpp \ test/util_unittest.cpp \ test/uuid_unittest.cpp # Native system service for target # ======================================================== include $(CLEAR_VARS) LOCAL_SRC_FILES := \ $(btserviceBinderDaemonSrc) \ $(btserviceCommonSrc) \ $(btserviceLinuxSrc) \ $(btserviceDaemonSrc) \ main.cpp 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_SRC_FILES := \ $(btserviceBaseTestSrc) \ $(btserviceCommonSrc) \ $(btserviceDaemonSrc) \ test/main.cpp \ test/stub_ipc_handler_binder.cpp ifeq ($(HOST_OS),linux) LOCAL_SRC_FILES += \ $(btserviceLinuxSrc) \ test/ipc_linux_unittest.cpp LOCAL_LDLIBS += -lrt else LOCAL_SRC_FILES += \ test/stub_ipc_handler_linux.cpp 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_SRC_FILES := \ $(btserviceBaseTestSrc) \ $(btserviceBinderDaemonSrc) \ $(btserviceCommonSrc) \ $(btserviceDaemonSrc) \ test/main.cpp \ test/parcel_helpers_unittest.cpp 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_SRC_FILES := \ $(btserviceCommonSrc) \ $(btserviceCommonBinderSrc) 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_SRC_FILES := client/main.cpp 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_SRC_FILES := \ example/heart_rate/heart_rate_server.cpp \ example/heart_rate/server_main.cpp 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)