ftp.nice.ch/pub/next/science/mathematics/hippoplotamus.README

This is the README for hippoplotamus.2.0.s.tar.gz [Download] [Browse] [Up]

Copyright (C)  1992  The Board of Trustees of The Leland Stanford
Junior University.  All Rights Reserved.



                               Disclaimer Notice
     
     
        The items furnished herewith were developed under the sponsorship
   of the U.S. Government.  Neither the U.S., nor the U.S. D.O.E., nor the
   Leland Stanford Junior University, nor their employees, makes any war-
   ranty, express or implied, or assumes any liability or responsibility
   for accuracy, completeness or usefulness of any information, apparatus,
   product or process disclosed, or represents that its use will not in-
   fringe privately-owned rights.  Mention of any product, its manufactur-
   er, or suppliers shall not, nor is it intended to, imply approval, dis-
   approval, or fitness for any particular use.  The U.S. and the Univer-
   sity at all times retain the right to use and disseminate the furnished
   items for any purpose whatsoever.                       Notice 91 02 01



Hippoplotamus
=============

     Hippoplotamus (hippo) is a histogramming library based on n-tuples.
The original implementation was by Jonas Karlsson. It is being written at
SLAC by Paul Rensing, Paul Kunz, Mike Gravina, plus contributions from
Tom Pavel and others. It is designed to be used as an n-tuple collection
library and as the guts of an interactive application to view n-tuples.


Building hippo
==============
     We have provided some ways of building hippo. You can also make it
yourself. 

     A minimum set of files which provide support for collecting n-tuples
only is:
    hippontuple.c hippoio.c hippoxdr.c hippoutil.c ntuple-parse.c
    hippo.h hippostruct.h hippoxdr.h hippoutil.h

There are three utility programs:
    nt2text.c text2nt.c hb2hippo.f



UNIX
====
     This package includes a makefile for UNIX machines. The file is built
with machine independent parts (Makefile and make.common) and a machine
dependent part (make.<machine>). The machine architecture is determined by
the script "architecture" and is set when make.common is called from
Makefile. Architectures on which we have tested hippo are sun, next,
ultrix, sgi and aix (rs6000). If you are adding a new machine, check that
architecture gives a sensible answer.

     Because there are a number of plot drivers available, and one may want
more than one driver available on a given architecture, we have designed
the make file to build different libraries for the different (major)
drivers. For example, on a NeXT, you would build only libhippoNext.a, while
on a Sun, you might build libhippoX11.a and libhippoXIV.a (the Interviews
driver). If you don't have any of these packages to link to, you could
build a library (make target "hippo") which only contains the PostScript
and line printer drivers, no screen drivers.

     There are a number of macros which may need to be tailored to your
system.  The machine dependency file is included late so that it can
override any macro defined in Makefile.

in make.common:
SRC_DIR  - this is the directory containing the source code
LIB_INSTALLDIR - directory in which to install the libraries
INC_INSTALLDIR - directory in which to install the header files
LIB_DIR  - directory in which the libraries are built. Is include as a -L
           option when linking, so it should be defined ("." means current
           directory). 

in make.<flavor>:
CC, CPLUSPLUS - your compiler commands
FC            - your FORTRAN compiler
FBINDINGS - the Fortran binding files. Set to blank here if you don't have
            a Fortran compiler.
LIB_LIST - list of libraries to build for this machine
DEBUGLIB_LIST - list of debug libraries to build

FORTRAN
-------
     We have provided a set of FORTRAN bindings for some of the function
calls in hippo. If you don't have FORTRAN, comment out the macro FBINDINGS,
or override the definition (set it to blank) in the machine dependent file.

          
Plot Drivers
------------

     Hippo provides a number of plot drivers, which can be select for
compilation in any combination. See make.next or make.sun4 for examples.

DrvrName  CodeFile         IncludeFile      C_Define      Description
-------------------------------------------------------------------------------
LPR       (none)           (none)           (none)        line printer driver

PS        (none)           (none)           (none)        PostScript to file

