1dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
2dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# Copyright (C) 2012 The Android Open Source Project
3dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
4dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# Licensed under the Apache License, Version 2.0 (the "License");
5dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# you may not use this file except in compliance with the License.
6dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# You may obtain a copy of the License at
7dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
8dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#      http://www.apache.org/licenses/LICENSE-2.0
9dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
10dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# Unless required by applicable law or agreed to in writing, software
11dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# distributed under the License is distributed on an "AS IS" BASIS,
12dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# See the License for the specific language governing permissions and
14dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# limitations under the License.
15dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
16dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#
17dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
18dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy StepanovLOCAL_PATH := $(call my-dir)
19a115c66324ba21157560991d1527ca831d72f344Stephen HinesCOMPILER_RT_PATH := $(LOCAL_PATH)
20dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
21dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#=====================================================================
22dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov# Device Static Library: libbccCompilerRT
23dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov#=====================================================================
24dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
25dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanovinclude $(CLEAR_VARS)
26dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
27dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy StepanovLOCAL_MODULE := libcompiler-rt
28dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy StepanovLOCAL_MODULE_TAGS := optional
29dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy StepanovLOCAL_MODULE_CLASS := STATIC_LIBRARIES
30dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy StepanovLOCAL_CLANG := true
31dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy StepanovLOCAL_CFLAGS := -integrated-as
32dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
33a115c66324ba21157560991d1527ca831d72f344Stephen Hines# Pull in platform-independent functionality
34d1a2f446e04701b98b723f3eb315bbc9722dad74Stephen HinesLOCAL_WHOLE_STATIC_LIBRARIES += libcompiler-rt-builtins libcompiler-rt-extras
35a115c66324ba21157560991d1527ca831d72f344Stephen Hines
36dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanovifeq ($(TARGET_ARCH),arm)
37dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov  LOCAL_SRC_FILES += \
38dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/adddf3vfp.S \
39dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/addsf3vfp.S \
40dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/divdf3vfp.S \
41dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/divsf3vfp.S \
42dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/eqdf2vfp.S \
43dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/eqsf2vfp.S \
44dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/extendsfdf2vfp.S \
45dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/fixdfsivfp.S \
46dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/fixsfsivfp.S \
47dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/fixunsdfsivfp.S \
48dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/fixunssfsivfp.S \
49dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/floatsidfvfp.S \
50dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/floatsisfvfp.S \
51dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/floatunssidfvfp.S \
52dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/floatunssisfvfp.S \
53dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/gedf2vfp.S \
54dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/gesf2vfp.S \
55dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/gtdf2vfp.S \
56dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/gtsf2vfp.S \
57dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/ledf2vfp.S \
58dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/lesf2vfp.S \
59dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/ltdf2vfp.S \
60dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/ltsf2vfp.S \
61dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/muldf3vfp.S \
62dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/mulsf3vfp.S \
63dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/nedf2vfp.S \
64dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/negdf2vfp.S \
65dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/negsf2vfp.S \
66dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/nesf2vfp.S \
67dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/subdf3vfp.S \
68dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/subsf3vfp.S \
69dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/truncdfsf2vfp.S \
70dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/unorddf2vfp.S \
71dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    lib/arm/unordsf2vfp.S
72dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanovelse
73dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov  ifeq ($(TARGET_ARCH),x86) # We don't support x86-64 right now
74dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov    LOCAL_SRC_FILES += \
75dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/ashldi3.S \
76dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/ashrdi3.S \
77dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/divdi3.S \
78dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/floatdidf.S \
79dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/floatdisf.S \
80dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/floatdixf.S \
81dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/floatundidf.S \
82dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/floatundisf.S \
83dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/floatundixf.S \
84dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/lshrdi3.S \
85dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/moddi3.S \
86dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/muldi3.S \
87dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/udivdi3.S \
88dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov      lib/i386/umoddi3.S
89dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov  else
90ad3e3f97fdfe365f9972bc71e3bd535c94a29abeKeun young Park    ifeq ($(TARGET_ARCH),mips)
91ad3e3f97fdfe365f9972bc71e3bd535c94a29abeKeun young Park      # nothing to add
92ad3e3f97fdfe365f9972bc71e3bd535c94a29abeKeun young Park    else
93ad3e3f97fdfe365f9972bc71e3bd535c94a29abeKeun young Park      $(error Unsupported TARGET_ARCH $(TARGET_ARCH))
94ad3e3f97fdfe365f9972bc71e3bd535c94a29abeKeun young Park    endif
95dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov  endif
96dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanovendif
97dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
98dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanovinclude $(BUILD_STATIC_LIBRARY)
99dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
100a115c66324ba21157560991d1527ca831d72f344Stephen Hinesinclude $(COMPILER_RT_PATH)/lib/Android.mk
101dc3865b01cd56b703b77f58d5acff6529491eaf3Evgeniy Stepanov
102a115c66324ba21157560991d1527ca831d72f344Stephen Hinesinclude $(COMPILER_RT_PATH)/lib/asan/Android.mk
103