diff --git a/CMakeLists.txt b/CMakeLists.txt index efc85731..fa26069c 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -131,7 +131,7 @@ execute_process(COMMAND ${SHELL_CMD} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1" # http://stackoverflow.com/q/12515462/608639 execute_process(COMMAND ${SHELL_CMD} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1" COMMAND ${GREP_CMD} "\\" - OUTPUT_VARIABLE CRYPTOPP_ARMHF + OUTPUT_VARIABLE CRYPTOPP_ARM OUTPUT_STRIP_TRAILING_WHITESPACE) execute_process(COMMAND ${SHELL_CMD} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1" @@ -139,6 +139,19 @@ execute_process(COMMAND ${SHELL_CMD} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1" OUTPUT_VARIABLE CRYPTOPP_ARMHF OUTPUT_STRIP_TRAILING_WHITESPACE) +execute_process(COMMAND ${SHELL_CMD} "${CMAKE_CXX_COMPILER} -dumpmachine 2>&1" + COMMAND ${GREP_CMD} "ARM7L" + OUTPUT_VARIABLE CRYPTOPP_ARM7L + OUTPUT_STRIP_TRAILING_WHITESPACE) + +# arm7l is another 32-bit hard float machine. RPI-3 is arm7l on 64-bit hardware +if ("${CRYPTOPP_ARM}" STREQUAL "1") + set(CRYPTOPP_ARMHF "1") +endif() +if ("${CRYPTOPP_ARM7L}" STREQUAL "1") + set(CRYPTOPP_ARMHF "1") +endif() + # End JW hack ############################################################################### @@ -486,6 +499,9 @@ if (BUILD_SHARED) add_dependencies(dynamic cryptopp-shared) endif() +add_custom_target(distclean) +add_dependencies(distclean clean) + #============================================================================ # Third-party libraries #============================================================================ diff --git a/GNUmakefile b/GNUmakefile index 2f6c793c..1e7e9f78 100755 --- a/GNUmakefile +++ b/GNUmakefile @@ -27,8 +27,8 @@ UNAME := $(shell uname) IS_X86 := $(shell uname -m | $(EGREP) -v "x86_64" | $(EGREP) -i -c "i.86|x86|i86") IS_X64 := $(shell uname -m | $(EGREP) -i -c "(_64|d64)") IS_PPC := $(shell uname -m | $(EGREP) -i -c "ppc|power") -IS_ARM32 := $(shell uname -m | $(EGREP) -v "arm64" | $(EGREP) -i -c "arm") -IS_ARM64 := $(shell uname -m | $(EGREP) -i -c "aarch64") +IS_ARM32 := $(shell uname -m | $(EGREP) -i -c '\') +IS_ARM64 := $(shell uname -m | $(EGREP) -i -c 'aarch64') IS_ARMV8 ?= $(shell uname -m | $(EGREP) -i -c 'aarch32|aarch64') IS_NEON ?= $(shell uname -m | $(EGREP) -i -c 'armv7|armv8|aarch32|aarch64') IS_SPARC := $(shell uname -m | $(EGREP) -i -c "sparc") @@ -289,7 +289,7 @@ endif endif ifeq ($(IS_NEON),1) - HAVE_NEON = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon -dM -E - 2>/dev/null | $(EGREP) -i -c __ARM_NEON) + HAVE_NEON = $(shell echo | $(CXX) -x c++ $(CXXFLAGS) -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon -dM -E - 2>/dev/null | $(EGREP) -i -c '\<__ARM_NEON\>') ifeq ($(HAVE_NEON),1) NEON_FLAG = -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon GCM_FLAG = -march=armv7-a -mfloat-abi=$(FP_ABI) -mfpu=neon