\input texinfo @c -*-texinfo-*-
@c %**start of header
@setfilename install.info
@settitle Dinotrace Installation
@c %**end of header

@c DESCRIPTION: TexInfo: DOCUMENT source run through texinfo to produce INSTALL file
@c Use 'make INSTALL' to produce the output file

@node Dinotrace Installation, Obtaining Distribution
@section Dinotrace Installation

version: 9.4c

This file describes how to install Dinotrace on your local system.
After obtaining and installing on your particular system, see the
Dinotrace manual for configuration options.

@menu
* Obtaining Distribution::      Where to get Dinotrace
* Supported Systems::           Who to run Dinotrace on
* Unix Installation::           How to install on Unix based systems.
* VMS Installation::            How to install on VMS based systems.
@end menu

@node Obtaining Distribution, Supported Systems, Dinotrace Installation
@section Obtaining Distribution

@enumerate
@item
The latest version of Dinotrace is available at 
@uref{http://www.veripool.org/dinotrace
}.
Download the latest package from that site, and decompress.
@samp{gunzip dinotrace_version.tar.gz ; tar xvf dinotrace_version.tar}

@item
Dinotrace requires the Motif Widget set.  If your system doesn't
include Motif, or OpenMotif, a public domain version, LessTif, is
available at @uref{ftp://ftp.lesstif.org}.  Version 0.93.36 was known
to work for this release.  Be sure to also have the LessTif and X11
development files (header files) installed.

@item
For best results, you should have perl installed on the system.
This will enable the documentation to be included in the executable.
Perl is available from @uref{http://www.perl.org}

@item
This kit includes a optional interface for GNU Emacs.  For this package,
get at least GNU Emacs 19.35, and preferably GNU Emacs 21.1 from
@uref{ftp://prep.ai.mit.edu}.  You will also want the most recent verilog-mode
from @uref{http://www.veripool.org}.
@end enumerate

@node Supported Systems, Unix Installation, Obtaining Distribution
@section Supported Systems

This version of Dinotrace has been built and tested on:

@itemize @bullet
@item sparc-sun-solaris2.5.1
@item i386-pc-linux
@item i386-pc-cygwin32	(under Windows-2000 & Windows-XP)
@item x86_64-suse-linux
@end itemize

Previous versions of Dinotrace were once built, and probably will
still build on:

@itemize @bullet
@item alpha-dec-osf4.0
@item alpha-dec-vms6.0
(see the special section on VMS installation.)
@item mips-dec-ultrix
@item sparc-sun-sunos4.1.4
@item vax-dec-vms6.0
(see the special section on VMS installation.)
@end itemize

@node Unix Installation, VMS Installation, Supported Systems
@section Unix Installation

Dinotrace uses the GNU @code{autoconf} program.

@menu
* Trivial Installation::        
* Basic Installation::          
* Compilers and Options::       
* Multiple Architectures::      
* Installation Names::          
* System Type::                 
* Operation Controls::          
@end menu

@node Trivial Installation, Basic Installation, Unix Installation, Unix Installation
@subsection Trivial Installation

If you are using one of a handful of supported systems, look in the
@file{bin} directory for the appropriate executable.  If it exists, and
runs, put it into your search path.  You will also need Motif or
LessTif, and also may want to do a install on the lisp directory.

@node Basic Installation, Compilers and Options, Trivial Installation, Unix Installation
@subsection Basic Installation

The @code{configure} shell script attempts to guess correct values for
various system-dependent variables used during compilation.  It uses
those values to create a @file{Makefile} in each directory of Dinotrace.
It also creates @file{config.h} containing system-dependent
definitions.  Finally, it creates a shell script @file{config.status}
that you can run in the future to recreate the current configuration, a
file @file{config.cache} that saves the results of its tests to speed up
reconfiguring, and a file @file{config.log} containing compiler output
(useful mainly for debugging @code{configure}).

@noindent
The simplest way to compile Dinotrace is:

@enumerate
@item
@code{cd} to the directory containing this INSTALL notice.
@samp{./configure} to configure Dinotrace for your system.  If you're
using @code{csh} on an old version of System V, you might need to type
@samp{sh ./configure} instead to prevent @code{csh} from trying to
execute @code{configure} itself.

Running @code{configure} takes awhile.  While running, it prints some
messages telling which features it is checking for.

@item
Type @samp{make} to compile Dinotrace.  This program requires X11
with the Motif Widget set.  If Motif didn't come with your system, a public
domain version, LessTif, is available at @uref{ftp://ftp.lesstif.org}.

@item
Set your X11 Display.  If your machine is local use @samp{setenv DISPLAY
"localhost:0.0"} for csh or @samp{DISPLAY="localhost:0.0" ; export DISPLAY}
for sh or bash.

@item
Try out the executable with @samp{src/dinotrace}.

@item
Type @samp{make install} to install the programs and any data files and
documentation.

@item
You can remove the program binaries and object files from the source code
directory by typing @samp{make clean}.  To also remove the files that
@code{configure} created (so you can compile Dinotrace for a different
kind of computer), type @samp{make distclean}.

@item
Finally, see the Dinotrace manual for configuring Dinotrace for your site.

@end enumerate

@node Compilers and Options, Multiple Architectures, Basic Installation, Unix Installation
@subsection Compilers and Options

Some systems require unusual options for compilation or linking that
the @code{configure} script does not know about.  You can give
@code{configure} initial values for variables by setting them in the
environment.  Using a Bourne-compatible shell, you can do that on the
command line like this:
@example
CC=c89 CFLAGS=-O2 LIBS=-lposix ./configure
@end example

@noindent
Or on systems that have the @code{env} program, you can do it like this:
@example
env CPPFLAGS=-I/usr/local/include LDFLAGS=-s ./configure
@end example

@node Multiple Architectures, Installation Names, Compilers and Options, Unix Installation
@subsection Compiling For Multiple Architectures

You can compile Dinotrace for more than one kind of computer at the
same time, by placing the object files for each architecture in their
own directory.  To do this, you must use a version of @code{make} that
supports the @code{VPATH} variable, such as GNU @code{make}.  @code{cd}
to the directory where you want the object files and executables to go
and run the @code{configure} script.  @code{configure} automatically
checks for the source code in the directory that @code{configure} is in
and in @file{..}.

If you have to use a @code{make} that does not supports the @code{VPATH}
variable, you have to compile Dinotrace for one architecture at a time
in the source code directory.  After you have installed Dinotrace for
one architecture, use @samp{make distclean} before reconfiguring for
another architecture.

@node Installation Names, System Type, Multiple Architectures, Unix Installation
@subsection Installation Names

By default, @samp{make install} will install Dinotrace's files in
@file{/usr/local/bin}, @file{/usr/local/man}, etc.  You can specify an
installation prefix other than @file{/usr/local} by giving
@code{configure} the option @samp{--prefix=@var{path}}.

You can specify separate installation prefixes for architecture-specific
files and architecture-independent files.  If you give @code{configure}
the option @samp{--exec-prefix=@var{path}}, Dinotrace will use
@var{path} as the prefix for installing programs and libraries.
Documentation and other data files will still use the regular prefix.

In addition, if you use an unusual directory layout you can give options
like @samp{--bindir=@var{path}} to specify different values for
particular kinds of files.  Run @samp{configure --help} for a list of
the directories you can set and what kinds of files go in them.

If Dinotrace supports it, you can cause programs to be installed with
an extra prefix or suffix on their names by giving @code{configure} the
option @samp{--program-prefix=@var{PREFIX}} or
@samp{--program-suffix=@var{SUFFIX}}.

@node System Type, Operation Controls, Installation Names, Unix Installation
@subsection Specifying the System Type

There may be some features @code{configure} can not figure out
automatically, but needs to determine by the type of host Dinotrace
will run on.  Usually @code{configure} can figure that out, but if it
prints a message saying it can not guess the host type, give it the
@samp{--host=@var{type}} option.  @var{type} can either be a short name
for the system type, such as @samp{sun4}, or a canonical name with three
fields:
@example
@var{cpu}-@var{company}-@var{system}
@end example
@noindent
See the file @file{config.sub} for the possible values of each field.

@node Operation Controls,  , System Type, Unix Installation
@subsection Operation Controls

@code{configure} recognizes the following options to control how it
operates.

@table @code
@item --cache-file=@var{file}
Use and save the results of the tests in @var{file} instead of
@file{./config.cache}.  Set @var{file} to @file{/dev/null} to disable
caching, for debugging @code{configure}.

@item --help
Print a summary of the options to @code{configure}, and exit.

@item --quiet
@itemx --silent
@itemx -q
Do not print messages saying which checks are being made.
To suppress all normal output, redirect it to @file{/dev/null}
(any error messages will still be shown).

@item --srcdir=@var{dir}
Look for Dinotrace's source code in directory @var{dir}.  Usually
@code{configure} can determine that directory automatically.

@end table

@noindent
@code{configure} also accepts some other, not widely useful, options.


@node NT Installation,  , Unix Installation
@section NT Installation

Dinotrace can be built for Windows under the Cygwin32 environment.

@subsection Binary Installation

Dinotrace is still a X11 program, even under Windows-NT.  Thus you must
add several packages to Cygwin.

@enumerate
@item
Install Cygwin32, a shareware package that provides the BASH shell and
Unix utilities.  It is available at
@uref{http://sourceware.cygnus.com/cygwin/}.

You'll need the gcc-g++, lesstif, and make packages.  Generally these
aren't installed by default, use the cygwin setup executable to get
them.

@enumerate
@item
After downloading, click on the executable and install.
@item
Cygwin now comes with XFree86 and LessTif as options, you'll want to
select both, along with their development versions.  Also select the
XFree86-prog (headers) package.
@end enumerate

@item
Obtain a X11 server.  You can use XFree86 that came with cygwin.
Another alternative is the commercial @strong{eXcursion} or
@strong{exceed} programs.  If using XFree86, you can start the server
with @samp{xwin -multiwindow}.

@item
Download the Dinotrace kit, if not done previously.

@item
Set your X11 Display.  If you'll only be using it locally, 
use the Control Panel/System/Environment requester to add a DISPLAY
environment variable with the value :0

Or, in the cygwin shell before each run of Dinotrace do
@example
DISPLAY=:0
export DISPLAY
@end example

@item
Reboot or restart the shells to pick up the new environment variables.

@item
Make and install dinotrace.
@example
cd @samp{where_you_put_dinotrace}
./configure
make
make install
@end example

@item
There are known problems in LessTif from looking at network drives in the
Dinotrace File Open requestor.  You may want to specify trace files on the
command line instead of using the requestor.

@item
Finally, see the Dinotrace manual for configuring Dinotrace for your site.

@end enumerate

@node VMS Installation,  , Unix Installation
@section VMS Installation

The @code{configure} program does not support Dinotrace, thus several
command files are supplied to build Dinotrace.

@enumerate
@item
Change to the download directory of dinotrace.
@example
$ set default WHERE_DOWNLOADED
@end example

@item
Build Dinotrace with the make.com file.
@example
$ @@make.com
@end example

@item
If all was successful, you should be able to invoke the Dinotrace executable.
@example
$ run dinotrace.exe
@end example

@item
Create a logical to point to Dinotrace, and make a symbol to invoke
Dinotrace into the background.  To do this, put in your group's login.com:
(Substituting in the appropriate directory for somedisk$.)

@example
$!
$! Dinotrace
$ define/group/nolog DINODISK somedisk$:[DINOTRACE]
$ arch_bin_v == "_VV"
$ if f$getsyi("NODE_HWTYPE") .eqs. "ALPH" then arch_bin_v == "_VA"
$ Dinotraceexe :== "$dinodisk:dinotrace''arch_bin_v'"
$ Dinotrace :== "spawn/nowait/nolog/input=nl:/output=nl: dinotraceexe"
@end example

Note a hazard with this definition of dinotrace: The display, etc. must
be set correctly for Dinotrace to start up.  When running under VMS, if
Dinotrace has an error message when starting, it will not be seen due to
the spawn.  To see error messages, users should be told to type:

@example
$ dinotraceexe
@end example

@item
Finally, see the Dinotrace manual for configuring Dinotrace for your site.

@end enumerate

