+INSTALL
+-------
+
+ This document provides a description of the MLT project installation and
+ organisation.
+
+ It provides *CRITICAL* architecture information, so please read carefully
+ if you plan to extend or use the MLT code base.
+
+
+Directories
+-----------
+
+ The directory heirarchy is defined as follows:
+
+ + docs - Location of all documentation
+ + src - All project source is provided here
+ + framework - The mlt media framework
+ + modules - All services are defined here
+ + core - Independent MLT services
+ + dv - libdv dependent services
+ + ffmpeg - ffmpeg dependent services
+ + avformat - libavformat dependent services
+ + vorbis - vorbis dependenent services
+ + sdl - SDL dependent services
+ + resample - libresample dependent services
+ + gtk2 - pango and pixbuf dependent services
+ + bluefish - Bluefish dependent services (*)
+ + mainconcept - mainconcept dependent services (*)
+ + inigo - A media playing test application
+ + valerie - Client API to access the server
+ + miracle - The server implementation
+ + humperdink - The evil demo
+ + albino - The simple but nice demo
+ + tests - Reserved for regression and unit tests
+
+ Additional subdirectories may be nested below those shown and should be
+ documented in their parent.
+
+ (*) Not posted to CVS due to licensing issues.
+
+
+Configuration
+-------------
+
+ Configuration is triggered from the top level directory via a
+ ./configure script.
+
+ Each source bearing subdirectory shown above have their own configure
+ script which are called automatically from the top level.
+
+ Typically, new modules can be introduced without modification to the
+ configure script and arguments are accepted and passed through to all
+ subdirectories.
+
+ Top level usage is:
+
+ ./configure --help - report all configure options
+ ./configure --prefix=[dir] - target install directory (default: /usr/local)
+ ./configure --disable-[mod] - do not compile specified module(s)
+ ./configure --[other] - pass through to children
+
+ NB: This script must be run to register new services after a CVS checkout
+ or subsequent update.
+
+
+Compilation
+-----------
+
+ Makefiles are generated during configuration and these are based on
+ a per directory template which must be provided by the developer.
+
+
+Testing
+-------
+
+ To execute the mlt tools without installation, or to test a new version
+ on a system with an already installed mlt version, you should run:
+
+ . setenv
+
+ NB: This applies to your current shell only.
+
+
+Installation
+------------
+
+ * NOT IMPLEMENTED YET *
+
+ The install is triggered by running make install or make install-strip
+ from the top level directory.
+
+ The framework produces a single shared object which is installed in
+ $prefix/lib/ and public header files which are installed in
+ $prefix/include/mlt/framework.
+
+ The client produces a single shared object which is installed in
+ $prefix/lib/ and public header which are installed in
+ $prefix/include/mlt/client.
+
+ The server produces a single exectuable which is installed in
+ $prefix/bin/. This is linked against the framework shared object and
+ posix libs but not against any of the modules.
+
+ The modules produce a shared object per module and update text files
+ containing a list of modules provided by this build. These are installed
+ in $prefix/share/mlt/. It is at the discretion of the module to install
+ additional support files.
+
+ To allow the development of external components, mlt-client-config and
+ mlt-framework-config scripts are generated and installed in $prefix/bin.
+
+ After install, only those modules listed are usable by the server. No
+ module is loaded unless explicitly requested via server configuration
+ or usage.
+
+ External modules are also placed in this $prefix/share/mlt, and the
+ installation of those must modify the text file accordingly before they
+ will be considered at runtime.
+
+
+Development
+-----------
+
+ All compilation in the project has {top-level-dir}/src on the include path.
+ All headers are included as:
+
+ #include <framework/file.h>
+
+ All external modules have {prefix}/include/mlt on the include path. All
+ headers should also be included as:
+
+ #include <framework/file.h>
+
+ This allows migration of source between external and internal modules.
+ The configuration and Makefile template requirements will require
+ attention though.
+
+