gnuplot: import from meta-smartphone

Signed-off-by: Martin Jansa <Martin.Jansa@gmail.com>
This commit is contained in:
Martin Jansa 2012-07-30 23:44:51 +02:00
parent 44118edc75
commit edd4f5c9bb
7 changed files with 597 additions and 0 deletions

View File

@ -0,0 +1,44 @@
Upstream-Status: Backport
It's fixed in 4.6 and 4.7(HEAD)
http://sourceforge.net/tracker/?func=detail&aid=3523591&group_id=2055&atid=102055
diff -uNr gnuplot-4.4.4.orig/Makefile.am gnuplot-4.4.4/Makefile.am
--- gnuplot-4.4.4.orig/Makefile.am 2012-07-20 10:54:49.075828905 +0200
+++ gnuplot-4.4.4/Makefile.am 2012-07-20 10:55:22.380831313 +0200
@@ -1,5 +1,5 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
-AUTOMAKE_OPTIONS = foreign 1.2h
+AUTOMAKE_OPTIONS = foreign
SUBDIRS = config m4 term src $(LISPDIR) man share
diff -uNr gnuplot-4.4.4.orig/configure.in gnuplot-4.4.4/configure.in
--- gnuplot-4.4.4.orig/configure.in 2011-09-02 06:09:40.000000000 +0200
+++ gnuplot-4.4.4/configure.in 2012-07-20 10:55:53.289833224 +0200
@@ -16,10 +16,11 @@
dnl configure.in body
dnl Compiler characteristics
-dnl Check for ANSI C prototypes, the const and inline keywords,
-dnl and ANSI style stringification
+dnl Check for the const and inline keywords and ANSI style stringification
+dnl automake 1.12 dropped support for AM_C_PROTOTYPES and ansi2knr
+dnl But our code still tests for #ifdef PROTOTYPES, so define it here
+AC_DEFINE(PROTOTYPES,1,[Automake 1.12 dropped support for building without prototypes])
AC_PROG_CC
-AM_C_PROTOTYPES
AC_PROG_CPP
AC_C_CONST
AC_C_INLINE
diff -uNr gnuplot-4.4.4.orig/src/Makefile.am gnuplot-4.4.4/src/Makefile.am
--- gnuplot-4.4.4.orig/src/Makefile.am 2010-10-06 06:53:16.000000000 +0200
+++ gnuplot-4.4.4/src/Makefile.am 2012-07-20 10:56:02.376834548 +0200
@@ -1,5 +1,5 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
-AUTOMAKE_OPTIONS = ansi2knr foreign 1.2h
+AUTOMAKE_OPTIONS = foreign
# in the spirit of automake ...
pkglibexecdir = $(libexecdir)/@PACKAGE@/@VERSION_MAJOR@

View File

@ -0,0 +1,11 @@
--- /tmp/Makefile.am 2007-08-23 13:10:15.560659023 +0200
+++ gnuplot-4.2.0/Makefile.am 2007-08-23 13:10:34.961764629 +0200
@@ -1,7 +1,7 @@
## Process this file with automake to produce Makefile.in -*-Makefile-*-
AUTOMAKE_OPTIONS = foreign 1.2h
-SUBDIRS = config m4 term src docs $(LISPDIR) man demo tutorial share
+SUBDIRS = config m4 term src $(LISPDIR) man share
EXTRA_DIST = BUGS CodeStyle Copyright FAQ GNUmakefile INSTALL INSTALL.gnu \
Makefile.maint PATCHLEVEL PGPKEYS PORTING README README.1ST README.exp \

View File

