sci-libs/dsdp: revbump (EAPI 4 -> 6)
authorGerhard Bräunlich <wippbox@gmx.net>
Mon, 5 Sep 2016 16:16:24 +0000 (18:16 +0200)
committerDavid Seifert <soap@gentoo.org>
Tue, 6 Sep 2016 20:12:39 +0000 (22:12 +0200)
Package-Manager: portage-2.2.28
Closes: https://github.com/gentoo/gentoo/pull/2249

Signed-off-by: David Seifert <soap@gentoo.org>
sci-libs/dsdp/dsdp-5.8-r3.ebuild [new file with mode: 0644]
sci-libs/dsdp/files/dsdp-5.8-malloc.patch
sci-libs/dsdp/files/dsdp-5.8-readsdpa.patch

diff --git a/sci-libs/dsdp/dsdp-5.8-r3.ebuild b/sci-libs/dsdp/dsdp-5.8-r3.ebuild
new file mode 100644 (file)
index 0000000..625dc23
--- /dev/null
@@ -0,0 +1,80 @@
+# Copyright 1999-2016 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Id$
+
+EAPI=6
+
+inherit multilib toolchain-funcs versionator
+
+MYP=DSDP${PV}
+
+DESCRIPTION="Software for interior-point for semidefinite programming"
+HOMEPAGE="http://www.mcs.anl.gov/hs/software/DSDP/"
+SRC_URI="http://www.mcs.anl.gov/hs/software/DSDP//${MYP}.tar.gz"
+
+LICENSE="BSD"
+SLOT="0"
+KEYWORDS="~amd64 ~x86 ~amd64-linux ~x86-linux ~ppc-macos ~x64-macos ~x86-macos"
+IUSE="doc examples"
+
+RDEPEND="virtual/lapack"
+DEPEND="${RDEPEND}
+       virtual/pkgconfig"
+
+S="${WORKDIR}/${MYP}"
+
+PATCHES=(
+       "${FILESDIR}"/${P}-readsdpa.patch
+       "${FILESDIR}"/${P}-malloc.patch
+       "${FILESDIR}"/${P}-gold.patch
+)
+
+make_shared_lib() {
+       local soname=$(basename "${1%.a}")$(get_libname $(get_major_version))
+       einfo "Making ${soname}"
+       ${2:-$(tc-getCC)} ${LDFLAGS}  \
+               -shared -Wl,-soname="${soname}" \
+               $([[ ${CHOST} == *-darwin* ]] && echo "-Wl,-install_name -Wl,${EPREFIX}/usr/$(get_libdir)/${soname}") \
+               -Wl,--whole-archive "${1}" -Wl,--no-whole-archive \
+               -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 $(get_major_version))
+       dosym lib${PN}$(get_libname $(get_major_version)) \
+               /usr/$(get_libdir)/lib${PN}$(get_libname)
+
+       doheader include/*.h src/sdp/*.h
+
+       use doc && DOCS+=( docs/*.pdf )
+       use examples && DOCS+=( examples/. )
+       einstalldocs
+}
index 48e067d1d89820ff271deb0e1f2474a21839a5db..487c2a67d270c79074ac47eda67145d9743521bc 100644 (file)
@@ -1,5 +1,5 @@
---- src/sys/dsdploginfo.c.orig 2012-04-04 09:59:25.212518434 +1200
-+++ src/sys/dsdploginfo.c      2012-04-04 10:00:05.676522161 +1200
+--- a/src/sys/dsdploginfo.c
++++ b/src/sys/dsdploginfo.c
 @@ -6,7 +6,6 @@
  #include <stdarg.h>
  #include <sys/types.h>
index f555e50ba0ce9bcac821622696abf41067a6d1ba..799db6afd5ae4190366484a4e3345ad9e4ebdd3a 100644 (file)
@@ -1,5 +1,5 @@
---- examples/readsdpa.c.orig   2011-03-14 16:49:10.000000000 +0000
-+++ examples/readsdpa.c        2011-03-14 17:05:52.000000000 +0000
+--- a/examples/readsdpa.c
++++ b/examples/readsdpa.c
 @@ -87,7 +87,7 @@
    double   ddobj,ppobj,scl,dpot;
    char     problemname[100],thisline[100], filename[300],savefile[100];