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