sci-physics/looptools: add 2.15-r1, 2.16

- EAPI 7 -> 8
- filter_lto
- patch away findprog which mixes clang and gnu toolchains. Instead use
  toolchain-funcs eclass
- also symlink solib without version specifier since programs look for
  that more often

Closes: https://bugs.gentoo.org/889070
Closes: https://bugs.gentoo.org/770838
Part-of: https://github.com/gentoo/gentoo/pull/44201
Closes: https://github.com/gentoo/gentoo/pull/44201
Signed-off-by: Alexander Puck Neuwirth <apn-pucky@gentoo.org>
This commit is contained in:
Alexander Puck Neuwirth
2025-10-16 17:17:31 +02:00
parent e29bf3ba13
commit 0dd4467cb6
6 changed files with 240 additions and 0 deletions

View File

@@ -1 +1,2 @@
DIST LoopTools-2.15.tar.gz 552635 BLAKE2B e93d2fccaaa920727d34ee98788bcc0c4b5ca646ca8e4361ed67e1a94095d576370b356d1dfe289d492dbe3c9af6ce7c6b89ec27bad45c947b7a30473cd0611a SHA512 77173cd9cc69ba3b999493ebfa51965610fe3d45dd5f6f85e1ca04d1374419f8687a0d41f8263abd6974790bb71e7800eb002199dffea37f546e56ed4f83751a
DIST LoopTools-2.16.tar.gz 537527 BLAKE2B c443468c112eb29c915c08b3b36756787a8d96261581e11bd93a6e5c0406b33f61242aea09911454d4690b9a41f8dad537fd83e8d518577a7a729eacc2734a92 SHA512 42109e29480e0260a50d1f66f26d28abbb7561df1a0f71bbc4f579af7304c182e8f612f46e2fa77d2371d35cd416eb3c3efacf3f344be1c279fd582da797124b

View File

@@ -0,0 +1,17 @@
--- a/configure 2025-10-16 16:41:27.321793786 +0200
+++ b/configure 2025-10-16 16:41:37.465121596 +0200
@@ -132,11 +132,11 @@
}
-findprog gcc CC clang gcc || exit 1
+#findprog gcc CC clang gcc || exit 1
-findprog g++ CXX clang++ g++ || exit 1
+#findprog g++ CXX clang++ g++ || exit 1
-findprog fortran FC ${CONF_REAL10:+gfortran} ${CONF_QUAD:+ifort gfortran xlf} ifort pgf90 xlf gfortran g95 f90 || exit 1
+#findprog fortran FC ${CONF_REAL10:+gfortran} ${CONF_QUAD:+ifort gfortran xlf} ifort pgf90 xlf gfortran g95 f90 || exit 1
CONF_DEF="-D"

View File

@@ -0,0 +1,17 @@
--- a/configure 2025-10-16 17:14:09.657394288 +0200
+++ b/configure 2025-10-16 17:14:23.127386983 +0200
@@ -132,11 +132,11 @@
}
-findprog gcc CC gcc clang || exit 1
+#findprog gcc CC gcc clang || exit 1
-findprog g++ CXX g++ clang++ || exit 1
+#findprog g++ CXX g++ clang++ || exit 1
-findprog fortran FC ${CONF_REAL10:+gfortran} ${CONF_QUAD:+ifort gfortran xlf} ifort pgf90 xlf gfortran g95 f90 || exit 1
+#findprog fortran FC ${CONF_REAL10:+gfortran} ${CONF_QUAD:+ifort gfortran xlf} ifort pgf90 xlf gfortran g95 f90 || exit 1
CONF_DEF="-D"

View File

