From: A. Maitland Bottoms Date: Sun, 27 Aug 2017 17:44:55 +0000 (+0100) Subject: native armv7 build support X-Git-Tag: archive/raspbian/1.3-2+rpi1^2~6 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=88d19a264ef4b4205813b386d57c998b1658de0a;p=volk.git native armv7 build support Debian, unlike other GNU Radio deployments, does not cross-compile packages, but builds natively on a set of build machines, including both arm and armhf. Gbp-Pq: Name native-armv7-build-support --- diff --git a/lib/CMakeLists.txt b/lib/CMakeLists.txt index ad5653c..5a5e62d 100644 --- a/lib/CMakeLists.txt +++ b/lib/CMakeLists.txt @@ -249,6 +249,13 @@ if(NOT CPU_IS_x86) OVERRULE_ARCH(avx "Architecture is not x86 or x86_64") endif(NOT CPU_IS_x86) +######################################################################## +# if building Debian armel, eliminate neon +######################################################################## +if(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-linux-gnueabi") + OVERRULE_ARCH(neon "Architecture is not armhf") +endif(${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-linux-gnueabi") + ######################################################################## # implement overruling in the ORC case, # since ORC always passes flag detection @@ -414,7 +421,7 @@ include_directories( # Handle ASM support # on by default, but let users turn it off ######################################################################## -if(${CMAKE_VERSION} VERSION_GREATER "2.8.9") +if((${CMAKE_VERSION} VERSION_GREATER "2.8.9") AND NOT (${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-linux-gnueabi")) set(ASM_ARCHS_AVAILABLE "neon") set(FULL_C_FLAGS "${CMAKE_C_FLAGS}" "${CMAKE_CXX_COMPILER_ARG1}") @@ -424,7 +431,7 @@ if(${CMAKE_VERSION} VERSION_GREATER "2.8.9") # set up the assembler flags and include the source files foreach(ARCH ${ASM_ARCHS_AVAILABLE}) string(REGEX MATCH "${ARCH}" ASM_ARCH "${available_archs}") - if( ASM_ARCH STREQUAL "neon" ) + if(( ASM_ARCH STREQUAL "neon" ) OR ( ${CMAKE_SYSTEM_PROCESSOR} MATCHES "armv7")) message(STATUS "---- Adding ASM files") # we always use ATT syntax message(STATUS "-- Detected neon architecture; enabling ASM") # setup architecture specific assembler flags @@ -443,7 +450,7 @@ if(${CMAKE_VERSION} VERSION_GREATER "2.8.9") message(STATUS "asm flags: ${CMAKE_ASM_FLAGS}") endforeach(ARCH) -else(${CMAKE_VERSION} VERSION_GREATER "2.8.9") +else((${CMAKE_VERSION} VERSION_GREATER "2.8.9") AND NOT (${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-linux-gnueabi")) message(STATUS "Not enabling ASM support. CMake >= 2.8.10 required.") foreach(machine_name ${available_machines}) string(REGEX MATCH "neon" NEON_MACHINE ${machine_name}) @@ -451,7 +458,7 @@ else(${CMAKE_VERSION} VERSION_GREATER "2.8.9") message(FATAL_ERROR "CMake >= 2.8.10 is required for ARM NEON support") endif() endforeach() -endif(${CMAKE_VERSION} VERSION_GREATER "2.8.9") +endif((${CMAKE_VERSION} VERSION_GREATER "2.8.9") AND NOT (${CMAKE_LIBRARY_ARCHITECTURE} STREQUAL "arm-linux-gnueabi")) ######################################################################## # Handle orc support