README.mkd

DXR, A Code Search and Cross-Reference Tool

Introduction:

DXR is a source code cross-reference tool that uses static analysis data
collected by instrumented compilers. DXR was created in order to build on
tools like LXR and MXR. DXR runs only on Linux for the moment.

Documentation

DXR is fairly well documented, so whether you're looking to deploy DXR,
write plugins or templates for DXR have a look at the docs/ folder.
The documents in this folder is a great starting point for anybody who wants
to deploy and/or develop DXR.

Quick Start

To try out DXR on a HelloWorld-size project...

cd dxr # (the top level of the repository, not the dxr folder within it)
vagrant up
vagrant ssh

On the VM...

cd ~/dxr
make
cd ~/dxr/tests/test_basic
make
dxr-serve.py target

Then, on your host box, surf to http://33.33.33.77:8000/, and poke around to
your heart's content. You may have to substitute the IP address of your Vagrant
machine.

Installing on a Real Machine

To install DXR on a machine of your choice, install the dependencies in
docs/deployment.mkd. Then, install the dxr Python package, either by
running python2.6 setup.py develop (if you want to hack on DXR itself) or
python2.6 setup.py install.

If you'd like to install it as non-root (recommended), use virtualenv:

virtualenv my-dxr-env
source my-dxr-env/bin/activate # You'll have to repeat this line each time
# you want to use DXR in a new shell.
pip install -r requirements.txt
python setup.py develop # Magic path munging will make this the
# copy of Python in the virtualenv.

Finally, run make from tests/test_basic to build a sample index and
dxr-serve.py tests/test_basic/target to start the server.

Things To Do

This is a short list of major things that could be done to improve DXR.