Android.mk revision aa5b2010152c4042786b558a44a89d25229d8962
1# 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
17statsd_common_src := \
18    ../../core/java/android/os/IStatsCompanionService.aidl \
19    ../../core/java/android/os/IStatsManager.aidl \
20    src/statsd_config.proto \
21    src/FieldValue.cpp \
22    src/stats_log_util.cpp \
23    src/anomaly/AlarmMonitor.cpp \
24    src/anomaly/AlarmTracker.cpp \
25    src/anomaly/AnomalyTracker.cpp \
26    src/anomaly/DurationAnomalyTracker.cpp \
27    src/anomaly/subscriber_util.cpp \
28    src/condition/CombinationConditionTracker.cpp \
29    src/condition/condition_util.cpp \
30    src/condition/SimpleConditionTracker.cpp \
31    src/condition/ConditionWizard.cpp \
32    src/condition/StateTracker.cpp \
33    src/config/ConfigKey.cpp \
34    src/config/ConfigListener.cpp \
35    src/config/ConfigManager.cpp \
36    src/external/Perfetto.cpp \
37    src/external/StatsPuller.cpp \
38    src/external/StatsCompanionServicePuller.cpp \
39    src/external/SubsystemSleepStatePuller.cpp \
40    src/external/ResourceHealthManagerPuller.cpp \
41    src/external/ResourceThermalManagerPuller.cpp \
42    src/external/StatsPullerManagerImpl.cpp \
43    src/external/puller_util.cpp \
44    src/logd/LogEvent.cpp \
45    src/logd/LogListener.cpp \
46    src/logd/LogReader.cpp \
47    src/matchers/CombinationLogMatchingTracker.cpp \
48    src/matchers/matcher_util.cpp \
49    src/matchers/SimpleLogMatchingTracker.cpp \
50    src/metrics/MetricProducer.cpp \
51    src/metrics/EventMetricProducer.cpp \
52    src/metrics/CountMetricProducer.cpp \
53    src/metrics/DurationMetricProducer.cpp \
54    src/metrics/duration_helper/OringDurationTracker.cpp \
55    src/metrics/duration_helper/MaxDurationTracker.cpp \
56    src/metrics/ValueMetricProducer.cpp \
57    src/metrics/GaugeMetricProducer.cpp \
58    src/metrics/MetricsManager.cpp \
59    src/metrics/metrics_manager_util.cpp \
60    src/packages/UidMap.cpp \
61    src/perfetto/perfetto_config.proto \
62    src/storage/StorageManager.cpp \
63    src/StatsLogProcessor.cpp \
64    src/StatsService.cpp \
65    src/statscompanion_util.cpp \
66    src/subscriber/IncidentdReporter.cpp \
67    src/subscriber/SubscriberReporter.cpp \
68    src/HashableDimensionKey.cpp \
69    src/guardrail/StatsdStats.cpp
70
71statsd_common_c_includes := \
72    $(LOCAL_PATH)/src \
73    $(LOCAL_PATH)/../../libs/services/include
74
75statsd_common_aidl_includes := \
76    $(LOCAL_PATH)/../../core/java
77
78statsd_common_static_libraries := \
79    libhealthhalutils \
80    libplatformprotos \
81
82statsd_common_shared_libraries := \
83    libbase \
84    libbinder \
85    libincident \
86    liblog \
87    libutils \
88    libservices \
89    libprotoutil \
90    libstatslog \
91    libhardware \
92    libhardware_legacy \
93    libhidlbase \
94    libhidltransport \
95    libhwbinder \
96    android.hardware.health@2.0 \
97    android.hardware.power@1.0 \
98    android.hardware.power@1.1 \
99    android.hardware.thermal@1.0
100
101# =========
102# statsd
103# =========
104
105include $(CLEAR_VARS)
106
107LOCAL_MODULE := statsd
108
109LOCAL_SRC_FILES := \
110    $(statsd_common_src) \
111    src/main.cpp
112
113LOCAL_CFLAGS += \
114    -Wall \
115    -Wextra \
116    -Werror \
117    -Wno-unused-parameter
118
119ifeq (debug,)
120    LOCAL_CFLAGS += \
121            -g -O0
122else
123    # optimize for size (protobuf glop can get big)
124    LOCAL_CFLAGS += \
125            -Os
126endif
127LOCAL_PROTOC_OPTIMIZE_TYPE := lite
128
129LOCAL_AIDL_INCLUDES := $(statsd_common_aidl_includes)
130LOCAL_C_INCLUDES += $(statsd_common_c_includes)
131
132LOCAL_STATIC_LIBRARIES := $(statsd_common_static_libraries)
133
134LOCAL_SHARED_LIBRARIES := $(statsd_common_shared_libraries) \
135    libgtest_prod
136
137LOCAL_MODULE_CLASS := EXECUTABLES
138
139LOCAL_INIT_RC := statsd.rc
140
141include $(BUILD_EXECUTABLE)
142
143
144# ==============
145# statsd_test
146# ==============
147
148include $(CLEAR_VARS)
149
150LOCAL_MODULE := statsd_test
151LOCAL_COMPATIBILITY_SUITE := device-tests
152LOCAL_MODULE_TAGS := tests
153
154LOCAL_AIDL_INCLUDES := $(statsd_common_aidl_includes)
155LOCAL_C_INCLUDES += $(statsd_common_c_includes)
156
157LOCAL_CFLAGS += \
158    -Wall \
159    -Werror \
160    -Wno-missing-field-initializers \
161    -Wno-unused-variable \
162    -Wno-unused-function \
163    -Wno-unused-parameter
164
165LOCAL_SRC_FILES := \
166    $(statsd_common_src) \
167    src/atom_field_options.proto \
168    src/atoms.proto \
169    src/stats_log.proto \
170    tests/AlarmMonitor_test.cpp \
171    tests/anomaly/AlarmTracker_test.cpp \
172    tests/anomaly/AnomalyTracker_test.cpp \
173    tests/ConfigManager_test.cpp \
174    tests/external/puller_util_test.cpp \
175    tests/indexed_priority_queue_test.cpp \
176    tests/LogEntryMatcher_test.cpp \
177    tests/LogReader_test.cpp \
178    tests/LogEvent_test.cpp \
179    tests/MetricsManager_test.cpp \
180    tests/StatsLogProcessor_test.cpp \
181    tests/StatsService_test.cpp \
182    tests/UidMap_test.cpp \
183    tests/FieldValue_test.cpp \
184    tests/condition/CombinationConditionTracker_test.cpp \
185    tests/condition/SimpleConditionTracker_test.cpp \
186    tests/condition/StateTracker_test.cpp \
187    tests/metrics/OringDurationTracker_test.cpp \
188    tests/metrics/MaxDurationTracker_test.cpp \
189    tests/metrics/CountMetricProducer_test.cpp \
190    tests/metrics/DurationMetricProducer_test.cpp \
191    tests/metrics/EventMetricProducer_test.cpp \
192    tests/metrics/ValueMetricProducer_test.cpp \
193    tests/metrics/GaugeMetricProducer_test.cpp \
194    tests/guardrail/StatsdStats_test.cpp \
195    tests/metrics/metrics_test_helper.cpp \
196    tests/statsd_test_util.cpp \
197    tests/e2e/WakelockDuration_e2e_test.cpp \
198    tests/e2e/MetricConditionLink_e2e_test.cpp \
199    tests/e2e/Attribution_e2e_test.cpp \
200    tests/e2e/GaugeMetric_e2e_push_test.cpp \
201    tests/e2e/DimensionInCondition_e2e_combination_AND_cond_test.cpp \
202    tests/e2e/DimensionInCondition_e2e_combination_OR_cond_test.cpp \
203    tests/e2e/DimensionInCondition_e2e_simple_cond_test.cpp
204
205LOCAL_STATIC_LIBRARIES := \
206    $(statsd_common_static_libraries) \
207    libgmock
208
209LOCAL_PROTOC_OPTIMIZE_TYPE := full
210
211LOCAL_PROTOC_FLAGS := \
212    -Iexternal/protobuf/src
213
214LOCAL_SHARED_LIBRARIES := $(statsd_common_shared_libraries) \
215                        libprotobuf-cpp-full
216
217include $(BUILD_NATIVE_TEST)
218
219##############################
220# stats proto static java lib
221##############################
222
223include $(CLEAR_VARS)
224LOCAL_MODULE := statsdprotolite
225
226LOCAL_SRC_FILES := \
227    src/stats_log.proto \
228    src/statsd_config.proto \
229    src/perfetto/perfetto_config.proto \
230    src/atoms.proto
231
232LOCAL_PROTOC_OPTIMIZE_TYPE := lite
233
234LOCAL_STATIC_JAVA_LIBRARIES := \
235    platformprotoslite
236
237LOCAL_PROTOC_FLAGS := \
238    -Iexternal/protobuf/src
239
240include $(BUILD_STATIC_JAVA_LIBRARY)
241
242##############################
243# statsd micro benchmark
244##############################
245
246include $(CLEAR_VARS)
247LOCAL_MODULE := statsd_benchmark
248
249LOCAL_SRC_FILES := $(statsd_common_src) \
250                    src/atom_field_options.proto \
251                    src/atoms.proto \
252                    src/stats_log.proto \
253                   benchmark/main.cpp \
254                   benchmark/hello_world_benchmark.cpp \
255                   benchmark/log_event_benchmark.cpp \
256                   benchmark/stats_write_benchmark.cpp \
257                   benchmark/filter_value_benchmark.cpp \
258                   benchmark/get_dimensions_for_condition_benchmark.cpp \
259                   benchmark/metric_util.cpp \
260                   benchmark/duration_metric_benchmark.cpp
261
262LOCAL_STATIC_LIBRARIES := \
263    $(statsd_common_static_libraries)
264
265LOCAL_PROTOC_OPTIMIZE_TYPE := full
266
267LOCAL_PROTOC_FLAGS := \
268    -Iexternal/protobuf/src
269
270LOCAL_SHARED_LIBRARIES := $(statsd_common_shared_libraries) \
271                        libprotobuf-cpp-full
272
273
274LOCAL_STATIC_JAVA_LIBRARIES := \
275    platformprotoslite
276
277LOCAL_C_INCLUDES := $(statsd_common_c_includes)
278
279LOCAL_CFLAGS := -Wall \
280                -Werror \
281                -Wno-unused-parameter \
282                -Wno-unused-variable \
283                -Wno-unused-function \
284
285# Bug: http://b/29823425 Disable -Wvarargs for Clang update to r271374
286LOCAL_CFLAGS += -Wno-varargs
287
288LOCAL_AIDL_INCLUDES := $(statsd_common_aidl_includes)
289
290LOCAL_STATIC_LIBRARIES := \
291    $(statsd_common_static_libraries)
292
293LOCAL_SHARED_LIBRARIES := $(statsd_common_shared_libraries) \
294    libgtest_prod \
295    libstatslog
296
297LOCAL_MODULE_TAGS := eng tests
298
299include $(BUILD_NATIVE_BENCHMARK)
300
301
302statsd_common_src:=
303statsd_common_aidl_includes:=
304statsd_common_c_includes:=
305statsd_common_static_libraries:=
306statsd_common_shared_libraries:=
307
308
309include $(call all-makefiles-under,$(LOCAL_PATH))
310