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 \
 "