summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'sci-libs/cdf/cdf-3.8.0.ebuild')
-rw-r--r--sci-libs/cdf/cdf-3.8.0.ebuild133
1 files changed, 133 insertions, 0 deletions
diff --git a/sci-libs/cdf/cdf-3.8.0.ebuild b/sci-libs/cdf/cdf-3.8.0.ebuild
new file mode 100644
index 000000000000..4350f3e58cc9
--- /dev/null
+++ b/sci-libs/cdf/cdf-3.8.0.ebuild
@@ -0,0 +1,133 @@
+# Copyright 1999-2021 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=7
+
+inherit java-pkg-opt-2 multilib toolchain-funcs
+
+MY_DP="${PN}$(ver_cut 1)$(ver_cut 2)"
+MY_P="${MY_DP}_$(ver_cut 3)"
+
+DESCRIPTION="Common Data Format I/O library for multi-dimensional data sets"
+HOMEPAGE="https://cdf.gsfc.nasa.gov"
+SRC_BASE="https://spdf.gsfc.nasa.gov/pub/software/${PN}/dist/${MY_P}/unix/"
+
+SRC_URI="${SRC_BASE}/${MY_P}-dist-${PN}.tar.gz
+ java? ( ${SRC_BASE}/${MY_P}-dist-java.tar.gz )
+ doc? (
+ ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}ifd.pdf
+ ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0crm.pdf
+ ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0csrm.pdf
+ ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0frm.pdf
+ ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0prm.pdf
+ ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0ug.pdf
+ ${SRC_BASE}/${MY_DP}_documentation/${MY_DP}0vbrm.pdf
+ )"
+
+LICENSE="CDF"
+SLOT="0"
+KEYWORDS="~amd64 ~ppc ~x86 ~amd64-linux ~x86-linux"
+IUSE="doc examples java ncurses static-libs"
+RESTRICT="bindist"
+
+RDEPEND="
+ java? ( >=virtual/jre-1.8:= )
+ ncurses? ( sys-libs/ncurses:0= )
+"
+DEPEND="
+ ${RDEPEND}
+ ncurses? ( virtual/pkgconfig )
+"
+
+S="${WORKDIR}/${MY_P}-dist"
+
+# respect cflags, ldflags, soname
+PATCHES=(
+ "${FILESDIR}"/${P}-respect-flags.patch
+)
+
+src_prepare() {
+ default
+
+ # use proper lib dir
+ sed -i \
+ -e "s:\$(INSTALLDIR)/lib:\$(INSTALLDIR)/$(get_libdir):g" \
+ Makefile || die "sed failed"
+}
+
+src_compile() {
+ PV_SO=${PV:0:1}
+ emake \
+ OS=linux \
+ CC=$(tc-getCC) \
+ ENV=gnu \
+ SHARED=yes \
+ SHAREDEXT_linux=so.${PV_SO} \
+ CURSESLIB_linux_gnu="$(usex ncurses "$($(tc-getPKG_CONFIG) --libs ncurses)" "")" \
+ CURSES=$(usex ncurses) \
+ ${myconf} \
+ all
+
+ if use java; then
+ export CDF_BASE="${S}"
+ export CDF_LIB="${S}/src/lib"
+ cd cdfjava/jni
+ $(tc-getCC) \
+ ${CFLAGS} -fPIC \
+ -I${CDF_BASE}/src/include \
+ -I$(java-config -O)/include \
+ -I$(java-config -O)/include/linux \
+ -c cdfNativeLibrary.c \
+ -o cdfNativeLibrary.o \
+ || die "compiling java lib failed"
+ $(tc-getCC) \
+ ${LDFLAGS} \
+ -shared cdfNativeLibrary.o \
+ -Wl,-soname=libcdfNativeLibrary.so.${PV_SO} \
+ -L${CDF_LIB} -lcdf -lm \
+ -o libcdfNativeLibrary.so.${PV_SO} \
+ || die "linking java lib failed"
+ fi
+}
+
+src_test() {
+ emake -j1 test
+}
+
+src_install() {
+ dodir /usr/bin /usr/$(get_libdir)
+ # -j1 (fragile non-autotooled make)
+ emake -j1 \
+ INSTALLDIR="${ED}/usr" \
+ SHAREDEXT=so.${PV_SO} \
+ install
+ dosym libcdf.so.${PV_SO} /usr/$(get_libdir)/libcdf.so
+ use static-libs || rm "${ED}"/usr/$(get_libdir)/libcdf.a
+ dodoc Release.notes CHANGES.txt Welcome.txt
+ doenvd "${FILESDIR}"/50cdf
+
+ if use doc; then
+ dodoc "${DISTDIR}"/${MY_DP}{0{crm,csrm,frm,prm,ug,vbrm},ifd}.pdf
+ fi
+
+ if use examples; then
+ docinto /usr/share/doc/${PF}/examples
+ dodoc samples/*
+ fi
+
+ if use java; then
+ cd cdfjava || die
+ dolib.so jni/libcdfNativeLibrary.so.${PV_SO}
+ dosym libcdfNativeLibrary.so.${PV_SO} \
+ /usr/$(get_libdir)/libcdfNativeLibrary.so
+ java-pkg_dojar */*.jar
+ if use examples; then
+ docinto /usr/share/doc/${PF}/examples/java
+ dodoc examples/*
+ fi
+ fi
+
+ # move this to a better location
+ dodir "/usr/share/${PF}"
+ mv "${ED}/usr/CDFLeapSeconds.txt" "${ED}/usr/share/${PF}/" || die
+}