1 ############################################################################## 2 # 3 # Copyright (C) 2014 Google, Inc. 4 # 5 # Licensed under the Apache License, Version 2.0 (the "License"); 6 # you may not use this file except in compliance with the License. 7 # You may obtain a copy of the License at: 8 # 9 # http://www.apache.org/licenses/LICENSE-2.0 10 # 11 # Unless required by applicable law or agreed to in writing, software 12 # distributed under the License is distributed on an "AS IS" BASIS, 13 # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 14 # See the License for the specific language governing permissions and 15 # limitations under the License. 16 # 17 ############################################################################## 18 19LOCAL_PATH := $(call my-dir) 20 21# Common variables 22# ======================================================== 23 24# TODO(mcchou): Remove socket_utils sources after platform specific 25# dependencies are abstracted. 26btosiCommonSrc := \ 27 ./src/alarm.c \ 28 ./src/allocation_tracker.c \ 29 ./src/allocator.c \ 30 ./src/array.c \ 31 ./src/buffer.c \ 32 ./src/compat.c \ 33 ./src/config.c \ 34 ./src/data_dispatcher.c \ 35 ./src/eager_reader.c \ 36 ./src/fixed_queue.c \ 37 ./src/future.c \ 38 ./src/hash_functions.c \ 39 ./src/hash_map.c \ 40 ./src/hash_map_utils.c \ 41 ./src/list.c \ 42 ./src/metrics.cpp \ 43 ./src/mutex.c \ 44 ./src/osi.c \ 45 ./src/properties.c \ 46 ./src/reactor.c \ 47 ./src/ringbuffer.c \ 48 ./src/semaphore.c \ 49 ./src/socket.c \ 50 ./src/socket_utils/socket_local_client.c \ 51 ./src/socket_utils/socket_local_server.c \ 52 ./src/thread.c \ 53 ./src/time.c \ 54 ./src/wakelock.c 55 56btosiCommonTestSrc := \ 57 ./test/AlarmTestHarness.cpp \ 58 ./test/AllocationTestHarness.cpp \ 59 ./test/alarm_test.cpp \ 60 ./test/allocation_tracker_test.cpp \ 61 ./test/allocator_test.cpp \ 62 ./test/array_test.cpp \ 63 ./test/config_test.cpp \ 64 ./test/data_dispatcher_test.cpp \ 65 ./test/eager_reader_test.cpp \ 66 ./test/fixed_queue_test.cpp \ 67 ./test/future_test.cpp \ 68 ./test/hash_map_test.cpp \ 69 ./test/hash_map_utils_test.cpp \ 70 ./test/list_test.cpp \ 71 ./test/properties_test.cpp \ 72 ./test/rand_test.cpp \ 73 ./test/reactor_test.cpp \ 74 ./test/ringbuffer_test.cpp \ 75 ./test/semaphore_test.cpp \ 76 ./test/thread_test.cpp \ 77 ./test/time_test.cpp 78 79btosiCommonIncludes := \ 80 $(LOCAL_PATH)/.. \ 81 $(LOCAL_PATH)/../utils/include \ 82 $(LOCAL_PATH)/../stack/include \ 83 $(bluetooth_C_INCLUDES) 84 85# Bluetooth Protobuf static library for target 86# ======================================================== 87include $(CLEAR_VARS) 88LOCAL_MODULE := libbt-protos 89LOCAL_MODULE_CLASS := STATIC_LIBRARIES 90generated_sources_dir := $(call local-generated-sources-dir) 91LOCAL_EXPORT_C_INCLUDE_DIRS += \ 92 $(generated_sources_dir)/proto/system/bt 93LOCAL_SRC_FILES := $(call all-proto-files-under,src/protos/) 94 95LOCAL_CFLAGS += $(bluetooth_CFLAGS) 96LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS) 97LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS) 98 99include $(BUILD_STATIC_LIBRARY) 100 101# Bluetooth Protobuf static library for host 102# ======================================================== 103include $(CLEAR_VARS) 104LOCAL_MODULE := libbt-protos 105LOCAL_MODULE_CLASS := STATIC_LIBRARIES 106LOCAL_IS_HOST_MODULE := true 107generated_sources_dir := $(call local-generated-sources-dir) 108LOCAL_EXPORT_C_INCLUDE_DIRS += \ 109 $(generated_sources_dir)/proto/system/bt 110LOCAL_SRC_FILES := $(call all-proto-files-under,src/protos/) 111 112LOCAL_CFLAGS += $(bluetooth_CFLAGS) 113LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS) 114LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS) 115 116include $(BUILD_HOST_STATIC_LIBRARY) 117 118# libosi static library for target 119# ======================================================== 120include $(CLEAR_VARS) 121LOCAL_C_INCLUDES := $(btosiCommonIncludes) 122LOCAL_SRC_FILES := $(btosiCommonSrc) 123LOCAL_MODULE := libosi 124LOCAL_MODULE_TAGS := optional 125LOCAL_SHARED_LIBRARIES := libc liblog libchrome 126LOCAL_STATIC_LIBRARIES := libbt-protos 127LOCAL_MODULE_CLASS := STATIC_LIBRARIES 128 129LOCAL_CFLAGS += $(bluetooth_CFLAGS) 130LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS) 131LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS) 132 133include $(BUILD_STATIC_LIBRARY) 134 135# libosi static library for host 136# ======================================================== 137ifeq ($(HOST_OS),linux) 138include $(CLEAR_VARS) 139LOCAL_C_INCLUDES := $(btosiCommonIncludes) 140LOCAL_SRC_FILES := $(btosiCommonSrc) 141LOCAL_MODULE := libosi-host 142LOCAL_MODULE_TAGS := optional 143LOCAL_SHARED_LIBRARIES := liblog libchrome 144LOCAL_STATIC_LIBRARIES := libbt-protos 145LOCAL_MODULE_CLASS := STATIC_LIBRARIES 146 147# TODO(armansito): Setting _GNU_SOURCE isn't very platform-independent but 148# should be compatible for a Linux host OS. We should figure out what to do for 149# a non-Linux host OS. 150LOCAL_CFLAGS += $(bluetooth_CFLAGS) -D_GNU_SOURCE -DOS_GENERIC 151LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS) 152LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS) 153 154include $(BUILD_HOST_STATIC_LIBRARY) 155endif 156 157# 158# Note: It's good to get the tests compiled both for the host and the target so 159# we get to test with both Bionic libc and glibc 160# 161# libosi unit tests for target 162# ======================================================== 163include $(CLEAR_VARS) 164LOCAL_C_INCLUDES := $(btosiCommonIncludes) 165LOCAL_SRC_FILES := $(btosiCommonTestSrc) 166LOCAL_MODULE := net_test_osi 167LOCAL_MODULE_TAGS := tests 168LOCAL_SHARED_LIBRARIES := libc liblog libprotobuf-cpp-full libchrome libcutils 169LOCAL_STATIC_LIBRARIES := libosi libbt-protos 170 171LOCAL_CFLAGS += $(bluetooth_CFLAGS) 172LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS) 173LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS) 174 175include $(BUILD_NATIVE_TEST) 176 177# libosi unit tests for host 178# ======================================================== 179ifeq ($(HOST_OS),linux) 180include $(CLEAR_VARS) 181LOCAL_C_INCLUDES := $(btosiCommonIncludes) 182LOCAL_SRC_FILES := $(btosiCommonTestSrc) 183LOCAL_LDLIBS := -lrt -lpthread 184LOCAL_MODULE := net_test_osi 185LOCAL_MODULE_TAGS := tests 186LOCAL_SHARED_LIBRARIES := liblog libprotobuf-cpp-full libchrome 187LOCAL_STATIC_LIBRARIES := libosi-host libbt-protos 188 189LOCAL_CFLAGS += $(bluetooth_CFLAGS) -DOS_GENERIC 190LOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS) 191LOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS) 192 193include $(BUILD_HOST_NATIVE_TEST) 194endif 195