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