This repository was archived by the owner on Jan 12, 2019. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 376
/
Copy pathAndroid.mk
111 lines (76 loc) · 3.31 KB
/
Android.mk
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
# card.io Android NDK makefile
#
# See the file "LICENSE.md" for the full license governing this code.
#
# Builds three targets:
# - Static library for ARMv7 with NEON vector coprocessor (most devices)
# - Static library for ARMv7 without coprocessor. (NVidia Tegra2 processor, maybe others)
# - Very small static library to help figure out compatibility & work around some Android 4.0 bugs.
LOCAL_PATH := $(call my-dir)
LOCAL_DMZ_DIR := card.io-dmz
# --- declare opencv prebuilt static libs ---------------------------------
ifneq (,$(filter $(TARGET_ARCH_ABI),armeabi-v7a x86 arm64-v8a x86_64))
include $(CLEAR_VARS)
LOCAL_MODULE := opencv_core
LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/libopencv_core.so
include $(PREBUILT_SHARED_LIBRARY)
include $(CLEAR_VARS)
LOCAL_MODULE := opencv_imgproc
LOCAL_SRC_FILES := lib/$(TARGET_ARCH_ABI)/libopencv_imgproc.so
LOCAL_SHARED_LIBRARIES := opencv_core
include $(PREBUILT_SHARED_LIBRARY)
endif
# --- libcardioRecognizer.so --------------------------------------------------------
# (neon version)
ifeq (1,1)
include $(CLEAR_VARS)
ifneq (,$(filter $(TARGET_ARCH_ABI),armeabi-v7a x86 arm64-v8a x86_64))
LOCAL_MODULE := cardioRecognizer
LOCAL_LDLIBS := -llog -L$(SYSROOT)/usr/lib -lz -ljnigraphics
LOCAL_SHARED_LIBRARIES := cpufeatures opencv_imgproc opencv_core
LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(LOCAL_DMZ_DIR) $(LOCAL_PATH)/$(LOCAL_DMZ_DIR)/cv
LOCAL_SRC_FILES := $(LOCAL_DMZ_DIR)/dmz_all.cpp nativeRecognizer.cpp
LOCAL_CPPFLAGS := -DSCAN_EXPIRY=1
ifeq ($(TARGET_ARCH_ABI), armeabi-v7a)
LOCAL_CPPFLAGS += -DANDROID_HAS_NEON=1
LOCAL_ARM_NEON := true
endif
ifneq (,$(filter $(TARGET_ARCH_ABI), arm64-v8a x86_64))
LOCAL_CFLAGS += -DANDROID_HAS_NEON=0 ## 64-bit changed register names - requires asm fixes
endif
include $(BUILD_SHARED_LIBRARY)
endif
endif
# build tegra compatible lib
# (no neon, limit to 16 VFP registers)
ifeq (1,1)
include $(CLEAR_VARS)
ifneq (,$(filter $(TARGET_ARCH_ABI),armeabi-v7a x86 arm64-v8a x86_64))
LOCAL_MODULE := cardioRecognizer_tegra2
LOCAL_LDLIBS := -llog -L$(SYSROOT)/usr/lib -lz -ljnigraphics
LOCAL_SHARED_LIBRARIES := cpufeatures opencv_imgproc opencv_core
LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(LOCAL_DMZ_DIR) $(LOCAL_PATH)/$(LOCAL_DMZ_DIR)/cv
LOCAL_SRC_FILES := $(LOCAL_DMZ_DIR)/dmz_all.cpp nativeRecognizer.cpp
ifeq ($(TARGET_ARCH_ABI), x86) #we're generating an empty libcardioRecognizer_tegra2.so for x86 devices, so the list of .so files is the same for armeabi-v7a and x86 folders. This is to avoid any fallback to arm versions.
LOCAL_C_INCLUDES :=
LOCAL_SRC_FILES :=
endif
# Note: setting -mfloat-abi=hard will generate libs that cannot be linked with built in Android ones. So don't.
LOCAL_CPPFLAGS := -DANDROID_HAS_NEON=0 -mfpu=vfpv3-d16
LOCAL_ARM_NEON := false
include $(BUILD_SHARED_LIBRARY)
endif
endif
# --- libcardioDecider.so ------------------------------------------------------------
ifneq (,$(filter $(TARGET_ARCH_ABI), armeabi armeabi-v7a mips x86 arm64-v8a x86_64))
include $(CLEAR_VARS)
LOCAL_MODULE := cardioDecider
LOCAL_LDLIBS := -llog
LOCAL_SHARED_LIBRARIES := cpufeatures
LOCAL_C_INCLUDES := $(LOCAL_PATH)/$(LOCAL_DMZ_DIR)
LOCAL_SRC_FILES := $(LOCAL_DMZ_DIR)/processor_support.cpp nativeDecider.cpp
LOCAL_CFLAGS := -DANDROID_DMZ=1 -DANDROID_HAS_NEON=1
include $(BUILD_SHARED_LIBRARY)
endif
# ------------
$(call import-module,android/cpufeatures)