summaryrefslogtreecommitdiff
path: root/dev-cpp/libmcpp
diff options
context:
space:
mode:
Diffstat (limited to 'dev-cpp/libmcpp')
-rw-r--r--dev-cpp/libmcpp/Manifest3
-rw-r--r--dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-build-system.patch30
-rw-r--r--dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-configure-checks.patch34
-rw-r--r--dev-cpp/libmcpp/files/libmcpp-2.7.2-incompatible-pointer-types.patch26
-rw-r--r--dev-cpp/libmcpp/files/mcpp-c99.patch59
-rw-r--r--dev-cpp/libmcpp/libmcpp-2.7.2.19.ebuild20
-rw-r--r--dev-cpp/libmcpp/libmcpp-2.7.2_p5-r2.ebuild51
-rw-r--r--dev-cpp/libmcpp/metadata.xml12
8 files changed, 235 insertions, 0 deletions
diff --git a/dev-cpp/libmcpp/Manifest b/dev-cpp/libmcpp/Manifest
new file mode 100644
index 000000000000..44b2e2bb422b
--- /dev/null
+++ b/dev-cpp/libmcpp/Manifest
@@ -0,0 +1,3 @@
+DIST libmcpp-2.7.2.19.tar.gz 124309 BLAKE2B 405390f884091ca2f821c3eb89d34e35ecc384c7c3a2a81ff5d2d4fee77e34659fc82d5ed20fd3646cb7684d93bcd3053f6959d35c0c6396af76e8abb598deb7 SHA512 27f7be060e5c9ee4e87c44c99d2dd22c8b2454cb0776f7daef1b6eade2b016af1481d0b96a428ac4cce2152242b3c51bd2e144da0018989650a96e60c5d82a0f
+DIST mcpp-2.7.2.tar.gz 1533457 BLAKE2B 4368fd1c667923ab3b60ce79f8421c549a9d9105957ca87b9ba49be513cb1be7f220a3ddbaf306e860014d5211af480d07170d912d3d4a80345d8eab45fd6c00 SHA512 1ca885cb13fdb684de9d0595a9215b52f48a93a69077d82cdcacafe40d9a61fb77b00a3ff2b8890e7bc0a0fcc0c8d70d4093c00c280351cd4459aba67c573235
+DIST mcpp_2.7.2-5.debian.tar.xz 7528 BLAKE2B 92f455809cfb49d97ca4e62c7087ebe2ebe0ce835e8f12d6e93b1df2ec1e15472f242637f320be2b6bada85b193545fcf3608e8c9a935805a5f052909d3c6f0b SHA512 08509945048ccc4525ecd61d3f901a4d81fe73c1db84c26b76664d5127970af45662a168b99836b58467afc7202a1a20e0dfe8954a87e4cd1368f2136d7955be
diff --git a/dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-build-system.patch b/dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-build-system.patch
new file mode 100644
index 000000000000..95cefadd3fe8
--- /dev/null
+++ b/dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-build-system.patch
@@ -0,0 +1,30 @@
+Specify and install files using idiomatic Automake
+conventions instead of manually installing with cp.
+
+--- a/Makefile.am
++++ b/Makefile.am
+@@ -23,16 +23,12 @@
+ $(top_srcdir)/test-c $(top_srcdir)/test-l $(top_srcdir)/tool \
+ $(top_srcdir)/doc $(top_srcdir)/doc-jp
+
+-if ! REPLACE_CPP
+-install-exec-hook:
+- $(top_srcdir)/config/install-sh -d "$(DESTDIR)$(prefix)/share/doc/mcpp"
+- cp -pf $(top_srcdir)/LICENSE $(top_srcdir)/README $(top_srcdir)/NEWS \
+- $(DESTDIR)$(prefix)/share/doc/mcpp
+- cp -pf $(top_srcdir)/doc/mcpp-manual.html \
+- $(DESTDIR)$(prefix)/share/doc/mcpp
+- cp -pf $(top_srcdir)/doc-jp/mcpp-manual.html \
+- $(DESTDIR)$(prefix)/share/doc/mcpp/mcpp-manual-jp.html
+-uninstall-hook:
+- rm -rf $(DESTDIR)$(prefix)/share/doc/mcpp
+-endif
++dist_doc_DATA = README NEWS doc/mcpp-summary.pdf
+
++dist_html_DATA = \
++ doc/cpp-test.html \
++ doc/mcpp-manual.html \
++ doc/mcpp-porting.html
++
++htmljadir = $(htmldir)/doc-jp
++dist_htmlja_DATA = doc-jp/mcpp-manual.html
diff --git a/dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-configure-checks.patch b/dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-configure-checks.patch
new file mode 100644
index 000000000000..e7bb77d6cf41
--- /dev/null
+++ b/dev-cpp/libmcpp/files/libmcpp-2.7.2-fix-configure-checks.patch
@@ -0,0 +1,34 @@
+https://cgit.openembedded.org/meta-openembedded/plain/meta-oe/recipes-devtools/mcpp/files/0001-configure-Fix-checks-for-system-headers.patch?id=6721430ca97aa98208cc1c450e4e8c4c274ca840
+
+From c1e9f2f3d086e0df3c10a2468fd7b37fd0c5038c Mon Sep 17 00:00:00 2001
+From: Khem Raj <raj.khem@gmail.com>
+Date: Wed, 7 Sep 2022 00:02:08 -0700
+Subject: [PATCH] configure: Fix checks for system headers
+
+Define _DEFAULT_SOURCE in system.c so unistd.h can expose readlink API
+
+Upstream-Status: Pending
+
+Signed-off-by: Khem Raj <raj.khem@gmail.com>
+--- a/configure.ac
++++ b/configure.ac
+@@ -152,7 +152,7 @@ fi
+
+ dnl Checks for header files.
+
+-AC_CHECK_HEADERS( [unistd.h, stdint.h, inttypes.h])
++AC_CHECK_HEADERS( [unistd.h stdint.h inttypes.h])
+
+ dnl Checks for typedefs, and compiler characteristics.
+
+--- a/src/system.c
++++ b/src/system.c
+@@ -36,6 +36,8 @@
+ * 1. specify the constants in "configed.H" or "noconfig.H",
+ * 2. append the system-dependent routines in this file.
+ */
++
++#define _DEFAULT_SOURCE
+ #if PREPROCESSED
+ #include "mcpp.H"
+ #else
diff --git a/dev-cpp/libmcpp/files/libmcpp-2.7.2-incompatible-pointer-types.patch b/dev-cpp/libmcpp/files/libmcpp-2.7.2-incompatible-pointer-types.patch
new file mode 100644
index 000000000000..fc84009d4366
--- /dev/null
+++ b/dev-cpp/libmcpp/files/libmcpp-2.7.2-incompatible-pointer-types.patch
@@ -0,0 +1,26 @@
+https://github.com/jbrandwood/mcpp/commit/3b274fe8f31d61996343b17402f30408a6e447cf
+
+From 3b274fe8f31d61996343b17402f30408a6e447cf Mon Sep 17 00:00:00 2001
+From: John Brandwood <john.brandwood@telzey.com>
+Date: Fri, 15 Mar 2024 15:15:53 -0400
+Subject: [PATCH] Fix build with GCC 14.x by splitting a NULL assignment into 2
+ lines.
+
+---
+ src/expand.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/src/expand.c b/src/expand.c
+index 08f829a..ea2d2a9 100644
+--- a/src/expand.c
++++ b/src/expand.c
+@@ -710,7 +710,8 @@ static char * replace(
+ } else {
+ m_inf->locs.start_col = m_inf->locs.start_line = 0L;
+ }
+- m_inf->args = m_inf->loc_args = NULL; /* Default args */
++ m_inf->args = NULL; /* Default args */
++ m_inf->loc_args = NULL;
+ for (num = 1, recurs = 0; num < m_num; num++)
+ if (mac_inf[ num].defp == defp)
+ recurs++; /* Recursively nested macro */
diff --git a/dev-cpp/libmcpp/files/mcpp-c99.patch b/dev-cpp/libmcpp/files/mcpp-c99.patch
new file mode 100644
index 000000000000..e6538e7955f4
--- /dev/null
+++ b/dev-cpp/libmcpp/files/mcpp-c99.patch
@@ -0,0 +1,59 @@
+Florian Weimer's c99 patch from https://sourceforge.net/p/mcpp/patches/7/
+
+Do not define and undefine _*_SOURCE macros. These have special
+semantics to glibc. <limits.h> may include <features.h>, and which
+point the feature configuration gets frozen. Without this change,
+when system.c includes <unistd.h>, the feature macros are hard-coded
+as baseline POSIX, which does not include readlink. This will lead to
+compilation errors with future compilers.
+
+diff --git a/src/configed.H b/src/configed.H
+index b4d1ebf3a6bfa280..bde16fc8db38a2c4 100644
+--- a/src/configed.H
++++ b/src/configed.H
+@@ -295,20 +295,7 @@
+ * ULONGMAX should be defined to the ULONG_MAX in <limits.h>.
+ */
+
+-/* _POSIX_* only to get PATH_MAX */
+-#define _POSIX_ 1
+-#define _POSIX_SOURCE 1
+-#ifndef _POSIX_C_SOURCE
+-#define _POSIX_C_SOURCE 1
+-#define _POSIX_C_SOURCE_defined 1
+-#endif
+ #include "limits.h"
+-#undef _POSIX_
+-#undef _POSIX_SOURCE
+-#ifdef _POSIX_C_SOURCE_defined
+-#undef _POSIX_C_SOURCE
+-#undef _POSIX_C_SOURCE_defined
+-#endif
+ #define CHARBIT CHAR_BIT
+ #define UCHARMAX UCHAR_MAX
+ #define USHRTMAX USHRT_MAX
+diff --git a/src/noconfig.H b/src/noconfig.H
+index 6b634fe0b32ff67c..7c923c900c8865dd 100644
+--- a/src/noconfig.H
++++ b/src/noconfig.H
+@@ -570,20 +570,7 @@
+ #include "stdio.h"
+
+ /* PATHMAX is the maximum length of path-list on the host system. */
+-/* _POSIX_* only to get PATH_MAX */
+-#define _POSIX_ 1
+-#define _POSIX_SOURCE 1
+-#ifndef _POSIX_C_SOURCE
+-#define _POSIX_C_SOURCE 1
+-#define _POSIX_C_SOURCE_defined 1
+-#endif
+ #include "limits.h"
+-#undef _POSIX_
+-#undef _POSIX_SOURCE
+-#ifdef _POSIX_C_SOURCE_defined
+-#undef _POSIX_C_SOURCE
+-#undef _POSIX_C_SOURCE_defined
+-#endif
+ #ifdef PATH_MAX
+ #define PATHMAX PATH_MAX /* Posix macro */
+ #else
diff --git a/dev-cpp/libmcpp/libmcpp-2.7.2.19.ebuild b/dev-cpp/libmcpp/libmcpp-2.7.2.19.ebuild
new file mode 100644
index 000000000000..041ac7a3cb97
--- /dev/null
+++ b/dev-cpp/libmcpp/libmcpp-2.7.2.19.ebuild
@@ -0,0 +1,20 @@
+# Copyright 2025 Liguros Authors
+# Distributed under the terms of the GNU General Public License v2
+EAPI=8
+
+CMAKE_MAKEFILE_GENERATOR="emake"
+inherit cmake flag-o-matic
+
+DESCRIPTION="A portable C++ preprocessor"
+HOMEPAGE="https://github.com/zeroc-ice/mcpp"
+SRC_URI="https://github.com/zeroc-ice/mcpp/archive/refs/tags/v${PV}.tar.gz -> ${P}.tar.gz"
+S="${WORKDIR}"/mcpp-${PV}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv x86 ~x64-macos"
+
+src_configure() {
+ append-cflags -std=gnu17
+ cmake_src_configure
+}
diff --git a/dev-cpp/libmcpp/libmcpp-2.7.2_p5-r2.ebuild b/dev-cpp/libmcpp/libmcpp-2.7.2_p5-r2.ebuild
new file mode 100644
index 000000000000..4ee9b505f993
--- /dev/null
+++ b/dev-cpp/libmcpp/libmcpp-2.7.2_p5-r2.ebuild
@@ -0,0 +1,51 @@
+# Copyright 1999-2025 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit autotools flag-o-matic
+
+MY_PN=${PN/lib/}
+MY_P=$(ver_cut 1-4 ${MY_PN}-${PV})
+
+DESCRIPTION="A portable C++ preprocessor"
+HOMEPAGE="http://mcpp.sourceforge.net"
+SRC_URI="https://downloads.sourceforge.net/mcpp/${MY_P}.tar.gz"
+SRC_URI+=" mirror://debian/pool/main/m/${MY_PN}/${MY_PN}_${PV/_p/-}.debian.tar.xz"
+S="${WORKDIR}"/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="amd64 ~arm ~arm64 ~loong ~ppc64 ~riscv x86 ~x64-macos"
+
+PATCHES=(
+ # bug #718808
+ "${WORKDIR}"/debian/patches/
+
+ "${FILESDIR}"/${PN}-2.7.2-fix-build-system.patch
+ "${FILESDIR}"/${PN}-2.7.2-fix-configure-checks.patch
+ "${FILESDIR}"/${PN}-2.7.2-incompatible-pointer-types.patch
+ "${FILESDIR}"/mcpp-c99.patch
+)
+
+src_prepare() {
+ default
+
+ # bug #778461
+ sed -i 's/-lmcpp/libmcpp.la/' src/Makefile.am || die
+
+ eautoreconf
+}
+
+src_configure() {
+ # bug #944370
+ append-cflags -std=gnu17
+
+ econf --enable-mcpplib
+}
+
+src_install() {
+ default
+
+ find "${ED}" -name '*.la' -delete || die
+}
diff --git a/dev-cpp/libmcpp/metadata.xml b/dev-cpp/libmcpp/metadata.xml
new file mode 100644
index 000000000000..09b0ed18f1f6
--- /dev/null
+++ b/dev-cpp/libmcpp/metadata.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE pkgmetadata SYSTEM "https://liguros.gitlab.io/dtd/metadata.dtd">
+<pkgmetadata>
+ <maintainer type="project">
+ <email>dev@liguros.net</email>
+ <name>Development</name>
+ </maintainer>
+ <upstream>
+ <remote-id type="cpe">cpe:/a:mcpp_project:mcpp</remote-id>
+ </upstream>
+ <origin>ports</origin>
+</pkgmetadata> \ No newline at end of file