1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
|
RCS $Id: INSTALL,v 1.10 1995/09/29 18:12:30 tuna Exp $
Installation notes for xearth, version 1.0
Kirk Lauritz Johnson <tuna@cag.lcs.mit.edu>
29 September 1995
NOTE: If you are trying to build xearth under SunOS 4.x using
/bin/cc, make sure to read the section entitled "BUILDING
UNDER SUNOS 4.x" (below) regarding a compiler bug.
BUILDING USING IMAKE
To build xearth using imake:
(1) Edit "Imakefile" to add any DEFINES necessary for building on
your platform (see the section entitled "DEFINES" below).
(2) Run "xmkmf" to build a makefile.
(3) Run "make all" to build an executable.
If "make" complains cryptically about lines in the makefile
that start with "XCOMM" (you'll probably have to eyeball the
offending lines in the makefile to determine this), something
went wrong with "xmkmf" (or "imake"). You should be able to
fix this using something along the lines of
egrep -v ^XCOMM < Makefile > junk ; mv junk Makefile
(to strip out all lines that start with XCOMM) and then
running "make" again.
If the linker complains about "random", "srandom", and/or
"setpriority" being undefined, you probably need to add
"-DNO_RANDOM" and/or "-DNO_SETPRIORITY" to the right hand side
of the "DEFINES =" line in the Imakefile and start over. (See
the section entitled "DEFINES" below.)
(4) Run "make install" and "make install.man" to install the
executable and man page in whatever places are appropriate for
your system.
BUILDING USING MAKE
To build xearth using make:
(1) Copy the distribution makefile "Makefile.DIST" to "Makefile".
(2) Edit the makefile if necessary; you may need to:
- add any DEFINES necessary for building on your platform (see
the section entitled "DEFINES" below)
- change the name of the C compiler (CC) from "gcc" to whatever
compiler you want to use when building
- change the compiler flags (CFLAGS) -- if your X include files
aren't found in the usual place (/usr/include), you may have
to add something along the lines of "-I<path-to-X-includes>"
to CFLAGS
- change the loader flags (LDFLAGS) -- if your X libraries
aren't found in the usual places (perhaps /lib and /usr/lib),
you may have to add something along the lines of
"-L<path-to-X-libraries>" to LDFLAGS
(3) Run "make all" to build an executable.
If the linker complains about "random", "srandom", and/or
"setpriority" being undefined, you probably need to add
"-DNO_RANDOM" and/or "-DNO_SETPRIORITY" to the right hand side
of the "DEFINES =" line in the Makefile and start over. (See
the section entitled "DEFINES" below.)
(4) Install the executable ("xearth") and man page ("xearth.man")
in whatever the appropriate places are for your environment.
DEFINES
The xearth source code includes #ifdef-ed workaround/replacement
code for systems that don't provide the random(), srandom(),
and/or setpriority() library functions.
For systems that don't provide random() and srandom(), #define the
NO_RANDOM symbol (this can be done by adding "-DNO_RANDOM" to the
right hand side of the "DEFINES =" line in the Makefile or
Imakefile). Doing so causes xearth to use the lrand48() and
srand48() functions instead of random() and srandom(). (If your
system doesn't have lrand48() and srand48() either, you'll have to
go into xearth.h and change the #defines for random() and
srandom() to something appropriate for your system.)
For systems that don't provide setpriority, #define the
NO_SETPRIORITY symbol (this can be done by adding
"-DNO_SETPRIORITY" to the right and side of the "DEFINES =" line
in the Makefile or Imakefile). Doing so causes xearth to use the
nice() function instead of setpriority().
If you try to compile xearth and the linker complains that
random(), srandom(), and/or setpriority() is undefined, try
defining NO_RANDOM and/or NO_SETPRIORITY, as appropriate, and
recompiling.
BUILDING UNDER SUNOS 4.x
I believe something in dither.c exercises an optimizer bug in
SunOS 4.1.3 /bin/cc. When I compile using -O or -O2, the dither
code either causes a segmentation violation or (worse) runs
without crashing but produces incorrect output. This code works
fine under all the other compilers I can get my hands on,
however. So, if possible, don't use SunOS 4.1.3 /bin/cc to compile
xearth, or, if you have no other compilers, don't use optimization
when compiling dither.c.
MISCELLANY
This version of Xearth has been tested on (at least) the following
platforms; the "DEFINES" column indicates any additional
definitions that were necessary when building (see above).
Processor Operating System DEFINES
--------- ---------------- ----------------------------
Alpha DEC OSF/1 V3.2 (none)
MIPS IRIX 5.3 (none)
MIPS IRIX64 6.0.1 (none)
MIPS Ultrix 4.4 (none)
Pentium NeXT Mach 3.3 (none)
SPARC SunOS 4.1.3 (none)
SPARC Solaris 2.4 -DNO_RANDOM -DNO_SETPRIORITY
i486 Linux 1.2 (none)
Some compilers take an inordinately long time to compile
mapdata.c, especially when running on systems without very much
physical memory (e.g., 16 MB or less).
MANIFEST
README miscellaneous info
INSTALL this file
HISTORY release history
BUILT-IN built-in marker data
Imakefile for use with "imake"
Makefile.DIST for use with "make"
xearth.man man page
GAMMA-TEST describes gamma-test.gif
gamma-test.gif gamma measurement image
dither.c source code
extarr.[ch]
gif.c
gifint.h
giflib.h
gifout.c
kljcpyrt.h
mapdata.c
markers.c
ppm.c
render.c
resources.c
scan.c
sunpos.c
x11.c
xearth.[ch]
----------------------------------------------------------------
Copyright (C) 1989, 1990, 1993, 1994, 1995 Kirk Lauritz Johnson
Parts of the source code (as marked) are:
Copyright (C) 1989, 1990, 1991 by Jim Frost
Copyright (C) 1992 by Jamie Zawinski <jwz@lucid.com>
Permission to use, copy, modify and freely distribute xearth for
non-commercial and not-for-profit purposes is hereby granted without
fee, provided that both the above copyright notice and this permission
notice appear in all copies and in supporting documentation.
Unisys Corporation holds worldwide patent rights on the Lempel Zev
Welch (LZW) compression technique employed in the CompuServe GIF image
file format as well as in other formats. Unisys has made it clear,
however, that it does not require licensing or fees to be paid for
freely distributed, non-commercial applications (such as xearth) that
employ LZW/GIF technology. Those wishing further information about
licensing the LZW patent should contact Unisys directly at
(lzw_info@unisys.com) or by writing to
Unisys Corporation
Welch Licensing Department
M/S-C1SW19
P.O. Box 500
Blue Bell, PA 19424
The author makes no representations about the suitability of this
software for any purpose. It is provided "as is" without express or
implied warranty.
THE AUTHOR DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, INDIRECT OR
CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF
USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
PERFORMANCE OF THIS SOFTWARE.
|