1# Copyright (C) 2016 The Android Open Source Project
2#
3# Licensed under the Apache License, Version 2.0 (the "License");
4# you may not use this file except in compliance with the License.
5# You may obtain a copy of the License at
6#
7#      http://www.apache.org/licenses/LICENSE-2.0
8#
9# Unless required by applicable law or agreed to in writing, software
10# distributed under the License is distributed on an "AS IS" BASIS,
11# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12# See the License for the specific language governing permissions and
13# limitations under the License.
14
15LOCAL_PATH := $(call my-dir)
16wificond_cpp_flags := -Wall -Werror -Wno-unused-parameter
17wificond_parent_dir := $(LOCAL_PATH)/../
18wificond_includes := \
19    $(wificond_parent_dir)
20
21
22###
23### wificond daemon.
24###
25include $(CLEAR_VARS)
26LOCAL_MODULE := wificond
27LOCAL_CPPFLAGS := $(wificond_cpp_flags)
28LOCAL_INIT_RC := wificond.rc
29LOCAL_C_INCLUDES := $(wificond_includes)
30LOCAL_SRC_FILES := \
31    main.cpp
32LOCAL_SHARED_LIBRARIES := \
33    android.hardware.wifi.offload@1.0 \
34    libbinder \
35    libbase \
36    libcutils \
37    libhidlbase \
38    libhidltransport \
39    libminijail \
40    libutils \
41    libwifi-system \
42    libwifi-system-iface
43LOCAL_STATIC_LIBRARIES := \
44    libwificond
45include $(BUILD_EXECUTABLE)
46
47###
48### wificond static library
49###
50include $(CLEAR_VARS)
51LOCAL_MODULE := libwificond
52LOCAL_CPPFLAGS := $(wificond_cpp_flags)
53LOCAL_C_INCLUDES := $(wificond_includes)
54LOCAL_SRC_FILES := \
55    ap_interface_binder.cpp \
56    ap_interface_impl.cpp \
57    client_interface_binder.cpp \
58    client_interface_impl.cpp \
59    logging_utils.cpp \
60    scanning/channel_settings.cpp \
61    scanning/hidden_network.cpp \
62    scanning/offload_scan_callback_interface_impl.cpp \
63    scanning/pno_network.cpp \
64    scanning/pno_settings.cpp \
65    scanning/radio_chain_info.cpp \
66    scanning/scan_result.cpp \
67    scanning/offload/scan_stats.cpp \
68    scanning/single_scan_settings.cpp \
69    scanning/scan_utils.cpp \
70    scanning/scanner_impl.cpp \
71    scanning/offload/offload_scan_manager.cpp \
72    scanning/offload/offload_callback.cpp \
73    scanning/offload/offload_service_utils.cpp \
74    scanning/offload/offload_scan_utils.cpp \
75    server.cpp
76LOCAL_SHARED_LIBRARIES := \
77    android.hardware.wifi.offload@1.0 \
78    libbase \
79    libutils \
80    libhidlbase \
81    libhidltransport \
82    libwifi-system \
83    libwifi-system-iface
84LOCAL_WHOLE_STATIC_LIBRARIES := \
85    libwificond_ipc \
86    libwificond_nl \
87    libwificond_event_loop
88include $(BUILD_STATIC_LIBRARY)
89
90###
91### wificond netlink library
92###
93include $(CLEAR_VARS)
94LOCAL_MODULE := libwificond_nl
95LOCAL_CPPFLAGS := $(wificond_cpp_flags)
96LOCAL_C_INCLUDES := $(wificond_includes)
97LOCAL_SRC_FILES := \
98    net/mlme_event.cpp \
99    net/netlink_manager.cpp \
100    net/netlink_utils.cpp \
101    net/nl80211_attribute.cpp \
102    net/nl80211_packet.cpp
103LOCAL_SHARED_LIBRARIES := \
104    libbase
105include $(BUILD_STATIC_LIBRARY)
106
107###
108### wificond event loop library
109###
110include $(CLEAR_VARS)
111LOCAL_MODULE := libwificond_event_loop
112LOCAL_CPPFLAGS := $(wificond_cpp_flags)
113LOCAL_C_INCLUDES := $(wificond_includes)
114LOCAL_SRC_FILES := \
115    looper_backed_event_loop.cpp
116LOCAL_WHOLE_STATIC_LIBRARIES := \
117    liblog \
118    libbase \
119    libutils
120include $(BUILD_STATIC_LIBRARY)
121
122###
123### wificond IPC interface library
124###
125include $(CLEAR_VARS)
126LOCAL_MODULE := libwificond_ipc
127LOCAL_AIDL_INCLUDES += $(LOCAL_PATH)/aidl
128LOCAL_C_INCLUDES := $(wificond_includes)
129LOCAL_CPPFLAGS := $(wificond_cpp_flags)
130LOCAL_SRC_FILES := \
131    ipc_constants.cpp \
132    aidl/android/net/wifi/IApInterface.aidl \
133    aidl/android/net/wifi/IApInterfaceEventCallback.aidl \
134    aidl/android/net/wifi/IClientInterface.aidl \
135    aidl/android/net/wifi/IInterfaceEventCallback.aidl \
136    aidl/android/net/wifi/IPnoScanEvent.aidl \
137    aidl/android/net/wifi/IScanEvent.aidl \
138    aidl/android/net/wifi/IWificond.aidl \
139    aidl/android/net/wifi/IWifiScannerImpl.aidl \
140    scanning/channel_settings.cpp \
141    scanning/hidden_network.cpp \
142    scanning/pno_network.cpp \
143    scanning/pno_settings.cpp \
144    scanning/radio_chain_info.cpp \
145    scanning/scan_result.cpp \
146    scanning/single_scan_settings.cpp
147LOCAL_SHARED_LIBRARIES := \
148    libbinder
149include $(BUILD_STATIC_LIBRARY)
150
151###
152### test util library
153###
154include $(CLEAR_VARS)
155LOCAL_MODULE := libwificond_test_utils
156LOCAL_CPPFLAGS := $(wificond_cpp_flags)
157LOCAL_C_INCLUDES := $(wificond_includes)
158LOCAL_SRC_FILES := \
159    tests/integration/binder_dispatcher.cpp \
160    tests/integration/process_utils.cpp \
161    tests/shell_utils.cpp
162LOCAL_SHARED_LIBRARIES := \
163    libbase
164LOCAL_WHOLE_STATIC_LIBRARIES := \
165    libwificond_ipc \
166    libwificond_event_loop
167include $(BUILD_STATIC_LIBRARY)
168
169###
170### wificond unit tests.
171###
172include $(CLEAR_VARS)
173LOCAL_MODULE := wificond_unit_test
174LOCAL_COMPATIBILITY_SUITE := device-tests
175LOCAL_CPPFLAGS := $(wificond_cpp_flags)
176LOCAL_C_INCLUDES := $(wificond_includes)
177LOCAL_SRC_FILES := \
178    tests/ap_interface_impl_unittest.cpp \
179    tests/client_interface_impl_unittest.cpp \
180    tests/looper_backed_event_loop_unittest.cpp \
181    tests/main.cpp \
182    tests/mock_client_interface_impl.cpp \
183    tests/mock_netlink_manager.cpp \
184    tests/mock_netlink_utils.cpp \
185    tests/mock_offload.cpp \
186    tests/mock_offload_callback_handlers.cpp \
187    tests/mock_offload_scan_callback_interface.cpp \
188    tests/mock_offload_scan_callback_interface_impl.cpp \
189    tests/mock_offload_scan_manager.cpp \
190    tests/mock_offload_service_utils.cpp \
191    tests/mock_scan_utils.cpp \
192    tests/netlink_manager_unittest.cpp \
193    tests/netlink_utils_unittest.cpp \
194    tests/nl80211_attribute_unittest.cpp \
195    tests/nl80211_packet_unittest.cpp \
196    tests/offload_callback_test.cpp \
197    tests/offload_hal_test_constants.cpp \
198    tests/offload_scan_manager_test.cpp \
199    tests/offload_scan_utils_test.cpp \
200    tests/offload_test_utils.cpp \
201    tests/scanner_unittest.cpp \
202    tests/scan_result_unittest.cpp \
203    tests/scan_settings_unittest.cpp \
204    tests/scan_stats_unittest.cpp \
205    tests/scan_utils_unittest.cpp \
206    tests/server_unittest.cpp
207LOCAL_STATIC_LIBRARIES := \
208    libgmock \
209    libgtest \
210    libwifi-system-test \
211    libwifi-system-iface-test \
212    libwificond \
213    libwificond_nl
214LOCAL_SHARED_LIBRARIES := \
215    android.hardware.wifi.offload@1.0 \
216    libbase \
217    libbinder \
218    libcutils \
219    libhidltransport \
220    libhidlbase \
221    liblog \
222    libutils \
223    libwifi-system \
224    libwifi-system-iface
225include $(BUILD_NATIVE_TEST)
226
227###
228### wificond device integration tests.
229###
230include $(CLEAR_VARS)
231LOCAL_MODULE := wificond_integration_test
232LOCAL_CPPFLAGS := $(wificond_cpp_flags)
233LOCAL_C_INCLUDES := $(wificond_includes)
234LOCAL_SRC_FILES := \
235    tests/integration/ap_interface_test.cpp \
236    tests/integration/client_interface_test.cpp \
237    tests/integration/life_cycle_test.cpp \
238    tests/integration/scanner_test.cpp \
239    tests/integration/service_test.cpp \
240    tests/main.cpp \
241    tests/shell_unittest.cpp
242LOCAL_SHARED_LIBRARIES := \
243    libbase \
244    libbinder \
245    libcutils \
246    libutils \
247    libwifi-system \
248    libwifi-system-iface
249LOCAL_STATIC_LIBRARIES := \
250    libgmock \
251    libwificond_ipc \
252    libwificond_test_utils
253include $(BUILD_NATIVE_TEST)
254