blob: 7f76ab14a171a28afa8c6accb0278be72453e132 [file] [log] [blame]
Joe Onorato5dcbc6c2017-08-29 15:13:58 -07001# Copyright (C) 2017 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)
16
Yao Chend54f9dd2017-10-17 17:37:48 +000017statsd_common_src := \
18 ../../core/java/android/os/IStatsCompanionService.aidl \
19 ../../core/java/android/os/IStatsManager.aidl \
Yao Chen9c1debe2018-02-19 14:39:19 -080020 src/stats_log_common.proto \
Yao Chend54f9dd2017-10-17 17:37:48 +000021 src/statsd_config.proto \
Yao Chen8a8d16c2018-02-08 14:50:40 -080022 src/FieldValue.cpp \
Yangster-mac20877162017-12-22 17:19:39 -080023 src/stats_log_util.cpp \
Yangster-mac932ecec2018-02-01 10:23:52 -080024 src/anomaly/AlarmMonitor.cpp \
25 src/anomaly/AlarmTracker.cpp \
Yangster-mace2cd6d52017-11-09 20:38:30 -080026 src/anomaly/AnomalyTracker.cpp \
Bookatz857aaa52017-12-19 15:29:06 -080027 src/anomaly/DurationAnomalyTracker.cpp \
Yangster-mac932ecec2018-02-01 10:23:52 -080028 src/anomaly/subscriber_util.cpp \
Yao Chend54f9dd2017-10-17 17:37:48 +000029 src/condition/CombinationConditionTracker.cpp \
30 src/condition/condition_util.cpp \
31 src/condition/SimpleConditionTracker.cpp \
Yao Chen729093d2017-10-16 10:33:26 -070032 src/condition/ConditionWizard.cpp \
Joe Onorato9fc9edf2017-10-15 20:08:52 -070033 src/config/ConfigKey.cpp \
34 src/config/ConfigListener.cpp \
35 src/config/ConfigManager.cpp \
Primiano Tuccie4d44912018-01-10 12:14:50 +000036 src/external/Perfetto.cpp \
Chenjie Yub038b702017-12-18 15:15:34 -080037 src/external/StatsPuller.cpp \
Chenjie Yu5305e1d2017-10-31 13:49:36 -070038 src/external/StatsCompanionServicePuller.cpp \
Chenjie Yuc8b7f222018-01-11 23:25:57 -080039 src/external/SubsystemSleepStatePuller.cpp \
Tej Singhbf972d92018-01-10 20:51:13 -080040 src/external/ResourceHealthManagerPuller.cpp \
Tej Singh40298312018-02-16 00:15:09 -080041 src/external/ResourceThermalManagerPuller.cpp \
Chenjie Yue33bc3b2017-11-06 17:56:44 -080042 src/external/CpuTimePerUidPuller.cpp \
43 src/external/CpuTimePerUidFreqPuller.cpp \
Chenjie Yue72252b2018-02-01 13:19:35 -080044 src/external/KernelUidCpuActiveTimeReader.cpp \
45 src/external/KernelUidCpuClusterTimeReader.cpp \
Chenjie Yu6736c892017-11-09 10:50:09 -080046 src/external/StatsPullerManagerImpl.cpp \
Chenjie Yu80f91122018-01-31 20:24:50 -080047 src/external/puller_util.cpp \
Joe Onoratoc4dfae52017-10-17 23:38:21 -070048 src/logd/LogEvent.cpp \
Joe Onorato9fc9edf2017-10-15 20:08:52 -070049 src/logd/LogListener.cpp \
50 src/logd/LogReader.cpp \
Yao Chend54f9dd2017-10-17 17:37:48 +000051 src/matchers/CombinationLogMatchingTracker.cpp \
52 src/matchers/matcher_util.cpp \
53 src/matchers/SimpleLogMatchingTracker.cpp \
Yao Chenb7041772017-10-20 16:59:25 -070054 src/metrics/MetricProducer.cpp \
Yao Chen5110bed2017-10-23 12:50:02 -070055 src/metrics/EventMetricProducer.cpp \
Yao Chend54f9dd2017-10-17 17:37:48 +000056 src/metrics/CountMetricProducer.cpp \
Yao Chen729093d2017-10-16 10:33:26 -070057 src/metrics/DurationMetricProducer.cpp \
Yao Chen5154a3792017-10-30 22:57:06 -070058 src/metrics/duration_helper/OringDurationTracker.cpp \
59 src/metrics/duration_helper/MaxDurationTracker.cpp \
Chenjie Yub3dda412017-10-24 13:41:59 -070060 src/metrics/ValueMetricProducer.cpp \
Yangster1d4d6862017-10-31 12:58:51 -070061 src/metrics/GaugeMetricProducer.cpp \
Yao Chend54f9dd2017-10-17 17:37:48 +000062 src/metrics/MetricsManager.cpp \
63 src/metrics/metrics_manager_util.cpp \
Joe Onorato9fc9edf2017-10-15 20:08:52 -070064 src/packages/UidMap.cpp \
Primiano Tuccie4d44912018-01-10 12:14:50 +000065 src/perfetto/perfetto_config.proto \
yro947fbce2017-11-15 22:50:23 -080066 src/storage/StorageManager.cpp \
Yao Chend54f9dd2017-10-17 17:37:48 +000067 src/StatsLogProcessor.cpp \
Yao Chend54f9dd2017-10-17 17:37:48 +000068 src/StatsService.cpp \
Yi Jinafb36062018-01-31 19:14:25 -080069 src/subscriber/IncidentdReporter.cpp \
Bookatzc6977972018-01-16 16:55:05 -080070 src/subscriber/SubscriberReporter.cpp \
Yao Chend5aa01b32017-12-19 16:46:36 -080071 src/HashableDimensionKey.cpp \
Yao Chenb3561512017-11-21 18:07:17 -080072 src/guardrail/MemoryLeakTrackUtil.cpp \
73 src/guardrail/StatsdStats.cpp
Yao Chenab273e22017-09-06 12:53:50 -070074
Yao Chend54f9dd2017-10-17 17:37:48 +000075statsd_common_c_includes := \
David Chen1481fe12017-10-16 13:16:34 -070076 $(LOCAL_PATH)/src \
77 $(LOCAL_PATH)/../../libs/services/include
Yao Chenab273e22017-09-06 12:53:50 -070078
Yao Chend54f9dd2017-10-17 17:37:48 +000079statsd_common_aidl_includes := \
80 $(LOCAL_PATH)/../../core/java
Yao Chenab273e22017-09-06 12:53:50 -070081
Joe Onorato62c220b2017-11-18 20:32:56 -080082statsd_common_static_libraries := \
Tej Singhbf972d92018-01-10 20:51:13 -080083 libhealthhalutils \
84 libplatformprotos \
Joe Onorato62c220b2017-11-18 20:32:56 -080085
Yao Chend54f9dd2017-10-17 17:37:48 +000086statsd_common_shared_libraries := \
87 libbase \
88 libbinder \
89 libcutils \
90 libincident \
91 liblog \
92 libselinux \
93 libutils \
94 libservices \
Chenjie Yu5305e1d2017-10-31 13:49:36 -070095 libprotoutil \
96 libstatslog \
97 libhardware \
98 libhardware_legacy \
99 libhidlbase \
100 libhidltransport \
101 libhwbinder \
Tej Singhbf972d92018-01-10 20:51:13 -0800102 android.hardware.health@2.0 \
Chenjie Yu5305e1d2017-10-31 13:49:36 -0700103 android.hardware.power@1.0 \
Yao Chen8d9989b2017-11-18 18:54:50 -0800104 android.hardware.power@1.1 \
Tej Singh40298312018-02-16 00:15:09 -0800105 android.hardware.thermal@1.0 \
Yao Chen8d9989b2017-11-18 18:54:50 -0800106 libmemunreachable
Yao Chenab273e22017-09-06 12:53:50 -0700107
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700108# =========
109# statsd
110# =========
111
112include $(CLEAR_VARS)
113
114LOCAL_MODULE := statsd
115
116LOCAL_SRC_FILES := \
Yao Chend54f9dd2017-10-17 17:37:48 +0000117 $(statsd_common_src) \
118 src/main.cpp
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700119
120LOCAL_CFLAGS += \
121 -Wall \
Yao Chen4c959cb2018-02-13 13:27:48 -0800122 -Wextra \
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700123 -Werror \
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700124 -Wno-unused-parameter
125
126ifeq (debug,)
127 LOCAL_CFLAGS += \
128 -g -O0
129else
130 # optimize for size (protobuf glop can get big)
131 LOCAL_CFLAGS += \
132 -Os
133endif
Yao Chend54f9dd2017-10-17 17:37:48 +0000134LOCAL_PROTOC_OPTIMIZE_TYPE := lite-static
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700135
David Chen1481fe12017-10-16 13:16:34 -0700136LOCAL_AIDL_INCLUDES := $(statsd_common_aidl_includes)
Yao Chend54f9dd2017-10-17 17:37:48 +0000137LOCAL_C_INCLUDES += $(statsd_common_c_includes)
Yao Chenab273e22017-09-06 12:53:50 -0700138
Joe Onorato62c220b2017-11-18 20:32:56 -0800139LOCAL_STATIC_LIBRARIES := $(statsd_common_static_libraries)
140
David Chend6896892017-10-25 11:49:03 -0700141LOCAL_SHARED_LIBRARIES := $(statsd_common_shared_libraries) \
142 libgtest_prod
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700143
144LOCAL_MODULE_CLASS := EXECUTABLES
145
yro9b979762018-01-29 16:23:13 -0800146LOCAL_INIT_RC := statsd.rc
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700147
148include $(BUILD_EXECUTABLE)
149
Yao Chend54f9dd2017-10-17 17:37:48 +0000150
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700151# ==============
152# statsd_test
153# ==============
154
155include $(CLEAR_VARS)
156
157LOCAL_MODULE := statsd_test
158LOCAL_COMPATIBILITY_SUITE := device-tests
159LOCAL_MODULE_TAGS := tests
160
David Chen1481fe12017-10-16 13:16:34 -0700161LOCAL_AIDL_INCLUDES := $(statsd_common_aidl_includes)
Yao Chend54f9dd2017-10-17 17:37:48 +0000162LOCAL_C_INCLUDES += $(statsd_common_c_includes)
David Chendd896942017-09-26 11:44:40 -0700163
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700164LOCAL_CFLAGS += \
165 -Wall \
166 -Werror \
167 -Wno-missing-field-initializers \
168 -Wno-unused-variable \
169 -Wno-unused-function \
170 -Wno-unused-parameter
171
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700172LOCAL_SRC_FILES := \
Yao Chend54f9dd2017-10-17 17:37:48 +0000173 $(statsd_common_src) \
Yao Chen9c1debe2018-02-19 14:39:19 -0800174 src/atom_field_options.proto \
175 src/atoms.proto \
176 src/stats_log.proto \
Yangster-mac932ecec2018-02-01 10:23:52 -0800177 tests/AlarmMonitor_test.cpp \
178 tests/anomaly/AlarmTracker_test.cpp \
Yang Lu3eba6212017-10-25 19:54:45 -0700179 tests/anomaly/AnomalyTracker_test.cpp \
Joe Onorato9fc9edf2017-10-15 20:08:52 -0700180 tests/ConfigManager_test.cpp \
Chenjie Yu80f91122018-01-31 20:24:50 -0800181 tests/external/puller_util_test.cpp \
Yao Chend54f9dd2017-10-17 17:37:48 +0000182 tests/indexed_priority_queue_test.cpp \
Joe Onorato9fc9edf2017-10-15 20:08:52 -0700183 tests/LogEntryMatcher_test.cpp \
Yao Chend54f9dd2017-10-17 17:37:48 +0000184 tests/LogReader_test.cpp \
Yangster-mac20877162017-12-22 17:19:39 -0800185 tests/LogEvent_test.cpp \
Yao Chend54f9dd2017-10-17 17:37:48 +0000186 tests/MetricsManager_test.cpp \
David Chend9269e22017-12-05 13:43:51 -0800187 tests/StatsLogProcessor_test.cpp \
Yao Chen5154a3792017-10-30 22:57:06 -0700188 tests/UidMap_test.cpp \
Yao Chen8a8d16c2018-02-08 14:50:40 -0800189 tests/FieldValue_test.cpp \
Yao Chen967b2052017-11-07 16:36:43 -0800190 tests/condition/CombinationConditionTracker_test.cpp \
191 tests/condition/SimpleConditionTracker_test.cpp \
Yao Chen93fe3a32017-11-02 13:52:59 -0700192 tests/metrics/OringDurationTracker_test.cpp \
193 tests/metrics/MaxDurationTracker_test.cpp \
194 tests/metrics/CountMetricProducer_test.cpp \
Yangsterf2bee6f2017-11-29 12:01:05 -0800195 tests/metrics/DurationMetricProducer_test.cpp \
Chenjie Yu6736c892017-11-09 10:50:09 -0800196 tests/metrics/EventMetricProducer_test.cpp \
Yao Chenb3561512017-11-21 18:07:17 -0800197 tests/metrics/ValueMetricProducer_test.cpp \
Chenjie Yud9dfda72017-12-11 17:41:20 -0800198 tests/metrics/GaugeMetricProducer_test.cpp \
Yao Chend5aa01b32017-12-19 16:46:36 -0800199 tests/guardrail/StatsdStats_test.cpp \
Yangster-mac20877162017-12-22 17:19:39 -0800200 tests/metrics/metrics_test_helper.cpp \
201 tests/statsd_test_util.cpp \
202 tests/e2e/WakelockDuration_e2e_test.cpp \
Yangster-macb5bc7412018-01-06 23:17:45 -0800203 tests/e2e/MetricConditionLink_e2e_test.cpp \
Yangster-mac87718e22018-01-11 16:16:26 -0800204 tests/e2e/Attribution_e2e_test.cpp \
Yangster-mac93694462018-01-22 20:49:31 -0800205 tests/e2e/GaugeMetric_e2e_test.cpp \
206 tests/e2e/DimensionInCondition_e2e_test.cpp
Joe Onorato9fc9edf2017-10-15 20:08:52 -0700207
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700208LOCAL_STATIC_LIBRARIES := \
Joe Onorato62c220b2017-11-18 20:32:56 -0800209 $(statsd_common_static_libraries) \
Yao Chend54f9dd2017-10-17 17:37:48 +0000210 libgmock
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700211
Yao Chen9c1debe2018-02-19 14:39:19 -0800212LOCAL_PROTOC_OPTIMIZE_TYPE := full
Yao Chend54f9dd2017-10-17 17:37:48 +0000213
Yao Chen9c1debe2018-02-19 14:39:19 -0800214LOCAL_PROTOC_FLAGS := \
215 -Iexternal/protobuf/src
216
217LOCAL_SHARED_LIBRARIES := $(statsd_common_shared_libraries) \
218 libprotobuf-cpp-full
Yao Chend54f9dd2017-10-17 17:37:48 +0000219
Joe Onorato62c220b2017-11-18 20:32:56 -0800220include $(BUILD_NATIVE_TEST)
221
Yao Chen459dee62018-01-10 16:47:05 -0800222##############################
223# stats proto static java lib
224##############################
225
226include $(CLEAR_VARS)
227LOCAL_MODULE := statsdprotolite
228
229LOCAL_SRC_FILES := \
230 src/stats_log.proto \
Yao Chen9c1debe2018-02-19 14:39:19 -0800231 src/stats_log_common.proto \
Yao Chen459dee62018-01-10 16:47:05 -0800232 src/statsd_config.proto \
Primiano Tuccie4d44912018-01-10 12:14:50 +0000233 src/perfetto/perfetto_config.proto \
Yao Chen459dee62018-01-10 16:47:05 -0800234 src/atoms.proto
235
236LOCAL_PROTOC_OPTIMIZE_TYPE := lite
237
238LOCAL_STATIC_JAVA_LIBRARIES := \
239 platformprotoslite
240
Yao Chen9c1debe2018-02-19 14:39:19 -0800241LOCAL_PROTOC_FLAGS := \
242 -Iexternal/protobuf/src
243
Yao Chen459dee62018-01-10 16:47:05 -0800244include $(BUILD_STATIC_JAVA_LIBRARY)
Joe Onorato62c220b2017-11-18 20:32:56 -0800245
Yao Chen48d75182018-01-23 09:40:48 -0800246##############################
247# statsd micro benchmark
248##############################
249
250include $(CLEAR_VARS)
251LOCAL_MODULE := statsd_benchmark
252
253LOCAL_SRC_FILES := $(statsd_common_src) \
254 benchmark/main.cpp \
255 benchmark/hello_world_benchmark.cpp \
Tej Singh34106342018-02-02 17:08:05 -0800256 benchmark/log_event_benchmark.cpp \
Yangster-macf5204922018-02-23 13:08:03 -0800257 benchmark/stats_write_benchmark.cpp \
258 benchmark/filter_value_benchmark.cpp
Yao Chen48d75182018-01-23 09:40:48 -0800259
260LOCAL_C_INCLUDES := $(statsd_common_c_includes)
261
262LOCAL_CFLAGS := -Wall \
263 -Werror \
264 -Wno-unused-parameter \
265 -Wno-unused-variable \
266 -Wno-unused-function \
267
268# Bug: http://b/29823425 Disable -Wvarargs for Clang update to r271374
269LOCAL_CFLAGS += -Wno-varargs
270
271LOCAL_AIDL_INCLUDES := $(statsd_common_aidl_includes)
272
273LOCAL_STATIC_LIBRARIES := \
274 $(statsd_common_static_libraries)
275
276LOCAL_SHARED_LIBRARIES := $(statsd_common_shared_libraries) \
Tej Singh34106342018-02-02 17:08:05 -0800277 libgtest_prod \
278 libstatslog
Yao Chen48d75182018-01-23 09:40:48 -0800279
Yao Chen48d75182018-01-23 09:40:48 -0800280LOCAL_MODULE_TAGS := eng tests
281
282include $(BUILD_NATIVE_BENCHMARK)
283
284
Yao Chend54f9dd2017-10-17 17:37:48 +0000285statsd_common_src:=
286statsd_common_aidl_includes:=
287statsd_common_c_includes:=
Joe Onorato62c220b2017-11-18 20:32:56 -0800288statsd_common_static_libraries:=
289statsd_common_shared_libraries:=
Joe Onorato5dcbc6c2017-08-29 15:13:58 -0700290
Yao Chen1ff4f432017-11-16 17:01:40 -0800291
Yao Chen459dee62018-01-10 16:47:05 -0800292include $(call all-makefiles-under,$(LOCAL_PATH))