commit:     c6076072b2f0378f92e5d4f280a9509041ff2a18
Author:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
AuthorDate: Fri Apr 12 09:08:19 2024 +0000
Commit:     Arthur Zamarin <arthurzam <AT> gentoo <DOT> org>
CommitDate: Fri Apr 12 09:27:14 2024 +0000
URL:        https://gitweb.gentoo.org/repo/gentoo.git/commit/?id=c6076072

sci-libs/dsdp: EAPI8

Signed-off-by: Arthur Zamarin <arthurzam <AT> gentoo.org>

 sci-libs/dsdp/dsdp-5.8-r4.ebuild | 89 ++++++++++++++++++++++++++++++++++++++++
 1 file changed, 89 insertions(+)

diff --git a/sci-libs/dsdp/dsdp-5.8-r4.ebuild b/sci-libs/dsdp/dsdp-5.8-r4.ebuild
new file mode 100644
index 000000000000..ac3c51fb830b
--- /dev/null
+++ b/sci-libs/dsdp/dsdp-5.8-r4.ebuild
@@ -0,0 +1,89 @@
+# Copyright 1999-2024 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+inherit multilib toolchain-funcs
+
+MY_P="${PN^^}${PV}"
+
+DESCRIPTION="Software for interior-point for semidefinite programming"
+HOMEPAGE="https://www.mcs.anl.gov/hs/software/DSDP/";
+SRC_URI="https://www.mcs.anl.gov/hs/software/DSDP/${MY_P}.tar.gz";
+S=${WORKDIR}/${MY_P}
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos"
+IUSE="doc examples"
+
+RDEPEND="virtual/lapack"
+DEPEND="${RDEPEND}"
+BDEPEND="virtual/pkgconfig"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-readsdpa.patch
+       "${FILESDIR}"/${P}-malloc.patch
+       "${FILESDIR}"/${P}-gold.patch
+)
+
+make_shared_lib() {
+       local soname=$(basename "${1%.a}")$(get_libname $(ver_cut 1))
+       local cflags=()
+
+       if [[ ${CHOST} == *-darwin* ]] ; then
+               cflags+=(
+                       "-Wl,-install_name"
+                       "-Wl,${EPREFIX}/usr/$(get_libdir)/${soname}"
+               )
+       else
+               cflags+=(
+                       "-shared" "-Wl,-soname=${soname}"
+                       "-Wl,--whole-archive" "${1}" "-Wl,--no-whole-archive"
+               )
+       fi
+       einfo "Making ${soname}"
+       ${2:-$(tc-getCC)} ${LDFLAGS}  \
+               "${cflags[@]}" \
+               -o $(dirname "${1}")/"${soname}" \
+               -lm $($(tc-getPKG_CONFIG) --libs blas lapack) || return 1
+}
+
+src_prepare() {
+       default
+       # to do proper parallel compilation
+       while IFS="" read -d $'\0' -r file; do
+               sed -i -e 's:make :$(MAKE) :g' "${file}" || die
+       done < <(find . -name Makefile -print0)
+       sed -i -e 's:make clean:$(MAKE) clean:g' make.include || die
+       sed -i \
+               -e "s|#\(DSDPROOT[[:space:]]*=\).*|\1${S}|" \
+               -e "s|\(CC[[:space:]]*=\).*|\1$(tc-getCC)|" \
+               -e "s|\(OPTFLAGS[[:space:]]*=\).*|\1${CFLAGS}|" \
+               -e "s|\(CLINKER[[:space:]]*=\).*|\1 \${CC} ${LDFLAGS}|" \
+               -e "s|\(LAPACKBLAS[[:space:]]*=\).*|\1 $($(tc-getPKG_CONFIG) 
--libs blas lapack)|" \
+               -e "s|\(^ARCH[[:space:]]*=\).*|\1$(tc-getAR) cr|" \
+               -e "s|\(^RANLIB[[:space:]]*=\).*|\1$(tc-getRANLIB)|" \
+               make.include || die
+}
+
+src_compile() {
+       emake OPTFLAGS="${CFLAGS} -fPIC" dsdplibrary
+       make_shared_lib lib/lib${PN}.a || die "doing shared lib failed"
+}
+
+src_test() {
+       emake -j1 example test
+}
+
+src_install() {
+       dolib.so lib/lib${PN}$(get_libname $(ver_cut 1))
+       dosym lib${PN}$(get_libname $(ver_cut 1)) \
+               /usr/$(get_libdir)/lib${PN}$(get_libname)
+
+       doheader include/*.h src/sdp/*.h
+
+       use doc && DOCS+=( docs/*.pdf )
+       use examples && DOCS+=( examples/. )
+       einstalldocs
+}

Reply via email to