From 6b05dc10cdcf45d50bc8f9dd74667a3ff399a059 Mon Sep 17 00:00:00 2001
From: Andras Gemes <andrasgemes@outlook.com>
Date: Fri, 20 Jan 2023 14:52:12 +0100
Subject: [PATCH 1/9] autotools: add PCRE2 detection

---
 build/m4/aircrack_ng_pcre2.m4 | 61 +++++++++++++++++++++++++++++++++++
 configure.ac                  |  2 ++
 2 files changed, 63 insertions(+)
 create mode 100644 build/m4/aircrack_ng_pcre2.m4

--- /dev/null
+++ b/build/m4/aircrack_ng_pcre2.m4
@@ -0,0 +1,61 @@
+dnl Aircrack-ng
+dnl
+dnl Copyright (C) 2023 Andras Gemes <andrasgemes@outlook.com>
+dnl
+dnl Autotool support was written by: Joseph Benden <joe@benden.us>
+dnl
+dnl This program is free software; you can redistribute it and/or modify
+dnl it under the terms of the GNU General Public License as published by
+dnl the Free Software Foundation; either version 2 of the License, or
+dnl (at your option) any later version.
+dnl
+dnl This program is distributed in the hope that it will be useful,
+dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
+dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+dnl GNU General Public License for more details.
+dnl
+dnl You should have received a copy of the GNU General Public License
+dnl along with this program; if not, write to the Free Software
+dnl Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
+dnl
+dnl In addition, as a special exception, the copyright holders give
+dnl permission to link the code of portions of this program with the
+dnl OpenSSL library under certain conditions as described in each
+dnl individual source file, and distribute linked combinations
+dnl including the two.
+dnl
+dnl You must obey the GNU General Public License in all respects
+dnl for all of the code used other than OpenSSL.
+dnl
+dnl If you modify file(s) with this exception, you may extend this
+dnl exception to your dnl version of the file(s), but you are not obligated
+dnl to do so.
+dnl
+dnl If you dnl do not wish to do so, delete this exception statement from your
+dnl version.
+dnl
+dnl If you delete this exception statement from all source files in the
+dnl program, then also delete it here.
+
+AC_DEFUN([AIRCRACK_NG_PCRE2], [
+AC_ARG_ENABLE(static-pcre2,
+    AS_HELP_STRING([--enable-static-pcre2],
+		[Enable statically linked PCRE2 libpcre2-8.]),
+    [static_pcre2=$enableval], [static_pcre2=no])
+
+if test "x$static_pcre2" != "xno"; then
+	AC_REQUIRE([AX_EXT_HAVE_STATIC_LIB_DETECT])
+	AX_EXT_HAVE_STATIC_LIB(PCRE2, ${DEFAULT_STATIC_LIB_SEARCH_PATHS}, pcre2 libpcre2-8, pcre2_version)
+	if test "x$PCRE2_FOUND" = xyes; then
+		HAVE_PCRE2=yes
+	else
+		HAVE_PCRE2=no
+	fi
+else
+	PKG_CHECK_MODULES(PCRE2, libpcre2-8, HAVE_PCRE2=yes, HAVE_PCRE2=no)
+fi
+
+AS_IF([test "x$HAVE_PCRE2" = "xyes"], [
+    AC_DEFINE([HAVE_PCRE2], [1], [Define this if you have libpcre2-8 on your system])
+])
+])
\ No newline at end of file
--- a/configure.ac
+++ b/configure.ac
@@ -144,6 +144,7 @@ AIRCRACK_NG_EXT_SCRIPTS
 AIRCRACK_NG_HWLOC
 AIRCRACK_NG_PCAP
 AIRCRACK_NG_PCRE
+AIRCRACK_NG_PCRE2
 AIRCRACK_NG_RFKILL
 AIRCRACK_NG_SQLITE
 AIRCRACK_NG_ZLIB
@@ -320,6 +321,7 @@ ${PACKAGE} ${VERSION}
     Jemalloc:                    ${JEMALLOC}
     Pcap:                        ${PCAP_FOUND}
     Pcre:                        ${HAVE_PCRE}
+    Pcre2:                       ${HAVE_PCRE2}
     Sqlite:                      ${HAVE_SQLITE3}
     Tcmalloc:                    ${TCMALLOC}
     Zlib:                        ${HAVE_ZLIB}
