View Raw Ebuild
# Copyright 2022 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2
EAPI=8
JAVA_PKG_IUSE="doc source"
inherit java-pkg-2 java-pkg-simple
DESCRIPTION="Java translation of the BLAS and LAPACK libraries"
HOMEPAGE="http://icl.cs.utk.edu/f2j/"
SRC_URI="https://github.com/Leo3418/f2j/archive/refs/tags/${P}.tar.gz"
# src/LICENSE: "The license covering the f2j source code is basically GPL with
# the addition of the BSD advertising clause."
LICENSE="BSD-4 GPL-2"
SLOT="0"
KEYWORDS="~amd64"
BDEPEND="
dev-lang/f2j
"
DEPEND="
>=virtual/jdk-1.8:*
doc? (
dev-java/f2jutil:0
)
"
RDEPEND="
>=virtual/jre-1.8:*
dev-java/f2jutil:0
"
# ${PN}-3.1.1 is the directory for version 0.8
S="${WORKDIR}/f2j-${P}/${PN}-3.1.1"
JAVA_SRC_DIR="src/org"
src_compile() {
# Although f2java generates both *.java and *.class, the Java source files
# should not be compiled; otherwise there would be runtime errors like
# "Warning: Untransformed {goto,label} remaining in program!"
# https://icl.utk.edu/f2j/faq/index.html#316
# The webpage mentions 'javab', whose source code is available but is
# buggy, and it has a custom, restrictive license
pushd src > /dev/null || die "Failed to enter to source directory"
f2java -p org.netlib.err \
error_reporting/err.f || die "Failed to compile err.f"
f2java -d -c Error_reporting -p org.netlib.blas \
blas/blas.f || die "Failed to compile blas.f"
f2java -d -c Error_reporting:Blas -p org.netlib.lapack \
lapack/lapack.f || die "Failed to compile lapack.f"
jar cf "${S}/${JAVA_JAR_FILENAME}" $(find org -name "*.class") ||
die "jar failed"
popd > /dev/null || die "Failed to leave to source directory"
if use doc; then
local apidoc="target/api"
local classpath="$(java-pkg_getjars --build-only f2jutil)"
mkdir -p "${apidoc}" || die "Failed to create Javadoc output directory"
ejavadoc -d "${apidoc}" \
-encoding "${JAVA_ENCODING}" -docencoding UTF-8 -charset UTF-8 \
-classpath "${classpath}" ${JAVADOC_ARGS:- -quiet} \
$(find "${JAVA_SRC_DIR}" -name "*.java")
fi
}
src_install() {
java-pkg-simple_src_install
java-pkg_register-dependency f2jutil
# Install *.f2j files, which can be reused when building other Java
# packages translated from Fortran that depend on this package
local pkg_dirname="${PN}"
[[ "${SLOT}" != "0" ]] && pkg_dirname+="-${SLOT}"
insinto "/usr/share/${pkg_dirname}/f2j"
doins src/{Error_reporting,Blas,Lapack}/*.f2j
einstalldocs # https://bugs.gentoo.org/789582
}