File: [local] / OpenXM_contrib / gnuplot / Attic / 0PORTING (download)
Revision 1.1.1.1 (vendor branch), Sun Jan 9 17:00:48 2000 UTC (24 years, 8 months ago) by maekawa
Branch: GNUPLOT
CVS Tags: maekawa-ipv6, VERSION_3_7_3, VERSION_3_7_1, VERSION_3_7, RELEASE_20000124, RELEASE_1_2_3, RELEASE_1_2_2_KNOPPIX_b, RELEASE_1_2_2_KNOPPIX, RELEASE_1_2_2, RELEASE_1_2_1, RELEASE_1_1_3, RELEASE_1_1_2 Changes since 1.1: +0 -0
lines
Import gnuplot 3.7
|
The following information is mainly geared towards people who want
to port gnuplot to new platforms not covered by the installation
instructions in 0INSTALL and INSTALL.gnu. Please do also read the
file CodeStyle.
Some operating system dependent preprocessor symbols are defined near
the top of plot.h. If you add a new platform, some definitions must
probably be added to plot.h as well.
Preprocessor Defines
********************
These #defines should be checked before compilation. There are many
makefiles provided as templates. You probably need these only if porting
to a new machine. The HAVE_XXX and NO_XXX defines should be taken care
of by configure if your platform supports GNU autoconf generated
configure shell scripts.
THIS LIST IS SOMEWHAT OUT OF DATE NOW - CHECK configure.in, acconfig.h
and config.hin
define file note
------ ---- --------
HAVE_BCOPY Makefile define if you have bcopy() and no memcpy()
HAVE_LGAMMA Makefile define if you've got lgamma(3)
HAVE_GAMMA Makefile define if you've got gamma(3)
NO_MEMCPY Makefile define if your memcpy() is called bcopy()
NO_MEMSET Makefile define if you have bzero() but not memset()
PC Makefile define if compiling on a PClone
MSDOS Makefile define if compiling under MSDOS;
automatically defined by Microsoft C 5.10
DOS32 Makefile define for a 32-bit DOS extender (djgpp/emx)
WIN32 Makefile define for a 32-bit MS-Windows version
HELPFILE Makefile name including path of gnuplot.gih file.
VERYLARGE plot.h define to be largest coordinate number.
SHELL plot.h default shell to spawn if SHELL environment
variable not found at run-time
NOCWDRC Makefile define to inhibit check of ./.gnuplot
READLINE Makefile define if you want command-line editing
GNU_READLINE Makefile define if you are linking with gnu readline
Header File Availability
========================
Generally, it is assumed that standard ANSI/ISO header files are available.
The code is protected against missing standard header files with
NO_XXX_H defines:
NO_STRING_H string.h absent
NO_STDLIB_H stdlib.h absent
NO_ERRNO_H errno.h absent
NO_LIMITS_H limits.h absent
NO_LOCALE_H locale.h absent
NO_TIME_H time.h absent
NO_SYS_TYPES_H sys/types.h absent (not ANSI/ISO, but pretty standard)
If non-standard header files are required, HAVE_XXX_H defines are used:
HAVE_UNISTD_H
HAVE_LIBC_H (unistd.h alternative on NEXT)
HAVE_SGTTY_H needed if there is no termios.h
HAVE_SYS_BSDTYPES_H
HAVE_SYS_SELECT_H (needed for FD_* macros)
HAVE_SYS_STAT_H
HAVE_SYS_SYSTEMINFO_H
HAVE_TERMIOS_H
HAVE_VALUES_H needed if there is no limits.h
Note that configure use the HAVE_XXXX_H form, though. The transformation
into NO_XXXX_H is done in syscfg.h. The same applies to function defines
(see below).
Function Availability
=====================
It is generally assumed that standard ANSI/ISO functions are available.
The code is protected against missing standard functions with NO_XXX defines:
NO_ATEXIT - atexit() not available
NO_MEMCPY - memcpy() not available
NO_MEMSET - memset() not available
NO_SETVBUF - setvbuf() not available
NO_STRCHR - strchr() not available
NO_STRERROR - strerror() not available
NO_STRSTR - strstr() not available
NO_TEMPNAM - tempnam() not available
If certain standard ANSI/ISO C functions are not available, two alternatives
come to mind: either try to achieve the same functionality without the
missing function, or provide a portable implementation. Examples for this
are in stdfn.c. See also stdfn.h.
The following defines are used to ensure availability of certain
non-standard functions.
#define function see file comments
-------------------------------------------------------------------
HAVE_ERF erf() specfun.c
HAVE_GAMMA gamma() specfun.c
HAVE_GETCWD getcwd() stdfn.h
HAVE_GETWD getwd() stdfn.h
HAVE_INDEX index() stdfn.h pre-ANSI version of strchr()
HAVE_LGAMMA lgamma() specfun.c prefered over gamma()
HAVE_ON_EXIT on_exit() term/x11.trm atexit() substitute on SunOS
HAVE_RINDEX rindex() stdfn.h pre-ANSI version of strrchr()
HAVE_SLEEP sleep() command.c
HAVE_SYSINFO sysinfo() gplt_x11.c SysV function to get and set
system information. Used
instead of gethostname().
HAVE_STRNCASECMP strncasecmp() stdfn.c
HAVE_STRNICMP strnicmp() stdfn.c
HAVE_TCGETATTR tcgetattr() readline.c
Terminal Selection Options
==========================
These defines are used to include the drivers for various plotting
terminals, printers, and protocols that a given version of gnuplot can
access and the description of such for the help file.
define file note
------ ---- --------
TERMFLAGS Various makefiles (obsolete under Unix; use configure instead)
the set of terminals you want, from below or
term.h
SHORT_TERMLIST term.h edit term.h to specify desired devices at
the beginning (instead of commenting out,
throughout the file, devices not desired.)
ALL_TERM_DOC docs/termdoc.c on-line help documentation for all devices
rather than only for the drivers selected
in term.h.
The following, non-authoritative, list serves as a guide to the range
of devices that may be selected/deselected by editing term.h.
AED AED 512 and AED 767
AIFM Adobe Illustrator Format
AMIGASCREEN Amiga custom screen
APOLLO Apollo Graphics Primitive Resource (resizable window)
ATARI AES, VDI, MultoTOS
ATT6300 PC with AT&T 6300 graphics
BITGRAPH BBN BitGraph
CGI SCO CGI, hcgi
COREL COREL! Draw Format
CORONA PC with Corona graphics 325
DEBUG Voluminous output for debugging to terminal
DJSVGA MSDOS SVGA with DJGPP compiler
DXY800A Roland DXY800A plotter
DUMB Printer or glass dumb terminal
DXF AutoCad (Release 10.x) dxf file format
EEPIC EEPIC-extended LaTeX driver, for EEPIC users
EGALIB PC with EGA/VGA graphics.
EMTEX LaTeX picture environment with emTeX specials
EMXVGA PC with VGA running DOS or OS/2
EPS180 Epson-LQ style 24-pin 180-dot per inch printers
EPS60 Epson-style 60-dot per inch printers
EPSONP Epson LX-800, Star NL-10, NX-1000 and lots of others
EXCL Talaris EXCL laser printer format
FIG Fig graphics language (requires object.h from TransFig)
GIF Gif output, requires special library
GPIC Gpic for groff
GPR Apollo Graphics Primitive Resource (fixed-size window)
HERCULES IBM PC/Clone with Hercules graphics board
HP2648 HP2648, HP2647
HP26 HP2623A and maybe others
HP500C HP Deskjet 500 C and maybe other Color Deskjets
HP75 HP7580, and probably other HPs
HPGL HP7475 and (hopefully) lots of others
HPLJII HP Laserjet II
HPPJ HP PaintJet
IMAGEN Imagen laser printers (300dpi) (requires -Iterm also)
IRIS IRIS4D series computer
KERMIT MS-DOS Kermit Tektronix 4010 emulator
LATEX LaTeX picture environment
LINUXVGA Linux PC with (s)vgalib
MF Metafont Format
MGR MGR window manager
MIF FrameMaker MIF 3.00 Format
MTOS Atari MiNT/MULTITOS/Magic Terminal
NEC NEC CP6 pinwriter printer
NEXT NeXTStep Window System (only grey scale)
OS2PM OS/2 Presentation Manager
PBM PBMPLUS pbm, pgm, ppm formats
PCL HP PCL5 (actually HPGL/2)
PNG Portable Network Graphics, requires separate library
POSTSCRIPT PostScript
PRESCRIBE Kyocera Laser printer
PSLATEX Postscript graphics, LaTeX labels and titles
PSTRICKS PSTRICKS 0.91 format
QMS QMS/QUIC laserprinter (Talaris 1200 and others)
REGIS ReGis graphics (vt125, vt220, vt240, Gigis...)
RGIP Redwood Graphics Interface Protocol
SELANAR Selanar
STARC Star Color Printer
SUN Sun Microsystems Workstation
T410X Tektronix 4106, 4107, 4109 and 420x terminals
TABLE Text output
TANDY60 Tandy DMP-130 series 60-dot per inch graphics
TEK Tektronix 4010, and probably others
TEXDRAW TeXDraw format (for LaTeX)
TGIF TGIF X11 Drawing Tool
TPIC Tpic specials for TeX
UNIXPC unixpc (ATT 3b1 or ATT 7300)
UNIXPLOT unixplot
V384 Vectrix 384 and tandy color printer
VTTEK VT like Tektronix 4010 emulator
VWS VAX Windowing System (UIS libraries)
X11 X11R4 window system
Platform Related Defines
========================
These #defines are defined automatically by various compilers or
makefiles, some gnuplot routines check these defines to implement
features found in the various environments. This list is certainly
incomplete.
define note
------ --------
ANSI_C if the compiler can handle ANSI prototypes
AMIGA_AC_5 defined for Manx Aztec C 5.2a on the Amiga.
AMIGA_SC_6_1 defined for SAS/C 6.1 or later versions on the Amiga.
__amigaos__ defined by gcc on AmigaOS.
AMIGA defined for all Amiga compilers.
apollo defined by Apollo's C compilers.
_CRAY defined by CRAY's C compiler.
__DECC defined by DEC C compiler under VMS (?)
__TURBOC__ defined automatically by Borland C++ 3.x.
unix defined by most unix C compilers.
vms (and VMS) defined by VMS C compilers.
__ZTC__ Zortech C compiler under MSDOS.
_Windows defined by Borland C++ 3.0 compiling for MS-Windows.
__WATCOMC__ defined automatically by Watcom C
__EMX__ defined by EMX gcc (available on DOS & OS/2).
OS2 defined by compilers under OS/2.
Defines Used in Gnuplot
=======================
The following defines are used to achieve better portability. Most of
them are wrappers.
#define wraps/redefines see file comments
------------------------------------------------------------------
GP_GETCWD getwd()/getcwd() alikes stdfn.h
GP_FARMALLOC faralloc()/malloc() alloc.c Windows environment
GP_FARREALLOC farrealloc()/realloc() alloc.c Windows environment
GP_SLEEP sleep() command.c
GP_SYSTEMINFO sysinfo()/gethostname() gplt_x11.c
GPFAR `far' compiler directive plot.h MSDOS and Win16
GPHUGE `huge' compiler directive plot.h MSDOS and Win16
GP_INLINE `__inline' directive plot.h
GPMAX max (a,b) plot.h
GPMIN min (a,b) plot.h
The following symbols are defined when using DEBUG:
DEBUG_WHERE prints filename and line number to stderr *without* linefeed
FPRINTF(a) uses DEBUG_WHERE, passes a to fprintf
Usage example: FPRINTF((stderr, "function foo returned %d\n", bar));
Result: readline.c:620 function foo returned -1