[meta-mingw] [PATCH] mingw-libgnurx: Add recipe


Khem Raj
 

This implements glibc regex and will be used by many
packages e.g. flex, therefore add recipe

Signed-off-by: Khem Raj <raj.khem@...>
---
...onor-DESTDIR-variable-during-install.patch | 39 ++++++
.../0002-Add-autotool-files.patch | 125 ++++++++++++++++++
.../mingw-libgnurx/mingw-libgnurx_2.5.1.bb | 20 +++
3 files changed, 184 insertions(+)
create mode 100644 recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch
create mode 100644 recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch
create mode 100644 recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb

diff --git a/recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch b/recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch
new file mode 100644
index 0000000..ea8d9ed
--- /dev/null
+++ b/recipes-support/mingw-libgnurx/mingw-libgnurx/0001-Honor-DESTDIR-variable-during-install.patch
@@ -0,0 +1,39 @@
+From a9b7e07a8ba9c390d9774daae769748a09d409ce Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@...>
+Date: Sat, 1 May 2021 14:41:21 -0700
+Subject: [PATCH] Honor DESTDIR variable during install
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@...>
+---
+ Makefile.in | 14 +++++++-------
+ 1 file changed, 7 insertions(+), 7 deletions(-)
+
+diff --git a/Makefile.in b/Makefile.in
+index 6397bf1..8395d2f 100644
+--- a/Makefile.in
++++ b/Makefile.in
+@@ -78,16 +78,16 @@ gnurx.lib: libgnurx-$(DLLVERSION).dll
+ install: install-dll @install_dev@
+
+ install-dll:
+- mkdir -p ${bindir}
+- cp -p $(BINDIST_FILES) ${bindir}
++ mkdir -p $(DESTDIR)${bindir}
++ cp -p $(BINDIST_FILES) $(DESTDIR)${bindir}
+
+ install-dev:
+- mkdir -p ${includedir} ${libdir}
+- cp -p ${srcdir}/regex.h ${includedir}
+- cp -p $(DEVDIST_FILES) ${libdir}
++ mkdir -p ${includedir} $(DESTDIR)${libdir}
++ cp -p ${srcdir}/regex.h $(DESTDIR)${includedir}
++ cp -p $(DEVDIST_FILES) $(DESTDIR)${libdir}
+ for s in 3 7; do \
+- mkdir -p ${mandir}/man$$s; \
+- gzip -c ${srcdir}/regex.$$s > ${mandir}/man$$s/regex.$$s.gz; \
++ mkdir -p $(DESTDIR)${mandir}/man$$s; \
++ gzip -c ${srcdir}/regex.$$s > $(DESTDIR)${mandir}/man$$s/regex.$$s.gz; \
+ done
+
+ dist: bindist devdist srcdist
diff --git a/recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch b/recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch
new file mode 100644
index 0000000..1365f24
--- /dev/null
+++ b/recipes-support/mingw-libgnurx/mingw-libgnurx/0002-Add-autotool-files.patch
@@ -0,0 +1,125 @@
+From 0b74bbc32c4acf5b67d7568a5d1e776fe6578202 Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@...>
+Date: Sat, 1 May 2021 14:53:09 -0700
+Subject: [PATCH] Add autotool files
+
+This helps in reconfiguring the component with autotools on Linux
+
+Upstream-Status: Pending
+Signed-off-by: Khem Raj <raj.khem@...>
+---
+ Makefile.am | 7 ++++
+ configure.ac | 90 ++++++----------------------------------------------
+ 2 files changed, 16 insertions(+), 81 deletions(-)
+ create mode 100644 Makefile.am
+
+diff --git a/Makefile.am b/Makefile.am
+new file mode 100644
+index 0000000..be0a797
+--- /dev/null
++++ b/Makefile.am
+@@ -0,0 +1,7 @@
++lib_LTLIBRARIES = libgnurx.la
++
++libgnurx_la_SOURCES = regex.c
++libgnurx_la_includedir = $(includedir)
++libgnurx_la_include_HEADERS = regex.h
++libgnurx_la_CFLAGS = -I$(top_srcdir)
++libgnurx_la_LDFLAGS = -no-undefined -version-info 0:0:0 -export-dynamic
+diff --git a/configure.ac b/configure.ac
+index c97738d..de64f75 100644
+--- a/configure.ac
++++ b/configure.ac
+@@ -1,83 +1,11 @@
+ # configure.ac -*- Autoconf -*-
+ # Process this file with autoconf, to generate a configure script.
+-#
+-# $Id: configure.ac,v 1.2 2007/05/03 22:46:09 keithmarshall Exp $
+-#
+-# Copyright (C) 2007, MinGW Project
+-# Written by Keith Marshall <keithmarshall@...>
+-#
+-# Package identification.
+-#
+-# This is configure.ac for the MinGW `libgnurx' package.
+-# BASENAME, VERSION_MAJOR and VERSION_MINOR are required tags;
+-# complete `Value' fields as appropriate.
+-#
+-# Tag Value
+-# --------------- ----------
+- MINGW_AC_DEFINE_PACKAGE_ID([BASENAME], [libgnurx])
+- MINGW_AC_DEFINE_PACKAGE_ID([VERSION_MAJOR], [2])
+- MINGW_AC_DEFINE_PACKAGE_ID([VERSION_MINOR], [5])
+-#
+-# PATCHLEVEL is optional; comment/uncomment and adjust as required.
+-#
+- MINGW_AC_DEFINE_PACKAGE_ID([PATCHLEVEL], [1])
+-#
+-# DLL_VERSION is required; installed DLLs will be versioned, by
+-# appending a hyphen, the specified tag value, and then the `.dll'
+-# file name extension, to the base name of each generated DLL.
+-#
+- MINGW_AC_DEFINE_PACKAGE_ID([DLL_VERSION], [0])
+-#
+-#
+-# libgnurx is an adaptation of Tor Lillqvist's original port of the
+-# regex functions from GNU libc, for use on native Woe32 platforms.
+-#
+-# The original sources, on which this port is based, remain copyright
+-# of their respective authors, or of the Free Software Foundation Inc.,
+-# as indicated in individual file headers; all are redistributed with
+-# permission, as granted by the GNU Lesser General Public License.
+-#
+-# This is free software. It is provided AS IS, in the hope that it may
+-# be useful, but WITHOUT WARRANTY OF ANY KIND, not even an IMPLIED WARRANTY
+-# of MERCHANTABILITY, nor of FITNESS FOR ANY PARTICULAR PURPOSE.
+-#
+-# Permission is granted to redistribute this software, either "as is" or
+-# in modified form, under the terms of the GNU Lesser General Public License,
+-# as published by the Free Software Foundation; either version 2.1, or (at
+-# your option) any later version.
+-#
+-# You should have received a copy of the GNU Lesser General Public License
+-# along with this software; see the file COPYING.LIB. If not, write to the
+-# Free Software Foundation, 51 Franklin St - Fifth Floor, Boston,
+-# MA 02110-1301, USA.
+-
+-# Autoconf initialisation.
+-#
+- AC_PREREQ([2.59])
+- AC_INIT(__MINGW_AC_PACKAGE_IDENTIFICATION__)
+-
+-# Compiler and build tool checks.
+-#
+- AC_PROG_CC
+- MINGW_AC_PROG_CC_OPTIONS([CC_QUALIFIED], [-m], [threads tune=pentium3])
+-
+-# Set the release version for the resultant DLL.
+-#
+- AC_SUBST([DLLVERSION], [__MINGW_AC_PACKAGE_DLL_VERSION__])
+-
+-# User configuration options.
+-#
+- MINGW_AC_DISTRIBUTION_TYPE([tar])
+- MINGW_AC_MSVC_IMPORT_LIBS([GNURX_LIB], [gnurx.lib])
+- MINGW_AC_DEV_INSTALL_OPTION
+-
+-# Configuration output.
+-#
+- AC_SUBST([GNURX_LIB])
+- AC_SUBST([CC_QUALIFIED], ["$CC $CC_QUALIFIED"])
+- LDFLAGS="$LDFLAGS -Wl,--enable-auto-image-base -Wl,--out-implib,libgnurx.dll.a"
+- test -n "${GNURX_LIB}" && LDFLAGS="$LDFLAGS -Wl,--output-def,libgnurx.def"
+- AC_CONFIG_FILES([Makefile])
+- AC_OUTPUT
+-#
+-# $RCSfile: configure.ac,v $Revision: 1.2 $: end of file
++
++AC_INIT(libgnurx, 2.5.1)
++AM_INIT_AUTOMAKE(foreign)
++AC_PROG_INSTALL
++AC_LIBTOOL_DLOPEN
++AC_LIBTOOL_WIN32_DLL
++AC_PROG_LIBTOOL
++
++AC_OUTPUT([Makefile])
diff --git a/recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb b/recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb
new file mode 100644
index 0000000..cb5cd7f
--- /dev/null
+++ b/recipes-support/mingw-libgnurx/mingw-libgnurx_2.5.1.bb
@@ -0,0 +1,20 @@
+# Copyright (C) 2021 Khem Raj <raj.khem@...>
+# Released under the MIT license (see COPYING.MIT for the terms)
+LICENSE = "LGPLv2.1"
+LIC_FILES_CHKSUM = "file://COPYING.LIB;md5=bbb461211a33b134d42ed5ee802b37ff"
+
+SRC_URI = "http://download.sourceforge.net/mingw/Other/UserContributed/regex/mingw-regex-${PV}/mingw-libgnurx-${PV}-src.tar.gz \
+ file://0001-Honor-DESTDIR-variable-during-install.patch \
+ file://0002-Add-autotool-files.patch \
+ "
+SRC_URI[sha256sum] = "7147b7f806ec3d007843b38e19f42a5b7c65894a57ffc297a76b0dcd5f675d76"
+
+# NOTE: if this software is not capable of being built in a separate build directory
+# from the source, you should replace autotools with autotools-brokensep in the
+# inherit line
+inherit autotools
+
+# Specify any options you want to pass to the configure script using EXTRA_OECONF:
+EXTRA_OECONF = ""
+
+BBCLASSEXTEND = "nativesdk"
--
2.31.1

Join yocto@lists.yoctoproject.org to automatically receive all group messages.