| # Copyright 1999-2013 Gentoo Foundation |
| # Distributed under the terms of the GNU General Public License v2 |
| # $Id$ |
| |
| EAPI=4 |
| |
| inherit eutils fortran-2 toolchain-funcs multilib |
| |
| MY_P="${PN}${PV//.}" |
| |
| DESCRIPTION="FORTRAN/C device-independent scientific graphic library" |
| HOMEPAGE="http://www.astro.caltech.edu/~tjp/pgplot/" |
| SRC_URI="ftp://ftp.astro.caltech.edu/pub/pgplot/${MY_P}.tar.gz" |
| |
| SLOT="0" |
| LICENSE="free-noncomm" |
| KEYWORDS="~amd64 ~arm ~ia64 ~ppc ~x86 ~amd64-linux ~x86-linux" |
| IUSE="doc motif static-libs tk" |
| |
| RDEPEND=" |
| media-libs/libpng |
| x11-libs/libX11 |
| x11-libs/libXt |
| motif? ( >=x11-libs/motif-2.3:0 ) |
| tk? ( dev-lang/tk )" |
| DEPEND="${RDEPEND} |
| doc? ( virtual/latex-base )" |
| |
| S="${WORKDIR}/${PN}" |
| |
| src_prepare() { |
| epatch \ |
| "${FILESDIR}"/${PN}-drivers.patch \ |
| "${FILESDIR}"/${PN}-makemake.patch \ |
| "${FILESDIR}"/${PN}-compile-setup.patch \ |
| "${FILESDIR}"/${PN}-headers.patch \ |
| "${FILESDIR}"/${PN}-libpng15.patch \ |
| "${FILESDIR}"/${PN}-tk86.patch |
| |
| # gfortran < 4.3 does not compile gif, pp and wd drivers |
| if [[ $(tc-getFC) == *gfortran* ]] && |
| [[ $(gcc-major-version)$(gcc-minor-version) -lt 43 ]] ; then |
| echo |
| ewarn "Warning!" |
| ewarn "gfortran < 4.3 selected: does not compile all drivers" |
| ewarn "disabling gif, wd, and ppd drivers" |
| ewarn "if you want more drivers, use gfortran >= 4.3" |
| echo |
| sed -i \ |
| -e 's/GIDRIV/! GIDRIV/g' \ |
| -e 's/PPDRIV/! GIDRIV/g' \ |
| -e 's/WDDRIV/! GIDRIV/g' \ |
| drivers.list || die "sed drivers failed" |
| fi |
| |
| # fix pointers for 64 bits |
| if use amd64 || use ia64; then |
| sed -i \ |
| -e 's/INTEGER PIXMAP/INTEGER*8 PIXMAP/g' \ |
| drivers/{gi,pp,wd}driv.f || die "sed 64bits failed" |
| fi |
| |
| cp sys_linux/g77_gcc.conf local.conf |
| |
| sed -i \ |
| -e "s:FCOMPL=.*:FCOMPL=\"$(tc-getFC)\":g" \ |
| -e "s:CCOMPL=.*:CCOMPL=\"$(tc-getCC)\":g" \ |
| local.conf || die "sed flags failed" |
| |
| if [[ "$(tc-getFC)" = if* ]]; then |
| sed -i \ |
| -e 's/-Wall//g' \ |
| -e 's/TK_LIBS="/TK_LIBS="-nofor-main /' \ |
| local.conf || die "sed drivers failed" |
| fi |
| |
| sed -i \ |
| -e "s:/usr/local/pgplot:/usr/$(get_libdir)/pgplot:g" \ |
| -e "s:/usr/local/bin:/usr/bin:g" \ |
| src/grgfil.f makehtml maketex || die "sed path failed" |
| |
| use motif && sed -i -e '/XMDRIV/s/!//' drivers.list |
| use tk && sed -i -e '/TKDRIV/s/!//' drivers.list |
| } |
| |
| src_configure() { |
| ./makemake . linux |
| # post makefile creation prefix hack |
| sed -i -e "s|/usr|${EROOT}/usr|g" makefile || die |
| } |
| |
| src_compile() { |
| emake \ |
| CFLAGS="${CFLAGS} -fPIC" \ |
| FFLAGS="${FFLAGS} -fPIC" \ |
| shared cpg-shared pgxwin_server pgdisp pgplot.doc |
| |
| use tk && emake CFLAGS="${CFLAGS} -fPIC" libtkpgplot.so |
| use motif && emake CFLAGS="${CFLAGS} -fPIC" libXmPgplot.so |
| |
| emake -j1 clean |
| use static-libs && emake all cpg |
| |
| if use doc; then |
| export VARTEXFONTS="${T}/fonts" |
| emake pgplot.html pgplot-routines.tex |
| pdflatex pgplot-routines.tex |
| pdflatex pgplot-routines.tex |
| fi |
| |
| # this just cleans out not needed files |
| emake -j1 clean |
| } |
| |
| src_test() { |
| # i can go to 16 |
| local i j |
| for i in 1 2 3; do |
| emake pgdemo${i} |
| # j can also be LATEX CPS... |
| for j in NULL PNG PS CPS LATEX; do |
| local testexe=./test_${j}_${i} |
| echo "LD_LIBRARY_PATH=. ./pgdemo${i} <<EOF" > ${testexe} |
| echo "/${j}" >> ${testexe} |
| echo "EOF" >> ${testexe} |
| sh ${testexe} || die "test ${i} failed" |
| done |
| done |
| } |
| |
| src_install() { |
| insinto /usr/$(get_libdir)/pgplot |
| doins grfont.dat grexec.f *.inc rgb.txt |
| echo "PGPLOT_FONT=${EROOT%/}/usr/$(get_libdir)/pgplot/grfont.dat" >> 99pgplot |
| doenvd 99pgplot |
| |
| dolib.so libpgplot.so* |
| dobin pgxwin_server pgdisp |
| |
| # C binding |
| insinto /usr/include |
| doins cpgplot.h |
| dolib.so libcpgplot.so* |
| |
| if use motif; then |
| insinto /usr/include |
| doins XmPgplot.h |
| dolib.so libXmPgplot.so* |
| fi |
| |
| if use tk; then |
| insinto /usr/include |
| doins tkpgplot.h |
| dolib.so libtkpgplot.so* |
| fi |
| |
| use static-libs && dolib.a lib*pgplot.a |
| |
| # minimal doc |
| dodoc aaaread.me pgplot.doc |
| newdoc pgdispd/aaaread.me pgdispd.txt |
| |
| if use doc; then |
| dodoc cpg/cpgplot.doc applications/curvefit/curvefit.doc |
| dohtml pgplot.html |
| insinto /usr/share/doc/${PF} |
| doins pgplot-routines.pdf pgplot-routines.tex |
| insinto /usr/share/doc/${PF}/examples |
| doins examples/* cpg/cpgdemo.c |
| insinto /usr/share/doc/${PF}/applications |
| doins -r applications/* |
| if use motif; then |
| insinto /usr/share/doc/${PF}/pgm |
| doins pgmf/* drivers/xmotif/pgmdemo.c |
| fi |
| if use tk; then |
| insinto /usr/share/doc/${PF}/pgtk |
| doins drivers/xtk/pgtkdemo.* |
| fi |
| fi |
| } |