1# 2# Copyright 2019 The Android Open Source Project 3# 4# Licensed under the Apache License, Version 2.0 (the "License"); 5# you may not use this file except in compliance with the License. 6# You may obtain a copy of the License at 7# 8# http://www.apache.org/licenses/LICENSE-2.0 9# 10# Unless required by applicable law or agreed to in writing, software 11# distributed under the License is distributed on an "AS IS" BASIS, 12# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13# See the License for the specific language governing permissions and 14# limitations under the License. 15# 16 17LOCAL_PATH := $(call my-dir) 18 19# Don't build the daemon for targets that don't contain a vendor image as 20# libsdsprpc and libadsprpc are provided by vendor code 21ifeq ($(BUILDING_VENDOR_IMAGE),true) 22 23ifeq ($(CHRE_DAEMON_ENABLED),true) 24 25include $(CLEAR_VARS) 26 27# CHRE AP-side daemon 28# NOTE: This can't be converted to a blueprint file until libsdsprpc / 29# libadsprpc is converted as blueprint targets can't depend on targets exposed 30# by makefiles 31LOCAL_MODULE := chre 32LOCAL_LICENSE_KINDS := SPDX-license-identifier-Apache-2.0 SPDX-license-identifier-BSD 33LOCAL_LICENSE_CONDITIONS := notice 34LOCAL_NOTICE_FILE := $(LOCAL_PATH)/NOTICE 35LOCAL_MODULE_OWNER := google 36LOCAL_MODULE_TAGS := optional 37LOCAL_VENDOR_MODULE := true 38LOCAL_INIT_RC := chre_daemon.rc 39 40LOCAL_CPP_EXTENSION := .cc 41LOCAL_CFLAGS += -Wall -Werror -Wextra 42LOCAL_CFLAGS += -DCHRE_DAEMON_METRIC_ENABLED 43 44LOCAL_TIDY_CHECKS := -google-runtime-int 45 46# Enable the LPMA feature for devices that support audio 47ifeq ($(CHRE_DAEMON_LPMA_ENABLED),true) 48LOCAL_CFLAGS += -DCHRE_DAEMON_LPMA_ENABLED 49endif 50 51ifeq ($(CHRE_DAEMON_LOAD_INTO_SENSORSPD),true) 52LOCAL_CFLAGS += -DCHRE_DAEMON_LOAD_INTO_SENSORSPD 53endif 54 55LOCAL_SRC_FILES := \ 56 host/common/daemon_base.cc \ 57 host/common/fragmented_load_transaction.cc \ 58 host/common/host_protocol_host.cc \ 59 host/common/log_message_parser.cc \ 60 host/common/socket_server.cc \ 61 host/common/st_hal_lpma_handler.cc \ 62 host/msm/daemon/fastrpc_daemon.cc \ 63 host/msm/daemon/main.cc \ 64 host/msm/daemon/generated/chre_slpi_stub.c \ 65 platform/shared/host_protocol_common.cc 66 67LOCAL_C_INCLUDES := \ 68 external/fastrpc/inc \ 69 system/chre/external/flatbuffers/include \ 70 system/chre/host/common/include \ 71 system/chre/host/msm/daemon \ 72 system/chre/platform/shared/include \ 73 system/chre/platform/slpi/include \ 74 system/chre/util/include \ 75 system/libbase/include \ 76 system/core/libcutils/include \ 77 system/logging/liblog/include \ 78 system/core/libutils/include \ 79 80LOCAL_SHARED_LIBRARIES := \ 81 libjsoncpp \ 82 libutils \ 83 libcutils \ 84 liblog \ 85 libhidlbase \ 86 libbase \ 87 android.hardware.soundtrigger@2.0 \ 88 libpower \ 89 libprotobuf-cpp-lite \ 90 pixelatoms-cpp \ 91 android.frameworks.stats-V1-ndk \ 92 libbinder_ndk 93 94LOCAL_CPPFLAGS += -std=c++20 95LOCAL_CFLAGS += -Wno-sign-compare 96LOCAL_CFLAGS += -Wno-c++11-narrowing 97LOCAL_CFLAGS += -Wno-deprecated-volatile 98PIGWEED_DIR = external/pigweed 99PIGWEED_DIR_RELPATH = ../../$(PIGWEED_DIR) 100LOCAL_CFLAGS += -I$(PIGWEED_DIR)/pw_polyfill/public 101LOCAL_CFLAGS += -I$(PIGWEED_DIR)/pw_polyfill/public_overrides 102LOCAL_CFLAGS += -I$(PIGWEED_DIR)/pw_polyfill/standard_library_public 103LOCAL_CFLAGS += -I$(PIGWEED_DIR)/pw_preprocessor/public 104LOCAL_CFLAGS += -I$(PIGWEED_DIR)/pw_tokenizer/public 105LOCAL_CFLAGS += -I$(PIGWEED_DIR)/pw_varint/public 106LOCAL_CFLAGS += -I$(PIGWEED_DIR)/pw_span/public 107 108LOCAL_SRC_FILES += $(PIGWEED_DIR_RELPATH)/pw_tokenizer/detokenize.cc 109LOCAL_SRC_FILES += $(PIGWEED_DIR_RELPATH)/pw_tokenizer/decode.cc 110LOCAL_SRC_FILES += $(PIGWEED_DIR_RELPATH)/pw_varint/varint.cc 111 112ifeq ($(CHRE_DAEMON_USE_SDSPRPC),true) 113LOCAL_SHARED_LIBRARIES += libsdsprpc 114else 115LOCAL_SHARED_LIBRARIES += libadsprpc 116endif 117 118include $(BUILD_EXECUTABLE) 119 120endif 121endif 122