Home | History | Annotate | Download | only in libsensors_iio
      1 # Copyright (C) 2014 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 # Modified 2011 by InvenSense, Inc
     15 
     16 LOCAL_PATH := $(call my-dir)
     17 
     18 # InvenSense fragment of the HAL
     19 include $(CLEAR_VARS)
     20 
     21 LOCAL_MODULE := libinvensense_hal
     22 LOCAL_MODULE_TAGS := optional
     23 LOCAL_MODULE_OWNER := invensense
     24 
     25 LOCAL_CFLAGS := -DLOG_TAG=\"Sensors\" -Werror -Wall
     26 
     27 # ANDROID version check
     28 $(info YD>>PLATFORM_VERSION=$(PLATFORM_VERSION))
     29 MAJOR_VERSION :=$(shell echo $(PLATFORM_VERSION) | cut -f1 -d.)
     30 MINOR_VERSION :=$(shell echo $(PLATFORM_VERSION) | cut -f2 -d.)
     31 VERSION_KK :=$(shell test $(MAJOR_VERSION) -eq 4 -a $(MINOR_VERSION) -gt 3 && echo true)
     32 VERSION_L  :=$(shell test $(MAJOR_VERSION) -eq 5 -a $(MINOR_VERSION) -eq 0 && echo true)
     33 
     34 #
     35 # Invensense uses the OS version to determine whether to include batch support,
     36 # but implemented it in a way that requires modifying the code each time we move
     37 # to a newer OS version.  I will fix this problem in a subsequent change, but for now,
     38 # hardcode to saying we're ANDROID_L so we can isolate this checkin to being
     39 # only changes coming from Invensense.
     40 #
     41 # Setting ANDROID_L to true is perfectly safe even on ANDROID_M because the code
     42 # just requires "ANDROID_L or newer"
     43 #
     44 VERSION_L :=true
     45 
     46 $(info YD>>ANDRIOD VERSION=$(MAJOR_VERSION).$(MINOR_VERSION))
     47 $(info YD>>VERSION_L=$(VERSION_L), VERSION_KK=$(VERSION_KK))
     48 #ANDROID version check END
     49 
     50 ifeq ($(VERSION_KK),true)
     51 LOCAL_CFLAGS += -DANDROID_KITKAT
     52 else
     53 LOCAL_CFLAGS += -DANDROID_LOLLIPOP
     54 endif
     55 
     56 ifneq (,$(filter $(TARGET_BUILD_VARIANT),eng userdebug user))
     57 ifneq ($(COMPILE_INVENSENSE_COMPASS_CAL),0)
     58 LOCAL_CFLAGS += -DINVENSENSE_COMPASS_CAL
     59 endif
     60 ifeq ($(COMPILE_THIRD_PARTY_ACCEL),1)
     61 LOCAL_CFLAGS += -DTHIRD_PARTY_ACCEL
     62 endif
     63 else # release builds, default
     64 LOCAL_CFLAGS += -DINVENSENSE_COMPASS_CAL
     65 endif
     66 
     67 LOCAL_SRC_FILES += SensorBase.cpp
     68 LOCAL_SRC_FILES += MPLSensor.cpp
     69 LOCAL_SRC_FILES += MPLSupport.cpp
     70 LOCAL_SRC_FILES += InputEventReader.cpp
     71 LOCAL_SRC_FILES += PressureSensor.IIO.secondary.cpp
     72 
     73 ifneq (,$(filter $(TARGET_BUILD_VARIANT),eng userdebug user))
     74 ifeq ($(COMPILE_INVENSENSE_COMPASS_CAL),0)
     75 LOCAL_SRC_FILES += AkmSensor.cpp
     76 LOCAL_SRC_FILES += CompassSensor.AKM.cpp
     77 else ifeq ($(COMPILE_INVENSENSE_SENSOR_ON_PRIMARY_BUS), 1)
     78 LOCAL_SRC_FILES += CompassSensor.IIO.primary.cpp
     79 LOCAL_CFLAGS += -DSENSOR_ON_PRIMARY_BUS
     80 else
     81 LOCAL_SRC_FILES += CompassSensor.IIO.9150.cpp
     82 endif
     83 else # release builds, default
     84 LOCAL_SRC_FILES += CompassSensor.IIO.9150.cpp
     85 endif # eng, userdebug & user builds
     86 
     87 LOCAL_C_INCLUDES += $(LOCAL_PATH)/software/core/mllite
     88 LOCAL_C_INCLUDES += $(LOCAL_PATH)/software/core/mllite/linux
     89 LOCAL_C_INCLUDES += $(LOCAL_PATH)/software/core/driver/include
     90 LOCAL_C_INCLUDES += $(LOCAL_PATH)/software/core/driver/include/linux
     91 
     92 LOCAL_SHARED_LIBRARIES := liblog
     93 LOCAL_SHARED_LIBRARIES += libcutils
     94 LOCAL_SHARED_LIBRARIES += libutils
     95 LOCAL_SHARED_LIBRARIES += libdl
     96 LOCAL_SHARED_LIBRARIES += libmllite
     97 
     98 # Additions for SysPed
     99 LOCAL_SHARED_LIBRARIES += libmplmpu
    100 LOCAL_C_INCLUDES += $(LOCAL_PATH)/software/core/mpl
    101 LOCAL_CPPFLAGS += -DLINUX=1
    102 
    103 LOCAL_SHARED_LIBRARIES += libmllite
    104 LOCAL_C_INCLUDES += $(LOCAL_PATH)/software/core/mllite
    105 LOCAL_CPPFLAGS += -DLINUX=1
    106 
    107 include $(BUILD_SHARED_LIBRARY)
    108 
    109 # Build a temporary HAL that links the InvenSense .so
    110 include $(CLEAR_VARS)
    111 ifeq ($(filter eng, userdebug, user, $(TARGET_BUILD_VARIANT)),)
    112 ifneq ($(filter manta full_grouper tilapia, $(TARGET_PRODUCT)),)
    113 LOCAL_MODULE := sensors.full_grouper
    114 LOCAL_MODULE_OWNER := invensense
    115 else
    116 ifneq ($(filter aosp_hammerhead, $(TARGET_PRODUCT)),)
    117 LOCAL_MODULE := sensors.hammerhead
    118 LOCAL_MODULE_OWNER := invensense
    119 else
    120 ifneq ($(filter aosp_flounder, $(TARGET_PRODUCT)),)
    121 LOCAL_MODULE := sensors.flounder
    122 LOCAL_MODULE_OWNER := invensense
    123 endif
    124 endif
    125 ifneq ($(filter dory guppy, $(TARGET_DEVICE)),)
    126 LOCAL_MODULE := sensors.invensense
    127 LOCAL_MODULE_OWNER := invensense
    128 endif
    129 endif
    130 else    # eng, user, & userdebug builds
    131 LOCAL_MODULE := sensors.invensense
    132 endif   # eng, user & userdebug builds
    133 $(info YD>>LOCAL_MODULE=$(LOCAL_MODULE))
    134 
    135 ifdef TARGET_2ND_ARCH
    136 LOCAL_MODULE_RELATIVE_PATH := hw
    137 else
    138 LOCAL_MODULE_PATH := $(TARGET_OUT_SHARED_LIBRARIES)/hw
    139 endif
    140 
    141 LOCAL_SHARED_LIBRARIES += libmplmpu
    142 LOCAL_C_INCLUDES += $(LOCAL_PATH)/software/core/mllite
    143 LOCAL_C_INCLUDES += $(LOCAL_PATH)/software/core/mllite/linux
    144 LOCAL_C_INCLUDES += $(LOCAL_PATH)/software/core/mpl
    145 LOCAL_C_INCLUDES += $(LOCAL_PATH)/software/core/driver/include
    146 LOCAL_C_INCLUDES += $(LOCAL_PATH)/software/core/driver/include/linux
    147 
    148 LOCAL_MODULE_TAGS := optional
    149 LOCAL_CFLAGS := -DLOG_TAG=\"Sensors\" -Werror -Wall
    150 
    151 ifeq ($(VERSION_KK),true)
    152 LOCAL_CFLAGS += -DANDROID_KITKAT
    153 else
    154 LOCAL_CFLAGS += -DANDROID_LOLLIPOP
    155 endif
    156 
    157 ifneq (,$(filter $(TARGET_BUILD_VARIANT),eng userdebug user))
    158 ifneq ($(COMPILE_INVENSENSE_COMPASS_CAL),0)
    159 LOCAL_CFLAGS += -DINVENSENSE_COMPASS_CAL
    160 endif
    161 ifeq ($(COMPILE_THIRD_PARTY_ACCEL),1)
    162 LOCAL_CFLAGS += -DTHIRD_PARTY_ACCEL
    163 endif
    164 ifeq ($(COMPILE_INVENSENSE_SENSOR_ON_PRIMARY_BUS), 1)
    165 LOCAL_SRC_FILES += CompassSensor.IIO.primary.cpp
    166 LOCAL_CFLAGS += -DSENSOR_ON_PRIMARY_BUS
    167 else
    168 LOCAL_SRC_FILES += CompassSensor.IIO.9150.cpp
    169 endif
    170 else # release builds, default
    171 LOCAL_SRC_FILES += CompassSensor.IIO.9150.cpp
    172 endif # eng, userdebug & user
    173 
    174 ifeq (,$(filter $(TARGET_BUILD_VARIANT),eng userdebug user))
    175 ifneq ($(filter manta grouper tilapia, $(TARGET_DEVICE)),)
    176 # it's already defined in some other Makefile for production builds
    177 #LOCAL_SRC_FILES := sensors_mpl.cpp
    178 else
    179 LOCAL_SRC_FILES := sensors_mpl.cpp
    180 endif
    181 else    # eng, userdebug & user builds
    182 LOCAL_SRC_FILES := sensors_mpl.cpp
    183 endif   # eng, userdebug & user builds
    184 
    185 LOCAL_SHARED_LIBRARIES := libinvensense_hal
    186 LOCAL_SHARED_LIBRARIES += libcutils
    187 LOCAL_SHARED_LIBRARIES += libutils
    188 LOCAL_SHARED_LIBRARIES += libdl
    189 LOCAL_SHARED_LIBRARIES += liblog
    190 LOCAL_SHARED_LIBRARIES += libmllite
    191 LOCAL_SHARED_LIBRARIES += libhardware_legacy
    192 $(info YD>>LOCAL_MODULE=$(LOCAL_MODULE), LOCAL_SRC_FILES=$(LOCAL_SRC_FILES), LOCAL_SHARED_LIBRARIES=$(LOCAL_SHARED_LIBRARIES))
    193 include $(BUILD_SHARED_LIBRARY)
    194 
    195 include $(CLEAR_VARS)
    196 LOCAL_MODULE := libmplmpu
    197 LOCAL_SRC_FILES := libmplmpu.so
    198 LOCAL_MODULE_TAGS := optional
    199 LOCAL_MODULE_OWNER := invensense
    200 LOCAL_MODULE_SUFFIX := .so
    201 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
    202 LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
    203 OVERRIDE_BUILT_MODULE_PATH := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)
    204 LOCAL_STRIP_MODULE := true
    205 include $(BUILD_PREBUILT)
    206 
    207 include $(CLEAR_VARS)
    208 LOCAL_MODULE := libmllite
    209 LOCAL_SRC_FILES := libmllite.so
    210 LOCAL_MODULE_TAGS := optional
    211 LOCAL_MODULE_OWNER := invensense
    212 LOCAL_MODULE_SUFFIX := .so
    213 LOCAL_MODULE_CLASS := SHARED_LIBRARIES
    214 LOCAL_MODULE_PATH := $(TARGET_OUT)/lib
    215 OVERRIDE_BUILT_MODULE_PATH := $(TARGET_OUT_INTERMEDIATE_LIBRARIES)
    216 LOCAL_STRIP_MODULE := true
    217 include $(BUILD_PREBUILT)
    218 
    219