While reorganizing everything I had to think about how to handle 'pgperf', the customized version of GNU gperf that shipped with the original LambdaMOO server. gperf is a "perfect hash generator" that creates a hashing function and a lookup function for the LambdaMOO programming language. It generates the file 'keywords.c' in the project. LambdaMOO came with a hacked version because in 1997 gperf didn't support case-insensitive lookup tables, and the original author of LambdaMOO added this feature and included it with the project.
The idea for the project reorganization I have is at the top level of the Waverous project you will see the standard directories you see in a lot of open source projects:
bash-3.2$ ls -l total 376 -rw-r--r-- 1 swain swain 145516 Jul 29 19:57 ChangeLog -rw-r--r-- 1 swain swain 8605 Jul 29 19:47 LICENSE -rw-r--r-- 1 swain swain 343 Jul 29 19:44 Makefile -rw-r--r-- 1 swain swain 10770 Jul 29 19:47 README -rw-r--r-- 1 swain swain 2907 Jul 29 19:47 README.Minimal -rw-r--r-- 1 swain swain 10121 Jul 29 19:47 README.rX drwxr-xr-x 7 swain swain 238 Jul 29 22:40 databases drwxr-xr-x 8 swain swain 272 Jul 29 19:49 doc drwxr-xr-x 17 swain swain 578 Jul 30 09:19 examples drwxr-xr-x 5 swain swain 170 Jul 29 19:46 extensions drwxr-xr-x 5 swain swain 170 Jul 29 20:00 extras drwxr-xr-x 148 swain swain 5032 Jul 30 09:38 src drwxr-xr-x 8 swain swain 272 Jul 29 19:45 toolsMy goal is to write a Makefile.am that handled the subdirectories that formed "standalone" projects: src (the server), doc (the manual and Doxygen docs), and extras/pgperf.
While waiting for my wife's oil change at the dealership (yay free wi-fi!) I tried to compile 'pgperf' as shipped with the project. Compilation failed due a dependency on varargs.h, "gcc" telling me it was obsolete. This brought to mind a task I've thought about a number of times but hadn't written down: drop pgperf for GNU gperf IFF gperf now supported case-insensitive lookup tables.
GNU gperf added support in 2002 with the flag --ignore-case, so after an afternoon of tinkering, regenerating files, recompiling and testing I've gotten everything working just fine with gperf. I've dropped pgperf entirely from SVN.
On a side note, working with Subversion is so painfully slow now -- I've been using Git for the past six months -- that I'm going to switch the project to Git quite soonish now that Google Code supports Git.