---- ./sys/grtermio.c.orig 2008-10-29 17:42:48.000000000 +0000
-+++ ./sys/grtermio.c 2008-10-29 19:54:43.000000000 +0000
+--- a/sys/grtermio.c 2008-10-29 17:42:48.000000000 +0000
++++ b/sys/grtermio.c 2008-10-29 19:54:43.000000000 +0000
@@ -7,6 +7,10 @@
#include <stdio.h>
#ifdef PG_PPU
#define GROTER groter_
---- ./sys/grfileio.c.orig 2008-10-29 15:10:02.000000000 +0000
-+++ ./sys/grfileio.c 2008-10-29 17:56:50.000000000 +0000
+--- a/sys/grfileio.c 2008-10-29 15:10:02.000000000 +0000
++++ b/sys/grfileio.c 2008-10-29 17:56:50.000000000 +0000
@@ -17,7 +17,9 @@
*/
#include <sys/types.h>
#include <fcntl.h>
---- ./drivers/figdisp_comm.c.orig 2008-10-29 15:09:15.000000000 +0000
-+++ ./drivers/figdisp_comm.c 2008-10-29 17:54:08.000000000 +0000
+--- a/drivers/figdisp_comm.c 2008-10-29 15:09:15.000000000 +0000
++++ b/drivers/figdisp_comm.c 2008-10-29 17:54:08.000000000 +0000
@@ -17,6 +17,8 @@
/* The system include files */
/* Get ntohs prototype or macro */
---- ./pgdispd/resdb.c.orig 2008-10-29 18:22:41.000000000 +0000
-+++ ./pgdispd/resdb.c 2008-10-29 20:10:22.000000000 +0000
+--- a/pgdispd/resdb.c 2008-10-29 18:22:41.000000000 +0000
++++ b/pgdispd/resdb.c 2008-10-29 20:10:22.000000000 +0000
@@ -47,6 +47,8 @@
#include <stdio.h>
#include <stdlib.h>
extern struct passwd *getpwuid();
struct passwd *pw;
register char *ptr;
---- ./pgdispd/proccom.c.orig 2008-10-29 15:03:34.000000000 +0000
-+++ ./pgdispd/proccom.c 2008-10-29 18:15:48.000000000 +0000
+--- a/pgdispd/proccom.c 2008-10-29 15:03:34.000000000 +0000
++++ b/pgdispd/proccom.c 2008-10-29 18:15:48.000000000 +0000
@@ -90,6 +90,7 @@
/* The system include files */
if (!len & savedshorts)
{ /* an incomplete command was sent! */
---- ./pgdispd/getvisuals.c.orig 2008-10-29 17:59:37.000000000 +0000
-+++ ./pgdispd/getvisuals.c 2008-10-29 18:00:18.000000000 +0000
+--- a/pgdispd/getvisuals.c 2008-10-29 17:59:37.000000000 +0000
++++ b/pgdispd/getvisuals.c 2008-10-29 18:00:18.000000000 +0000
@@ -30,6 +30,7 @@
#include "messages.h"
#define MAX_DEPTH 24 /* the maximum visual depth to use */
---- ./pgdispd/figcurs.c.orig 2008-10-29 17:58:22.000000000 +0000
-+++ ./pgdispd/figcurs.c 2008-10-29 18:14:02.000000000 +0000
+--- a/pgdispd/figcurs.c 2008-10-29 17:58:22.000000000 +0000
++++ b/pgdispd/figcurs.c 2008-10-29 18:14:02.000000000 +0000
@@ -19,6 +19,7 @@
/* The standard include files */
--- /dev/null
+# Copyright 1999-2017 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=6
+
+inherit eutils fortran-2 toolchain-funcs
+
+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:= )
+ tk? ( dev-lang/tk:= )"
+DEPEND="${RDEPEND}
+ doc? ( virtual/latex-base )"
+
+S="${WORKDIR}/${PN}"
+
+PATCHES=(
+ "${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
+)
+
+src_prepare() {
+ default
+ # gfortran < 4.3 does not compile gif, pp and wd drivers
+ if [[ $(tc-getFC) == *gfortran* ]] &&
+ [[ $(gcc-major-version)$(gcc-minor-version) -lt 43 ]] ; then
+ 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"
+ sed -e 's/GIDRIV/! GIDRIV/g' \
+ -e 's/PPDRIV/! GIDRIV/g' \
+ -e 's/WDDRIV/! GIDRIV/g' \
+ -i drivers.list || die "sed drivers failed"
+ fi
+
+ # fix pointers for 64 bits
+ if use amd64 || use ia64; then
+ sed -e 's/INTEGER PIXMAP/INTEGER*8 PIXMAP/g' \
+ -i drivers/{gi,pp,wd}driv.f || die "sed 64bits failed"
+ fi
+
+ cp sys_linux/g77_gcc.conf local.conf
+
+ sed -e "s:FCOMPL=.*:FCOMPL=\"$(tc-getFC)\":g" \
+ -e "s:CCOMPL=.*:CCOMPL=\"$(tc-getCC)\":g" \
+ -i local.conf || die "sed flags failed"
+
+ if [[ "$(tc-getFC)" = if* ]]; then
+ sed -e 's/-Wall//g' \
+ -e 's/TK_LIBS="/TK_LIBS="-nofor-main /' \
+ -i local.conf || die "sed drivers failed"
+ fi
+
+ sed -e "s:/usr/local/pgplot:${EPREFIX}/usr/$(get_libdir)/pgplot:g" \
+ -e "s:/usr/local/bin:${EPREFIX}/usr/bin:g" \
+ -i 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|${EPREFIX}/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=${EPREFIX%/}/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 pgplot.html
+ dodoc 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
+}