Diff superlu_mt-3.1-r1 with a superlu_mt-4.0.2

/usr/portage/sci-libs/superlu_mt/superlu_mt-4.0.2.ebuild 2026-06-11 19:17:05.701133831 +0300
3 3

  
4 4
EAPI=8
5 5

  
6
inherit toolchain-funcs
6
inherit cmake toolchain-funcs
7 7

  
8 8
MY_PN=SuperLU_MT
9 9
SOVERSION=$(ver_cut 1)
10 10

  
11 11
DESCRIPTION="Multithreaded sparse LU factorization library"
12 12
HOMEPAGE="https://portal.nersc.gov/project/sparse/superlu/"
13
SRC_URI="https://portal.nersc.gov/project/sparse/superlu/${PN}_${PV}.tar.gz"
13
SRC_URI="https://github.com/xiaoyeli/${PN}/archive/refs/tags/v${PV}.tar.gz
14
	-> ${P}.tar.gz"
14 15

  
15 16
LICENSE="BSD"
16 17
SLOT="0/${SOVERSION}"
17
KEYWORDS="amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
18
IUSE="doc examples int64 openmp static-libs test threads"
18
KEYWORDS="~amd64 ~arm ~arm64 ~ppc ~ppc64 ~riscv ~x86"
19
IUSE="doc examples int64 openmp test threads"
19 20
RESTRICT="!test? ( test )"
20 21
REQUIRED_USE="|| ( openmp threads )"
21 22

  
......
24 25
BDEPEND="virtual/pkgconfig
25 26
	test? ( app-shells/tcsh )"
26 27

  
27
S="${WORKDIR}/${MY_PN}_${PV}"
28

  
29 28
PATCHES=(
30
	"${FILESDIR}"/${PN}-3.1-duplicate-symbols.patch
31
	"${FILESDIR}"/${PN}-3.1-fix-predefs.patch
29
	"${FILESDIR}"/${P}-gentoo.patch
32 30
	"${FILESDIR}"/${P}-proto.patch
33
	#"${FILESDIR}"/${P}-prototype.patch
31
	"${FILESDIR}"/${P}-examples.patch
34 32
)
35 33

  
36 34
pkg_pretend() {
......
41 39
	[[ ${MERGE_TYPE} != binary ]] && use openmp && ! use threads && tc-check-openmp
42 40
}
43 41

  
44
src_prepare() {
45
	default
46
	cat <<-EOF > make.inc
47
		CC=$(tc-getCC)
48
		LOADER=$(tc-getCC)
49
		ARCH=$(tc-getAR)
50
		RANLIB=$(tc-getRANLIB)
51
		PREDEFS=${CPPFLAGS} -DUSE_VENDOR_BLAS -DPRNTlevel=0 -DDEBUGlevel=0 $(use int64 && echo -D_LONGINT)
52
		CDEFS=-DAdd_
53
		CFLAGS=${CFLAGS} ${CTHREADS} \$(PIC)
54
		BLASLIB=$($(tc-getPKG_CONFIG) --libs blas)
55
		MATHLIB=-lm
56
		NOOPTS=-O0 \$(PIC)
57
		ARCHFLAGS=cr
58
		LOADOPTS=${LDFLAGS} ${LDTHREADS}
59
		SUPERLULIB=lib${PN}.a
60
		TMGLIB=libtmglib.a
61
	EOF
62
	SONAME=lib${PN}.so.${SOVERSION}
63
	sed -e "s|../SRC|${EPREFIX}/usr/include/${PN}|" \
64
		-e '/:.*$(SUPERLULIB)/s|../lib/$(SUPERLULIB)||g' \
65
		-e 's|../lib/$(SUPERLULIB)|-lsuperlu_mt|g' \
66
		-i EXAMPLE/Makefile || die
67

  
42
src_configure() {
43
	local mycmakeargs=(
44
		-DBUILD_SHARED_LIBS=ON
45
		-DLONGINT=$(usex int64)
46
		-Denable_examples=$(usex examples)
47
		-Denable_tests=$(usex test)
48
	)
68 49
	if use openmp && ! use threads; then
69
		CTHREADS="-D__OPENMP"
70
		LDTHREADS="-fopenmp"
50
		mycmakeargs+=( -DPLAT=_OPENMP )
71 51
	else
72
		CTHREADS="-D__PTHREAD"
73
		LDTHREADS="-pthread"
52
		mycmakeargs+=( -DPLAT=_PTHREAD )
74 53
	fi
75
}
76

  
77
src_compile() {
78
	# shared library
79
	emake PIC="-fPIC" \
80
		ARCH="echo" \
81
		ARCHFLAGS="" \
82
		RANLIB="echo" \
83
		superlulib
84
	$(tc-getCC) ${LDFLAGS} ${LDTHREADS} -shared -Wl,-soname=${SONAME} SRC/*.o \
85
				$($(tc-getPKG_CONFIG) --libs blas) -lm -o lib/${SONAME} || die
86
	ln -s ${SONAME} lib/libsuperlu_mt.so || die
87

  
88
	use static-libs && rm -f SRC/*.o &&	\
89
		emake  PIC="" superlulib
90
}
91 54

  
92
src_test() {
93
	emake -j1 tmglib
94
	LD_LIBRARY_PATH="${S}/lib:${LD_LIBRARY_PATH}" \
95
		emake SUPERLULIB="${SONAME}" testing
55
	cmake_src_configure
96 56
}
97 57

  
98 58
src_install() {
99
	dolib.so lib/*so*
100
	use static-libs && dolib.a lib/*.a
101
	insinto /usr/include/${PN}
102
	doins SRC/*h
103
	dodoc README
59
	cmake_src_install
104 60
	use doc && dodoc DOC/ug.pdf
105 61
	if use examples; then
106 62
		docinto /examples
107
		dodoc -r EXAMPLE/* make.inc
63
		dodoc -r EXAMPLE/*
108 64
	fi
109 65
}
Thank you!