@ -0,0 +1,35 @@
DESCRIPTION = "Gnuplot is a portable command-line driven interactive datafile \
(text or binary) and function plotting utility."
HOMEPAGE = "http://www.gnuplot.info/"
SECTION = "console/scientific"
LICENSE = "BSD-4"
LIC_FILES_CHKSUM = "file://Copyright;md5=243a186fc2fd3b992125d60d5b1bab8f"
DEPENDS = "virtual/libx11 gd cairo readline"
inherit autotools
acpaths = ""
EXTRA_OECONF = "--with-readline=${STAGING_LIBDIR}/.. \
--without-lisp-files \
--without-tutorial \
--disable-wxwidgets"
do_compile_prepend() {
install -m 0644 ${WORKDIR}/qtplot-0.2/qtopia.trm ${S}/term/
}
do_install_append() {
install -d ${D}${datadir}/applications/
install -m 0644 ${WORKDIR}/gnuplot.desktop ${D}${datadir}/applications/
install -d ${D}${datadir}/pixmaps/
install -m 0644 ${WORKDIR}/gnuplot.png ${D}${datadir}/pixmaps/
}
PACKAGES =+ "${PN}-x11-dbg ${PN}-x11"
DESCRIPTION_${PN}-x11 = "X11 display terminal for Gnuplot."
SECTION_${PN}-x11 = "x11/scientific"
FILES_${PN}-x11 = "${libexecdir} ${datadir}/applications ${datadir}/pixmaps ${libdir}/X11 "
FILES_${PN} += "${datadir}/texmf"
FILES_${PN}-x11-dbg += "${libexecdir}/gnuplot/*/.debug"

View File

@ -0,0 +1,8 @@
[Desktop Entry]
Name=Gnuplot
Comment=Plot data and function graphs
Exec=x-terminal-emulator -e gnuplot
Terminal=false
Type=Application
Icon=gnuplot
Categories=Science;

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

View File

