Introduction
============
treedb is designed from the beginning to be able to manipulate arbitrary
structures in memory while that memory is backed by a real file using mmap.
In other words a really low level network database.
See the pathfinders Andromeda, Cartwheel and Comet for examples.
You will need GNU gcc/g++ 4.4.5 or later - earlier versions don't support
the stdcall calling convention.
I got gcc version 4.4.5 (Debian 4.4.5-8) from the Squeeze repository on Debian
(I'm using Debian Lenny amd64), but I don't know how to get the equivalent
in Ubuntu 10.04 LTS (Lucid).
gcc/g++ 4.5.1 also works.
Directory layout
================
treedb (you are here)
|-build (everything created goes here, as far as the tools will allow)
| \-v3c
| |-1-andromeda
| |-2-cartwheel
| |-3-comet
| \-4-sombrero
\-v3c (the source)
|-1-andromeda
|-2-cartwheel
|-3-comet
\-4-sombrero
Requirements
============
This is a sub-project of v3c so you'll need that for the build framework and
some header files.
base requirements
-----------------
apt-get install mscgen
fuse + tests (optional)
---------------------
If you want to use treedb allocator with (your) programs it's activated once
libfuse-dev is installed, which you get with
apt-get install libfuse-dev
Debian/Ubuntu packages
======================
If you run
make debian
the build system will compile and distcheck v3c/treedb before creating a .tar.gz
tar ball.
This tar ball is then used by the build system to build the debian packages.
You will need a gpg public/private key pair if you want to to sign these
packages - more info can be found in the "maint-guide" debian package.
doxygen
=======
I've cobbled together a doxygen "documentation chain" so that other projects can
layer their doxygen documentation on top of their provider packages easily.
Then to install the documentation
make doxygen-doc && sudo make install-doxygen-doc
You'll need graphviz and mscgen for the doxygen diagrams.
On debian this is accomplished with
apt-get install doxygen graphviz mscgen
Please note that I also got mscgen from Debian Squeeze.
v3c
===
v3c provides basic build functionality used by treedb.
Once v3c is installed, treedb can use the v3c "build boilerplate" as follows
Symbolic links:
As automake doesn't know how to include/reference "external" automake files,
these are linked from those that v3c installs.
doxygen.am -> $(prefix)/include/v3c/doxygen.am
$(prefix)/include/v3c/v3c.mak and $(prefix)/include/v3c/v3c_mak.sh are used
through the "make" path. Why can't regular paths work that way?
Feedback
========
All feedback should be through this projects support web page
http://sourceforge.net/projects/treedb/support.
I've added a help, open discussion and a mantis bug tracker there.
Finally, do send me an email to let me know what your thoughts are on
treedb!