mod_rivet builds out of several components:

- mod_rivet: the module with it's configuration code and main callbacks
- rivetCore.c: code extending Tcl with new commands written in C
- rivetChannel.c: a Tcl channel reimplementing stdout
- apache_request.c and apache_multipart_buffer.c: code handling data sent to the server as part of a request (e.g. forms)
- rivetParser.c and librivetparser: Rivet templates
- librivet.so: various utilities (some of them still undocumented)
- TclWebapache.c: several functions interfacing Tcl and the Apache framework

With the present setup it's awkward (if impossible) to work with the code of a specific component if the whole directory tree is not replicated as well.

Thus I created a 'modular' branch to publish my efforts towards an organization of the directory tree with looser connections among components *at the build system level*

Goal 1: it would be desirable to enable a developer to build a module using, for instance, 'trunk' as base directory tree while picking specific code from other directories or branches

Goal 2: it should be possible to tell automake where a specific component code is located (already implemented for symbol 'apache-request')

Goal 3: modularization could go further ahead and include also other components (e.g. module configuration within the Apache server currently in mod_rivet.c)

I prepared a branch 'modular' where most of the C code under src has been moved in several directories

 -- 'channel'  the Rivet channel
 -- 'request'  apache_request.c and apache_multipart_buffer.c
 -- 'rivetcmds' rivetCore.c (and its companion rivetConf.c)

other directories already existing

 -- 'parser' librivetparser
 -- 'librivet' librivet.so
 -- 'apache-2' the module for Apache 2.x

Makefile.am files have been adapted to the new directory tree layout and
the module builds quite nicely. Notice: only Makefile.am's were changed, C code files were simply moved into their new directories

There is still a strict dependency with the name of files that make into mod_rivet. In other words if you're branching the development of rivetCore.c in 'mycore' you have to make sure the new directory contains a set of files bearing the same names as those in 'rivetcmds'. After all this is what happens when you branch the code.

The switch --with-apache-request has been implemented and the same mechanism could be in case easily replicated for other directories.

thank you for your patience in reading this long message.

 Any feedbacks would be appreciated

 -- Massimo

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to