blob: 1179a091d47e564e149ba8df97fbcdad48f903c0 [file] [log] [blame]
Christopher Wiley189a1ef2016-06-15 12:54:12 -07001# 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)
Christopher Wiley189a1ef2016-06-15 12:54:12 -070016
Christopher Wileya5915062016-06-16 16:31:01 -070017wifi_hal_cflags := \
Christopher Wiley189a1ef2016-06-15 12:54:12 -070018 -Wall \
19 -Werror \
20 -Wextra \
21 -Winit-self \
22 -Wno-unused-function \
23 -Wno-unused-parameter \
24 -Wshadow \
25 -Wunused-variable \
26 -Wwrite-strings
Christopher Wileya5915062016-06-16 16:31:01 -070027ifdef WIFI_DRIVER_MODULE_PATH
28wifi_hal_cflags += -DWIFI_DRIVER_MODULE_PATH=\"$(WIFI_DRIVER_MODULE_PATH)\"
29endif
30ifdef WIFI_DRIVER_MODULE_ARG
31wifi_hal_cflags += -DWIFI_DRIVER_MODULE_ARG=\"$(WIFI_DRIVER_MODULE_ARG)\"
32endif
33ifdef WIFI_DRIVER_MODULE_NAME
34wifi_hal_cflags += -DWIFI_DRIVER_MODULE_NAME=\"$(WIFI_DRIVER_MODULE_NAME)\"
35endif
36ifdef WIFI_DRIVER_FW_PATH_STA
37wifi_hal_cflags += -DWIFI_DRIVER_FW_PATH_STA=\"$(WIFI_DRIVER_FW_PATH_STA)\"
38endif
39ifdef WIFI_DRIVER_FW_PATH_AP
40wifi_hal_cflags += -DWIFI_DRIVER_FW_PATH_AP=\"$(WIFI_DRIVER_FW_PATH_AP)\"
41endif
42ifdef WIFI_DRIVER_FW_PATH_P2P
43wifi_hal_cflags += -DWIFI_DRIVER_FW_PATH_P2P=\"$(WIFI_DRIVER_FW_PATH_P2P)\"
44endif
Christopher Wiley1d3a41b2016-08-22 10:23:22 -070045
46# Some devices use a different path (e.g. devices with broadcom WiFi parts).
Christopher Wileya5915062016-06-16 16:31:01 -070047ifdef WIFI_DRIVER_FW_PATH_PARAM
48wifi_hal_cflags += -DWIFI_DRIVER_FW_PATH_PARAM=\"$(WIFI_DRIVER_FW_PATH_PARAM)\"
Christopher Wiley1d3a41b2016-08-22 10:23:22 -070049else
50wifi_hal_cflags += -DWIFI_DRIVER_FW_PATH_PARAM=\"/sys/module/wlan/parameters/fwpath\"
Christopher Wileya5915062016-06-16 16:31:01 -070051endif
52
53ifdef WIFI_DRIVER_STATE_CTRL_PARAM
54wifi_hal_cflags += -DWIFI_DRIVER_STATE_CTRL_PARAM=\"$(WIFI_DRIVER_STATE_CTRL_PARAM)\"
55endif
56ifdef WIFI_DRIVER_STATE_ON
57wifi_hal_cflags += -DWIFI_DRIVER_STATE_ON=\"$(WIFI_DRIVER_STATE_ON)\"
58endif
59ifdef WIFI_DRIVER_STATE_OFF
60wifi_hal_cflags += -DWIFI_DRIVER_STATE_OFF=\"$(WIFI_DRIVER_STATE_OFF)\"
61endif
62
63# Common code shared between the HALs.
64# ============================================================
65include $(CLEAR_VARS)
66LOCAL_MODULE := libwifi-hal-common
Steven Moreland37e67e52017-04-13 14:26:45 -070067LOCAL_VENDOR_MODULE := true
Christopher Wileya5915062016-06-16 16:31:01 -070068LOCAL_CFLAGS := $(wifi_hal_cflags)
Christopher Wileya5915062016-06-16 16:31:01 -070069LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
Christopher Wiley86105fb2016-09-09 13:48:15 -070070LOCAL_SHARED_LIBRARIES := libbase
Steven Moreland0d73ef42017-04-17 17:54:27 -070071LOCAL_HEADER_LIBRARIES := libcutils_headers
Christopher Wiley86105fb2016-09-09 13:48:15 -070072LOCAL_SRC_FILES := wifi_hal_common.cpp
Christopher Wileya5915062016-06-16 16:31:01 -070073include $(BUILD_STATIC_LIBRARY)
74
75# A fallback "vendor" HAL library.
76# Don't link this, link libwifi-hal.
77# ============================================================
78include $(CLEAR_VARS)
79LOCAL_MODULE := libwifi-hal-fallback
Steven Moreland37e67e52017-04-13 14:26:45 -070080LOCAL_VENDOR_MODULE := true
Christopher Wileya5915062016-06-16 16:31:01 -070081LOCAL_CFLAGS := $(wifi_hal_cflags)
Christopher Wiley189a1ef2016-06-15 12:54:12 -070082LOCAL_SRC_FILES := wifi_hal_fallback.cpp
Dan Willemsen398adb62017-04-04 21:40:29 -070083LOCAL_HEADER_LIBRARIES := libhardware_legacy_headers
Christopher Wiley189a1ef2016-06-15 12:54:12 -070084include $(BUILD_STATIC_LIBRARY)
85
86# Pick a vendor provided HAL implementation library.
87# ============================================================
88LIB_WIFI_HAL := libwifi-hal-fallback
Etan Cohen8faa7c22017-05-03 09:11:44 -070089VENDOR_LOCAL_SHARED_LIBRARIES :=
Christopher Wiley189a1ef2016-06-15 12:54:12 -070090ifeq ($(BOARD_WLAN_DEVICE), bcmdhd)
91 LIB_WIFI_HAL := libwifi-hal-bcm
92else ifeq ($(BOARD_WLAN_DEVICE), qcwcn)
93 LIB_WIFI_HAL := libwifi-hal-qcom
Etan Cohen8faa7c22017-05-03 09:11:44 -070094 VENDOR_LOCAL_SHARED_LIBRARIES := libcld80211
Christopher Wiley189a1ef2016-06-15 12:54:12 -070095else ifeq ($(BOARD_WLAN_DEVICE), mrvl)
96 # this is commented because none of the nexus devices
97 # that sport Marvell's wifi have support for HAL
98 # LIB_WIFI_HAL := libwifi-hal-mrvl
99else ifeq ($(BOARD_WLAN_DEVICE), MediaTek)
100 # support MTK WIFI HAL
101 LIB_WIFI_HAL := libwifi-hal-mt66xx
102endif
103
104# The WiFi HAL that you should be linking.
105# ============================================================
106include $(CLEAR_VARS)
107LOCAL_MODULE := libwifi-hal
Roshan Pius2ca182b2017-02-24 19:38:12 -0800108LOCAL_PROPRIETARY_MODULE := true
Christopher Wiley5edbffa2016-06-28 15:00:50 -0700109LOCAL_CFLAGS := $(wifi_hal_cflags)
Christopher Wiley00aa56e2016-06-24 14:25:38 -0700110LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
Christopher Wileya5915062016-06-16 16:31:01 -0700111LOCAL_EXPORT_C_INCLUDE_DIRS := \
Dan Willemsen398adb62017-04-04 21:40:29 -0700112 $(LOCAL_PATH)/include
113LOCAL_EXPORT_HEADER_LIBRARY_HEADERS := libhardware_legacy_headers
114LOCAL_HEADER_LIBRARIES := libhardware_legacy_headers
Christopher Wiley189a1ef2016-06-15 12:54:12 -0700115LOCAL_SHARED_LIBRARIES := \
Christopher Wileyf41e52f2016-09-09 13:28:03 -0700116 libbase \
Christopher Wileya5915062016-06-16 16:31:01 -0700117 libcutils \
Christopher Wiley189a1ef2016-06-15 12:54:12 -0700118 liblog \
119 libnl \
Subhani Shaik09070fe2017-03-13 13:30:31 -0700120 libutils \
Etan Cohen8faa7c22017-05-03 09:11:44 -0700121 $(VENDOR_LOCAL_SHARED_LIBRARIES)
Christopher Wiley00aa56e2016-06-24 14:25:38 -0700122LOCAL_SRC_FILES := \
Roshan Pius7df78ee2017-03-09 17:35:06 -0800123 driver_tool.cpp \
124 hal_tool.cpp
Christopher Wileya5915062016-06-16 16:31:01 -0700125LOCAL_WHOLE_STATIC_LIBRARIES := $(LIB_WIFI_HAL) libwifi-hal-common
Christopher Wiley189a1ef2016-06-15 12:54:12 -0700126include $(BUILD_SHARED_LIBRARY)
127
Christopher Wileye9a0f2c2016-06-28 09:33:44 -0700128# Test utilities (e.g. mock classes) for libwifi-hal
129# ============================================================
130include $(CLEAR_VARS)
131LOCAL_MODULE := libwifi-hal-test
132LOCAL_CFLAGS := $(wifi_hal_cflags)
133LOCAL_C_INCLUDES := \
134 $(LOCAL_PATH)/include \
135 $(LOCAL_PATH)/testlib/include
136LOCAL_STATIC_LIBRARIES := libgmock
137LOCAL_EXPORT_C_INCLUDE_DIRS := \
138 $(LOCAL_PATH)/include \
139 $(LOCAL_PATH)/testlib/include
140include $(BUILD_STATIC_LIBRARY)