
This is the version 8.0 release of the Dyninst API.  Currently, the API
library is available for the Sparc/Solaris, POWER/AIX, x86/Linux,
x86/Windows XP/2000/2003, Alpha/Tru64 Unix, ia64/Linux, and x86_64/Linux 
platforms.

Documentation for the API can be found at:

    http://www.dyninst.org/

The dyninst/dyninstAPI/tests directory contains the source code for programs
that test the API functions.  These programs are useful as examples of how
to use the API.  See the README file in that directory for how to run or
rebuild them.

Setting up the environment
--------------------------

Before compiling or using the Dyninst API library, you should set the
environment variables PLATFORM and DYNINST_ROOT.  PLATFORM should be set to
one of the following values depending upon what operating system you are
running on:

    alpha-dec-osf5.1		Tru64 Unix on the Alpha processor
    i386-unknown-linux2.4	Linux 2.4/2.6 on an Intel x86 processor
    i386-unknown-nt4.0		Windows XP/2000/2003 on an Intel x86 processor
    ia64-unknown-linux2.4	Linux 2.4/2.6 on an IA-64 processor
    rs6000-ibm-aix5.1		AIX Version 5.1
    sparc-sun-solaris2.9	Solaris 2.9 on a SPARC processor
    x86_64-unknown-linux2.4     Linux 2.4/2.6 on an AMD-64 processor

DYNINST_ROOT should be set to the pathname of the top of the library
directory tree (dyninstAPI-v5.0).

DYNINSTAPI_RT_LIB should be set to the full pathname of the file
libdyninstAPI_RT.so.1 (on Windows, libdyninstAPI_RT.dll).  If you have
correctly set the DYNINST_ROOT and PLATFORM environment variables, then the
proper pathname is:

    $DYNINST_ROOT/$PLATFORM/lib/libdyninstAPI_RT.so.1 (UNIX)
    %DYNINST_ROOT%/i386-unknown-nt4.0/lib/libdyninstAPI_RT.dll (Windows)

On Unix-based systems, you will also need to add $DYNINST_ROOT/$PLATFORM/lib
to your LD_LIBRARY_PATH environment variable (LIBPATH on AIX,
LD_LIBRARY64_PATH on Irix).  On Windows, you will instead need to add
%DYNINST_ROOT%/i386-unknown-nt4.0/lib to your PATH environment variable.  
This is so that mutator applications can be linked dynamically with the
Dyninst library.

Notes on Using Dyninst with Linux
---------------------------------

On Linux, Dyninst requires some libraries that are not installed by default
in most distributions.  The first is libelf, which is included with most
distributions and can be installed using the distribution's package manager.
The second is libdwarf.  You can get the latest source code distribution
of libdwarf from http://reality.sgiweb.org/davea/.  RPM files for libdwarf
are also available from various sites.  Lastly, for IA-64, libunwind must
be installed, which can be found at 
http://www.hpl.hp.com/research/linux/libunwind/.

Building the Dyninst API from source
------------------------------------

If you downloaded the source distribution of this package, you can build the
Dyninst API libraries by running "make" in the dyninst directory (one level up
from where this README file is located), assuming your environment is set up
as described above.  On Unix platforms, you must use GNU make.  The top-level
makefile contains directives for compiling the Paradyn parallel performance
tool, from which the Dyninst API was derived.  If you have downloaded only the
Dyninst API, you will see a number of messages about missing directories.
These directories are needed only for making Paradyn, so you should ignore
these messages.  If you downloaded the entire Paradyn distribution, you can
make only the API libraries by running "make DyninstAPI" in the dyninst  
directory.

-----------------------------------------------------------------------------

This software is derived from the Paradyn system and therefore subject to
the same copyright.  A copy of the Paradyn copyright appears at the end of
this file.

	The Dyninst API Team
	6/23/2006

----------------------- Start of Paradyn Copyright --------------------------
See the dyninst/COPYRIGHT file for copyright information.
 
We provide the Paradyn Tools (below described as "Paradyn")
on an AS IS basis, and do not warrant its validity or performance.
We reserve the right to update, modify, or discontinue this
software at any time.  We shall have no obligation to supply such
updates or modifications or any other form of support to you.

By your use of Paradyn, you understand and agree that we (or any
other person or entity with proprietary rights in Paradyn) are
under no obligation to provide either maintenance services,
update services, notices of latent defects, or correction of
defects for Paradyn.

This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.

This library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
Lesser General Public License for more details.

You should have received a copy of the GNU Lesser General Public
License along with this library; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA

// this comment should be removed
