Home | History | Annotate | Download | only in libwifi_hal
      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 
     15 LOCAL_PATH := $(call my-dir)
     16 
     17 wifi_hal_cflags := \
     18     -Wall \
     19     -Werror \
     20     -Wextra \
     21     -Winit-self \
     22     -Wno-unused-function \
     23     -Wno-unused-parameter \
     24     -Wshadow \
     25     -Wunused-variable \
     26     -Wwrite-strings
     27 ifdef WIFI_DRIVER_MODULE_PATH
     28 wifi_hal_cflags += -DWIFI_DRIVER_MODULE_PATH=\"$(WIFI_DRIVER_MODULE_PATH)\"
     29 endif
     30 ifdef WIFI_DRIVER_MODULE_ARG
     31 wifi_hal_cflags += -DWIFI_DRIVER_MODULE_ARG=\"$(WIFI_DRIVER_MODULE_ARG)\"
     32 endif
     33 ifdef WIFI_DRIVER_MODULE_NAME
     34 wifi_hal_cflags += -DWIFI_DRIVER_MODULE_NAME=\"$(WIFI_DRIVER_MODULE_NAME)\"
     35 endif
     36 ifdef WIFI_DRIVER_FW_PATH_STA
     37 wifi_hal_cflags += -DWIFI_DRIVER_FW_PATH_STA=\"$(WIFI_DRIVER_FW_PATH_STA)\"
     38 endif
     39 ifdef WIFI_DRIVER_FW_PATH_AP
     40 wifi_hal_cflags += -DWIFI_DRIVER_FW_PATH_AP=\"$(WIFI_DRIVER_FW_PATH_AP)\"
     41 endif
     42 ifdef WIFI_DRIVER_FW_PATH_P2P
     43 wifi_hal_cflags += -DWIFI_DRIVER_FW_PATH_P2P=\"$(WIFI_DRIVER_FW_PATH_P2P)\"
     44 endif
     45 
     46 # Some devices use a different path (e.g. devices with broadcom WiFi parts).
     47 ifdef WIFI_DRIVER_FW_PATH_PARAM
     48 wifi_hal_cflags += -DWIFI_DRIVER_FW_PATH_PARAM=\"$(WIFI_DRIVER_FW_PATH_PARAM)\"
     49 else
     50 wifi_hal_cflags += -DWIFI_DRIVER_FW_PATH_PARAM=\"/sys/module/wlan/parameters/fwpath\"
     51 endif
     52 
     53 ifdef WIFI_DRIVER_STATE_CTRL_PARAM
     54 wifi_hal_cflags += -DWIFI_DRIVER_STATE_CTRL_PARAM=\"$(WIFI_DRIVER_STATE_CTRL_PARAM)\"
     55 endif
     56 ifdef WIFI_DRIVER_STATE_ON
     57 wifi_hal_cflags += -DWIFI_DRIVER_STATE_ON=\"$(WIFI_DRIVER_STATE_ON)\"
     58 endif
     59 ifdef WIFI_DRIVER_STATE_OFF
     60 wifi_hal_cflags += -DWIFI_DRIVER_STATE_OFF=\"$(WIFI_DRIVER_STATE_OFF)\"
     61 endif
     62 
     63 # Common code shared between the HALs.
     64 # ============================================================
     65 include $(CLEAR_VARS)
     66 LOCAL_MODULE := libwifi-hal-common
     67 LOCAL_VENDOR_MODULE := true
     68 LOCAL_CFLAGS := $(wifi_hal_cflags)
     69 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
     70 LOCAL_SHARED_LIBRARIES := libbase
     71 LOCAL_HEADER_LIBRARIES := libcutils_headers
     72 LOCAL_SRC_FILES := wifi_hal_common.cpp
     73 include $(BUILD_STATIC_LIBRARY)
     74 
     75 # A fallback "vendor" HAL library.
     76 # Don't link this, link libwifi-hal.
     77 # ============================================================
     78 include $(CLEAR_VARS)
     79 LOCAL_MODULE := libwifi-hal-fallback
     80 LOCAL_VENDOR_MODULE := true
     81 LOCAL_CFLAGS := $(wifi_hal_cflags)
     82 LOCAL_SRC_FILES := wifi_hal_fallback.cpp
     83 LOCAL_HEADER_LIBRARIES := libhardware_legacy_headers
     84 include $(BUILD_STATIC_LIBRARY)
     85 
     86 # Pick a vendor provided HAL implementation library.
     87 # ============================================================
     88 LIB_WIFI_HAL := libwifi-hal-fallback
     89 VENDOR_LOCAL_SHARED_LIBRARIES :=
     90 ifeq ($(BOARD_WLAN_DEVICE), bcmdhd)
     91   LIB_WIFI_HAL := libwifi-hal-bcm
     92 else ifeq ($(BOARD_WLAN_DEVICE), qcwcn)
     93   LIB_WIFI_HAL := libwifi-hal-qcom
     94   VENDOR_LOCAL_SHARED_LIBRARIES := libcld80211
     95 else 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
     99 else ifeq ($(BOARD_WLAN_DEVICE), MediaTek)
    100   # support MTK WIFI HAL
    101   LIB_WIFI_HAL := libwifi-hal-mt66xx
    102 else ifeq ($(BOARD_WLAN_DEVICE), rtl)
    103   # support Realtek WIFI HAL
    104   LIB_WIFI_HAL := libwifi-hal-rtl
    105 else ifeq ($(BOARD_WLAN_DEVICE), emulator)
    106   LIB_WIFI_HAL := libwifi-hal-emu
    107 endif
    108 
    109 # The WiFi HAL that you should be linking.
    110 # ============================================================
    111 include $(CLEAR_VARS)
    112 LOCAL_MODULE := libwifi-hal
    113 LOCAL_PROPRIETARY_MODULE := true
    114 LOCAL_CFLAGS := $(wifi_hal_cflags)
    115 LOCAL_C_INCLUDES := $(LOCAL_PATH)/include
    116 LOCAL_EXPORT_C_INCLUDE_DIRS := \
    117     $(LOCAL_PATH)/include
    118 LOCAL_EXPORT_HEADER_LIBRARY_HEADERS := libhardware_legacy_headers
    119 LOCAL_HEADER_LIBRARIES := libhardware_legacy_headers
    120 LOCAL_SHARED_LIBRARIES := \
    121     libbase \
    122     libcutils \
    123     liblog \
    124     libnl \
    125     libutils \
    126     $(VENDOR_LOCAL_SHARED_LIBRARIES)
    127 LOCAL_SRC_FILES := \
    128     driver_tool.cpp \
    129     hal_tool.cpp
    130 LOCAL_WHOLE_STATIC_LIBRARIES := $(LIB_WIFI_HAL) libwifi-hal-common
    131 include $(BUILD_SHARED_LIBRARY)
    132 
    133 # Test utilities (e.g. mock classes) for libwifi-hal
    134 # ============================================================
    135 include $(CLEAR_VARS)
    136 LOCAL_MODULE := libwifi-hal-test
    137 LOCAL_CFLAGS := $(wifi_hal_cflags)
    138 LOCAL_C_INCLUDES := \
    139     $(LOCAL_PATH)/include \
    140     $(LOCAL_PATH)/testlib/include
    141 LOCAL_STATIC_LIBRARIES := libgmock
    142 LOCAL_EXPORT_C_INCLUDE_DIRS := \
    143     $(LOCAL_PATH)/include \
    144     $(LOCAL_PATH)/testlib/include
    145 include $(BUILD_STATIC_LIBRARY)
    146