To build libdwarf.a, type
        ./configure
        make

To use dwarf or libdwarf, you may want to install dwarf.h and
libdwarf.h somewhere convenient, and you may need the libdwarf
in the accompanying libdwarf directory

If your headers are not in the expected places,
use the configure script to access them (and to add other ld
or C flags).
For example
        ./configure  CPPFLAGS="-I/home/davea/inc" CFLAGS="-I/home/davea/inc"
Set both CFLAGS and CPPFLAGS so that configure works properly.


In general, in the producer code, numbers are copied from and
to integers with memcpy().  In case of endianness problems,
constants set in dwarf_producer_init() can fix the problems.
If one wants to produce a *different-endian* output the best
solution is to change the integer memcpy calls to call thru a
new dbg-based function pointer and have it 'do the right thing'
to adjust endianness.  Set the function pointer correctly in
dwarf_producer_init() and the rest of the code will just call
thru the function pointer.  Tedious work to find and change the
memcpy calls to be dbg->de_memcpy(), but once done the code is
no longer endian dependent (right now there is no way to ask
for cross-endian: a new flag needed or ?).

leb128 numbers are endian-independent, so nothing need be
done with those for cross-endian support (the storage
of leb128 on disk is always little-endian).

The .ps files are postscript. So those who cannot deal with mm
format files but do have a postscript printer (or have
ghostscript) can print the documents.  
This form was chosen before pdf format existed...

libdwarf2.1.ps documents a way for a debugger to read dwarf information.
libdwarf2p.1.ps documents a way for a compiler to generate dwarf information.
dwarf.v2.ps documents Dwarf Version 2.
index.v2.ps is an index to dwarf.v2.ps.
indexDW.v2  is a plain text index of dwarf #defines to dwarf.v2.ps
mips_extensions.ps documents the mips/sgi extensions to dwarf.

The commands used to generate the postscript were:
 pr -t -e libdwarf2.1.mm | tbl | psroff -t -mm >libdwarf2.1.ps
 pr -t -e  libdwarf2p.1.mm | tbl | psroff -t -mm >libdwarf2p.1.ps
 pic dwarf.v2.mm | tbl | psroff -t -mm >dwarf.v2.ps 2> newIndex
 pic index.v2.mm | tbl | psroff -t -mm >index.v2.ps

pic is a picture processing tool (ATT command).
tbl is a table-processing tool.
(part of Documentor's Work Bench on ATT-like systems).
tbl and pic are available on linux.

psroff is a name for a troff-like processor, part of
Documentor's Work Bench on IRIX. Substitute a
troff-like or nroff-like processor.

The index.v2.mm was generated by the dwarf-document writer
using some local ATT/USL tools (which SGI does not have, so
there is no way I know of to regenerate this).

To use dwarf or libdwarf, you may want to install dwarf.h and
libdwarf.h somewhere convenient.

You will also need libelf (libelf.a and/or libelf.so) and
libelf.h installed. These are available from GNU repositories.

$Source: /proj/osprey/CVS/open64/osprey1.0/libdwarf/libdwarf/README,v $
$Revision: 1.1.1.1 $
$Date: 2005/10/21 19:00:00 $
