summaryrefslogtreecommitdiff
blob: 14f0115b803003d5edf750c345efc1de8695aa82 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# Copyright 1999-2024 Gentoo Authors
# Distributed under the terms of the GNU General Public License v2

EAPI=8

FORTRAN_NEEDED=test

inherit autotools fortran-2 flag-o-matic

DEB_PR="1"

# https://github.com/bastien-roucaries/cfortran is for the Debian fork
DESCRIPTION="Header file allowing to call Fortran routines from C and C++"
HOMEPAGE="https://www-zeus.desy.de/~burow/cfortran/ https://github.com/bastien-roucaries/cfortran"
SRC_URI="mirror://debian/pool/main/c/${PN}/${PN}_${PV}.orig.tar.gz"
SRC_URI+=" mirror://debian/pool/main/c/${PN}/${PN}_${PV}-${DEB_PR}.debian.tar.xz"

LICENSE="LGPL-2"
SLOT="0"
KEYWORDS="~alpha amd64 ~arm64 ~hppa ~ia64 ppc ppc64 ~riscv sparc x86 ~amd64-linux ~x86-linux"
IUSE="examples test"
RESTRICT="!test? ( test )"

src_prepare() {
	default

	if [[ -d "${WORKDIR}"/debian/patches ]] ; then
		eapply "${WORKDIR}"/debian/patches/
	fi

	eautoreconf

	if use examples; then
		# The examples are also used as tests and it's tricky to clean up
		# afterwards, just save a clean copy (sans Makefiles, as they only
		# cover the test phase) before the tests are run.
		cp -ar eg eg_src || die "Failed to preserve a clean copy of examples"
		rm -f eg_src/Makefile{,.am,.in}
	fi
}

src_configure() {
	use sparc && append-fflags $(test-flags-FC -fno-store-merging -fno-tree-slp-vectorize) # bug #818400
	# bug #866560
	filter-lto
	append-flags -fno-strict-aliasing
	append-cflags $(test-flags-CC -fcommon) # bug #899452
	default
}

src_install() {
	default

	# For compatibility with older versions
	dodir /usr/include/cfortran
	dosym -r /usr/include/cfortran.h /usr/include/cfortran/cfortran.h

	docinto debian
	dodoc "${WORKDIR}"/debian/{NEWS,changelog,copyright}

	if use examples; then
		docinto examples
		dodoc -r cfortest.c cfortex.f eg_src/*
	fi
}