@@ -0,0 +1,105 @@
diff -Naru LoopTools-2.16.orig/makefile.in LoopTools-2.16/makefile.in
--- LoopTools-2.16.orig/makefile.in 2022-04-12 11:04:39.286039581 +0200
+++ LoopTools-2.16/makefile.in 2022-04-12 11:07:50.023602000 +0200
@@ -1,8 +1,8 @@
BLD = build$(QUADSUFFIX)
-LIBDIR = $(PREFIX)/lib$(LIBDIRSUFFIX)
-INCLUDEDIR = $(PREFIX)/include
-BINDIR = $(PREFIX)/bin
+LIBDIR = $(DESTDIR)/$(PREFIX)/lib$(LIBDIRSUFFIX)
+INCLUDEDIR = $(DESTDIR)/$(PREFIX)/include
+BINDIR = $(DESTDIR)/$(PREFIX)/bin
LIB = libooptools$(QUADSUFFIX).a
FE = lt$(QUADSUFFIX)$(EXE)
@@ -11,6 +11,10 @@
FXX = f++$(QUADSUFFIX)
INCLUDE = $(BLD)/looptools.h $(BLD)/clooptools.h
+LIBRARY=libooptools.so
+REALNAME=$(LIBRARY)
+
+
ARGS = $(PARALLEL) \
LIB="$(LIB)" \
FE="$(FE)" \
@@ -20,14 +24,14 @@
EXE="$(EXE)" \
DEF="$(DEF)" \
NOUNDERSCORE="$(NOUNDERSCORE)" \
- XFC="$(FC) $(FFLAGS) -I." \
+ XFC="$(FC) $(FFLAGS) -I. -fPIC" \
F90="$(F90)" \
CDEFS="$(CDEFS)" \
MCDEFS="$(MCDEFS)" \
CC="$(CC)" \
- CFLAGS="$(CFLAGS)" \
+ CFLAGS="$(CFLAGS) -fPIC" \
CXX="$(CXX)" \
- CXXFLAGS="$(CXXFLAGS)" \
+ CXXFLAGS="$(CXXFLAGS) -fPIC" \
ML="$(ML)" \
MCC="$(MCC)" \
MCFLAGS="$(MCFLAGS)" \
@@ -37,24 +41,23 @@
NM="$(NM)" \
DLLTOOL="$(DLLTOOL)" \
LDFLAGS="$(LDFLAGS)" \
- LIBPATH="$(LIBPATH)"
+ LIBPATH="$(LIBPATH)" \
+ REALNAME="$(REALNAME)"
-default all lib frontend mma: force
+default all lib solib frontend mma: force
cd $(BLD) && $(MAKE) $(ARGS) $@
-install: lib frontend
- -mkdir $(PREFIX)
+install: lib solib frontend
+ -mkdir $(DESTDIR)/$(PREFIX)
-mkdir $(LIBDIR) $(BINDIR) $(INCLUDEDIR)
cp -p $(BLD)/$(LIB) $(LIBDIR)
cp -p $(INCLUDE) $(INCLUDEDIR)
- strip $(BLD)/$(FE)
cp -p $(BLD)/$(FCC) $(BLD)/$(FE) $(BINDIR)
rm -f $(BINDIR)/$(FXX)
ln -s $(FCC) $(BINDIR)/$(FXX)
test ! -f $(BLD)/$(MFE) || { \
test -z "$(EXE)" || ldd $(BLD)/$(MFE) | awk '/\/usr\/bin\/cyg/ { system("cp -p " $$3 " $(BINDIR)/"); }' ; \
- strip $(BLD)/$(MFE) ; \
cp -p $(BLD)/$(MFE) $(BINDIR); \
}
diff -Naru LoopTools-2.16.orig/src/makefile LoopTools-2.16/src/makefile
--- LoopTools-2.16.orig/src/makefile 2022-04-12 11:04:39.287039595 +0200
+++ LoopTools-2.16/src/makefile 2022-04-12 11:09:14.079731941 +0200
@@ -1,6 +1,6 @@
-default: frontend mma$(ML)
+default: frontend mma$(ML) solib
-all: frontend mma1
+all: frontend mma1 solib
frontend: lib $(FE)
@@ -8,6 +8,8 @@
mma0 lib: $(LIB) clooptools.h $(FCC)
+solib: $(REALNAME) fcc
+
.SUFFIXES:
@@ -240,6 +242,9 @@
$(AR) $(ARFLAGS) $(LIB) $?
-$(RANLIB) $(LIB)
+$(REALNAME): $(OBJS)
+ $(XFC) $(LDFLAGS) -shared -Wl,--soname,$(REALNAME) -o $@ $?
+
$(FE): lt.F $(LTINC) $(LIB)
$(XFC) -o $(FE) lt.F $(LIB) $(LDFLAGS)

View File

@@ -0,0 +1,50 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit fortran-2 toolchain-funcs flag-o-matic
MY_P=LoopTools-${PV}
DESCRIPTION="Tools for evaluation of scalar and tensor one-loop integrals"
HOMEPAGE="http://www.feynarts.de/looptools"
SRC_URI="http://www.feynarts.de/looptools/${MY_P}.tar.gz"
LICENSE="LGPL-3"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="doc"
PATCHES=(
"${FILESDIR}"/${P}-makefile.patch
"${FILESDIR}"/${P}-configure.patch
)
S="${WORKDIR}/${MY_P}"
src_prepare() {
default
export VER="${PV}"
# necessary fix for prefix
sed -i "s/lib\$(LIBDIRSUFFIX)/$(get_libdir)/" makefile.in || die
}
src_configure() {
# fortran C bindings are not LTO compatible
filter-lto
econf CONF_CC=$(tc-getCC) CONF_CXX=$(tc-getCXX) CONF_FC=$(tc-getFC)
}
src_install() {
default
dolib.so build/libooptools.so.2.15
# The name used for requesting this library varies
dosym libooptools.so.2.15 /usr/$(get_libdir)/libooptools.so
rm "${ED}"/usr/$(get_libdir)/libooptools.a || die
use doc && dodoc manual/*.pdf
}

View File

@@ -0,0 +1,50 @@
# Copyright 1999-2025 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
inherit fortran-2 toolchain-funcs flag-o-matic
MY_P=LoopTools-${PV}
DESCRIPTION="Tools for evaluation of scalar and tensor one-loop integrals"
HOMEPAGE="http://www.feynarts.de/looptools"
SRC_URI="http://www.feynarts.de/looptools/${MY_P}.tar.gz"
LICENSE="LGPL-3"
SLOT="0/${PV}"
KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux"
IUSE="doc"
PATCHES=(
"${FILESDIR}"/${P}-makefile.patch
"${FILESDIR}"/${P}-configure.patch
)
S="${WORKDIR}/${MY_P}"
src_prepare() {
default
export VER="${PV}"
# necessary fix for prefix
sed -i "s/lib\$(LIBDIRSUFFIX)/$(get_libdir)/" makefile.in || die
}
src_configure() {
# fortran C bindings are not LTO compatible
filter-lto
econf CONF_CC=$(tc-getCC) CONF_CXX=$(tc-getCXX) CONF_FC=$(tc-getFC)
}
src_install() {
default
dolib.so build/libooptools.so
# The name used for requesting this library varies
dosym libooptools.so /usr/$(get_libdir)/libooptools.so.2.16
rm "${ED}"/usr/$(get_libdir)/libooptools.a || die
use doc && dodoc manual/*.pdf
}