From fd37229a17822c5ad21a369f670b8a6f6cc6b95b Mon Sep 17 00:00:00 2001
From: Benjamin Bara <benjamin.bara@skidata.com>
Date: Mon, 4 Sep 2023 12:16:39 +0200
Subject: [PATCH] configure.ac: add option to explicitly disable neon

Uncomment an already existing possibility to explicitly disable neon and
use it on both implemented neon checks.

Upstream-Status: Submitted [https://bugs.ghostscript.com/show_bug.cgi?id=707097]

Signed-off-by: Benjamin Bara <benjamin.bara@skidata.com>
---
 configure.ac | 52 +++++++++++++++++++++++++++++-----------------------
 1 file changed, 29 insertions(+), 23 deletions(-)

diff --git a/configure.ac b/configure.ac
index 09d881dd1..62718e15e 100644
--- a/configure.ac
+++ b/configure.ac
@@ -749,6 +749,33 @@ SUBCONFIG_OPTS="--build=$build --host=$host"
 #  SUBCONFIG_OPTS="$SUBCONFIG_OPTS --host=$host_alias"
 #fi
 
+dnl --------------------------------------------------
+dnl Check for NEON support
+dnl --------------------------------------------------
+save_cflags=$CFLAGS
+AC_MSG_CHECKING([neon support])
+CFLAGS="$save_cflags $OPT_CFLAGS -mfpu=neon -mcpu=cortex-a53"
+HAVE_NEON=""
+AC_LINK_IFELSE(
+  [AC_LANG_PROGRAM([#include "arm_neon.h"], [
+  int32x4_t round = vdupq_n_s32(10);
+  return(0);
+  ])],
+  [HAVE_NEON="-DHAVE_NEON"], [HAVE_NEON=""])
+
+AC_ARG_ENABLE([neon], AS_HELP_STRING([--disable-neon],
+       [Do not use neon instrinsics]), [
+             if test "x$enable_neon" = xno; then
+                HAVE_NEON=""
+             fi])
+
+if test "x$HAVE_NEON" != x; then
+  AC_MSG_RESULT(yes)
+else
+  AC_MSG_RESULT(no)
+fi
+CFLAGS=$save_cflags
+
 dnl --------------------------------------------------
 dnl Check for libraries
 dnl --------------------------------------------------
@@ -971,11 +998,12 @@ if test x$with_tesseract != xno; then
          [TESS_NEON="-mfpu=neon -mcpu=cortex-a53 -D__ARM_NEON__"],
          [TESS_NEON=""])
 
-        if test "x$TESS_NEON" != x; then
+        if test "x$TESS_NEON" != x && test "x$enable_neon" != xno; then
           AC_MSG_RESULT(yes)
           TESS_CXXFLAGS="$TESS_CXXFLAGS -DHAVE_NEON"
         else
           AC_MSG_RESULT(no)
+          TESS_NEON=""
         fi
 
         CXXFLAGS="$save_cxxflags"
@@ -2387,28 +2415,6 @@ if test x$WITH_CAL != x0; then
     AC_MSG_RESULT(no)
   fi
 
-  AC_MSG_CHECKING([neon support])
-  CFLAGS="$save_cflags $OPT_CFLAGS -mfpu=neon -mcpu=cortex-a53"
-  HAVE_NEON=""
-  AC_LINK_IFELSE(
-    [AC_LANG_PROGRAM([#include "arm_neon.h"], [
-    int32x4_t round = vdupq_n_s32(10);
-    return(0);
-    ])],
-    [HAVE_NEON="-DHAVE_NEON"], [HAVE_NEON=""])
-
-  #AC_ARG_ENABLE([neon], AS_HELP_STRING([--disable-neon],
-  #       [Do not use neon instrinsics]), [
-  #             if test "x$enable_neon" = xno; then
-  #                HAVE_NEON=""
-  #             fi])
-
-  if test "x$HAVE_NEON" != x; then
-    AC_MSG_RESULT(yes)
-  else
-    AC_MSG_RESULT(no)
-  fi
-
   #AC_SUBST(HAVE_SSE4_2)
   #AC_SUBST(HAVE_NEON)
   CFLAGS=$save_cflags
-- 
2.34.1

