13a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton ##############################################################################
23a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #
33a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #  Copyright (C) 2014 Google, Inc.
43a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #
53a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #  Licensed under the Apache License, Version 2.0 (the "License");
63a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #  you may not use this file except in compliance with the License.
73a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #  You may obtain a copy of the License at:
83a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #
93a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #  http://www.apache.org/licenses/LICENSE-2.0
103a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #
113a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #  Unless required by applicable law or agreed to in writing, software
123a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #  distributed under the License is distributed on an "AS IS" BASIS,
133a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
143a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #  See the License for the specific language governing permissions and
153a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #  limitations under the License.
163a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton #
173a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton ##############################################################################
183a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton
19cef7695cb3c0e1a5d462deac6508ade2726918cfSharvil NanavatiLOCAL_PATH := $(call my-dir)
20cef7695cb3c0e1a5d462deac6508ade2726918cfSharvil Nanavati
21145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# Common variables
22145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# ========================================================
23cef7695cb3c0e1a5d462deac6508ade2726918cfSharvil Nanavati
24109691281c0135fd4298debcdec37fdc5855261eMiao Chou# TODO(mcchou): Remove socket_utils sources after platform specific
25109691281c0135fd4298debcdec37fdc5855261eMiao Chou# dependencies are abstracted.
26145cf576b55bc1eba7818d28e580a7729c94deeaArman UguraybtosiCommonSrc := \
27f0e7c8b895c61104ce962b7c5e3705a32943d711Sharvil Nanavati    ./src/alarm.c \
283b72a14c2515c1169d5501ada5499cf232fc643bZach Johnson    ./src/allocation_tracker.c \
29dcbfea8f812315c93568ef1fccf429fbaa03ce82Zach Johnson    ./src/allocator.c \
30badeb92ca9a17f6bbc9e69ccaf5943aeec09fc4eSharvil Nanavati    ./src/array.c \
311878c42ef822ef66df7f9bc69bb613efc37156ecSharvil Nanavati    ./src/buffer.c \
32145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray    ./src/compat.c \
33f886773891f1cfe37f8824ed8e63230954e5c2d8Sharvil Nanavati    ./src/config.c \
343605c802486424c2fe22b3474c941f224cd56419Zach Johnson    ./src/data_dispatcher.c \
35d18cfd09c96740f57c5645b18d9582aa8afffcedZach Johnson    ./src/eager_reader.c \
36c11b407e78d96e05b0991bbe6dfde0d7eb5349b5Sharvil Nanavati    ./src/fixed_queue.c \
372e241dbe76facf02450c86d9fb4bf3d76d6dde21Zach Johnson    ./src/future.c \
38b88b2bbce4cfa78e37f303e55c66fd43719cbc4cZach Johnson    ./src/hash_functions.c \
393a2ee939c61a1c3f57fa3eb99899ba908c41e7d5Chris Manton    ./src/hash_map.c \
4098a9641e77a247e5ba9a7f263066058d17e2b0a0Miao Chou    ./src/hash_map_utils.c \
41c11b407e78d96e05b0991bbe6dfde0d7eb5349b5Sharvil Nanavati    ./src/list.c \
42aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Janssen    ./src/metrics.cpp \
431eb1ea0cf2da992a3193506806e571dcbe3ec947Pavlin Radoslavov    ./src/mutex.c \
448d0a6a408ff57cb221e67963a95822f080911f20Marie Janssen    ./src/osi.c \
452998946db9b820806d4a3e6decf1d01f090a8031Jakub Pawlowski    ./src/properties.c \
4619084c6242d8ddb366a52eba5084c974280cce0fSharvil Nanavati    ./src/reactor.c \
4789f5e411d9ef31436741288a2267e46dd744e273Andre Eisenbach    ./src/ringbuffer.c \
48118bdd58389c77dd69b37e377b4e98ea89d2b14eSharvil Nanavati    ./src/semaphore.c \
49c2031c4fbab9ed2d2e51a0b287a3fab805932ca4Sharvil Nanavati    ./src/socket.c \
50109691281c0135fd4298debcdec37fdc5855261eMiao Chou    ./src/socket_utils/socket_local_client.c \
51109691281c0135fd4298debcdec37fdc5855261eMiao Chou    ./src/socket_utils/socket_local_server.c \
52c196f214c5ae349ec2022f8d3cbaf56910b3b9f8Pavlin Radoslavov    ./src/thread.c \
53d2e250824fca5c42b87b3b6f5fa19646ffa2d321Pavlin Radoslavov    ./src/time.c \
54d2e250824fca5c42b87b3b6f5fa19646ffa2d321Pavlin Radoslavov    ./src/wakelock.c
55cef7695cb3c0e1a5d462deac6508ade2726918cfSharvil Nanavati
56145cf576b55bc1eba7818d28e580a7729c94deeaArman UguraybtosiCommonTestSrc := \
572bbb33c648fd27233421a721e067d8c0e9012a7eZach Johnson    ./test/AlarmTestHarness.cpp \
583b72a14c2515c1169d5501ada5499cf232fc643bZach Johnson    ./test/AllocationTestHarness.cpp \
59badeb92ca9a17f6bbc9e69ccaf5943aeec09fc4eSharvil Nanavati    ./test/alarm_test.cpp \
603b72a14c2515c1169d5501ada5499cf232fc643bZach Johnson    ./test/allocation_tracker_test.cpp \
6198a9641e77a247e5ba9a7f263066058d17e2b0a0Miao Chou    ./test/allocator_test.cpp \
62badeb92ca9a17f6bbc9e69ccaf5943aeec09fc4eSharvil Nanavati    ./test/array_test.cpp \
63f886773891f1cfe37f8824ed8e63230954e5c2d8Sharvil Nanavati    ./test/config_test.cpp \
643605c802486424c2fe22b3474c941f224cd56419Zach Johnson    ./test/data_dispatcher_test.cpp \
65d18cfd09c96740f57c5645b18d9582aa8afffcedZach Johnson    ./test/eager_reader_test.cpp \
66153bdfb9784b21e235676508c75bf2f4ee2b937fPavlin Radoslavov    ./test/fixed_queue_test.cpp \
672e241dbe76facf02450c86d9fb4bf3d76d6dde21Zach Johnson    ./test/future_test.cpp \
687359477fe6ecb65d8d8fb7574fbb841e6f8da904Chris Manton    ./test/hash_map_test.cpp \
6998a9641e77a247e5ba9a7f263066058d17e2b0a0Miao Chou    ./test/hash_map_utils_test.cpp \
7019084c6242d8ddb366a52eba5084c974280cce0fSharvil Nanavati    ./test/list_test.cpp \
712998946db9b820806d4a3e6decf1d01f090a8031Jakub Pawlowski    ./test/properties_test.cpp \
728d0a6a408ff57cb221e67963a95822f080911f20Marie Janssen    ./test/rand_test.cpp \
73118bdd58389c77dd69b37e377b4e98ea89d2b14eSharvil Nanavati    ./test/reactor_test.cpp \
7489f5e411d9ef31436741288a2267e46dd744e273Andre Eisenbach    ./test/ringbuffer_test.cpp \
7548df46b8398cf224a5209002cce3d534c4480d99Andre Eisenbach    ./test/semaphore_test.cpp \
76c196f214c5ae349ec2022f8d3cbaf56910b3b9f8Pavlin Radoslavov    ./test/thread_test.cpp \
77c196f214c5ae349ec2022f8d3cbaf56910b3b9f8Pavlin Radoslavov    ./test/time_test.cpp
78cef7695cb3c0e1a5d462deac6508ade2726918cfSharvil Nanavati
79145cf576b55bc1eba7818d28e580a7729c94deeaArman UguraybtosiCommonIncludes := \
80145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray    $(LOCAL_PATH)/.. \
8110978011f286d20f10eb949e3557ad00a62c8424Pavlin Radoslavov    $(LOCAL_PATH)/../utils/include \
820b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov    $(LOCAL_PATH)/../stack/include \
830b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov    $(bluetooth_C_INCLUDES)
84145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray
850b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov# Bluetooth Protobuf static library for target
86aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Janssen# ========================================================
87aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Jansseninclude $(CLEAR_VARS)
88aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_MODULE := libbt-protos
89aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_MODULE_CLASS := STATIC_LIBRARIES
90aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Janssengenerated_sources_dir := $(call local-generated-sources-dir)
91aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_EXPORT_C_INCLUDE_DIRS += \
92aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Janssen    $(generated_sources_dir)/proto/system/bt
93aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_SRC_FILES := $(call all-proto-files-under,src/protos/)
940b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
950b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CFLAGS += $(bluetooth_CFLAGS)
960b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
970b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
980b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
99aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Jansseninclude $(BUILD_STATIC_LIBRARY)
100aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Janssen
1010b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov# Bluetooth Protobuf static library for host
1020b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov# ========================================================
103aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Jansseninclude $(CLEAR_VARS)
104aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_MODULE := libbt-protos
105aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_MODULE_CLASS := STATIC_LIBRARIES
10606b3a5741afa443966ec1268241c98b8549f8c44Ying WangLOCAL_IS_HOST_MODULE := true
107aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Janssengenerated_sources_dir := $(call local-generated-sources-dir)
108aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_EXPORT_C_INCLUDE_DIRS += \
109aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Janssen    $(generated_sources_dir)/proto/system/bt
110aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_SRC_FILES := $(call all-proto-files-under,src/protos/)
1110b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
1120b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CFLAGS += $(bluetooth_CFLAGS)
1130b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
1140b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
1150b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
116aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Jansseninclude $(BUILD_HOST_STATIC_LIBRARY)
117aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie Janssen
118145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# libosi static library for target
119145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# ========================================================
120145cf576b55bc1eba7818d28e580a7729c94deeaArman Ugurayinclude $(CLEAR_VARS)
121145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_C_INCLUDES := $(btosiCommonIncludes)
122145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_SRC_FILES := $(btosiCommonSrc)
123145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_MODULE := libosi
124145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_MODULE_TAGS := optional
125e064f0846d382180a7955b7e45fcb73fa13ff992Ajay PanickerLOCAL_SHARED_LIBRARIES := libc liblog libchrome
126aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_STATIC_LIBRARIES := libbt-protos
127145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_MODULE_CLASS := STATIC_LIBRARIES
1280b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
1290b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CFLAGS += $(bluetooth_CFLAGS)
1300b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
1310b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
1320b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
133145cf576b55bc1eba7818d28e580a7729c94deeaArman Ugurayinclude $(BUILD_STATIC_LIBRARY)
134145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray
135145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# libosi static library for host
136145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# ========================================================
137145cf576b55bc1eba7818d28e580a7729c94deeaArman Ugurayifeq ($(HOST_OS),linux)
138145cf576b55bc1eba7818d28e580a7729c94deeaArman Ugurayinclude $(CLEAR_VARS)
139145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_C_INCLUDES := $(btosiCommonIncludes)
140145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_SRC_FILES := $(btosiCommonSrc)
141145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_MODULE := libosi-host
142145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_MODULE_TAGS := optional
143e064f0846d382180a7955b7e45fcb73fa13ff992Ajay PanickerLOCAL_SHARED_LIBRARIES := liblog libchrome
144aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_STATIC_LIBRARIES := libbt-protos
145145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_MODULE_CLASS := STATIC_LIBRARIES
1460b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
1470b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov# TODO(armansito): Setting _GNU_SOURCE isn't very platform-independent but
1480b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov# should be compatible for a Linux host OS. We should figure out what to do for
1490b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov# a non-Linux host OS.
1502998946db9b820806d4a3e6decf1d01f090a8031Jakub PawlowskiLOCAL_CFLAGS += $(bluetooth_CFLAGS) -D_GNU_SOURCE -DOS_GENERIC
1510b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
1520b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
1530b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
154145cf576b55bc1eba7818d28e580a7729c94deeaArman Ugurayinclude $(BUILD_HOST_STATIC_LIBRARY)
155145cf576b55bc1eba7818d28e580a7729c94deeaArman Ugurayendif
156145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray
1570b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov#
158145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# Note: It's good to get the tests compiled both for the host and the target so
159145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# we get to test with both Bionic libc and glibc
1600b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov#
161145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# libosi unit tests for target
162145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# ========================================================
163145cf576b55bc1eba7818d28e580a7729c94deeaArman Ugurayinclude $(CLEAR_VARS)
164145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_C_INCLUDES := $(btosiCommonIncludes)
165145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_SRC_FILES := $(btosiCommonTestSrc)
16661683578a90c46aea254b22bda4ceda0e1207600Sharvil NanavatiLOCAL_MODULE := net_test_osi
167cef7695cb3c0e1a5d462deac6508ade2726918cfSharvil NanavatiLOCAL_MODULE_TAGS := tests
1682998946db9b820806d4a3e6decf1d01f090a8031Jakub PawlowskiLOCAL_SHARED_LIBRARIES := libc liblog libprotobuf-cpp-full libchrome libcutils
169aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_STATIC_LIBRARIES := libosi libbt-protos
1700b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
1710b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CFLAGS += $(bluetooth_CFLAGS)
1720b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
1730b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
1740b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
175cef7695cb3c0e1a5d462deac6508ade2726918cfSharvil Nanavatiinclude $(BUILD_NATIVE_TEST)
176145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray
177145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# libosi unit tests for host
178145cf576b55bc1eba7818d28e580a7729c94deeaArman Uguray# ========================================================
179145cf576b55bc1eba7818d28e580a7729c94deeaArman Ugurayifeq ($(HOST_OS),linux)
180145cf576b55bc1eba7818d28e580a7729c94deeaArman Ugurayinclude $(CLEAR_VARS)
181145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_C_INCLUDES := $(btosiCommonIncludes)
182145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_SRC_FILES := $(btosiCommonTestSrc)
183145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_LDLIBS := -lrt -lpthread
184145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_MODULE := net_test_osi
185145cf576b55bc1eba7818d28e580a7729c94deeaArman UgurayLOCAL_MODULE_TAGS := tests
186e064f0846d382180a7955b7e45fcb73fa13ff992Ajay PanickerLOCAL_SHARED_LIBRARIES := liblog libprotobuf-cpp-full libchrome
187aa11644f763b1d33123b3f71d1a6c3977e7d69cfMarie JanssenLOCAL_STATIC_LIBRARIES := libosi-host libbt-protos
1880b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
1892998946db9b820806d4a3e6decf1d01f090a8031Jakub PawlowskiLOCAL_CFLAGS += $(bluetooth_CFLAGS) -DOS_GENERIC
1900b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CONLYFLAGS += $(bluetooth_CONLYFLAGS)
1910b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin RadoslavovLOCAL_CPPFLAGS += $(bluetooth_CPPFLAGS)
1920b60bb04b966030fd1dfdffe68099da8f280ade0Pavlin Radoslavov
193145cf576b55bc1eba7818d28e580a7729c94deeaArman Ugurayinclude $(BUILD_HOST_NATIVE_TEST)
194145cf576b55bc1eba7818d28e580a7729c94deeaArman Ugurayendif
195