NEXT      hippoplotNeXT.c  hippoplotNeXT.h  _NEXT_PLOT_   NeXT DPS driver
          hippowrapsps.c   hippowrapsps.h                 (from hippowraps.psw)

UNIXPLOT  hippoplotUP.c    hippoplotUP.h    _UNIXPLOT_PLOT_  UNIXPlot driver

XIVPLOT   hippoplotXIV.cc  hippoplotXIV.h   _XIVPLOT_     Interviews driver

X11PLOT   hippoplotX11.cc  hippoplotX11.h   _X11PLOT_     X-11 driver (R4)

By default, one of the screen drivers is included in each library, eg.
libhippoX11.a is built using the X11PLOT driver.

If you wish to have a combination of drivers, you could build your own library.
A driver must be selected at compile time in order to be able to use it in
a program. To select a driver:
1) add the codefile to MACH_DEP_MEMS in the form "$(LIBRARY)(<codefile>.o)",
   where <codefile>.o is the compiled object file of the files listed above.
2) add the include file to DRVR_INCS
3) add the C macro definition for C_Define (above) to PLOTCFLAGS, 
   eg. -D_NEXT_PLOT_

Finally, you should choose one default plot driver by defining the C macro
DEF_PLOT_DRVR; eg.  -DDEF_PLOT_DRVR=NEXT (use the DrvrName from above). LPR and
PS are always defined and one should be used as a default if you don't want any
other driver defined.

Make Targets
------------
all       - build the regular and debug libraries and utilities
libs      - (default) build the standard libraries
debuglibs - build the debug libraries
<name>    - build library lib<name>.a, eg. hippoX11, hippoNext.debug,
                  hippoXIV.profile 
util      - build the text/hippo converter programs
clean     - delete backup files
install   - copy libraries and certain include files to specified place
hb2hippo  - an HBOOK to hippo converter. Needs CERN's PackLib.
test      - run a few tests to see that hippo is working.

VMS
===
     We have included an MMS file for VMS under the name make.vms (this does
not need the file Makefile). The file is written to compile with the X11
driver. You may need to change the logicals defined under .First to point to
the correct directories (this is for RPC include files). Otherwise, many of the
macro are the same as for the UNIX makefile. We do not change the name of the
the Fortran file hippof.f.

     When linking a program with hippo on VMS, you will need the RPC and
Multinet libraries. On my system, they are located at
  multinet_root:[multinet.library]rpc.olb
  multinet_root:[multinet]multinet_socket_library.exe
(The socket library is really only needed to resolve bcopy and bset,
something that Multinet should have put in the RPC library). The file
hippo.opt is used to specify these libraries.

The C macro GLOB_QUAL is defined to be "noshare" on VMS. This should allow one
to build a sharable library.

Miscellaneous Files
===================

architecture        - determine machine type on UNIX.
example.hippo       - example hippo ntuple in binary format (used for 
                       make test).
example.hiptxt      - example hippo ntuple in text format (used in
                       make test).
fhippo.c, hippof.f  - the FORTRAN binding files.
getarg.c            - provide proper version of FORTRAN callable getarg()
                       for NeXT. Used only in hb2hippo.
hippo.opt           - options file for VAX/VMS linker.
hshrtnm.h           - header file with short names for most of the hippo
                       functions. (necessary on IBM VM)
h_test.c            - program to test basic display functions.
h_test.out          - reference output of h_test
h_testX11.c         - program to exercise the X11 driver.

Problems, Changes and Bug Reports
=================================

     We are very interested in hearing about bugs and improvements.

     If you find a bug, please send mail to
"hippo_bug@ebnextk.slac.stanford.edu" and we will do our best. Please try
to be as specific as possible.

     If you have any suggestions or wish to make some contribution (eg. a
new plot driver), please contact the authors. Send mail to
"hippo_comment@ebnextk.slac.stanford.edu".


Registration
============

     It is recommended that if you are using hippo, you send mail to
hippo_comment to "register" your copy. This will allow us to inform you
about major updates and bug fixes.

These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.