[BACK]Return to 0PORTING CVS log [TXT][DIR] Up to [local] / OpenXM_contrib / gnuplot

Annotation of OpenXM_contrib/gnuplot/0PORTING, Revision 1.1.1.1

1.1       maekawa     1:
                      2:  The following information is mainly geared towards people who want
                      3: to port gnuplot to new platforms not covered by the installation
                      4: instructions in 0INSTALL and INSTALL.gnu. Please do also read the
                      5: file CodeStyle.
                      6:
                      7:  Some operating system dependent preprocessor symbols are defined near
                      8: the top of plot.h. If you add a new platform, some definitions must
                      9: probably be added to plot.h as well.
                     10:
                     11: Preprocessor Defines
                     12: ********************
                     13:
                     14:  These #defines should be checked before compilation. There are many
                     15: makefiles provided as templates. You probably need these only if porting
                     16: to a new machine. The HAVE_XXX and NO_XXX defines should be taken care
                     17: of by configure if your platform supports GNU autoconf generated
                     18: configure shell scripts.
                     19:
                     20: THIS LIST IS SOMEWHAT OUT OF DATE NOW - CHECK configure.in, acconfig.h
                     21: and config.hin
                     22:
                     23: define      file            note
                     24: ------      ----            --------
                     25: HAVE_BCOPY  Makefile        define if you have bcopy() and no memcpy()
                     26: HAVE_LGAMMA Makefile        define if you've got lgamma(3)
                     27: HAVE_GAMMA  Makefile        define if you've got gamma(3)
                     28: NO_MEMCPY   Makefile        define if your memcpy() is called bcopy()
                     29: NO_MEMSET   Makefile        define if you have bzero() but not memset()
                     30: PC          Makefile        define if compiling on a PClone
                     31: MSDOS       Makefile        define if compiling under MSDOS;
                     32:                               automatically defined by Microsoft C 5.10
                     33: DOS32       Makefile        define for a 32-bit DOS extender (djgpp/emx)
                     34: WIN32       Makefile        define for a 32-bit MS-Windows version
                     35: HELPFILE    Makefile        name including path of gnuplot.gih file.
                     36: VERYLARGE   plot.h          define to be largest coordinate number.
                     37: SHELL       plot.h          default shell to spawn if SHELL environment
                     38:                               variable not found at run-time
                     39: NOCWDRC     Makefile        define to inhibit check of ./.gnuplot
                     40: READLINE    Makefile        define if you want command-line editing
                     41: GNU_READLINE Makefile       define if you are linking with gnu readline
                     42:
                     43: Header File Availability
                     44: ========================
                     45:
                     46:  Generally, it is assumed that standard ANSI/ISO header files are available.
                     47: The code is protected against missing standard header files with
                     48: NO_XXX_H defines:
                     49:
                     50: NO_STRING_H     string.h absent
                     51: NO_STDLIB_H     stdlib.h absent
                     52: NO_ERRNO_H      errno.h  absent
                     53: NO_LIMITS_H     limits.h absent
                     54: NO_LOCALE_H     locale.h absent
                     55: NO_TIME_H       time.h   absent
                     56: NO_SYS_TYPES_H  sys/types.h absent (not ANSI/ISO, but pretty standard)
                     57:
                     58:  If non-standard header files are required, HAVE_XXX_H defines are used:
                     59:
                     60: HAVE_UNISTD_H
                     61: HAVE_LIBC_H    (unistd.h alternative on NEXT)
                     62: HAVE_SGTTY_H             needed if there is no termios.h
                     63: HAVE_SYS_BSDTYPES_H
                     64: HAVE_SYS_SELECT_H        (needed for FD_* macros)
                     65: HAVE_SYS_STAT_H
                     66: HAVE_SYS_SYSTEMINFO_H
                     67: HAVE_TERMIOS_H
                     68: HAVE_VALUES_H            needed if there is no limits.h
                     69:
                     70:  Note that configure use the HAVE_XXXX_H form, though. The transformation
                     71: into NO_XXXX_H is done in syscfg.h. The same applies to function defines
                     72: (see below).
                     73:
                     74: Function Availability
                     75: =====================
                     76:
                     77:  It is generally assumed that standard ANSI/ISO functions are available.
                     78: The code is protected against missing standard functions with NO_XXX defines:
                     79:
                     80: NO_ATEXIT   - atexit() not available
                     81: NO_MEMCPY   - memcpy() not available
                     82: NO_MEMSET   - memset() not available
                     83: NO_SETVBUF  - setvbuf() not available
                     84: NO_STRCHR   - strchr() not available
                     85: NO_STRERROR - strerror() not available
                     86: NO_STRSTR   - strstr() not available
                     87: NO_TEMPNAM  - tempnam() not available
                     88:
                     89:  If certain standard ANSI/ISO C functions are not available, two alternatives
                     90: come to mind: either try to achieve the same functionality without the
                     91: missing function, or provide a portable implementation. Examples for this
                     92: are in stdfn.c. See also stdfn.h.
                     93:
                     94:  The following defines are used to ensure availability of certain
                     95: non-standard functions.
                     96:
                     97:  #define          function       see file        comments
                     98: -------------------------------------------------------------------
                     99: HAVE_ERF          erf()          specfun.c
                    100: HAVE_GAMMA        gamma()        specfun.c
                    101: HAVE_GETCWD       getcwd()       stdfn.h
                    102: HAVE_GETWD        getwd()        stdfn.h
                    103: HAVE_INDEX        index()        stdfn.h         pre-ANSI version of strchr()
                    104: HAVE_LGAMMA       lgamma()       specfun.c       prefered over gamma()
                    105: HAVE_ON_EXIT      on_exit()      term/x11.trm    atexit() substitute on SunOS
                    106: HAVE_RINDEX       rindex()       stdfn.h         pre-ANSI version of strrchr()
                    107: HAVE_SLEEP        sleep()        command.c
                    108: HAVE_SYSINFO      sysinfo()      gplt_x11.c      SysV function to get and set
                    109:                                                  system information. Used
                    110:                                                  instead of gethostname().
                    111: HAVE_STRNCASECMP  strncasecmp()  stdfn.c
                    112: HAVE_STRNICMP     strnicmp()     stdfn.c
                    113: HAVE_TCGETATTR    tcgetattr()    readline.c
                    114:
                    115: Terminal Selection Options
                    116: ==========================
                    117:
                    118:    These defines are used to include the drivers for various plotting
                    119: terminals, printers, and protocols that a given version of gnuplot can
                    120: access and the description of such for the help file.
                    121:
                    122:
                    123: define      file               note
                    124: ------      ----               --------
                    125: TERMFLAGS   Various makefiles  (obsolete under Unix; use configure instead)
                    126:                                the set of terminals you want, from below or
                    127:                                term.h
                    128: SHORT_TERMLIST  term.h         edit term.h to specify desired devices at
                    129:                                the beginning (instead of commenting out,
                    130:                                throughout the file, devices not desired.)
                    131:
                    132: ALL_TERM_DOC   docs/termdoc.c  on-line help documentation for all devices
                    133:                                rather than only for the drivers selected
                    134:                                in term.h.
                    135:
                    136:
                    137:    The following, non-authoritative, list serves as a guide to the range
                    138: of devices that may be selected/deselected by editing term.h.
                    139:
                    140:    AED         AED 512 and AED 767
                    141:    AIFM        Adobe Illustrator Format
                    142:    AMIGASCREEN Amiga custom screen
                    143:    APOLLO      Apollo Graphics Primitive Resource (resizable window)
                    144:    ATARI       AES, VDI, MultoTOS
                    145:    ATT6300     PC with AT&T 6300 graphics
                    146:    BITGRAPH    BBN BitGraph
                    147:    CGI         SCO CGI, hcgi
                    148:    COREL       COREL! Draw Format
                    149:    CORONA      PC with Corona graphics 325
                    150:    DEBUG       Voluminous output for debugging to terminal
                    151:    DJSVGA      MSDOS SVGA with DJGPP compiler
                    152:    DXY800A     Roland DXY800A plotter
                    153:    DUMB        Printer or glass dumb terminal
                    154:    DXF         AutoCad (Release 10.x) dxf file format
                    155:    EEPIC       EEPIC-extended LaTeX driver, for EEPIC users
                    156:    EGALIB      PC with EGA/VGA graphics.
                    157:    EMTEX       LaTeX picture environment with emTeX specials
                    158:    EMXVGA      PC with VGA running DOS or OS/2
                    159:    EPS180      Epson-LQ style 24-pin 180-dot per inch printers
                    160:    EPS60       Epson-style 60-dot per inch printers
                    161:    EPSONP      Epson LX-800, Star NL-10, NX-1000 and lots of others
                    162:    EXCL        Talaris EXCL laser printer format
                    163:    FIG         Fig graphics language (requires object.h from TransFig)
                    164:    GIF         Gif output, requires special library
                    165:    GPIC        Gpic for groff
                    166:    GPR         Apollo Graphics Primitive Resource (fixed-size window)
                    167:    HERCULES    IBM PC/Clone with Hercules graphics board
                    168:    HP2648      HP2648, HP2647
                    169:    HP26        HP2623A and maybe others
                    170:    HP500C      HP Deskjet 500 C and maybe other Color Deskjets
                    171:    HP75        HP7580, and probably other HPs
                    172:    HPGL        HP7475 and (hopefully) lots of others
                    173:    HPLJII      HP Laserjet II
                    174:    HPPJ        HP PaintJet
                    175:    IMAGEN      Imagen laser printers (300dpi) (requires -Iterm also)
                    176:    IRIS        IRIS4D series computer
                    177:    KERMIT      MS-DOS Kermit Tektronix 4010 emulator
                    178:    LATEX       LaTeX picture environment
                    179:    LINUXVGA    Linux PC with (s)vgalib
                    180:    MF          Metafont Format
                    181:    MGR         MGR window manager
                    182:    MIF         FrameMaker MIF 3.00 Format
                    183:    MTOS        Atari MiNT/MULTITOS/Magic Terminal
                    184:    NEC         NEC CP6 pinwriter printer
                    185:    NEXT        NeXTStep Window System (only grey scale)
                    186:    OS2PM       OS/2 Presentation Manager
                    187:    PBM         PBMPLUS pbm, pgm, ppm formats
                    188:    PCL         HP PCL5 (actually  HPGL/2)
                    189:    PNG         Portable Network Graphics, requires separate library
                    190:    POSTSCRIPT  PostScript
                    191:    PRESCRIBE   Kyocera Laser printer
                    192:    PSLATEX     Postscript graphics, LaTeX labels and titles
                    193:    PSTRICKS    PSTRICKS 0.91 format
                    194:    QMS         QMS/QUIC laserprinter (Talaris 1200 and others)
                    195:    REGIS       ReGis graphics (vt125, vt220, vt240, Gigis...)
                    196:    RGIP        Redwood Graphics Interface Protocol
                    197:    SELANAR     Selanar
                    198:    STARC       Star Color Printer
                    199:    SUN         Sun Microsystems Workstation
                    200:    T410X       Tektronix 4106, 4107, 4109 and 420x terminals
                    201:    TABLE       Text output
                    202:    TANDY60     Tandy DMP-130 series 60-dot per inch graphics
                    203:    TEK         Tektronix 4010, and probably others
                    204:    TEXDRAW     TeXDraw format (for LaTeX)
                    205:    TGIF        TGIF X11 Drawing Tool
                    206:    TPIC        Tpic specials for TeX
                    207:    UNIXPC      unixpc (ATT 3b1 or ATT 7300)
                    208:    UNIXPLOT    unixplot
                    209:    V384        Vectrix 384 and tandy color printer
                    210:    VTTEK       VT like Tektronix 4010 emulator
                    211:    VWS         VAX Windowing System  (UIS libraries)
                    212:    X11         X11R4 window system
                    213:
                    214:
                    215: Platform Related Defines
                    216: ========================
                    217:
                    218:  These #defines are defined automatically by various compilers or
                    219: makefiles, some gnuplot routines check these defines to implement
                    220: features found in the various environments. This list is certainly
                    221: incomplete.
                    222:
                    223: define        note
                    224: ------        --------
                    225: ANSI_C        if the compiler can handle ANSI prototypes
                    226: AMIGA_AC_5    defined for Manx Aztec C 5.2a on the Amiga.
                    227: AMIGA_SC_6_1  defined for SAS/C 6.1 or later versions on the Amiga.
                    228: __amigaos__   defined by gcc on AmigaOS.
                    229: AMIGA         defined for all Amiga compilers.
                    230: apollo        defined by Apollo's C compilers.
                    231: _CRAY         defined by CRAY's C compiler.
                    232: __DECC        defined by DEC C compiler under VMS (?)
                    233: __TURBOC__    defined automatically by  Borland C++ 3.x.
                    234: unix          defined by most unix C compilers.
                    235: vms           (and VMS) defined by VMS C compilers.
                    236: __ZTC__       Zortech C compiler under MSDOS.
                    237: _Windows      defined by Borland C++ 3.0 compiling for MS-Windows.
                    238: __WATCOMC__   defined automatically by  Watcom C
                    239: __EMX__       defined by EMX gcc (available on DOS & OS/2).
                    240: OS2           defined by compilers under OS/2.
                    241:
                    242: Defines Used in Gnuplot
                    243: =======================
                    244:
                    245:  The following defines are used to achieve better portability. Most of
                    246: them are wrappers.
                    247:
                    248:  #define          wraps/redefines            see file    comments
                    249: ------------------------------------------------------------------
                    250: GP_GETCWD         getwd()/getcwd() alikes    stdfn.h
                    251: GP_FARMALLOC      faralloc()/malloc()        alloc.c     Windows environment
                    252: GP_FARREALLOC     farrealloc()/realloc()     alloc.c     Windows environment
                    253: GP_SLEEP          sleep()                    command.c
                    254: GP_SYSTEMINFO     sysinfo()/gethostname()    gplt_x11.c
                    255: GPFAR             `far' compiler directive   plot.h      MSDOS and Win16
                    256: GPHUGE            `huge' compiler directive  plot.h      MSDOS and Win16
                    257: GP_INLINE         `__inline' directive       plot.h
                    258: GPMAX             max (a,b)                  plot.h
                    259: GPMIN             min (a,b)                  plot.h
                    260:
                    261:  The following symbols are defined when using DEBUG:
                    262:
                    263: DEBUG_WHERE       prints filename and line number to stderr *without* linefeed
                    264: FPRINTF(a)        uses DEBUG_WHERE, passes a to fprintf
                    265:
                    266:  Usage example: FPRINTF((stderr, "function foo returned %d\n", bar));
                    267:  Result:        readline.c:620 function foo returned -1
                    268:

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>