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