@ -0,0 +1,483 @@
/*
* $Id: dumb.trm,v 1.16 2004/04/13 17:24:16 broeker Exp $
*
*/
/* GNUPLOT - qtopia.trm */
/*[
* Copyright 1991 - 1993, 1998, 2004 Thomas Williams, Colin Kelley
*
* Permission to use, copy, and distribute this software and its
* documentation for any purpose with or without fee is hereby granted,
* provided that the above copyright notice appear in all copies and
* that both that copyright notice and this permission notice appear
* in supporting documentation.
*
* Permission to modify the software is granted, but not the right to
* distribute the complete modified source code. Modifications are to
* be distributed as patches to the released version. Permission to
* distribute binaries produced by compiling modified sources is granted,
* provided you
* 1. distribute the corresponding source modifications from the
* released version in the form of a patch file along with the binaries,
* 2. add special version identification to distinguish your version
* in addition to the base release version number,
* 3. provide your name and address as the primary contact for the
* support of your modified version, and
* 4. retain our contact information in regard to use of the base
* software.
* Permission to distribute the released version of the source code along
* with corresponding source modifications in the form of a patch file is
* granted with same provisions 2 through 4 for binary distributions.
*
* This software is provided "as is" without express or implied warranty
* to the extent permitted by applicable law.
]*/
/*
* This file is included by ../term.c.
*
* This terminal driver supports:
* qtopia terminals
*
* AUTHORS
* Michael Neuroth, 2004-05-16
* INTERNET: michael.neuroth@freenet.de
*
* send your comments or suggestions to (gnuplot-info@lists.sourceforge.net).
*
*/
#include "driver.h"
#define NO_QTOPIA_ENHANCED_SUPPORT
#ifdef TERM_REGISTER
register_term(qtopia_driver)
#endif
#ifdef TERM_PROTO
TERM_PUBLIC void QTOPIA_options __PROTO((void));
TERM_PUBLIC void QTOPIA_init __PROTO((void));
TERM_PUBLIC void QTOPIA_graphics __PROTO((void));
TERM_PUBLIC void QTOPIA_text __PROTO((void));
TERM_PUBLIC void QTOPIA_reset __PROTO((void));
TERM_PUBLIC void QTOPIA_linetype __PROTO((int linetype));
TERM_PUBLIC void QTOPIA_move __PROTO((unsigned int x, unsigned int y));
TERM_PUBLIC void QTOPIA_point __PROTO((unsigned int x, unsigned int y,
int point));
TERM_PUBLIC void QTOPIA_vector __PROTO((unsigned int x, unsigned int y));
TERM_PUBLIC void QTOPIA_put_text __PROTO((unsigned int x, unsigned int y,
const char *str));
TERM_PUBLIC void QTOPIA_arrow __PROTO((unsigned int sx, unsigned int sy,
unsigned int ex, unsigned int ey,
int head));
#define ENHqtopia_put_text NULL
#define QTOPIA_XMAX 4096
#define QTOPIA_YMAX 4096
#ifdef ZAURUS
#define QTOPIA_VCHAR (QTOPIA_YMAX/25)
#define QTOPIA_HCHAR (QTOPIA_XMAX/40)
#define QTOPIA_VTIC (QTOPIA_YMAX/50)
#define QTOPIA_HTIC (QTOPIA_XMAX/40)
#else
#define QTOPIA_VCHAR (QTOPIA_YMAX/25)
#define QTOPIA_HCHAR (QTOPIA_XMAX/50)
#define QTOPIA_VTIC (QTOPIA_YMAX/100)
#define QTOPIA_HTIC (QTOPIA_XMAX/150)
#endif
#endif /* TERM_PROTO */
#ifdef TERM_BODY
/*#include <winsock2.h>*/
/* needs: ws2_32.lib */
#ifndef _MSC_VER
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#endif
#define QTOPIA_MAX_BUFFER 512
#define QTOPIA_MAX_DELAY_COUNT 20 /* * 100 ms = 2 s */
#ifdef _MSC_VER
#define QTOPIA_BAD_SOCKET INVALID_SOCKET /* -1 */
#define QTOPIA_BAD_CONNECT SOCKET_ERROR
#else
#define QTOPIA_BAD_SOCKET -1
#define QTOPIA_BAD_CONNECT -1
#endif
#define QTOPIA_PORT_NO 5050
static int qtopia_client_socket = QTOPIA_BAD_SOCKET;
static unsigned short qtopia_port_no = QTOPIA_PORT_NO;
static char qtopia_host_name[QTOPIA_MAX_BUFFER+1] = { "localhost" };
static int OpenClient __PROTO(( int test));
static void CloseClient();
static void MySleep( delay )
int delay;
{
#ifdef _MSC_VER
Sleep( delay );
#else
usleep( delay );
#endif
}
static void InitSockets()
{
#ifdef _MSC_VER
WORD wVersionRequested;
WSADATA wsaData;
int err;
wVersionRequested = MAKEWORD( 2, 2 );
err = WSAStartup( wVersionRequested, &wsaData );
#endif
}
static void ExitSockets()
{
#ifdef _MSC_VER
WSACleanup();
#endif
}
static int CheckForQtplot( count )
int count;
{
/* test (via sockets) if qtplot is allready running */
if( !OpenClient( 1 ) )
{
/* give qtplot a litle bit time to start... */
if( count < QTOPIA_MAX_DELAY_COUNT )
{
if( count == 0 )
{
#ifdef _MSC_VER
system( "start qtplot" );
#else
system( "qtplot&" );
#endif
}
MySleep(100);
return CheckForQtplot( count+1 );
}
else
{
return 0;
}
}
else
{
CloseClient();
return 1;
}
}
static int OpenClient( test )
int test;
{
int len;
struct sockaddr_in address;
int result;
/* Create a socket for the client. */
qtopia_client_socket = socket(AF_INET, SOCK_STREAM, 0);
if( qtopia_client_socket != QTOPIA_BAD_SOCKET )
{
/* Name the socket, as agreed with the server. */
address.sin_family = AF_INET;
address.sin_addr.s_addr = inet_addr(/*qtopia_host_name*/"127.0.0.1"); /* localhost */
address.sin_port = htons(qtopia_port_no);
len = sizeof(address);
/* Now connect our socket to the server's socket. */
result = connect(qtopia_client_socket, (struct sockaddr *)&address, len);
if( result == QTOPIA_BAD_SOCKET )
{
/* mark this socket as bad */
close( qtopia_client_socket );
qtopia_client_socket = QTOPIA_BAD_SOCKET;
if( !test )
{
fprintf( gpoutfile, "error connecting to server !\n" );
}
return 0; /* something went wrong */
}
}
else
{
if( !test )
{
fprintf( gpoutfile, "error creating socket !\n" );
}
return 0; /* something went wrong */
}
return 1; /* everything ist ok ! */
}
static void CloseClient()
{
close( qtopia_client_socket );
}
static int IsClientOk()
{
return qtopia_client_socket != QTOPIA_BAD_SOCKET;
}
static void SendDataToSocket( sLine )
const char * sLine;
{
if( IsClientOk() )
{
int send_count;
send_count = send( qtopia_client_socket, sLine, strlen( sLine ), 0 );
if( send_count <= 0 )
{
fprintf( gpoutfile, "error writing to socket str=%s!\n", sLine );
}
/*
else
{
fprintf( gpoutfile, "wrote %d bytes\n", send_count );
}
*/
}
else
{
/* for testing... */
/*fprintf( gpoutfile, sLine );*/
}
}
/* ************************************************** */
enum QTOPIA_id { QTOPIA_PORT, QTOPIA_HOST, QTOPIA_OTHER };
static struct gen_table QTOPIA_opts[] =
{
{ "po$rt", QTOPIA_PORT },
{ "ho$st", QTOPIA_HOST },
{ NULL, QTOPIA_OTHER }
};
TERM_PUBLIC void
QTOPIA_options()
{
/* this is not for the qtopia terminal ! */
/*SendDataToSocket( "qtd options\n" );*/
int x, y;
struct value a;
while (!END_OF_COMMAND)
{
switch(lookup_table(&QTOPIA_opts[0],c_token))
{
case QTOPIA_PORT:
c_token++;
if (END_OF_COMMAND)
int_error(c_token, "expecting port number");
qtopia_port_no = (int) real(const_express(&a));
break;
case QTOPIA_HOST:
c_token++;
if (END_OF_COMMAND)
int_error(c_token, "expecting host name");
if (isstring(c_token))
quote_str( qtopia_host_name, c_token, sizeof(qtopia_host_name) );
else
copy_str( qtopia_host_name, c_token, sizeof(qtopia_host_name) );
c_token++;
break;
case QTOPIA_OTHER:
default:
break;
}
}
sprintf(term_options, "host=%s port=%d",qtopia_host_name,qtopia_port_no);
}
TERM_PUBLIC void
QTOPIA_init()
{
/* initialize lib (if necassary) */
InitSockets();
CheckForQtplot( 0 );
OpenClient( 0 );
SendDataToSocket( "qtd init\n" );
}
TERM_PUBLIC void
QTOPIA_graphics()
{
SendDataToSocket( "qtd graphics\n" );
}
TERM_PUBLIC void
QTOPIA_text()
{
SendDataToSocket( "qtd text\n" );
}
TERM_PUBLIC void
QTOPIA_reset()
{
SendDataToSocket( "qtd reset\n" );
/* give the qtplot a litle bit time to shutdown */
MySleep(100);
CloseClient();
ExitSockets();
}
TERM_PUBLIC void
QTOPIA_linetype(linetype)
int linetype;
{
char sBuffer[QTOPIA_MAX_BUFFER];
sprintf( sBuffer, "qtd linetype type=%d\n",linetype );
SendDataToSocket( sBuffer );
}
TERM_PUBLIC void
QTOPIA_move(x, y)
unsigned int x, y;
{
char sBuffer[QTOPIA_MAX_BUFFER];
sprintf( sBuffer, "qtd move x=%d y=%d\n",x,y );
SendDataToSocket( sBuffer );
}
TERM_PUBLIC void
QTOPIA_point(x, y, point)
unsigned int x, y;
int point;
{
char sBuffer[QTOPIA_MAX_BUFFER];
sprintf( sBuffer, "qtd point x=%d y=%d point=%d\n",x,y,point );
SendDataToSocket( sBuffer );
}
TERM_PUBLIC void
QTOPIA_vector(_x, _y)
unsigned int _x, _y;
{
char sBuffer[QTOPIA_MAX_BUFFER];
sprintf( sBuffer, "qtd vector x=%d y=%d\n",_x,_y );
SendDataToSocket( sBuffer );
}
TERM_PUBLIC void
QTOPIA_put_text(x, y, str)
unsigned int x, y;
const char *str;
{
char sBuffer[QTOPIA_MAX_BUFFER];
sprintf( sBuffer, "qtd put_text x=%d y=%d str=%s\n",x,y,str );
SendDataToSocket( sBuffer );
}
/* not suported yet ! */
TERM_PUBLIC void
QTOPIA_arrow(sx, sy, ex, ey, head)
unsigned int sx, sy, ex, ey;
int head; /* ignored */
{
char sBuffer[QTOPIA_MAX_BUFFER];
sprintf( sBuffer, "qtd arrow sx=%d sy=%d ex=%d ey=%d head=%d\n",sx,sy,ex,ey,head );
SendDataToSocket( sBuffer );
}
#endif /* TERM_BODY */
#ifdef TERM_TABLE
TERM_TABLE_START(qtopia_driver)
"qtopia", "qtopia or Qt",
QTOPIA_XMAX, QTOPIA_YMAX, QTOPIA_VCHAR, QTOPIA_HCHAR,
QTOPIA_VTIC, QTOPIA_HTIC, QTOPIA_options, QTOPIA_init, QTOPIA_reset,
QTOPIA_text, null_scale, QTOPIA_graphics, QTOPIA_move, QTOPIA_vector,
QTOPIA_linetype, QTOPIA_put_text, null_text_angle,
null_justify_text, QTOPIA_point, /*QTOPIA_arrow*/0, set_font_null,
0, /* pointsize */
TERM_CAN_MULTIPLOT,
NULL, NULL, NULL, NULL
#ifdef USE_MOUSE
, NULL, NULL, NULL, NULL, NULL
#endif
#ifdef PM3D
, NULL, NULL, NULL, NULL
#endif
TERM_TABLE_END(qtopia_driver)
#undef LAST_TERM
#define LAST_TERM qtopia_driver
#endif /* TERM_TABLE */
#ifdef TERM_HELP
START_HELP(qtopia)
"1 qtopia",
"?commands set terminal qtopia",
"?set terminal qtopia",
"?set term qtopia",
"?terminal qtopia",
"?term qtopia",
"?qtopia",
" The `qtopia` terminal driver has no additional options.",
"",
" Syntax:",
" set terminal qtopia",
""
END_HELP(qtopia)
#endif /* TERM_HELP */

View File

@ -0,0 +1,16 @@
require gnuplot.inc
PR = "r1"
SRC_URI = "${SOURCEFORGE_MIRROR}/gnuplot/${PN}-${PV}.tar.gz;name=archive \
http://www.mneuroth.de/privat/zaurus/qtplot-0.2.tar.gz;name=qtplot \
file://subdirs.patch \
file://gnuplot.desktop \
file://gnuplot.png \
file://automake-1.12.x.patch \
"
SRC_URI[archive.md5sum] = "97a43328e81e57ebed7f135ca0c07e82"
SRC_URI[archive.sha256sum] = "d228599d08d5f87bcb79af8af8bb432c77d942802b1643f920c7baaeaf1ddbfd"
SRC_URI[qtplot.md5sum] = "0a481885a496092c77eb4017540b5cf6"
SRC_URI[qtplot.sha256sum] = "6df317183ff62cc82f3dcf88207a267cd6478cb5147f55d7530c94f1ad5f4132"