diff options
Diffstat (limited to 'sci-libs/pgplot/pgplot-5.2.2-r6.ebuild')
-rw-r--r-- | sci-libs/pgplot/pgplot-5.2.2-r6.ebuild | 181 |
1 files changed, 181 insertions, 0 deletions
diff --git a/sci-libs/pgplot/pgplot-5.2.2-r6.ebuild b/sci-libs/pgplot/pgplot-5.2.2-r6.ebuild new file mode 100644 index 000000000000..17e77d90e4cb --- /dev/null +++ b/sci-libs/pgplot/pgplot-5.2.2-r6.ebuild @@ -0,0 +1,181 @@ +# 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 +} |