2 # Copyright (C) 2015 The Android Open Source Project
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
8 # http://www.apache.org/licenses/LICENSE-2.0
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.
17 LOCAL_PATH := $(call my-dir)
19 simpleperf_common_cppflags := -std=c++11 -Wall -Wextra -Werror -Wunused
21 simpleperf_host_common_cppflags := $(simpleperf_common_cppflags) \
22 -I bionic/libc/kernel/uapi \
24 simpleperf_host_darwin_cppflags := $(simpleperf_host_common_cppflags) \
25 -I $(LOCAL_PATH)/darwin_support \
27 simpleperf_common_shared_libraries := \
31 LLVM_ROOT_PATH := external/llvm
34 # =========================================================
35 libsimpleperf_common_src_files := \
47 record_file_reader.cpp \
51 libsimpleperf_src_files := \
52 $(libsimpleperf_common_src_files) \
58 event_selection_set.cpp \
59 record_file_writer.cpp \
62 libsimpleperf_darwin_src_files := \
63 $(libsimpleperf_common_src_files) \
64 environment_fake.cpp \
68 LOCAL_CPPFLAGS := $(simpleperf_common_cppflags)
69 LOCAL_SRC_FILES := $(libsimpleperf_src_files)
70 LOCAL_SHARED_LIBRARIES := $(simpleperf_common_shared_libraries)
71 LOCAL_MODULE := libsimpleperf
72 LOCAL_MODULE_TAGS := debug
73 LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
74 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
75 include $(LLVM_ROOT_PATH)/llvm.mk
76 include $(LLVM_DEVICE_BUILD_MK)
77 include $(BUILD_STATIC_LIBRARY)
79 ifeq ($(HOST_OS),linux)
82 LOCAL_CPPFLAGS := $(simpleperf_host_common_cppflags)
83 LOCAL_SRC_FILES := $(libsimpleperf_src_files)
84 LOCAL_SHARED_LIBRARIES := $(simpleperf_common_shared_libraries)
86 LOCAL_MODULE := libsimpleperf
87 LOCAL_MODULE_TAGS := optional
88 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
89 include $(LLVM_ROOT_PATH)/llvm.mk
90 include $(LLVM_HOST_BUILD_MK)
91 include $(BUILD_HOST_STATIC_LIBRARY)
94 ifeq ($(HOST_OS),darwin)
97 LOCAL_CPPFLAGS := $(simpleperf_host_darwin_cppflags)
98 LOCAL_SRC_FILES := $(libsimpleperf_darwin_src_files)
99 LOCAL_SHARED_LIBRARIES := $(simpleperf_common_shared_libraries)
100 LOCAL_MODULE := libsimpleperf
101 LOCAL_MODULE_TAGS := optional
102 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
103 include $(LLVM_ROOT_PATH)/llvm.mk
104 include $(LLVM_HOST_BUILD_MK)
105 include $(BUILD_HOST_SHARED_LIBRARY)
109 # =========================================================
110 include $(CLEAR_VARS)
112 LOCAL_CPPFLAGS := $(simpleperf_common_cppflags)
113 LOCAL_SRC_FILES := main.cpp
114 LOCAL_WHOLE_STATIC_LIBRARIES := libsimpleperf
115 LOCAL_SHARED_LIBRARIES := $(simpleperf_common_shared_libraries)
116 LOCAL_MODULE := simpleperf
117 LOCAL_MODULE_TAGS := debug
118 LOCAL_MODULE_PATH := $(TARGET_OUT_OPTIONAL_EXECUTABLES)
119 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
120 include $(BUILD_EXECUTABLE)
122 ifeq ($(HOST_OS),linux)
123 include $(CLEAR_VARS)
125 LOCAL_CPPFLAGS := $(simpleperf_host_common_cppflags)
126 LOCAL_SRC_FILES := main.cpp
127 LOCAL_WHOLE_STATIC_LIBRARIES := libsimpleperf
128 LOCAL_SHARED_LIBRARIES := $(simpleperf_common_shared_libraries)
130 LOCAL_MODULE := simpleperf
131 LOCAL_MODULE_TAGS := optional
132 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
133 include $(BUILD_HOST_EXECUTABLE)
136 ifeq ($(HOST_OS),darwin)
137 include $(CLEAR_VARS)
139 LOCAL_CPPFLAGS := $(simpleperf_host_darwin_cppflags)
140 LOCAL_SRC_FILES := main.cpp
141 LOCAL_SHARED_LIBRARIES := libsimpleperf $(simpleperf_common_shared_libraries)
142 LOCAL_MODULE := simpleperf
143 LOCAL_MODULE_TAGS := optional
144 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
145 include $(BUILD_HOST_EXECUTABLE)
148 # simpleperf_unit_test
149 # =========================================================
150 simpleperf_unit_test_common_src_files := \
154 sample_tree_test.cpp \
156 simpleperf_unit_test_src_files := \
157 $(simpleperf_unit_test_common_src_files) \
158 cmd_dumprecord_test.cpp \
160 cmd_record_test.cpp \
161 cmd_report_test.cpp \
163 cpu_offline_test.cpp \
164 environment_test.cpp \
166 record_file_test.cpp \
169 include $(CLEAR_VARS)
171 LOCAL_CPPFLAGS := $(simpleperf_common_cppflags)
172 LOCAL_SRC_FILES := $(simpleperf_unit_test_src_files)
173 LOCAL_WHOLE_STATIC_LIBRARIES := libsimpleperf
174 LOCAL_SHARED_LIBRARIES := $(simpleperf_common_shared_libraries)
175 LOCAL_MODULE := simpleperf_unit_test
176 LOCAL_MODULE_TAGS := optional
177 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
178 include $(BUILD_NATIVE_TEST)
180 ifeq ($(HOST_OS),linux)
181 include $(CLEAR_VARS)
183 LOCAL_CPPFLAGS := $(simpleperf_host_common_cppflags)
184 LOCAL_SRC_FILES := $(simpleperf_unit_test_src_files)
185 LOCAL_WHOLE_STATIC_LIBRARIES := libsimpleperf
186 LOCAL_SHARED_LIBRARIES := $(simpleperf_common_shared_libraries)
187 LOCAL_MODULE := simpleperf_unit_test
188 LOCAL_MODULE_TAGS := optional
189 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
190 include $(BUILD_HOST_NATIVE_TEST)
193 ifeq ($(HOST_OS),darwin)
194 include $(CLEAR_VARS)
196 LOCAL_CPPFLAGS := $(simpleperf_host_darwin_cppflags)
197 LOCAL_SRC_FILES := $(simpleperf_unit_test_common_src_files)
198 LOCAL_SHARED_LIBRARIES := libsimpleperf $(simpleperf_common_shared_libraries)
199 LOCAL_MODULE := simpleperf_unit_test
200 LOCAL_MODULE_TAGS := optional
201 LOCAL_ADDITIONAL_DEPENDENCIES := $(LOCAL_PATH)/Android.mk
202 include $(BUILD_HOST_NATIVE_TEST)