Hacking ------- This is a top-level overview to the project, and the source code contained within it. I hope that the source is sufficiently modular that it may be easily understood. src/ -- The main source of the server. The source is documented in the header files, and in the following places: src/README-C++ src/html/ src/html/ -- API documentation. mplib/ -- A small library which parses ID3 tags, and is linked to the main binary. Ignore this ;) man/ -- Contains man pages. config/ -- Contains autoconf support files. Ignore this ;) scripts/ -- Contains a pair of perl scripts which are installed with our binary. templates/ -- The location of the template files + configuration file which are installed. plugins/ -- Location of the plugin librarys. Modifying Autoconf ------------------ Whenever you update an autoconf file, (eg. Makefile.am, or configure.in), you must run ./bootstrap, and ./configure for the changes to propogate. This will require you to have the following tools installed: 1. autoconf 2. automake 3. libtool Adding Plugins -------------- Plugins are simple self-contained libraries which implement a small API described in 'src/iplugin.h'. To add another one: 1. Create a source file 'foo.cc' in ./plugins/. 2. Include it in the build by editting ./plugins/Makefile.am 3. Run: ./bootstrap ./configure make clean make [ make install ] 4. Test the plugin by running 'gnump3d --dump-plugins' If you just wish to make a quick hack you can overwrite one of the existing plugin source files, eg, 'versions.cc' while you are developing it. Then mail your completed source file to me for future inclusion. Steve --- $Revision: 1.3 $