Merge "Exclude NEON files for ARMs that do not have it"
diff --git a/Scrypt-config.mk b/Scrypt-config.mk
index 30db285..bbe1063 100644
--- a/Scrypt-config.mk
+++ b/Scrypt-config.mk
@@ -37,10 +37,16 @@
arm_c_flags :=
-arm_src_files := \
+arm_src_files :=
+
+arm_exclude_files :=
+
+arm_neon_c_flags :=
+
+arm_neon_src_files := \
lib/crypto/crypto_scrypt-neon.c \
-arm_exclude_files := \
+arm_neon_exclude_files := \
lib/crypto/crypto_scrypt-ref.c \
x86_c_flags :=
@@ -75,6 +81,15 @@
target_src_files := $(common_src_files) $($(target_arch)_src_files)
target_src_files := $(filter-out $($(target_arch)_exclude_files), $(target_src_files))
+# Hacks for ARM NEON support
+ifeq ($(target_arch),arm)
+ifeq ($(ARCH_ARM_HAVE_NEON),true)
+target_c_flags += $(arm_neon_c_flags)
+target_src_files += $(arm_neon_src_files)
+target_src_files := $(filter-out $(arm_neon_exclude_files), $(target_src_files))
+endif
+endif
+
ifeq ($(HOST_OS)-$(HOST_ARCH),linux-x86)
host_arch := x86
else
diff --git a/import_scrypt.sh b/import_scrypt.sh
index 684379d..324eae6 100755
--- a/import_scrypt.sh
+++ b/import_scrypt.sh
@@ -262,7 +262,7 @@
# $1: Target file name. (e.g. Scrypt-config.mk)
function generate_config_mk() {
declare -r output="$1"
- declare -r all_archs="arm x86 x86_64 mips"
+ declare -r all_archs="arm arm_neon x86 x86_64 mips"
echo "Generating $(basename $output)"
(
@@ -324,6 +324,15 @@
target_src_files := \$(common_src_files) \$(\$(target_arch)_src_files)
target_src_files := \$(filter-out \$(\$(target_arch)_exclude_files), \$(target_src_files))
+# Hacks for ARM NEON support
+ifeq (\$(target_arch),arm)
+ifeq (\$(ARCH_ARM_HAVE_NEON),true)
+target_c_flags += \$(arm_neon_c_flags)
+target_src_files += \$(arm_neon_src_files)
+target_src_files := \$(filter-out \$(arm_neon_exclude_files), \$(target_src_files))
+endif
+endif
+
ifeq (\$(HOST_OS)-\$(HOST_ARCH),linux-x86)
host_arch := x86
else
diff --git a/scrypt.config b/scrypt.config
index 13fd4c9..3ccb4d0 100644
--- a/scrypt.config
+++ b/scrypt.config
@@ -44,10 +44,16 @@
"
SCRYPT_SOURCES_arm="\
-lib/crypto/crypto_scrypt-neon.c \
"
SCRYPT_SOURCES_EXCLUDES_arm="\
+"
+
+SCRYPT_SOURCES_arm_neon="\
+lib/crypto/crypto_scrypt-neon.c \
+"
+
+SCRYPT_SOURCES_EXCLUDES_arm_neon="\
lib/crypto/crypto_scrypt-ref.c \
"