==========================================================================
=    rxref: experimental C cross referencer using DWARF2 debugging info. = 
=    -- Copyright (c) 2004, suzutomo@jaist.ac.jp, All rights reserved.   =
==========================================================================

Disclaimer:
-----------
    WARNING: this software is not completely tested.
    This software is intended to be useful, but it has no warranty.
    Use this software at your own risk. We disclaim any liability of any 
    kind of damages whatsoever resulting from the use of this software.

Overview:
---------
    This is the beta version of rxref, hybrid version of dxref and
    GNU GLOBAL.
    `rxref' is still under development; further debugging, testing, and
    refactoring are required.

    rxref requires `readelf+' and `dwarf2.dtd' to produce DWARF2-XML
    documents.

Platform:
---------
    Currently, we tested rxref in the following platform.

    - Solaris 8, gcc-3.3.2, ruby-1.6.1, REXML-2.4.8, global-4.6.1

Build and Installation:
------------
    To install, 

	% tar xvzf rxref-b1.tgz; cd rxref-b1
        % cp rxref.rb rxref.csh /somewhere/rxref/to/be/installed
        % set path = (/somewhere/dxref/to/be/installed $path)

Usage:
------
    Before do the following, please make sure that ruby-1.6.1,
    REXML-2.4.8, global-4.6.1 are installed.
    (Other combinations like ruby-1.8.0 and/or REXML-2.7.1 do
     not work well.)

    	% gcc -g3 -gdwarf-2 foo.c
        % cp /somewhere/dxref/to/be/installed/dwarf2.dtd .
        % readelf+ -X a.out > foo.xml
    	% ruby rxref.rb -g foo.xml
        % /your/web/browser ./HTML/rxref_top.html

Misc:
------
    - rxref uses SAX, not DOM, which have drastically improved the
      execution speed.
    - With the option '-g', rxref invokes GNU GLOBAL, and uses its outputs.
    - (Current) rxref doesn't use 'dwarf2.dtd' because REXML-2.4.8 does
      not support DTD validation, although you need 'dwarf2.dtd' when
      you invoke 'readelf+'.
    - Bug: rxref sometimes embed wrong links in source code that has two
      or more compilation units.
