summaryrefslogtreecommitdiff
blob: 3990f2bef69ec175edb05b28c6979bf62b5d6466 (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
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
# Copyright 1999-2015 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2

EAPI="5"
PYTHON_COMPAT=( python2_7 )
PYTHON_REQ_USE="tk"

inherit autotools fortran-2 distutils-r1 flag-o-matic multilib toolchain-funcs

MY_P=${P}.r2792

DESCRIPTION="Weak Signal Propagation Reporter"
HOMEPAGE="http://www.physics.princeton.edu/pulsar/K1JT/wspr.html"
SRC_URI="https://dev.gentoo.org/~tomjbe/distfiles/${MY_P}.tgz"
LICENSE="GPL-2"

SLOT="0"
KEYWORDS="~amd64 ~x86"
IUSE=""

RDEPEND="
	dev-python/pillow[tk,${PYTHON_USEDEP}]
	>=dev-python/numpy-1.9.0[${PYTHON_USEDEP}]
	virtual/python-pmw[${PYTHON_USEDEP}]
	sci-libs/fftw:3.0
	media-libs/hamlib
	media-libs/portaudio
	media-libs/libsamplerate"
DEPEND="${RDEPEND}"

S="${WORKDIR}/${MY_P}"

DOCS=( BUGS WSPR_Announcement.TXT WSPR0_Instructions.TXT WSPR_Quick_Start.TXT )

pkg_setup() {
	fortran-2_pkg_setup
}

get_fcomp() {
	case $(tc-getFC) in
	*gfortran* )	FCOMP="gfortran" ;;
	* ) 			FCOMP=$(tc-getFC) ;;
	esac
}

python_prepare_all() {
	tc-export FC
	get_fcomp
	export FC="${FCOMP}"

	local PATCHES=(
		"${FILESDIR}"/${PN}-2.00-libdir.patch
		"${FILESDIR}"/${P}-verbose.patch
		"${FILESDIR}"/${PN}-3.01-script.patch
		"${FILESDIR}"/${P}-PIL.patch
		# adapt to numpy-1.9 - bug #544504
		"${FILESDIR}"/${P}-numpy.patch
	)

	distutils-r1_python_prepare_all

	sed -i -e "s/LDFLAGS} ${LIBS}/LDFLAGS} -fPIC ${LIBS}/" Makefile.in || die
	sed -i -e "s#/usr/local/lib#/usr/$(get_libdir)#" configure.ac || die
	sed -i -e '/makedirs/d' setup.py || die
	eautoreconf
}

# Note: very hacky build system.
# autoconf which doesn't really need Python
# then custom Makefile which compiles the Python module with f2py
# and finally hacked setup.py which relies on w.so created by make

src_configure() {
	# configure the build of the fortran module
	econf --with-portaudio-lib-dir=/usr/$(get_libdir)

	# then fork the sources
	python_copy_sources
	DISTUTILS_IN_SOURCE_BUILD=1
}

python_compile() {
	# -shared is neded by f2py but cannot be set earlier as configure does
	# not like it
	local LDFLAGS=${LDFLAGS}
	append-ldflags -shared
	emake -j1
}

python_install_all() {
	distutils-r1_python_install_all

	dobin wspr
	insinto /usr/share/${PN}
	doins hamlib_rig_numbers
}