tasty renamings
authorChris Koeritz <fred@gruntose.com>
Mon, 12 Dec 2016 12:10:56 +0000 (07:10 -0500)
committerChris Koeritz <fred@gruntose.com>
Mon, 12 Dec 2016 12:10:56 +0000 (07:10 -0500)
moved doc to documentation and fixed all references ( i hope ).
moved customizing to customize and fixed all refs ( ditto ).
added nice docs to doxygen docs builder for error case.

70 files changed:
customize/fred/fred_common.alias [new file with mode: 0644]
customize/fred/fred_variables.sh [new file with mode: 0644]
customize/fred/java_profile.sh [new file with mode: 0644]
customize/fred/refred.sh [new file with mode: 0644]
customize/fred/scripts/gamesaver.sh [new file with mode: 0644]
customize/fred/scripts/pick_credentials.sh [new file with mode: 0644]
customize/fred/scripts/sftp.sh [new file with mode: 0644]
customize/fred/scripts/ssh.sh [new file with mode: 0644]
customize/fred/scripts/synch_archives_from_surya.sh [new file with mode: 0644]
customize/fred/scripts/update_barkuptree.sh [new file with mode: 0644]
customize/fred/scripts/update_musix_on_curie.sh [new file with mode: 0644]
customize/fred/scripts/update_soapbox.sh [new file with mode: 0644]
customize/how_to_customize.txt [new file with mode: 0644]
customize/mik/mik.alias [new file with mode: 0644]
customizing/fred/fred_common.alias [deleted file]
customizing/fred/fred_variables.sh [deleted file]
customizing/fred/java_profile.sh [deleted file]
customizing/fred/refred.sh [deleted file]
customizing/fred/scripts/gamesaver.sh [deleted file]
customizing/fred/scripts/pick_credentials.sh [deleted file]
customizing/fred/scripts/sftp.sh [deleted file]
customizing/fred/scripts/ssh.sh [deleted file]
customizing/fred/scripts/synch_archives_from_surya.sh [deleted file]
customizing/fred/scripts/update_barkuptree.sh [deleted file]
customizing/fred/scripts/update_musix_on_curie.sh [deleted file]
customizing/fred/scripts/update_soapbox.sh [deleted file]
customizing/how_to_customize.txt [deleted file]
customizing/mik/mik.alias [deleted file]
doc/clam_manual/clam_docs.html [deleted file]
doc/clam_manual/clam_root.html [deleted file]
doc/cygwin_install_list.txt [deleted file]
doc/doc_fodder/bash_tools.html [deleted file]
doc/doc_fodder/perl_tools.html [deleted file]
doc/doc_fodder/readme.txt [deleted file]
doc/feisty_meow_dox.config [deleted file]
doc/headers/fmc_header.java [deleted file]
doc/headers/gnu_header.h [deleted file]
doc/headers/shell_header.txt [deleted file]
doc/headers/uva_header.java [deleted file]
doc/history_anat.txt [deleted file]
doc/makefile [deleted file]
doc/text_examples/chinese_simplified_text.txt [deleted file]
doc/text_examples/korean_text.txt [deleted file]
doc/text_examples/readme.txt [deleted file]
doc/text_examples/russian_text.txt [deleted file]
doc/text_examples/tibetan_text.txt [deleted file]
documentation/clam_manual/clam_docs.html [new file with mode: 0644]
documentation/clam_manual/clam_root.html [new file with mode: 0644]
documentation/cygwin_install_list.txt [new file with mode: 0644]
documentation/doc_fodder/bash_tools.html [new file with mode: 0644]
documentation/doc_fodder/perl_tools.html [new file with mode: 0644]
documentation/doc_fodder/readme.txt [new file with mode: 0644]
documentation/doxygen_objdb_22847.tmp [new file with mode: 0644]
documentation/feisty_meow_dox.config [new file with mode: 0644]
documentation/headers/fmc_header.java [new file with mode: 0644]
documentation/headers/gnu_header.h [new file with mode: 0644]
documentation/headers/shell_header.txt [new file with mode: 0644]
documentation/headers/uva_header.java [new file with mode: 0644]
documentation/history_anat.txt [new file with mode: 0644]
documentation/makefile [new file with mode: 0644]
documentation/text_examples/chinese_simplified_text.txt [new file with mode: 0644]
documentation/text_examples/korean_text.txt [new file with mode: 0644]
documentation/text_examples/readme.txt [new file with mode: 0644]
documentation/text_examples/russian_text.txt [new file with mode: 0644]
documentation/text_examples/tibetan_text.txt [new file with mode: 0644]
infobase/configuration/cron/doxygen.crontab
production/setup_src/whole_build_package/whole_build_manifest.txt
readme.txt
scripts/archival/snarf_feisty_meow.pl
scripts/core/functions.sh

diff --git a/customize/fred/fred_common.alias b/customize/fred/fred_common.alias
new file mode 100644 (file)
index 0000000..77f4e48
--- /dev/null
@@ -0,0 +1,11 @@
+
+# some aliases that i don't expect very many people to ever want.  they are
+# based on some of the mount configurations available at home or abroad.
+
+# moo and unmoo mount the local folders i use most.
+define_yeti_alias moo='check_mount /z/stuffing ; check_mount /z/walrus ; check_mount /z/chunky ; check_mount /z/fredgrid'
+define_yeti_alias unmoo='sudo umount /z/stuffing ; sudo umount /z/walrus ; sudo umount /z/chunky ; sudo umount /z/fredgrid'
+
+# load in the gffs build scripts.
+source "$FEISTY_MEOW_SCRIPTS/buildor/gffs_builders.sh"
+
diff --git a/customize/fred/fred_variables.sh b/customize/fred/fred_variables.sh
new file mode 100644 (file)
index 0000000..86c29b9
--- /dev/null
@@ -0,0 +1,67 @@
+
+# these are my personal overrides.  --fred.
+
+if [ -z "$USER_CUSTOMIZATIONS_LOADED" ]; then
+  # if we don't see the nethack variable defined, this probably hasn't run yet.
+
+  # The cloud directory is our new repository that's always available.  It serves as our
+  # personal cloud for data.
+  export CLOUD_BASE=$HOME/cloud
+
+  # The gruntose web site is expected to reside below, if it exists at all.
+  export WEBBED_SITES=$HOME/web
+  if [ "$(hostname)" = "zooty.koeritz.com" ]; then
+    export WEBBED_SITES=/var/www
+  fi
+
+  # add a bunch of folders to the list for checkin & checkout.  these are
+  # definitely personal, and some of them are fairly dated (the yeti and
+  # hoople folders, for example).
+  REPOSITORY_LIST+="cloud ebooks web antique inova_codebase antique/inova_codebase yeti bigdata "
+
+  # point to our local certificate for ssh usage.
+  export SVN_SSH="ssh -i $HOME/.ssh/id_dsa_sourceforge"
+
+  # Error and success noises for CLAM.
+  export CLAM_ERROR_SOUND='/z/walrus/media/sounds/effects/bwaaang.wav /z/walrus/media/sounds/cartoons/doh4.wav'
+  export CLAM_FINISH_SOUND='/z/walrus/media/sounds/cartoons/meepmeep.wav'
+
+  # Setup for nethack adventure.
+  export NETHACKOPTIONS="name:Manjusri-W,dogname:Fred,catname:Zonker"
+
+  # mail setup for home machines.
+#  export REPLYTO=fred@gruntose.com
+#  export from="Fred T. Hamster <fred@gruntose.com>"
+
+  # set our browser for seti and others that use the variable.
+#  export BROWSER=/usr/bin/firefox
+
+  # editor and other mixed settings...
+  export EDITOR="$(which vim)"
+  if [ -z "$EDITOR" ]; then
+    EDITOR="$(which vi)"
+    if [ -z "$EDITOR" ]; then
+      EDITOR="$(which emacs)"
+      if [ -z "$EDITOR" ]; then
+        echo "Cannot find a friendly editor."
+      fi
+    fi
+  fi
+  export VISUAL="$EDITOR"
+  # the editors for revision control must wait while document is edited,
+  # so gvim and others launched to x window are not appropriate.
+  export GIT_EDITOR="$EDITOR"
+  export SVN_EDITOR="$EDITOR"
+
+  # this hideous mess is necessitated by our not having found the source of the
+  # settings yet.  we override a few colors that look bad on a dark background.
+  export LS_COLORS='no=00:fi=00:di=01;37:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;35:*.rpm=00;33:*.deb=00;33:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;35:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;35:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:'
+
+  # options for the lame mp3 encoder.
+  export LAMEOPT="--alt-preset extreme"
+
+  # customization sentinel can be set now.
+  export USER_CUSTOMIZATIONS_LOADED=true
+fi
+
+
diff --git a/customize/fred/java_profile.sh b/customize/fred/java_profile.sh
new file mode 100644 (file)
index 0000000..30128a2
--- /dev/null
@@ -0,0 +1,134 @@
+#!/bin/bash
+
+# Author: Chris Koeritz
+
+# this script tries to intuit where java is installed on this machine.
+
+############################
+
+source $FEISTY_MEOW_SCRIPTS/core/functions.sh
+
+# this reports when we have totally failed to figure out where a folder
+# is actually located on the machine.
+function intuition_failure()
+{
+  missing="$1"; shift
+  if [ ! -z "$SHELL_DEBUG" ]; then
+    echo "Could not intuit '$missing' variable."
+  fi
+  # remove the variable because its value is busted.
+  unset $missing
+}
+
+############################
+
+# set some fairly liberal limits for ant.
+#no. export ANT_OPTS="-Xms512m -Xmx768m -XX:MaxPermSize=768m"
+
+############################
+
+# start guessing some settings...
+
+# this bin portion works for most javas...
+export JAVA_BIN_PIECE=bin
+
+if [ ! -d "$JAVA_HOME" ]; then
+  # try a recent version.
+  export JAVA_HOME=/usr/lib/jvm/java-8-oracle
+fi
+if [ ! -d "$JAVA_HOME" ]; then
+  # or an older version.
+  export JAVA_HOME=/usr/lib/jvm/java-7-oracle
+fi
+if [ ! -d "$JAVA_HOME" ]; then
+  JAVA_HOME="$(ls -d c:/tools/*jdk* 2>/dev/null)"
+fi
+if [ ! -d "$JAVA_HOME" ]; then
+  JAVA_HOME="$(ls -d "c:/Program Files"/*jdk* 2>/dev/null)"
+fi
+if [ ! -d "$JAVA_HOME" ]; then
+  JAVA_HOME="$(ls -d "c:/Program Files (x86)"/*jdk* 2>/dev/null)"
+fi
+if [ ! -d "$JAVA_HOME" ]; then
+  if [ ! -z "$(grep -i 'd:' /proc/mounts 2>/dev/null)" ]; then
+    # try using a windows version.
+    JAVA_HOME="$(ls -d d:/tools/*jdk* 2>/dev/null)"
+  fi
+fi
+# this should go last, since it changes the bin dir.
+if [ ! -d "$JAVA_HOME" ]; then
+  # if that didn't work, try the location for mac os x.
+  JAVA_HOME=/Library/Java/Home
+  JAVA_BIN_PIECE=Commands
+fi
+# last thing is to tell them we couldn't find it.
+if [ ! -d "$JAVA_HOME" ]; then
+  unset JAVA_HOME
+  unset JAVA_BIN_PIECE
+  if [ -z "$(whichable java 2>/dev/null)" ]; then
+    intuition_failure JAVA_HOME
+  fi
+fi
+
+############################
+
+# intuit where we have our local eclipse.
+if [ ! -d "$ECLIPSE_DIR" ]; then
+  export ECLIPSE_DIR=/usr/local/eclipse
+fi
+if [ ! -d "$ECLIPSE_DIR" ]; then
+  ECLIPSE_DIR=$HOME/eclipse
+fi
+if [ ! -d "$ECLIPSE_DIR" ]; then
+  ECLIPSE_DIR=$HOME/apps/eclipse
+fi
+if [ ! -d "$ECLIPSE_DIR" ]; then
+  ECLIPSE_DIR="c:/tools/eclipse"
+fi
+if [ ! -d "$ECLIPSE_DIR" ]; then
+  if [ ! -z "$(grep -i 'd:' /proc/mounts 2>/dev/null)" ]; then
+    ECLIPSE_DIR="d:/tools/eclipse"
+  fi
+fi
+if [ ! -d "$ECLIPSE_DIR" ]; then
+  if [ ! -z "$(grep -i 'e:' /proc/mounts 2>/dev/null)" ]; then
+    ECLIPSE_DIR="e:/tools/eclipse"
+  fi
+fi
+# final option is to whine.
+if [ ! -d "$ECLIPSE_DIR" ]; then
+  unset ECLIPSE_DIR
+else
+  if [ ! -z "$(uname -a | grep -i cygwin)" ]; then
+    # fix the path for cygwin's bizarre requirement of /cygdrive/X.
+    ECLIPSE_DIR=$(echo $ECLIPSE_DIR | sed -e 's/^\(.\):/\/cygdrive\/\1/')
+  fi
+fi
+if [ -z "$ECLIPSE_DIR" -a -z "$(whichable eclipse 2>/dev/null)" ]; then
+  intuition_failure ECLIPSE_DIR
+fi
+
+############################
+
+# use the variables we just set in our path, and try to make them override
+# any other paths to different versions.
+
+if [ ! -z "$JAVA_HOME" ]; then
+  j="$JAVA_HOME"
+  if [ ! -z "$(uname -a | grep -i cygwin)" ]; then
+    j=$(echo $j | sed -e 's/^\(.\):/\/cygdrive\/\1/')
+  fi
+  export PATH=$j/$JAVA_BIN_PIECE:$PATH
+fi
+if [ ! -z "$ECLIPSE_DIR" ]; then
+  e="$ECLIPSE_DIR"
+  if [ ! -z "$(uname -a | grep -i cygwin)" ]; then
+    e=$(echo $e | sed -e 's/^\(.\):/\/cygdrive\/\1/')
+  fi
+  export PATH=$e:$PATH
+fi
+
+############################
+
+#echo "java_profile: JAVA_HOME='$JAVA_HOME' ECLIPSE_DIR='$ECLIPSE_DIR'"
+
diff --git a/customize/fred/refred.sh b/customize/fred/refred.sh
new file mode 100644 (file)
index 0000000..06faf84
--- /dev/null
@@ -0,0 +1,18 @@
+#!/bin/bash
+
+# cleans up the ownership for all my files.
+function refred()
+{
+  sudo chown -R fred:fred /home/fred /home/games /home/archives
+  sudo bash $FEISTY_MEOW_SCRIPTS/files/normal_perm.sh /var/log
+}
+
+# this block should execute when the script is actually run, rather
+# than when it's just being sourced.
+if [[ $0 =~ .*refred\.sh.* ]]; then
+  THISDIR="$( \cd "$(\dirname "$0")" && /bin/pwd )"
+  export LIGHTWEIGHT_INIT=true
+  source "$THISDIR/../../scripts/core/launch_feisty_meow.sh"
+  refred
+fi
+
diff --git a/customize/fred/scripts/gamesaver.sh b/customize/fred/scripts/gamesaver.sh
new file mode 100644 (file)
index 0000000..0cd6b72
--- /dev/null
@@ -0,0 +1,55 @@
+#!/bin/bash
+
+# a helpful script that scrapes any active game saves from wine's storage
+# area into a spooling saves folder for archiving.
+
+source $FEISTY_MEOW_SCRIPTS/core/functions.sh
+
+WINE_SOURCE_DIR="$HOME/wine_goods/My Games"
+SPOOLING_OUTPUT_DIR="$HOME/spooling_saves"
+
+if [ ! -d "$WINE_SOURCE_DIR" ]; then
+  WINE_SOURCE_DIR="c:/users/fred/My Documents/My Games"
+fi
+if [ ! -d "$WINE_SOURCE_DIR" ]; then
+  echo "Failing to find the game save directories."
+  exit 1
+fi
+
+# copies the files for a particular game out to a spooling folder.
+function copyem()
+{
+  game_name="$1"; shift
+  source_dir="$1"; shift
+  out_dir="$1"; shift
+
+  if [ -d "$source_dir" ]; then
+    echo $game_name
+    cp -v -n "$source_dir"/* "$out_dir"/
+    sep 28
+  fi
+}
+
+# make the output folders if they don't exist.
+for i in skyrim fallout_new_vegas fallout_3/Saves oblivion fallout_4/Saves ; do
+  if [ ! -d "$SPOOLING_OUTPUT_DIR/$i" ]; then
+    mkdir -p "$SPOOLING_OUTPUT_DIR/$i"
+  fi
+done
+
+# now run through and copy our save files from the potentially weird locations
+# they reside in.
+
+sep 28
+
+copyem "skyrim" "$WINE_SOURCE_DIR/Skyrim/Saves" "$SPOOLING_OUTPUT_DIR/skyrim"
+
+copyem "fallout new vegas" "$WINE_SOURCE_DIR/FalloutNV/Saves" "$SPOOLING_OUTPUT_DIR/fallout_new_vegas"
+
+copyem "fallout 3" "$WINE_SOURCE_DIR/Fallout3/Saves" "$SPOOLING_OUTPUT_DIR/fallout_3/Saves"
+
+copyem "oblivion" "$WINE_SOURCE_DIR/Oblivion/Saves" "$SPOOLING_OUTPUT_DIR/oblivion/"
+
+copyem "fallout 4" "$WINE_SOURCE_DIR/Fallout4/Saves" "$SPOOLING_OUTPUT_DIR/fallout_4/Saves"
+
+
diff --git a/customize/fred/scripts/pick_credentials.sh b/customize/fred/scripts/pick_credentials.sh
new file mode 100644 (file)
index 0000000..8b4b55e
--- /dev/null
@@ -0,0 +1,17 @@
+#!/bin/bash
+
+# chooses the right certificate to use for logging in via ssh.
+
+#hmmm: not the slightest bit general here currently.
+#      what about having a main key variable and a sourceforge key variable?
+#      better yet, an array of site patterns and keys for those sites.
+
+keyfile="$HOME/.ssh/id_dsa_fred"
+
+if [ ! -z "$(echo $* | grep -i sourceforge)" ]; then
+  keyfile="$HOME/.ssh/id_dsa_sourceforge"
+fi
+
+if [ ! -f "$keyfile" ]; then
+  unset keyfile
+fi
diff --git a/customize/fred/scripts/sftp.sh b/customize/fred/scripts/sftp.sh
new file mode 100644 (file)
index 0000000..c668500
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/bash
+
+source "$FEISTY_MEOW_LOADING_DOCK/custom/scripts/pick_credentials.sh"
+
+# a wrapper for the file transfers using secure shell.
+\sftp -i "$keyfile" $*
+
diff --git a/customize/fred/scripts/ssh.sh b/customize/fred/scripts/ssh.sh
new file mode 100644 (file)
index 0000000..316228c
--- /dev/null
@@ -0,0 +1,49 @@
+#!/bin/bash
+
+# wraps our calling the secure shell and lets us pick our credentials.
+
+source "$FEISTY_MEOW_LOADING_DOCK/custom/scripts/pick_credentials.sh"
+
+# save the former terminal title if we're running in X with xterm.
+prior_title=
+which xprop &>/dev/null
+if [ $? -eq 0 ]; then
+  if [[ "$TERM" =~ .*"xterm".* ]]; then
+    prior_title="$(xprop -id $WINDOWID | perl -nle 'print $1 if /^WM_NAME.+= \"(.*)\"$/')"
+  fi
+fi
+
+# force the TERM variable to a more generic version for other side.
+# we don't want the remote side still thinking it's running xterm.
+export TERM=linux
+
+#hmmm: it would be good to set an interrupt handler here and
+#      trap ctrl-c, since otherwise we are getting exited from and losing a chance
+#      to reset the terminal title.  this actually happens a lot, since some X11
+#      or other background process is left running and the ssh never actually quits,
+#      forcing one to hit ctrl-c.
+
+if [ ! -z "$keyfile" ]; then
+  \ssh -i "$keyfile" -X -C $*
+#-c blowfish-cbc 
+else
+  \ssh -X -C $*
+#-c blowfish-cbc 
+fi
+
+if [ $? -eq 0 ]; then
+  # we don't want to emit anything extra if this is being driven by git.
+  if [ -z "$(echo $* | grep git)" ]; then
+    # re-run the terminal labeller after coming back from ssh.
+    # we check the exit value because we don't want to update this for a failed connection.
+    if [ -z "$prior_title" ]; then
+#echo prior title nil new label
+      bash $FEISTY_MEOW_SCRIPTS/tty/label_terminal_with_infos.sh
+    else
+#echo "using old prior title of '$prior_title'"
+      bash $FEISTY_MEOW_SCRIPTS/tty/set_term_title.sh "$prior_title"
+    fi
+  fi
+fi
+
+
diff --git a/customize/fred/scripts/synch_archives_from_surya.sh b/customize/fred/scripts/synch_archives_from_surya.sh
new file mode 100644 (file)
index 0000000..ceac4bf
--- /dev/null
@@ -0,0 +1,16 @@
+
+# curie is the source for musix and also has limited space for walruses,
+# so we check for that being our host here.
+hostname -f 2>&1 | grep -i curie &>/dev/null
+if [ $? -eq 0 ]; then
+  # this name has curie in it, so we're probably on there.
+  echo "Updating with special case for curie from surya"
+  rsync -avz surya:/z/walrus/media/pictures/* /z/walrus/media/pictures/
+  rsync -avz surya:/z/walrus/media/sounds/* /z/walrus/media/sounds/
+else
+  echo "Updating standard host from surya"
+  rsync -avz surya:/z/walrus/* /z/walrus/
+  rsync -avz surya:/z/musix/* /z/musix/
+fi
+
+
diff --git a/customize/fred/scripts/update_barkuptree.sh b/customize/fred/scripts/update_barkuptree.sh
new file mode 100644 (file)
index 0000000..539672b
--- /dev/null
@@ -0,0 +1,7 @@
+
+
+#hmmm: plug in stuff from the updater for soapbox.
+
+rsync -av /z/backups/archive_backups/* /media/fred/barkuptreedrive/archive_backups/
+rsync -av /z/walrus/* /media/fred/barkuptreedrive/walrus/ 
+rsync -av /z/musix/* /media/fred/barkuptreedrive/musix/
diff --git a/customize/fred/scripts/update_musix_on_curie.sh b/customize/fred/scripts/update_musix_on_curie.sh
new file mode 100644 (file)
index 0000000..cca8325
--- /dev/null
@@ -0,0 +1,17 @@
+
+# this script is meant to be run on curie with our super alpha prime source of music plugged in.
+
+#hmmm: add the goodness around these like the nice updater.
+
+if [[ ! ( $(hostname) =~ .*curie.* ) ]]; then
+  echo this script is only designed to run on curie with the
+  echo fred music prime external disc plugged in.
+  exit 1
+fi
+
+rsync -av /media/fred/fredmusicprime/musix/* /z/musix/
+rsync -avz /z/musix/* surya:/z/musix/ 
+rsync -avz /z/musix/* wildmutt:/z/musix/ 
+rsync -avz /z/musix/* euphrosyne:/z/musix/ 
+
+
diff --git a/customize/fred/scripts/update_soapbox.sh b/customize/fred/scripts/update_soapbox.sh
new file mode 100644 (file)
index 0000000..be3a1e1
--- /dev/null
@@ -0,0 +1,63 @@
+#!/bin/bash
+
+# updates my little 1 TB "soapbox" style usb drive with items that it should contain.
+
+function get_source()
+{
+  folder="$1"; shift
+  echo getting latest codes in $folder...
+  pushd "$folder"
+  if [ $? -ne 0 ]; then
+    echo Changing to the folder $folder failed.
+    exit 1
+  fi
+  bash "$FEISTY_MEOW_SCRIPTS/rev_control/rev_checkin.sh"
+  if [ $? -ne 0 ]; then
+    echo Checking out the latest codes has failed somehow for $folder.
+    exit 1
+  fi
+  popd
+}
+
+sep
+
+ls /media/fred/soapboxdrive
+if [ $? -ne 0 ]; then
+  echo The soapbox drive is not mounted currently, so cannot be updated.
+  exit 1
+fi
+
+sep
+
+echo synching walrus...
+rsync -av /z/walrus/* /media/fred/soapboxdrive/walrus/
+if [ $? -ne 0 ]; then
+  echo The walrus sync failed.
+  exit 1
+fi
+
+sep
+
+echo synching musix...
+rsync -av /z/musix/* /media/fred/soapboxdrive/musix/
+if [ $? -ne 0 ]; then
+  echo The musix sync failed.
+  exit 1
+fi
+
+sep
+
+echo getting latest fred codes...
+pushd /media/fred/soapboxdrive
+get_source extra_brain
+
+sep
+
+echo getting latest gffs codes...
+get_source gffs
+popd
+
+sep
+
+echo Updated all portions of the soapbox drive successfully.
+
diff --git a/customize/how_to_customize.txt b/customize/how_to_customize.txt
new file mode 100644 (file)
index 0000000..be796df
--- /dev/null
@@ -0,0 +1,16 @@
+
+this folder has some examples of how various people (or one person right now)
+do their custom scripts.
+
+the folder can have alias files (ending in .alias) that are written in bash,
+and it can also have shell scripts that are sourced into the main-line of
+script initialization (any files ending in .sh).
+
+when you have some custom scripts you want to use, copy them from your own
+folder to the $FEISTY_MEOW_LOADING_DOCK/custom directory.
+
+
+(needs to talk about the scripts directory which is handled specially.
+are there any keyword matched filenames with special functions?)
+
+
diff --git a/customize/mik/mik.alias b/customize/mik/mik.alias
new file mode 100644 (file)
index 0000000..e21f7d5
--- /dev/null
@@ -0,0 +1,13 @@
+
+
+define_yeti_alias lsd='ls -l'
+define_yeti_alias h='history'
+define_yeti_alias dw='du | grep Waves'
+define_yeti_alias rm='rm' 
+define_yeti_alias d1='du --max-depth=1'
+define_yeti_alias df='/bin/df'
+
+define_yeti_alias rebob='chowngrp -R bob /home/bob ; chowngrp -R bob /home/games ; chowngrp -R bob /home/archives ; chowngrp -R bob /Data ; chowngrp -R bob /fatty ; chowngrp -R bob /srv/ftp '
+
+define_yeti_alias ipod=gtkpod
+
diff --git a/customizing/fred/fred_common.alias b/customizing/fred/fred_common.alias
deleted file mode 100644 (file)
index 77f4e48..0000000
+++ /dev/null
@@ -1,11 +0,0 @@
-
-# some aliases that i don't expect very many people to ever want.  they are
-# based on some of the mount configurations available at home or abroad.
-
-# moo and unmoo mount the local folders i use most.
-define_yeti_alias moo='check_mount /z/stuffing ; check_mount /z/walrus ; check_mount /z/chunky ; check_mount /z/fredgrid'
-define_yeti_alias unmoo='sudo umount /z/stuffing ; sudo umount /z/walrus ; sudo umount /z/chunky ; sudo umount /z/fredgrid'
-
-# load in the gffs build scripts.
-source "$FEISTY_MEOW_SCRIPTS/buildor/gffs_builders.sh"
-
diff --git a/customizing/fred/fred_variables.sh b/customizing/fred/fred_variables.sh
deleted file mode 100644 (file)
index 6392c2e..0000000
+++ /dev/null
@@ -1,67 +0,0 @@
-
-# these are my personal overrides.  --fred.
-
-if [ -z "$USER_CUSTOMIZATIONS_LOADED" ]; then
-  # if we don't see the nethack variable defined, this probably hasn't run yet.
-
-  # The cloud directory is our new repository that's always available.  It serves as our
-  # personal cloud for data.
-  export CLOUD_BASE=$HOME/cloud
-
-  # The gruntose web site is expected to reside below, if it exists at all.
-  export WEBBED_SITES=$HOME/web
-  if [ "$(hostname)" = "zooty.koeritz.com" ]; then
-    export WEBBED_SITES=/var/www
-  fi
-
-  # add a bunch of folders to the list for checkin & checkout.  these are
-  # definitely personal, and some of them are fairly dated (the yeti and
-  # hoople folders, for example).
-  REPOSITORY_LIST+="cloud ebooks web antique inova_codebase antique/inova_codebase yeti bigdata gffs/docs gffs/secrets gffs/code/fred-trunk "
-
-  # point to our local certificate for ssh usage.
-  export SVN_SSH="ssh -i $HOME/.ssh/id_dsa_sourceforge"
-
-  # Error and success noises for CLAM.
-  export CLAM_ERROR_SOUND='/z/walrus/media/sounds/effects/bwaaang.wav /z/walrus/media/sounds/cartoons/doh4.wav'
-  export CLAM_FINISH_SOUND='/z/walrus/media/sounds/cartoons/meepmeep.wav'
-
-  # Setup for nethack adventure.
-  export NETHACKOPTIONS="name:Manjusri-W,dogname:Fred,catname:Zonker"
-
-  # mail setup for home machines.
-#  export REPLYTO=fred@gruntose.com
-#  export from="Fred T. Hamster <fred@gruntose.com>"
-
-  # set our browser for seti and others that use the variable.
-#  export BROWSER=/usr/bin/firefox
-
-  # editor and other mixed settings...
-  export EDITOR="$(which vim)"
-  if [ -z "$EDITOR" ]; then
-    EDITOR="$(which vi)"
-    if [ -z "$EDITOR" ]; then
-      EDITOR="$(which emacs)"
-      if [ -z "$EDITOR" ]; then
-        echo "Cannot find a friendly editor."
-      fi
-    fi
-  fi
-  export VISUAL="$EDITOR"
-  # the editors for revision control must wait while document is edited,
-  # so gvim and others launched to x window are not appropriate.
-  export GIT_EDITOR="$EDITOR"
-  export SVN_EDITOR="$EDITOR"
-
-  # this hideous mess is necessitated by our not having found the source of the
-  # settings yet.  we override a few colors that look bad on a dark background.
-  export LS_COLORS='no=00:fi=00:di=01;37:ln=00;36:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=41;33;01:ex=00;32:*.cmd=00;32:*.exe=01;32:*.com=01;32:*.bat=01;32:*.btm=01;32:*.dll=01;32:*.tar=00;31:*.tbz=00;31:*.tgz=00;35:*.rpm=00;33:*.deb=00;33:*.arj=00;31:*.taz=00;31:*.lzh=00;31:*.zip=00;35:*.zoo=00;31:*.z=00;31:*.Z=00;31:*.gz=00;35:*.bz2=00;31:*.tb2=00;31:*.tz2=00;31:*.tbz2=00;31:*.avi=01;35:*.bmp=01;35:*.fli=01;35:*.gif=01;35:*.jpg=01;35:*.jpeg=01;35:*.mng=01;35:*.mov=01;35:*.mpg=01;35:*.pcx=01;35:*.pbm=01;35:*.pgm=01;35:*.png=01;35:*.ppm=01;35:*.tga=01;35:*.tif=01;35:*.xbm=01;35:*.xpm=01;35:*.dl=01;35:*.gl=01;35:*.wmv=01;35:*.aiff=00;32:*.au=00;32:*.mid=00;32:*.mp3=00;32:*.ogg=00;32:*.voc=00;32:*.wav=00;32:'
-
-  # options for the lame mp3 encoder.
-  export LAMEOPT="--alt-preset extreme"
-
-  # customization sentinel can be set now.
-  export USER_CUSTOMIZATIONS_LOADED=true
-fi
-
-
diff --git a/customizing/fred/java_profile.sh b/customizing/fred/java_profile.sh
deleted file mode 100644 (file)
index 30128a2..0000000
+++ /dev/null
@@ -1,134 +0,0 @@
-#!/bin/bash
-
-# Author: Chris Koeritz
-
-# this script tries to intuit where java is installed on this machine.
-
-############################
-
-source $FEISTY_MEOW_SCRIPTS/core/functions.sh
-
-# this reports when we have totally failed to figure out where a folder
-# is actually located on the machine.
-function intuition_failure()
-{
-  missing="$1"; shift
-  if [ ! -z "$SHELL_DEBUG" ]; then
-    echo "Could not intuit '$missing' variable."
-  fi
-  # remove the variable because its value is busted.
-  unset $missing
-}
-
-############################
-
-# set some fairly liberal limits for ant.
-#no. export ANT_OPTS="-Xms512m -Xmx768m -XX:MaxPermSize=768m"
-
-############################
-
-# start guessing some settings...
-
-# this bin portion works for most javas...
-export JAVA_BIN_PIECE=bin
-
-if [ ! -d "$JAVA_HOME" ]; then
-  # try a recent version.
-  export JAVA_HOME=/usr/lib/jvm/java-8-oracle
-fi
-if [ ! -d "$JAVA_HOME" ]; then
-  # or an older version.
-  export JAVA_HOME=/usr/lib/jvm/java-7-oracle
-fi
-if [ ! -d "$JAVA_HOME" ]; then
-  JAVA_HOME="$(ls -d c:/tools/*jdk* 2>/dev/null)"
-fi
-if [ ! -d "$JAVA_HOME" ]; then
-  JAVA_HOME="$(ls -d "c:/Program Files"/*jdk* 2>/dev/null)"
-fi
-if [ ! -d "$JAVA_HOME" ]; then
-  JAVA_HOME="$(ls -d "c:/Program Files (x86)"/*jdk* 2>/dev/null)"
-fi
-if [ ! -d "$JAVA_HOME" ]; then
-  if [ ! -z "$(grep -i 'd:' /proc/mounts 2>/dev/null)" ]; then
-    # try using a windows version.
-    JAVA_HOME="$(ls -d d:/tools/*jdk* 2>/dev/null)"
-  fi
-fi
-# this should go last, since it changes the bin dir.
-if [ ! -d "$JAVA_HOME" ]; then
-  # if that didn't work, try the location for mac os x.
-  JAVA_HOME=/Library/Java/Home
-  JAVA_BIN_PIECE=Commands
-fi
-# last thing is to tell them we couldn't find it.
-if [ ! -d "$JAVA_HOME" ]; then
-  unset JAVA_HOME
-  unset JAVA_BIN_PIECE
-  if [ -z "$(whichable java 2>/dev/null)" ]; then
-    intuition_failure JAVA_HOME
-  fi
-fi
-
-############################
-
-# intuit where we have our local eclipse.
-if [ ! -d "$ECLIPSE_DIR" ]; then
-  export ECLIPSE_DIR=/usr/local/eclipse
-fi
-if [ ! -d "$ECLIPSE_DIR" ]; then
-  ECLIPSE_DIR=$HOME/eclipse
-fi
-if [ ! -d "$ECLIPSE_DIR" ]; then
-  ECLIPSE_DIR=$HOME/apps/eclipse
-fi
-if [ ! -d "$ECLIPSE_DIR" ]; then
-  ECLIPSE_DIR="c:/tools/eclipse"
-fi
-if [ ! -d "$ECLIPSE_DIR" ]; then
-  if [ ! -z "$(grep -i 'd:' /proc/mounts 2>/dev/null)" ]; then
-    ECLIPSE_DIR="d:/tools/eclipse"
-  fi
-fi
-if [ ! -d "$ECLIPSE_DIR" ]; then
-  if [ ! -z "$(grep -i 'e:' /proc/mounts 2>/dev/null)" ]; then
-    ECLIPSE_DIR="e:/tools/eclipse"
-  fi
-fi
-# final option is to whine.
-if [ ! -d "$ECLIPSE_DIR" ]; then
-  unset ECLIPSE_DIR
-else
-  if [ ! -z "$(uname -a | grep -i cygwin)" ]; then
-    # fix the path for cygwin's bizarre requirement of /cygdrive/X.
-    ECLIPSE_DIR=$(echo $ECLIPSE_DIR | sed -e 's/^\(.\):/\/cygdrive\/\1/')
-  fi
-fi
-if [ -z "$ECLIPSE_DIR" -a -z "$(whichable eclipse 2>/dev/null)" ]; then
-  intuition_failure ECLIPSE_DIR
-fi
-
-############################
-
-# use the variables we just set in our path, and try to make them override
-# any other paths to different versions.
-
-if [ ! -z "$JAVA_HOME" ]; then
-  j="$JAVA_HOME"
-  if [ ! -z "$(uname -a | grep -i cygwin)" ]; then
-    j=$(echo $j | sed -e 's/^\(.\):/\/cygdrive\/\1/')
-  fi
-  export PATH=$j/$JAVA_BIN_PIECE:$PATH
-fi
-if [ ! -z "$ECLIPSE_DIR" ]; then
-  e="$ECLIPSE_DIR"
-  if [ ! -z "$(uname -a | grep -i cygwin)" ]; then
-    e=$(echo $e | sed -e 's/^\(.\):/\/cygdrive\/\1/')
-  fi
-  export PATH=$e:$PATH
-fi
-
-############################
-
-#echo "java_profile: JAVA_HOME='$JAVA_HOME' ECLIPSE_DIR='$ECLIPSE_DIR'"
-
diff --git a/customizing/fred/refred.sh b/customizing/fred/refred.sh
deleted file mode 100644 (file)
index 06faf84..0000000
+++ /dev/null
@@ -1,18 +0,0 @@
-#!/bin/bash
-
-# cleans up the ownership for all my files.
-function refred()
-{
-  sudo chown -R fred:fred /home/fred /home/games /home/archives
-  sudo bash $FEISTY_MEOW_SCRIPTS/files/normal_perm.sh /var/log
-}
-
-# this block should execute when the script is actually run, rather
-# than when it's just being sourced.
-if [[ $0 =~ .*refred\.sh.* ]]; then
-  THISDIR="$( \cd "$(\dirname "$0")" && /bin/pwd )"
-  export LIGHTWEIGHT_INIT=true
-  source "$THISDIR/../../scripts/core/launch_feisty_meow.sh"
-  refred
-fi
-
diff --git a/customizing/fred/scripts/gamesaver.sh b/customizing/fred/scripts/gamesaver.sh
deleted file mode 100644 (file)
index 0cd6b72..0000000
+++ /dev/null
@@ -1,55 +0,0 @@
-#!/bin/bash
-
-# a helpful script that scrapes any active game saves from wine's storage
-# area into a spooling saves folder for archiving.
-
-source $FEISTY_MEOW_SCRIPTS/core/functions.sh
-
-WINE_SOURCE_DIR="$HOME/wine_goods/My Games"
-SPOOLING_OUTPUT_DIR="$HOME/spooling_saves"
-
-if [ ! -d "$WINE_SOURCE_DIR" ]; then
-  WINE_SOURCE_DIR="c:/users/fred/My Documents/My Games"
-fi
-if [ ! -d "$WINE_SOURCE_DIR" ]; then
-  echo "Failing to find the game save directories."
-  exit 1
-fi
-
-# copies the files for a particular game out to a spooling folder.
-function copyem()
-{
-  game_name="$1"; shift
-  source_dir="$1"; shift
-  out_dir="$1"; shift
-
-  if [ -d "$source_dir" ]; then
-    echo $game_name
-    cp -v -n "$source_dir"/* "$out_dir"/
-    sep 28
-  fi
-}
-
-# make the output folders if they don't exist.
-for i in skyrim fallout_new_vegas fallout_3/Saves oblivion fallout_4/Saves ; do
-  if [ ! -d "$SPOOLING_OUTPUT_DIR/$i" ]; then
-    mkdir -p "$SPOOLING_OUTPUT_DIR/$i"
-  fi
-done
-
-# now run through and copy our save files from the potentially weird locations
-# they reside in.
-
-sep 28
-
-copyem "skyrim" "$WINE_SOURCE_DIR/Skyrim/Saves" "$SPOOLING_OUTPUT_DIR/skyrim"
-
-copyem "fallout new vegas" "$WINE_SOURCE_DIR/FalloutNV/Saves" "$SPOOLING_OUTPUT_DIR/fallout_new_vegas"
-
-copyem "fallout 3" "$WINE_SOURCE_DIR/Fallout3/Saves" "$SPOOLING_OUTPUT_DIR/fallout_3/Saves"
-
-copyem "oblivion" "$WINE_SOURCE_DIR/Oblivion/Saves" "$SPOOLING_OUTPUT_DIR/oblivion/"
-
-copyem "fallout 4" "$WINE_SOURCE_DIR/Fallout4/Saves" "$SPOOLING_OUTPUT_DIR/fallout_4/Saves"
-
-
diff --git a/customizing/fred/scripts/pick_credentials.sh b/customizing/fred/scripts/pick_credentials.sh
deleted file mode 100644 (file)
index 8b4b55e..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-#!/bin/bash
-
-# chooses the right certificate to use for logging in via ssh.
-
-#hmmm: not the slightest bit general here currently.
-#      what about having a main key variable and a sourceforge key variable?
-#      better yet, an array of site patterns and keys for those sites.
-
-keyfile="$HOME/.ssh/id_dsa_fred"
-
-if [ ! -z "$(echo $* | grep -i sourceforge)" ]; then
-  keyfile="$HOME/.ssh/id_dsa_sourceforge"
-fi
-
-if [ ! -f "$keyfile" ]; then
-  unset keyfile
-fi
diff --git a/customizing/fred/scripts/sftp.sh b/customizing/fred/scripts/sftp.sh
deleted file mode 100644 (file)
index c668500..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-#!/bin/bash
-
-source "$FEISTY_MEOW_LOADING_DOCK/custom/scripts/pick_credentials.sh"
-
-# a wrapper for the file transfers using secure shell.
-\sftp -i "$keyfile" $*
-
diff --git a/customizing/fred/scripts/ssh.sh b/customizing/fred/scripts/ssh.sh
deleted file mode 100644 (file)
index 316228c..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#!/bin/bash
-
-# wraps our calling the secure shell and lets us pick our credentials.
-
-source "$FEISTY_MEOW_LOADING_DOCK/custom/scripts/pick_credentials.sh"
-
-# save the former terminal title if we're running in X with xterm.
-prior_title=
-which xprop &>/dev/null
-if [ $? -eq 0 ]; then
-  if [[ "$TERM" =~ .*"xterm".* ]]; then
-    prior_title="$(xprop -id $WINDOWID | perl -nle 'print $1 if /^WM_NAME.+= \"(.*)\"$/')"
-  fi
-fi
-
-# force the TERM variable to a more generic version for other side.
-# we don't want the remote side still thinking it's running xterm.
-export TERM=linux
-
-#hmmm: it would be good to set an interrupt handler here and
-#      trap ctrl-c, since otherwise we are getting exited from and losing a chance
-#      to reset the terminal title.  this actually happens a lot, since some X11
-#      or other background process is left running and the ssh never actually quits,
-#      forcing one to hit ctrl-c.
-
-if [ ! -z "$keyfile" ]; then
-  \ssh -i "$keyfile" -X -C $*
-#-c blowfish-cbc 
-else
-  \ssh -X -C $*
-#-c blowfish-cbc 
-fi
-
-if [ $? -eq 0 ]; then
-  # we don't want to emit anything extra if this is being driven by git.
-  if [ -z "$(echo $* | grep git)" ]; then
-    # re-run the terminal labeller after coming back from ssh.
-    # we check the exit value because we don't want to update this for a failed connection.
-    if [ -z "$prior_title" ]; then
-#echo prior title nil new label
-      bash $FEISTY_MEOW_SCRIPTS/tty/label_terminal_with_infos.sh
-    else
-#echo "using old prior title of '$prior_title'"
-      bash $FEISTY_MEOW_SCRIPTS/tty/set_term_title.sh "$prior_title"
-    fi
-  fi
-fi
-
-
diff --git a/customizing/fred/scripts/synch_archives_from_surya.sh b/customizing/fred/scripts/synch_archives_from_surya.sh
deleted file mode 100644 (file)
index ceac4bf..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-
-# curie is the source for musix and also has limited space for walruses,
-# so we check for that being our host here.
-hostname -f 2>&1 | grep -i curie &>/dev/null
-if [ $? -eq 0 ]; then
-  # this name has curie in it, so we're probably on there.
-  echo "Updating with special case for curie from surya"
-  rsync -avz surya:/z/walrus/media/pictures/* /z/walrus/media/pictures/
-  rsync -avz surya:/z/walrus/media/sounds/* /z/walrus/media/sounds/
-else
-  echo "Updating standard host from surya"
-  rsync -avz surya:/z/walrus/* /z/walrus/
-  rsync -avz surya:/z/musix/* /z/musix/
-fi
-
-
diff --git a/customizing/fred/scripts/update_barkuptree.sh b/customizing/fred/scripts/update_barkuptree.sh
deleted file mode 100644 (file)
index 539672b..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-#hmmm: plug in stuff from the updater for soapbox.
-
-rsync -av /z/backups/archive_backups/* /media/fred/barkuptreedrive/archive_backups/
-rsync -av /z/walrus/* /media/fred/barkuptreedrive/walrus/ 
-rsync -av /z/musix/* /media/fred/barkuptreedrive/musix/
diff --git a/customizing/fred/scripts/update_musix_on_curie.sh b/customizing/fred/scripts/update_musix_on_curie.sh
deleted file mode 100644 (file)
index cca8325..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-
-# this script is meant to be run on curie with our super alpha prime source of music plugged in.
-
-#hmmm: add the goodness around these like the nice updater.
-
-if [[ ! ( $(hostname) =~ .*curie.* ) ]]; then
-  echo this script is only designed to run on curie with the
-  echo fred music prime external disc plugged in.
-  exit 1
-fi
-
-rsync -av /media/fred/fredmusicprime/musix/* /z/musix/
-rsync -avz /z/musix/* surya:/z/musix/ 
-rsync -avz /z/musix/* wildmutt:/z/musix/ 
-rsync -avz /z/musix/* euphrosyne:/z/musix/ 
-
-
diff --git a/customizing/fred/scripts/update_soapbox.sh b/customizing/fred/scripts/update_soapbox.sh
deleted file mode 100644 (file)
index be3a1e1..0000000
+++ /dev/null
@@ -1,63 +0,0 @@
-#!/bin/bash
-
-# updates my little 1 TB "soapbox" style usb drive with items that it should contain.
-
-function get_source()
-{
-  folder="$1"; shift
-  echo getting latest codes in $folder...
-  pushd "$folder"
-  if [ $? -ne 0 ]; then
-    echo Changing to the folder $folder failed.
-    exit 1
-  fi
-  bash "$FEISTY_MEOW_SCRIPTS/rev_control/rev_checkin.sh"
-  if [ $? -ne 0 ]; then
-    echo Checking out the latest codes has failed somehow for $folder.
-    exit 1
-  fi
-  popd
-}
-
-sep
-
-ls /media/fred/soapboxdrive
-if [ $? -ne 0 ]; then
-  echo The soapbox drive is not mounted currently, so cannot be updated.
-  exit 1
-fi
-
-sep
-
-echo synching walrus...
-rsync -av /z/walrus/* /media/fred/soapboxdrive/walrus/
-if [ $? -ne 0 ]; then
-  echo The walrus sync failed.
-  exit 1
-fi
-
-sep
-
-echo synching musix...
-rsync -av /z/musix/* /media/fred/soapboxdrive/musix/
-if [ $? -ne 0 ]; then
-  echo The musix sync failed.
-  exit 1
-fi
-
-sep
-
-echo getting latest fred codes...
-pushd /media/fred/soapboxdrive
-get_source extra_brain
-
-sep
-
-echo getting latest gffs codes...
-get_source gffs
-popd
-
-sep
-
-echo Updated all portions of the soapbox drive successfully.
-
diff --git a/customizing/how_to_customize.txt b/customizing/how_to_customize.txt
deleted file mode 100644 (file)
index be796df..0000000
+++ /dev/null
@@ -1,16 +0,0 @@
-
-this folder has some examples of how various people (or one person right now)
-do their custom scripts.
-
-the folder can have alias files (ending in .alias) that are written in bash,
-and it can also have shell scripts that are sourced into the main-line of
-script initialization (any files ending in .sh).
-
-when you have some custom scripts you want to use, copy them from your own
-folder to the $FEISTY_MEOW_LOADING_DOCK/custom directory.
-
-
-(needs to talk about the scripts directory which is handled specially.
-are there any keyword matched filenames with special functions?)
-
-
diff --git a/customizing/mik/mik.alias b/customizing/mik/mik.alias
deleted file mode 100644 (file)
index e21f7d5..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-define_yeti_alias lsd='ls -l'
-define_yeti_alias h='history'
-define_yeti_alias dw='du | grep Waves'
-define_yeti_alias rm='rm' 
-define_yeti_alias d1='du --max-depth=1'
-define_yeti_alias df='/bin/df'
-
-define_yeti_alias rebob='chowngrp -R bob /home/bob ; chowngrp -R bob /home/games ; chowngrp -R bob /home/archives ; chowngrp -R bob /Data ; chowngrp -R bob /fatty ; chowngrp -R bob /srv/ftp '
-
-define_yeti_alias ipod=gtkpod
-
diff --git a/doc/clam_manual/clam_docs.html b/doc/clam_manual/clam_docs.html
deleted file mode 100644 (file)
index 6872a4e..0000000
+++ /dev/null
@@ -1,2335 +0,0 @@
-<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-  <head>
-    <meta content="text/html; charset=iso-8859-1" http-equiv="content-type">
-    <meta content="Fred T. Hamster" name="Author">
-    <meta name="generator" content="Mozilla/5.0 (X11; U; Linux i686; en-US) [Mozilla]">
-    <title>CLAM Reference Manual</title>
-  </head>
-  <body link="#33ff33" text="#ffff99" vlink="#009900" bgcolor="#400080" alink="#ff9900">
-    <center><big>
-      </big><small></small>
-      <h1><big>CLAM: Coordinated Librarian &amp;</big></h1>
-      <h1><big>Automatic Maker</big></h1>
-      <small></small></center>
-    <center><big><img src="../../infobase/pictures/clams_tran.gif" height="347" width="392"></big></center>
-    <center><big>
-      </big><small></small>
-      <h2><big>Tutorial and Reference Manual</big></h2>
-      <small></small></center>
-    <center><big>
-      </big><small></small>
-      <address><big><a name="lib_manager"></a>By Chris Koeritz (<a href="mailto:koeritz@gruntose.com">koeritz@gruntose.com</a>)</big></address>
-      <small></small></center>
-    <center><big>
-      </big><small></small>
-      <h2><small></small>
-        <hr noshade="noshade" size="8" width="100%"></h2>
-      <small></small></center>
-    <center><big>
-      </big><small></small>
-      <h2><big>Table of Contents</big></h2>
-      <small></small></center>
-    <ol>
-      <small> </small><big> </big><small> </small>
-      <li><big> <a href="#EXECUTIVE_SUMMARY">Executive Summary</a></big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big> <a href="#PREPARATION">Preparing Your Computer to Use
-            CLAM</a></big></li>
-      <small> </small><big> </big><small> </small>
-      <ol>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#STEPS_NEEDED">Necessary Steps</a></big></li>
-        <small> </small><big> </big><small> </small>
-      </ol>
-      <small> </small><big> </big><small> </small>
-      <li><big> <a href="#TUTORIAL">CLAM Tutorial</a></big></li>
-      <small> </small><big> </big><small> </small>
-      <ol>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#CAVEATS">Caveats</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#TUT_BASICS">Basics</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#TUT_COMMON">Common Files</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#TUT_IMPORTANT_VARS">Important Variables</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#TUT_VAR_ASSIGN">Variable Assignment</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#TUT_OPTIONAL_VARS">Optional Variables</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#WRITING_RULES">Writing Your Own Rules</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#TUT_CONCLUSION">Conclusion</a></big></li>
-        <small> </small><big> </big><small> </small>
-      </ol>
-      <small> </small><big> </big><small> </small>
-      <li><big> <a href="#REFERENCE">CLAM Reference</a></big></li>
-      <small> </small><big> </big><small> </small>
-      <ol>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#LANG_INDEP_VARS">Language Independent
-              Variables</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#LANG_INDEP_RULES">Language Independent
-              Rules</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#LANG_INDEP_TARGETS">Language Independent
-              Targets</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#LANG_INDEP_SCRIPTS">Language Independent
-              Files</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#CPP_VARS">C++ Specific Variables</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <ol>
-          <small> </small><big> </big><small> </small>
-          <li><big> <a href="#DIRECTORY_VARS">Directory Structure
-                Variables</a></big></li>
-          <small> </small><big> </big><small> </small>
-          <li><big> <a href="#CPP_FLAGS">Compiler Dependent Flags</a></big></li>
-          <small> </small><big> </big><small> </small>
-          <li><big><a href="#vcpp_only">Microsoft Visual C++ Only</a><br>
-            </big></li>
-          <small> </small><big> </big><small> </small>
-          <li><big> <a href="#SUPPORT_EXTENSIONS">Support for
-                Compilation
-                Extensions</a></big></li>
-          <small> </small><big> </big><small> </small>
-        </ol>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#CPP_RULES">C++ Specific Rules</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#CPP_TARGETS">C++ Specific Targets</a></big></li>
-        <small> </small><big> </big><small> </small>
-        <li><big> <a href="#CPP_SCRIPTS">C++ Specific Files</a></big></li>
-        <small> </small><big> </big><small> </small>
-      </ol>
-      <small> </small><big> </big><small> </small>
-      <li><big> <a href="#EXAMPLES">Example CLAM Makefiles</a></big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big> <a href="#CLAM_HINTS">CLAM Hints and Troubleshooting</a></big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big> <a href="#ACKS">Acknowledgements</a></big></li>
-      <small> </small><small></small>
-    </ol>
-    <center><big>
-      </big><small></small>
-      <h2><small></small>
-        <hr noshade="noshade" size="8" width="100%"></h2>
-      <small></small></center>
-    <center><big>
-      </big><small></small>
-      <h2><big><a name="EXECUTIVE_SUMMARY"></a>Executive Summary</big></h2>
-      <small></small></center>
-    <big>&nbsp;&nbsp;&nbsp; The CLAM system is a set of macros and rules
-      for the GNU make program
-      that
-      simplifies the creation of executable programs and code
-      libraries.&nbsp;
-      Most makefiles that use the CLAM system are ten lines long or
-      less.&nbsp;
-      Makefiles are stated in terms of a set of special variable names that
-      CLAM
-      interprets in order to issue the correct sequence of compilation
-      directives.&nbsp;
-      This document presents a tutorial on the variable names and simple
-      rules
-      that need to be used with CLAM. &nbsp;Several example makefiles and the
-      full
-      reference manual for CLAM are also included.<br>
-      &nbsp;&nbsp;&nbsp; CLAM is part of the Feisty Meow® codebase (<a href="http://feistymeow.org/">http://feistymeow.org/</a>)
-      and can be
-      downloaded from there or through a sourceforge mirror site.<br>
-      &nbsp;&nbsp;&nbsp; In the remainder of the document, we will often
-      refer to CLAM as just "clam".<br>
-      &nbsp;
-    </big>
-    <center><small></small>
-      <h2><small></small>
-        <hr noshade="noshade" size="8" width="100%"></h2>
-      <small></small></center>
-    <center><big>
-      </big><small></small>
-      <h2><big><a name="PREPARATION"></a>Preparing Your Computer to Use
-          CLAM</big></h2>
-      <small></small></center>
-    <h3><big><a name="STEPS_NEEDED"></a>Necessary Steps:</big></h3>
-    <ol>
-      <small> </small><big> </big><small> </small>
-      <li><big>Setting environment variables for clam:</big></li>
-      <small> </small><big> </big><small> </small>
-      <ol>
-        <li><big>FEISTY_MEOW_APEX:</big></li>
-        <small> </small><big> </big><small> </small>
-        <ol>
-          <small> </small><big> </big><small> </small>
-
-<big>DEPRECATED</big>
-          <li><big> **REVISE** out of date... This variable has been needed
-              since clam became
-              part of the YETIcode project (at <a href="http://feistymeow.org/">http://feistymeow.org</a>).</big></li>
-          <small> </small>
-          <li><big>The default location for clam is under the FEISTY_MEOW_SCRIPTS directory in a
-              folder named clam.<br>
-            </big></li>
-          <small> </small><big> </big><small> </small>
-          <li><big>If the yeti root directory is in $HOME/yeti
-              already, then the
-              default for FEISTY_MEOW_APEX will work and it doesn't need to be
-              declared.</big></li>
-          <li><big>Setting the variable:<br>
-            </big></li>
-          <small> </small><big> </big><small> </small>
-          <ol>
-            <small> </small><big> </big><small> </small>
-            <li><big>On Unix (with the bash shell): <span style="font-weight: bold;">export
-                  MAKEFLAGS="-I $HOME/yeti/clam"</span></big></li>
-            <small> </small><big> </big><small> </small>
-            <li><big>On win32: <span style="font-weight: bold;">set
-                  MAKEFLAGS="-I c:/yeti/clam"</span>&nbsp; (or set this in the
-                System
-                control panel, under the advanced tab, in environment variables)<span
-                  style="font-weight: bold;"><br>
-                </span></big></li>
-            <small> </small><big> </big><small> </small>
-            <li><big>Note that the use of
-                forward slashes is mandatory in the clam directory in MAKEFLAGS.<br>
-              </big></li>
-            <small> </small><big> </big><small> </small>
-          </ol>
-          <small> </small><big> </big><small> </small>
-        </ol>
-        <small> </small><big> </big><small> </small>
-        <li><big>MAKEFLAGS:</big></li>
-        <small> </small><big> </big><small> </small>
-        <ol>
-          <small> </small><big> </big><small> </small>
-          <li><big> This variable is required to be set in the
-              environment before using clam with gnu-make.&nbsp; It tells make
-              where
-              to find the clam definitions and scripts.</big></li>
-          <small> </small>
-          <li><big>Setting the variable:<br>
-            </big></li>
-          <small> </small><big> </big><small> </small>
-          <ol>
-            <small> </small><big> </big><small> </small>
-            <li><big>On Unix (assuming bash as shell): <span style="font-weight: bold;">export
-                  MAKEFLAGS="-I $FEISTY_MEOW_APEX/clam"</span></big></li>
-            <small> </small><big> </big><small> </small>
-            <li><big>On win32: <span style="font-weight: bold;">set
-                  MAKEFLAGS="-I %FEISTY_MEOW_APEX%/clam"</span></big></li>
-            <small> </small><big> </big><small> </small>
-            <li><big>This variable also requires forward slashes
-                instead of
-                backslashes.</big></li>
-            <small> </small><big> </big><small> </small>
-          </ol>
-          <small> </small><big> </big><small> </small>
-        </ol>
-        <small> </small>
-      </ol>
-      <small> </small>
-      <li><big>Required Tools:</big></li>
-      <small> </small><big> </big><small> </small>
-      <ol>
-        <small> </small><big> </big><small> </small>
-        <li><big>The compiler itself:<br>
-          </big></li>
-        <small> </small><big> </big><small> </small>
-        <ol>
-          <small> </small><big> </big><small> </small>
-          <li><big>If you are running GNU/Linux (or almost any other
-              Posix-compliant operating system), then the GNU C/C++ compiler
-              suite is pretty much all that's needed.</big></li>
-          <small> </small><big> </big><small> </small>
-          <li><big>The
-              GNU C/C++ compiler (included in the <a href="http://www.mingw.org/">MinGW</a>
-              toolkit) should be all that's needed for
-              compilation,
-              but the Microsoft Visual Studio 6.0-8.0 compilers can be used if
-              available.&nbsp; Compatibility is only guaranteed for vc8
-              however.<br>
-            </big></li>
-          <small> </small><big> </big><small> </small>
-        </ol>
-        <small> </small><big> </big><small> </small>
-        <li><big>Win32 Unix Tools:</big></li>
-        <small> </small><big> </big><small> </small>
-        <ol>
-          <small> </small><big> </big><small> </small>
-          <li><big>&nbsp;If you are running a win32-based product
-              (windows NT,
-              windows
-              2000,
-              windows xp, etc) then a few additional tools are required...<br>
-            </big></li>
-          <small> </small><big> </big><small> </small><small></small>
-          <li><big>The recommended GNU utilities are available for
-              win32 in the
-              MingW MSYS
-              package (http://www.mingw.org/).</big></li>
-          <li><big>Note that you will need to add the binaries directory from
-              MSYS to
-              your path.&nbsp; The PATH variable can be accessed under MS-NT
-              type OSes through the
-              "control panel | system | advanced | environment variables" menu
-              trail.&nbsp; If you
-              plan to use msys outside of clam, then ensure that
-              the MSYS bin directory is prior to the
-              windows system directory in your path; this causes the Unix "find"
-              command to be used instead of the Windows version.</big></li>
-          <li><big>Alternatively, a similar set of GNU utilities is
-              available
-              in the <a href="http://cygwin.com/">Cygwin package</a>, although
-              these tools are no longer recommended and are, in
-              fact, actively deprecated.</big></li>
-          <small> </small><big> </big><small> </small>
-          <ol>
-            <small> </small><big> </big><small> </small>
-          </ol>
-          <small> </small><big> </big><small> </small>
-        </ol>
-        <small> </small><big> </big><small> </small>
-        <li><big>makedep and version_stamper tools:</big></li>
-        <small> </small><big> </big><small> </small>
-        <ol>
-          <small> </small><big> </big><small> </small>
-          <li><big>The CLAM_BINARIES directory in the archive has
-              pre-built
-              versions of tools used by clam during a build.<br>
-            </big></li>
-          <small> </small><big> </big><small> </small>
-          <li><big>If you would rather rebuild them from source, then
-              running
-              the script "scripts/generator/produce_feisty_meow.sh" will
-              recreate all of these internal tools.<br>
-            </big></li>
-          <small> </small><big> </big><small> </small>
-        </ol>
-        <small> </small><big> </big><small> </small>
-      </ol>
-      <small> </small><big> </big><small> </small>
-      <li><big>Third Party Tools Used By or Supported Within clam:</big></li>
-      <small> </small><big> </big><small> </small>
-      <ol>
-        <small> </small><big> </big><small> </small>
-        <li><big>wx widgets:</big></li>
-        <small> </small><big> </big><small> </small>
-        <ol>
-          <small> </small><big> </big><small> </small>
-          <li><big>home page: http://www.wxwidgets.org/</big></li>
-          <small> </small><big> </big><small> </small>
-          <li><big>As far as the clam team is concerned, this is the
-              premier
-              portable (and open source) library for graphical user interfaces.<br>
-            </big></li>
-          <small> </small><big> </big><small> </small>
-        </ol>
-        <small> </small><big> </big><small> </small>
-        <li><big>OpenSSL:</big></li>
-        <small> </small><big> </big><small> </small>
-        <ol>
-          <small> </small><big> </big><small> </small>
-          <li><big>home page: http://www.openssl.org/</big></li>
-          <small> </small><big> </big><small> </small>
-          <li><big>This is the team's most favorite library for SSL
-              (Secure
-              Sockets Layer) and general encryption needs.<br>
-            </big></li>
-          <small> </small><big> </big><small> </small>
-        </ol>
-        <small> </small><big> </big><small> </small>
-        <li><big>cURL:</big></li>
-        <small> </small><big> </big><small> </small>
-        <ol>
-          <small> </small><big> </big><small> </small>
-          <li><big>home page: http://curl.haxx.se/</big></li>
-          <small> </small><big> </big><small> </small>
-          <li><big>The curl library rocks(!) and provides a very
-              powerful set of
-              tools for programmatically interacting with live web pages.<br>
-            </big></li>
-          <small> </small><big> </big><small> </small>
-        </ol>
-        <small> </small><big> </big><small> </small>
-      </ol>
-      <small> </small><big> </big><small> </small>
-      <li><big>Other clam Preconditions:</big></li>
-      <small> </small><big> </big><small> </small>
-      <ol>
-        <small> </small><big> </big><small> </small>
-        <li><big>Linux platforms:</big></li>
-        <small> </small><big> </big><small> </small>
-        <ol>
-          <small> </small><big> </big><small> </small>
-          <li><big>The standard source code repository is a directory
-              called
-              "feisty_meow"
-              in the user's home directory. &nbsp;If you decompress the feisty_meow
-              library archive in your home directory, you should be all set to
-              perform a build.</big></li>
-          <small> </small><big> </big><small> </small>
-          <li><big>See the Feisty Meow Concerns Ltdwebsite for more details about
-              downloading that codebase (<a href="http://feistymeow.org">http://feistymeow.org</a>).<br>
-            </big></li>
-          <small> </small><big> </big><small> </small>
-          <ol>
-            <small></small><small></small>
-          </ol>
-          <small> </small><big> </big><small> </small>
-        </ol>
-        <small> </small><big> </big><small> </small>
-        <li><big>Win32 platforms:</big></li>
-        <small> </small><big> </big><small> </small>
-        <ol>
-          <small> </small><big> </big><small> </small>
-          <li><big>The standard repository for source code is a substituted
-              drive l:, which is where all the other hierarchies start.
-              &nbsp;This
-              drive can be mapped to any folder desired using the "subst"
-              command
-              (for example, "subst l: c:\build_dir").
-              &nbsp;All
-              objects and final products will be generated to the l: drive.</big></li>
-          <small> </small><big> </big><small> </small>
-          <li value="2"><big>Using MS Visual Studio as the Compiler:</big></li>
-          <small> </small><big> </big><small> </small>
-          <ol>
-            <small> </small><big> </big><small> </small>
-            <li><big>VS80COMNTOOLS/VS90COMNTOOLS/VS100COMNTOOLS variable:</big></li>
-            <small> </small><big> </big><small> </small>
-            <ol>
-              <small> </small><big> </big><small> </small>
-              <li><big>This variable should be automatically created by
-                  Visual Studio upon installation.&nbsp; If it isn't, then
-                  Microsoft has
-                  a bug or you need to restart your current prompt or your
-                  computer.<br>
-                </big></li>
-              <li><big>The paths that clam uses to find compiler binaries
-                  is calculated based on this variable.</big></li>
-              <li><big>Older versions of visual studio are currently
-                  unsupported because Microsoft constantly rearranges their
-                  folders and
-                  tools in a non-maintainable way.<br>
-                </big></li>
-            </ol>
-            <li><big>Several other environment variables are required
-                by Visual
-                Studio.&nbsp; They can be set up for your current command prompt
-                by
-                running "vcvars32.bat" or "vsvars32.bat" (found under
-                the
-                compiler's common directory, which varies depending on the
-                version of
-                visual studio).<br>
-              </big></li>
-            <small> </small><big> </big><small> </small>
-          </ol>
-          <small> </small><big> </big><small> </small>
-        </ol>
-        <small> </small><big> </big><small> </small>
-      </ol>
-      <small> </small><small></small>
-    </ol>
-    <center><big>
-      </big><small></small>
-      <h2><small></small>
-        <hr noshade="noshade" size="8" width="100%"></h2>
-      <small></small></center>
-    <center><big>
-      </big><small></small>
-      <h2><big><a name="TUTORIAL"></a>CLAM Tutorial</big></h2>
-      <small></small></center>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This section provides an overview of
-      how clam
-      works and how you can make it work for you.&nbsp; It is quite brief,
-      but
-      should suffice for most common cases of makefiles.&nbsp; For more
-      detailed
-      usage, consult the CLAM Reference section of this document.
-    </big>
-    <h3><big><a name="CAVEATS"></a>Caveats</big></h3>
-    <ul>
-      <small> </small><big> </big><small> </small>
-      <li><big>Most of the Unix tools employed in the make process are
-          case-sensitive.&nbsp;
-          This means that they will probably not find any of the clam support if
-          the files have been changed to upper-case names.&nbsp; It also means
-          that
-          all code files must match their descriptions in makefiles, letter for
-          letter.&nbsp;
-          And any batch files or executables invoked also need to be in
-          lower-case
-          as clam expects them to be.</big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big>A corollary case requirement is that the makefile must
-          be named
-          either
-          "makefile" or "Makefile".&nbsp; These are the Unix standard names and
-          GNU make
-          looks for these by default.&nbsp; If you are willing to type "make -f
-          <i>makefile_name</i>",
-          then you can run any makefile.&nbsp; However, the build-ready
-          makefiles
-          should be named according to the standard, since the build process
-          will
-          look for these automatically.</big></li>
-      <small> </small><small></small>
-    </ul>
-    <h3><big>
-        <a name="TUT_BASICS"></a>Basics</big></h3>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The C++ Library
-      Automatic Maker system (or CLAM) is defined as a set of
-      variable
-      (or macro) definitions. &nbsp;These variable definitions are
-      manipulated in
-      order to compile and link programs.&nbsp; By setting the variables'
-      values
-      appropriately, specific products can be generated from the target rules
-      defined
-      in clam.&nbsp; Both variables and rules are extensible.&nbsp; The
-      general
-      procedure for building a clam-based Makefile has four user-defined
-      steps:
-    </big>
-    <ol>
-      <small> </small><big> </big><small> </small>
-      <li><big>loading the default variables for clam,</big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big>redefining the default variables where necessary,</big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big>loading the default rule set for clam,</big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big>defining rules that are local to the user's Makefile.</big></li>
-      <small> </small><small></small>
-    </ol>
-    <big>Step 4 can usually be omitted unless the project creates
-      components
-      whose types are not supported by clam.<br>
-      &nbsp;&nbsp;&nbsp;&nbsp; clam is structured as a directory hierarchy
-      where the root of clam
-      supports
-      the most general makefile activities. &nbsp;Activities such as
-      recursing
-      into subdirectories and providing support for cleaning up after a make
-      are
-      provided at this level. &nbsp; In the remainder of the document, we
-      will
-      designate this location with a "$" character to clarify what part of
-      the clam hierarchy we are describing.<br>
-      &nbsp; &nbsp;&nbsp; The root clam
-      support files are mostly language independent, since they are used by
-      all
-      varieties of language dependent derived versions of clam.&nbsp; These
-      files
-      are generally not of concern unless one is designing a new derived
-      version
-      of clam for a language not yet supported.<br>
-      &nbsp;&nbsp;&nbsp;&nbsp; The subdirectories off of the clam root
-      provide
-      "derived" makefile services, such as C++ or Ada compilation.&nbsp; Each
-      derived clam service implements at least two files to link into the
-      rest of the
-      clam system: a variables file and a rules file. &nbsp;The variables
-      file defines
-      the options for the derived make process; by changing the values of
-      these,
-      different types of targets can be created. &nbsp;The rules file
-      implements
-      creation of the targets relevant to the programming language being
-      supported.<br>
-      &nbsp;&nbsp; &nbsp; It may be worth noting that clam can be used to
-      drive
-      any kind of programmatic process--not just compilation. &nbsp;Currently
-      though,
-      program compilation is the primary goal.
-    </big>
-    <h3><big><a name="TUT_COMMON"></a>Common Files</big></h3>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The top-level file called
-      "$/variables.def"
-      contains
-      definitions and descriptions of the variables used throughout the clam
-      system.&nbsp; For a non-derived type of make (using only base clam
-      support),
-      this file should be included near the start of the user's
-      Makefile.&nbsp;
-      The rules file (stored in "$/rules.def") should be included after the
-      user
-      has modified the appropriate variables that will dictate how the make
-      is
-      performed.
-      <br>
-      &nbsp;&nbsp;&nbsp;&nbsp; This scheme of including variables at the
-      top and then rules at the bottom of the user's makefile is employed in
-      all clam makefiles.&nbsp; For example, makefiles for C++ compilation
-      are structured the
-      same way.&nbsp; The user's C++ makefile includes the C++ variables
-      (stored
-      in a subdirectory called "$/cpp" under the clam root) at the top of the
-      makefile and then includes the C++ rules at the bottom.<br>
-      &nbsp;&nbsp;&nbsp;&nbsp; An example
-      of a C++ makefile is shown below:
-    </big>
-    <ul>
-      <small> </small><big> <tt>include cpp/variables.def <br>
-          <br>
-          PROJECT = basis<br>
-          TYPE = library<br>
-          SOURCE = chaos.cpp checkup.cpp earth_time.cpp guards.cpp istring.cpp \<br>
-          &nbsp; log_base.cpp mutex.cpp occurrence.cpp outcome.cpp
-          outcome_table.cpp \<br>
-          &nbsp; packable.cpp portable.cpp runtime_history.cpp
-          system_outcomes.cpp \<br>
-          &nbsp; utility.cpp version_checker.cpp version_record.cpp<br>
-          TARGETS = basis.lib<br>
-          <br>
-          include cpp/rules.def</tt><br>
-      </big><small></small>
-    </ul>
-    <big>The interior of the makefile overrides the TYPE, SOURCE
-      and TARGETS variables for C++ compilation to specify what is to be
-      built
-      (basis.lib) and what it consists of (the CPP files mentioned in
-      SOURCE).&nbsp;
-      &nbsp;The PROJECT variable being overridden is actually defined in the
-      $/variables.def;
-      a project name is a required feature of all clam makefiles.
-    </big>
-    <h3><big><a name="TUT_IMPORTANT_VARS"></a>Important Variables</big></h3>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp;
-      The clam root directory is pointed to by an internal variable called
-      "CLAM_SCRIPTS",
-      defined in $/variables.def.&nbsp; This variable is used by the clam
-      system
-      to find extra files that might be needed by derived makefile
-      support.&nbsp;
-      It is important to change this to the appropriate value when you are
-      using the system in a different location. &nbsp;The CLAM_SCRIPTS variable
-      can either
-      be directly edited in $/variables.def, or it can be overridden in the
-      environment
-      of the shell running the make, or it can be passed on the command line
-      to
-      make.<br>
-      &nbsp;&nbsp;&nbsp;&nbsp; For C++ compilation, the above example
-      makefile
-      (for basis.lib) contains examples for most of the required
-      elements.&nbsp; Additional elements
-      will be discussed in the examples section or can be found in the
-      reference.&nbsp;
-      The absolutely required variables for C++ are PROJECT, TYPE, SOURCE and
-      TARGETS.
-    </big>
-    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; PROJECT is a variable that
-        provides the
-        name
-        of the project being compiled.&nbsp; This should be a word that can
-        also
-        be used as a directory name and partial component of filenames.&nbsp;
-        Thus,
-        spaces and other unusual punctuation characters are discouraged.&nbsp;
-        All of the project's temporary directories will be created based on
-        this
-        variable.&nbsp; This project name should be unique across a full build;
-        otherwise files generated by compiling identical project names will be
-        jumbled together.
-      </big></p>
-    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; TYPE is a variable that describes
-        the kind
-        of project that is being compiled.&nbsp; This is necessary because it
-        controls
-        some aspects of the compilation, such as where the compilation products
-        are
-        generated.&nbsp; All files generated by compilation are stored in the
-        repository
-        directory (by default, either "~/feisty_meow" in Linux or "l:\" in
-        win32).&nbsp; There are three TYPEs supported so far: </big></p>
-    <ul>
-      <small> </small><big> </big><small> </small>
-      <li><big>library: indicates that the project will primarily be
-          creating
-          static
-          or
-          dynamic libraries.</big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big>application: indicates that the project will create
-          executables.</big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big>test: indicates that the project constructs test
-          programs.</big></li>
-      <small> </small><small></small>
-    </ul>
-
-<big>DEPRECATED</big>
-    <big>
-
-&nbsp;&nbsp;&nbsp; &nbsp;Projects of the "library" type will
-      be given
-      an include directory named after the project, such as
-
-      "~/feisty_meow/include/basis".
-      &nbsp;The include directory is created as a copy of the headers in the
-      project's
-      directory .&nbsp; Library projects will also have their final products
-      copied
-      to the lib or dll subdirectories of the build directory being created.<br>
-      &nbsp;&nbsp;&nbsp; &nbsp;Projects that are of type "application" will
-      have their executables
-      copied to the executable directory in the repository (such as
-      "~/hoople/exe").
-
-<br>
-      &nbsp; &nbsp; &nbsp;The "test" type of project
-      will be promoted to a subdirectory named after the PROJECT that resides
-      under the test hierarchy in the repository (such as
-      "~/hoople/tests/turbodog").
-    </big>
-
-<big>DEPRECATED</big>
-    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; SOURCE is a list of files that
-        are to be
-        compiled
-        in order to create the final products of the project.&nbsp; These can
-        be
-        C++ source files (*.cpp), MS-Win32 resource files (*.rc) and other
-        types
-        of source files.&nbsp; The list of objects to create will be determined
-        by transforming the list of SOURCE files (such as by turning a file
-        called
-        "fud.cpp" into an object called "fud.obj").
-      </big></p>
-    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; TARGETS is a list of the products
-        that are
-        to be created by compilation and linking.&nbsp; The suffix of a target
-        is a well established extension, such as ".lib", ".exe"
-        or ".dll" for MS-Win32 compilation products.
-      </big></p>
-    <h3><big><a name="TUT_VAR_ASSIGN"></a>Variable Assignment Policies</big></h3>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp;
-      The assignment of variable values is mostly straightforward, but it
-      might
-      be valuable to provide a refresher.&nbsp; In GNU make, a variable
-      (a.k.a.
-      macro) can be assigned using the following syntax:
-    </big>
-    <ul>
-      <small> </small><big>FRED = a b c </big><small> </small>
-    </ul>
-    <big>This sets the variable named FRED to the value of "a
-      b c". &nbsp;The variable is referred to as $(FRED) when it is being
-      used,
-      although its name is just FRED.<br>
-      &nbsp;&nbsp;&nbsp; &nbsp;This syntax is fine when the variable is to be
-      defined only once.&nbsp;
-      In many cases though, a variable is already defined and needs to be
-      added
-      to instead of redefined.&nbsp; Using the standard equals (=) operator
-      would
-      wipe out the previous definition, so a special assignment
-      is provided:
-    </big>
-    <ul>
-      <small> </small><big>FRED += d e f </big><small> </small>
-    </ul>
-    <big>This is quite similar to the C syntax on integers.&nbsp; It
-      means that
-      FRED will be given a value equal to its old value plus the new
-      contents.&nbsp;
-      In our example, FRED would be equal to "a b c d e f". &nbsp;Note that
-      one cannot say:<br>
-      <br>
-      &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; FRED = $(FRED) d e f
-      &nbsp; &nbsp; &nbsp; (BAD!)<br>
-      <br>
-      This is not allowed in GNU make because it includes a macro's own value
-      in its definition. &nbsp;This causes a badly formed recursive
-      definition
-      of the variable; a variable dereferencing operation (such
-      as $(FRED)) causes the variable's current value to
-      be resolved, which in turn dereferences any other variables in the
-      definition.
-      &nbsp;Thus, the reference to $(FRED) causes infinite recursion when
-      included
-      in the definition of FRED.<br>
-      <br>
-      &nbsp;&nbsp;&nbsp;&nbsp; In the case of variables that <u>must</u>
-      be defined by the user's makefile, the standard assignment operator
-      (via the = character) can
-      be used.&nbsp; This includes the PROJECT, TYPE, SOURCE, and TARGETS
-      variables.&nbsp;
-      Also, any other variables that are set only by the user's makefile can
-      use simple assignment.&nbsp; This category includes LOCAL_LIBS_USED,
-      LIBS_USED and others of similar nature.<br>
-      &nbsp;&nbsp;&nbsp;&nbsp; But several variables are defined partially
-      by clam, then added to within the user's makefile, and then possibly
-      extended
-      after the user's makefile is processed (by the clam rules file).&nbsp;
-      These variables cannot use
-      standard assignment and must instead use the incremental assignment
-      (+=)
-      operator.&nbsp; Variables included in this category are DEFINITIONS,
-      LOAD_FLAG_PREFIX,
-      CLEANUPS, and many others.
-      <br>
-      &nbsp;&nbsp;&nbsp;&nbsp; If you are unsure about the type of variable
-      you are defining, then the incremental assignment (+=) operator is
-      preferred
-      to avoid trashing the variable's previous values.<br>
-      &nbsp;&nbsp;&nbsp;&nbsp;
-      Note that when variables are "exported", then any make in a subshell
-      will
-      inherit the parent shell's value.&nbsp; This can induce some weird
-      behavior
-      for variables that are incrementally constructed with the +=
-      operator.&nbsp;
-      If this seems to be happening, try using the simple assignment operator
-      for
-      that variable in the sub-makefile, if this is allowed. &nbsp;In general
-      though,
-      variables are not exported unless they MUST be seen by shell scripts
-      and
-      this does not occur overly frequently.
-    </big>
-    <h3><big><a name="TUT_OPTIONAL_VARS"></a>Optional Variables</big></h3>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; There are several miscellaneous
-      variables that
-      are useful, either within one's makefiles or when passed to GNU make on
-      the command
-      line.&nbsp; These are described below.
-    </big>
-    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; LOCAL_LIBS_USED is a list of
-        library names
-        that are to be linked in with the library or executable being
-        created.&nbsp;
-        These are specially formatted names; they are just the prefix part of
-        the
-        full library name.&nbsp; For example, if you're building a release
-        executable
-        and want to link in a data structures library "i_adt.lib" (win32) or
-        "libi_adt.a" (Linux), you can specify:
-        <br>
-        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LOCAL_LIBS_USED = i_adt
-        <br>
-        The appropriate prefix and suffix will be attached.
-      </big></p>
-    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; EXTRA_COPIES is a list of files
-        that should be copied to a project's output folder when it is done
-        being compiled.&nbsp; These should be files that are not already
-        copied as the main products, such as extra data or configuration files
-        that belong with an application.
-      </big></p>
-    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; EXTRA_VERSIONS is a list of
-        version files
-        that
-        also need to be updated to the main build version during a
-        compilation.&nbsp;
-        These are usually needed if a project compiles several executable
-        files,
-        and each one performs version checking.&nbsp; (By default, any project
-        containing a file called "version.ini" will get a version stamp from
-        the
-        main build version.)
-      </big></p>
-    <h3><big><a name="WRITING_RULES"></a>Writing Your Own Rules</big></h3>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; One might need to write new rules
-      for
-      processing
-      file types that are not directly supported by clam.&nbsp; There are a
-      number
-      of features provided for writing rules, but there are also some
-      requirements
-      placed on the rules.
-      <br>
-      &nbsp;&nbsp;&nbsp;&nbsp; All rules in makefiles need to be prefaced
-      with one of the provided "launcher" macros.&nbsp; These are used to
-      ensure
-      that the rules can be properly executed on different platforms;
-      Windoze95
-      was especially hard to implement for until these macros were developed
-      (due to what appear to be basic defects in the command line
-      support).&nbsp;
-      All preaching aside, here are the macros:
-    </big>
-    <ul>
-      <small> </small><big> </big><small> </small>
-      <li><big>HIDER: Executes a command but hides the
-          invocation.&nbsp; Any
-          output is
-          still sent to standard out.&nbsp; If a verbose
-          build is being done, then all of the invocations become visible again.</big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big>HIDESH: Executes a shell script but hides the
-          invocation.
-          &nbsp;Similar to HIDER but supports scripts specifically.<br>
-        </big></li>
-      <small> </small><small></small>
-    </ul>
-    <big>Here are some examples of using the macros properly.&nbsp;
-      Note that
-      the
-      command itself must be contained in single quotes:<br>
-      <br>
-      $(HIDER) $(MIDL) crumpet_server.idl<br>
-    </big>
-    <blockquote><big>MIDL is also a provided macro; it executes the
-        Microsoft
-        IDL compiler. </big></blockquote>
-    <big>$(HIDESH) $(CLAM_SCRIPTS)/postconditions.sh<br>
-    </big>
-    <blockquote><big>This runs a shell script that handles the end
-        portion of a
-        make.</big></blockquote>
-    <h3><big>
-        <a name="TUT_CONCLUSION"></a>Conclusion</big></h3>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This tutorial is intended to raise
-      awareness
-      of
-      basic&nbsp; usage.&nbsp; Hopefully the reader will now be able to
-      create
-      simple makefiles that use .&nbsp; For more aggressive compilation
-      requirements,
-      the reference section may be needed; it describes every variable and
-      rule
-      used in the&nbsp; system.&nbsp; However, it is most likely the case
-      that
-      your unsupported compilation needs will also be required by others in
-      the
-      future, and it is hoped that you will contribute them to the
-      main-line&nbsp; support.&nbsp; Currently, the appropriate way to do
-      this is just
-      to
-      send the makefile code to the <a href="#lib_manager">library
-        administrator</a>, who will include them
-      in the next version of .
-    </big>
-    <center><small></small>
-      <h2><small></small>
-        <hr noshade="noshade" size="8" width="100%"></h2>
-      <small></small></center>
-    <center><big>
-      </big><small></small>
-      <h2><big><a name="REFERENCE"></a>CLAM Reference</big></h2>
-      <small></small></center>
-    <h2><big>
-        <a name="LANG_INDEP_VARS"></a><u>Language Independent Variables</u></big></h2>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The language independent variables
-      are stored
-      in the file "$/variables.def".&nbsp; They define the overall structure
-      of a make and can usually be overridden to customize how the make is
-      performed.
-    </big>
-    <h4><big>BUILD_BEFORE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of projects that need
-      to be
-      created
-      before this project can be created.&nbsp; The items in the list are
-      interpreted
-      as directories that contain a makefile to be run.&nbsp; For example, if
-      an item in BUILD_BEFORE is listed as ?fred?, then the target
-      "fred.make"
-      will be executed.&nbsp; That target changes to the directory 'fred'
-      before
-      running the makefile there.&nbsp; The project in the specified
-      directory
-      is created using make if needed (as determined by that directory's
-      Makefile).&nbsp;
-      The projects in BUILD_BEFORE are made immediately after the
-      FIRST_TARGETS
-      are made.
-    </big>
-    <h4><big>ACTUAL_TARGETS, ACTUAL_FIRST_TARGETS, ACTUAL_LAST_TARGETS</big></h4>
-    <big>&nbsp;&nbsp; &nbsp; See below for TARGETS, FIRST_TARGETS and
-      LAST_TARGETS.<br>
-    </big>
-    <h4><big>BUILD_AFTER</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; A list of directory names that
-      should be
-      recursed
-      into after this project finishes. &nbsp;Each listed directory will have
-      make
-      started on any makefile found.<br>
-    </big>
-    <h4><big>BUILD_BEFORE<br>
-      </big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; A list of directory names that
-      should be
-      recursed into before this project
-      starts. &nbsp;Each directory listed will have make started on any
-      makefile found.<br>
-    </big>
-    <h4><big>MAKEFILE_NAME</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; A variable that specifies the name
-      of the
-      makefile
-      for all sub-makes.&nbsp; It works with BUILD_BEFORE and
-      BUILD_AFTER and allows the name of the makefile in a
-      subdirectory to be changed to something other than 'makefile'.&nbsp;
-      This
-      supports different types of builds which are controlled by different
-      makefile
-      names.
-    </big>
-    <h4><big>PARAMETER_FILE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;A file name that is
-      usually found at the root of the repository. &nbsp;The name is
-      often "build.ini", but any name can be used as the parameter file.
-      &nbsp;This file is an extension of the variable set included in
-      $/variables.def
-      and can be used to provide compilation paramters without resorting to
-      the
-      command line. &nbsp;This file is associated with a particular build
-      rather
-      than the&nbsp; support, so different releases will have different build
-      parameter
-      files. &nbsp;On systems supporting version information, the build's
-      version
-      number is stored here also.<br>
-    </big>
-    <h4><big>CATCHER</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;A sub-program launcher like HIDESH
-      but this will trap errors it sees and play the build error
-      CLAM_ERROR_SOUND.<br>
-    </big>
-    <h4><big>CLAM_BINARIES</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a folder where the helper
-      binaries for the CLAM makefile system are located.  <br>
-    </big>
-    <h4><big>CLAM_SCRIPTS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable points at the location
-      where the&nbsp; definitions and helper scripts are located.&nbsp; The
-      default is
-      "~/yeti/clam",
-      but this can be overridden for local installations of .<br>
-    </big>
-    <h4><big>CLAM_ERROR_SOUND</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is a list of sound files
-      that should be played when a make stops with an error. &nbsp;It serves
-      as
-      an audible warning that something bad happened.<br>
-    </big>
-    <h4><big>CLAM_FINISH_SOUND</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is a list of sound files
-      that should be played when the make has concluded
-      successfully. &nbsp;It should play when the outer-most make
-      has seen all targets created as intended.<br>
-    </big>
-    <h4><big>CLAM_TMP</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;Specifies the location for temporary
-      files generated during a make. &nbsp;The default value usually works
-      fine.
-      &nbsp;This directory will be created if it does not already exist.<br>
-    </big>
-    <h4><big>CLEANUPS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of files to be
-      removed by the
-      make
-      clean command.&nbsp; They are possibly acquired from the TARGETS
-      defined
-      in the user's Makefile, or by language dependent rules for
-      cleaning.&nbsp;
-      Additional files can be added to this list by the user's makefile also.
-    </big>
-    <h4><big>DIRTY_FILE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable points at a file that
-      signifies
-      that some targets have been remade.&nbsp; It is not used at the base
-      level
-      of clam, but language-specific versions might do something special if
-      targets
-      were remade (such as put them in a build repository).
-    </big>
-    <h4><big>FAILURE_FILE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This file is used as a flag that
-      indicates
-      when
-      a make has failed.&nbsp; The particular file used depends on the
-      project
-      name for this makefile.&nbsp; It is cleared at both the beginning and
-      end
-      of a make.
-    </big>
-    <h4><big>FIRST_TARGETS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The FIRST_TARGETS are made before
-      any
-      libraries
-      are created and before any executables are compiled.&nbsp; There must
-      be
-      a rule for making every entry in this list, either through implicit
-      rules
-      or explicit ones provided by the user's makefile.
-    </big>
-    <h4><big>FLAG_FILES</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is a list of all the files
-      that are used for compilation flags. &nbsp;They are whacked at the
-      beginning
-      and end of a make.<br>
-    </big>
-    <h4><big>HIDER</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This macro is used throughout&nbsp;
-      to hide the
-      commands that are being sent to the operating system.&nbsp; It can be
-      disabled to allow a verbose make (see the NOISY macro).
-    </big>
-    <h4><big>HIDESH</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Just like HIDER, but this macro is
-      specifically
-      for launching shell scripts. &nbsp;Some versions of GNU make (like
-      Cygwin's)
-      have problems running scripts which don't arise when running executable
-      files.
-      &nbsp;Those problems led to the creation of the HIDESH macro for those
-      specific
-      cases. &nbsp;This is not an issue for Unix systems.
-    </big>
-    <h4><big>&nbsp;LAST_TARGETS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The LAST_TARGETS are made after all
-      of the
-      other
-      standard targets are made.&nbsp; Their must be a rule for making every
-      entry in this list, either through implicit rules or explicit ones
-      provided
-      by the user's makefile.
-    </big>
-    <h4><big>NOISY</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable can be used to cause a
-      verbose
-      make.&nbsp;
-      If the variable is non-empty, then all commands will be echoed to
-      standard
-      output.&nbsp; Otherwise, the default is to hide the commands that are
-      issued
-      and just show the output of running those commands.
-    </big>
-    <h4><big>OP_SYSTEM</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a flag that defines the
-      operating
-      system
-      name.&nbsp; This flag is sometimes used to choose the appropriate tools
-      per platform or to conditionally compile code for system
-      dependent interfaces.&nbsp; The available possibilities so far are
-      UNIX,
-      OS2, SYSV (System V Unix), DOS, and WIN32.&nbsp; Only UNIX and WIN32
-      are
-      currently very functional.
-    </big>
-    <h4><big>&nbsp;OTHER_CLEANS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These are targets to execute before
-      performing
-      the main clean up during "make clean".&nbsp; These might be targets
-      that
-      contain shell commands to execute as part of clean up or they could
-      contain
-      the "clean_subdirs" command (defined below).
-    </big>
-    <h4><big>PROJECT</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a variable that provides the
-      name of
-      the
-      project being compiled.&nbsp; This should be a word that can also be
-      used
-      as a directory name and as a partial component of filenames.&nbsp;
-      Thus, spaces
-      and other unusual punctuation characters are discouraged.&nbsp; All of
-      the project's temporary directories will be created based on this
-      variable.
-    </big>
-    <h4><big>FEISTY_MEOW_APEX</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;Specifies the root directory
-      for compilation or other&nbsp; building activities. &nbsp; The
-      repository
-      is also where source code and final products of compilation reside,
-      unless
-      the default is over-ridden (see TARGETS_STORE).<br>
-    </big>
-    <h4><big>SH &amp; SHELL</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These variables both point at a
-      shell program
-      that is
-      used for starting commands. &nbsp;SHELL is defined by GNU make, whereas
-      SH is defined by .
-    </big>
-    <h4><big>SUB_FLAG_FILES</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is a list of the compilation
-      flag files
-      which
-      should be destroyed only at the end of a make.&nbsp; They are used for
-      communication
-      with submakefiles--makefiles that were invoked by "this" makefile.<br>
-    </big>
-    <h4><big>SUBMAKE_FLAG</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;This points to a file whose presence
-      indicates
-      that
-      a "submake" performed some actions. &nbsp;The flag can be interpreted
-      by
-      some language-specific versions of&nbsp; as a reason to set a flag
-      using
-      the
-      DIRTY_FILE.<br>
-    </big>
-    <h4><big>TARGETS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These are the products to be created
-      by .&nbsp;
-      Each item listed in TARGETS should have a rule that knows how to create
-      that type of file.&nbsp; The language independent system provides very
-      few suffix based rules.&nbsp; TARGETS is filled in by the user in
-      their&nbsp; file, but it is not used directly by the&nbsp;
-      system.&nbsp;
-      Instead,
-      a generated variable called ACTUAL_TARGETS is used.<br>
-    </big>
-    <h4><big>TARGETS_STORE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This folder is where all generated
-      files are
-      to
-      be stored. &nbsp;It is usually identical to FEISTY_MEOW_APEX but can be
-      overridden
-      when the targets should be stored elsewhere.<br>
-    </big>
-    <h4><big>Version components: major, minor, revision, build<br>
-      </big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;These four variables specify the
-      version of
-      this
-      particular build. &nbsp;They are usually stored in the
-      PARAMETER_FILE.
-      &nbsp;The major and minor versions are the traditional 2.3, 4.0, etc
-      style
-      of release numbers. &nbsp;The revision number is often used to sequence
-      the
-      builds of that particular release, such that build 3.5.127 is the 127th
-      build
-      of the 3.5 release.<br>
-      &nbsp; &nbsp; &nbsp;A version-tagged file (such as an executable or
-      dynamic
-      library) with any one of the major, minor or revision numbers differing
-      from
-      an installed build is incompatible with the installed build. &nbsp;An
-      executable
-      file or dynamic library will not be allowed to load other dynamic
-      libraries
-      where these numbers differ.<br>
-      &nbsp; &nbsp; &nbsp;The last version component is misleadingly called
-      "build";
-      this number specifies the service pack level for a file. &nbsp;Files
-      whose
-      versions only differ in the last "build" component are intended to be
-      compatible
-      with each other. &nbsp;The understanding is that if only that number
-      differs,
-      then the external interface to the file has not changed, although the
-      interior
-      implementation may have.<br>
-    </big>
-    <h2><big><a name="LANG_INDEP_RULES"></a><u>Language Independent
-          Rules</u></big></h2>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The file "$/rules.def" uses the
-      composite
-      macros
-      defined in "$/variables.def" together with a set of make rules to
-      perform
-      actions during compilation.&nbsp; The rules file should be included in
-      the user's Makefile after the compilation variables have been
-      initialized
-      for the project being compiled.&nbsp; The user's own targets should be
-      placed after the directive that includes "$/rules.def".
-    </big>
-    <h4><big>%.halt</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These targets cause&nbsp; to exit,
-      usually to
-      avoid
-      something that it considers catastrophic.&nbsp; An example of this
-      would
-      be when&nbsp; finds an inappropriate entry in the list of objects to
-      create;
-      allowing a "make clean" on this makefile will delete files that are
-      probably
-      not intended.&nbsp; Hence, when&nbsp; finds this kind of usage, it will
-      stop the make and issue a complaint.
-    </big>
-    <h4><big>%.make</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Used to compile a makefile in a
-      subdirectory
-      named
-      "%".&nbsp; This rule is employed by the BUILD_BEFORE macro, but can be
-      used in the user's makefile targets also.
-    </big>
-    <h2><big><a name="LANG_INDEP_TARGETS"></a><u>Language Independent
-          Targets</u></big></h2>
-    <big>&nbsp;&nbsp;&nbsp; The following targets are defined by
-      "$/rules.def".
-    </big>
-    <h4><big>all</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a standard target that is
-      executed
-      when
-      no particular target is specified at the make command line.&nbsp; It is
-      an umbrella target that invokes all of the other targets required to
-      perform
-      a make.&nbsp; The order in which the major targets are created is:
-    </big>
-    <ol>
-      <small> </small><big> </big><small> </small>
-      <li><big>FIRST_TARGETS</big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big>TARGETS</big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big>LAST_TARGETS</big></li>
-      <small> </small><small></small>
-    </ol>
-    <h4><big>
-        clean</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This causes all of the files in
-      CLEANUPS to be
-      removed and also executes all of the targets in OTHER_CLEANS.&nbsp; The
-      language dependent system can override some of this behavior or it can
-      just add more files to the list of CLEANUPS.
-    </big>
-    <h4><big>clean_subdirs</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is similar to "make_subdirs" in
-      that it
-      descends
-      into the subdirectories in no particular order, but it runs "make
-      clean"
-      in each of them.&nbsp; This allows a directory hierarchy of projects to
-      be cleaned with one command.
-    </big>
-    <h4><big>finish</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The "finish" target represents the
-      completion
-      of a make, whether successful or not.&nbsp; It reports the time and
-      date
-      (and logs them).
-    </big>
-    <h4><big>rm_links</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target causes all link files in
-      the
-      current
-      directory to be deleted.&nbsp; This is only applicable on a Unix
-      operating
-      system.
-    </big>
-    <h4><big>make_subdirs</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target allows a makefile to
-      specify that
-      all of the subdirectories under the current directory should be scanned
-      for makefiles and that those makefiles should be executed.&nbsp; If a
-      makefile
-      does not exist, it is skipped.&nbsp; Note that the subdirectories are
-      descended
-      into in no particular order; the order depends on how the operating
-      system
-      decides to list the directories.&nbsp; If the order of make is
-      important,
-      use BUILD_BEFORE instead.
-    </big>
-    <h4><big>start</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The "start" target represents the
-      beginning of
-      the make.&nbsp; It reports the time and date (and logs them).
-    </big>
-    <h2><big><a name="LANG_INDEP_SCRIPTS"></a><u>Language Independent
-          Files</u></big></h2>
-    <h4><big>$(PARAMETER_FILE)</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is a special
-      file that has at least two purposes in .&nbsp; It is the source of
-      the
-      version number that will be stamped on all the appropriate DLLs and
-      EXEs
-      created during a build.&nbsp; It is also a place where build-wide
-      compilation
-      directives can be included so that they do not have to be passed on the
-      command
-      line.&nbsp; For C++ compilation, this is usually an INI file
-      stored in the
-      FEISTY_MEOW_APEX under the build folder.&nbsp;
-      Here is a sample parameter file:
-    </big>
-    <blockquote><big><tt><font size="-1"><big>#\</big></font></tt> <br>
-        <tt><font size="-1"><big>[version]</big></font></tt> <br>
-        <tt><font size="-1"><big>major=14</big></font></tt> <br>
-        <tt><font size="-1"><big>minor=3</big></font></tt> <br>
-        <tt><font size="-1"><big>revision=140</big></font></tt> <br>
-        <tt><font size="-1"><big>build=0</big></font></tt> </big><small> </small>
-      <p><big><tt><font size="-1"><big>DEBUG=t</big></font></tt> <br>
-          <tt><font size="-1"><big>OPTIMIZE=t</big></font></tt> <br>
-        </big></p>
-      <small> </small></blockquote>
-    <big>Note the bizarre comment at the top of the makefile; this is
-      used to
-      hide
-      the "[version]" section marker.&nbsp; The comment is required because
-      the
-      build parameter file is pulled directly into the makefile code to set
-      the
-      variables after the version stamp.&nbsp; Without a comment in front of
-      the section, a syntax error would result.&nbsp; The "[version]" section
-      marker is required because this file is also sometimes treated as a
-      win32 INI file
-      in order to read the version stamp.<br>
-      &nbsp;&nbsp;&nbsp;&nbsp; The build version is stored in the first four
-      entries.&nbsp; Our interpretation of the stamp is standard for "major"
-      and "minor".&nbsp; We treat the "revision" as a build revision number;
-      within a release, there will be numerous revisions--one for each new
-      build
-      that is performed.&nbsp; We then treat the "build" entry as a patch
-      level
-      within that particular build.&nbsp; When we perform our version
-      checking,
-      only the first three entries are compared; the patch level in "build"
-      is
-      considered irrelevant.
-      <br>
-      &nbsp;&nbsp;&nbsp;&nbsp; This example also specifies that the build
-      should be a debug style (rather than release) build and that it should
-      be optimizer.&nbsp; We can also see that
-      the flags for bounds checker instrumentation and true time
-      analysis support are commented out.<br>
-    </big>
-    <h4><big>badness_catcher.sh</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;Runs the command line passed
-      in as a sub-shell and looks for error conditions. &nbsp;If an error
-      occurred,
-      the build is stopped and the CLAM_ERROR_SOUND is played.<br>
-    </big>
-    <h4><big>datestamp.sh</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;Echoes the time and date. &nbsp;This
-      is a
-      separate
-      file to make the cross-platform difference less annoying.<br>
-    </big>
-    <h4><big>exit_make.sh</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Causes the make to stop dead in its
-      tracks.
-    </big>
-    <h4><big>postconditions.sh</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;Invoked at the end of the
-      language-invariant
-      portion of a make.<br>
-    </big>
-    <h4><big>preconditions.sh</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;Invoked at the beginning of the
-      language-invariant portion of a make.<br>
-    </big>
-    <h4><big>starter.sh</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This shell script executes a command
-      that is
-      passed
-      to it as its parameters and logs error conditions to standard
-      output.&nbsp;
-      It's used by the CATCHER macro.
-    </big>
-    <h2><small></small>
-      <hr noshade="noshade" size="8" width="100%"></h2>
-    <h2><big>
-        <a name="CPP_VARS"></a><u>C++ Specific Variables</u></big></h2>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These variables are used throughout
-      the C++
-      compilation
-      support.&nbsp; They are defined in "$/cpp/variables.def".
-    </big>
-    <h4><big>BASE_CPU</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Allows specification of the
-      processor that the
-      build is targeted for.&nbsp; This is needed when special actions must
-      be
-      taken for different processor types.&nbsp; Valid values currently
-      include
-      m68k (for Motorola 68000 series), m68340 (specifically the 68340),
-      x86 (intel 386 and upwards), and ppc860 (the PowerPC 860).
-    </big>
-    <h4><big>BUILD_LIST_FILE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;The list of files that must
-      be rebuilt. &nbsp;This is only used with compilers that support
-      compilation
-      of multiple source files with one invocation of the compiler (currently
-      only
-      MS-Visual C++).<br>
-    </big>
-    <h4><big>BUILD_WHACK_FILE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;A list of object files that must be
-      destroyed
-      if
-      the make fails. &nbsp;This is only relevant in the same situations as
-      BUILD_LIST_FILE.<br>
-    </big>
-    <h4><big>COMPILER</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable chooses the specific
-      flags
-      needed
-      for the compiler.&nbsp; Not all operating system choices above are
-      suitable
-      with the COMPILER choices, but generally it is fairly obvious which are
-      supported.&nbsp; The current possibilities include BORLAND_DOS,
-      BORLAND_OS2,
-      UNIX (default cc), GNU_OS2, GNU_LINUX, OBJECT_CENTER (Saber compiler),
-      SUN_UNIX,
-      VISUAL_CPP, and DIAB3.
-    </big>
-    <h4><big>COMPILER_FLAGS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the list of flags passed to
-      the
-      preprocessor
-      and compiler. It is composed of the SYSTEM, the DEFINITIONS, the
-      SEARCH_DIRS,
-      and any user-included options. If flags that don't fit one of the
-      categories
-      are needed, they can be added here.
-    </big>
-    <h4><big>CONSOLE_MODE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This causes the program
-      to be generated as a console application.&nbsp; This is relevant in
-      systems
-      (such as win32) where programs have a split personality depending on
-      whether
-      they are to have graphical user interfaces or just console interfaces.
-    </big>
-    <h4><big>DEBUG_FLAGS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These are flags used for generating
-      specialized
-      versions of object files, such as ones that include debugging code
-      (e.g.,
-      for gdb) or ones that add code for profiling (e.g., gprof). Possible
-      values
-      in the Sun CenterLine Compiler environment are -g for debugging code
-      and
-      -pg for profiling.
-    </big>
-    <h4><big>DEFINITIONS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of compiler flags
-      that define
-      the
-      value of C or C++ macros. These usually have the format of
-      ?-D&lt;flag&gt;?,
-      but in this particular variable only the &lt;flag&gt; itself should be
-      listed
-      (because the compiler option characters ?-D? are added automatically).
-    </big>
-    <h4><big>DEPENDENCY_ADDITIONS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of extra flags that
-      gets passed
-      to the auto-dependency tool.&nbsp; The list can vary for each compiler.
-    </big>
-    <h4><big>DEPS_FILE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This file is where the
-      auto-dependency
-      information
-      is stored.&nbsp; The "makedep" program is used to generate
-      auto-dependency
-      information for the files listed in SOURCE.&nbsp; During a build, the
-      DEPS_FILE
-      is pulled into the actual code of the makefile; this causes the
-      dependencies
-      to be automatically included so that they can dictate the files that
-      need
-      to be rebuilt.
-    </big>
-    <h4><big>EXTRA_VERSIONS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of version files that
-      also need
-      to be updated to the main build version during a compilation.&nbsp;
-      These
-      are usually needed if a project compiles several executable files, and
-      each one performs version checking.&nbsp; By default, any project
-      containing
-      a file called "version.ini" will get a version stamp from the main
-      build
-      version.
-    </big>
-    <h4><big>LIBRARIAN_FLAGS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of flags that are
-      passed to the
-      library creation tool.&nbsp; Sometimes this must be overridden for a
-      particular
-      compiler.
-    </big>
-    <h4><big>LIBS_USED</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These are code libraries that the
-      executables
-      depend upon.&nbsp; They are searched for in any of the directories
-      listed
-      in the LIBRARY_SEARCH_PATH.
-    </big>
-    <h4><big>LOAD_FLAG_PREFIX &amp; LOAD_FLAG_SUFFIX</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These tell the linker and loader how
-      to deal
-      with
-      the files and where to locate library components. The prefix is listed
-      on the compilation command line before the object files are listed, and
-      the suffix after. The prefix should contain information such as the
-      directories
-      to be searched for code libraries (although they should be added to
-      LIBRARY_SEARCH_PATH).&nbsp;
-      In the suffix definition, actual library loading statements (like
-      -lmath)
-      can be included (although they should be listed in a different form in
-      LIBS_USED or LOCAL_LIBS_USED).
-    </big>
-    <h4><big>LOCAL_LIBS_USED</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The names in this list actually
-      cause the
-      OBJECTS
-      to be recompiled when the libraries listed have changed.&nbsp; To
-      accomplish
-      this, these libraries MUST be located in the STATIC_LIBRARY_DIR rather
-      than
-      at some arbitrary place on the LIBRARY_SEARCH_PATH.&nbsp; These
-      libraries
-      also must follow the special naming convention followed by ; if
-      "basis"
-      is an entry in this list, then a library called "basis.lib" will be
-      sought
-      during the build.
-    </big>
-    <h4><big>NO_COMPILE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;Specifies that no compilation
-      should be performed. &nbsp;Nothing in the SOURCE or TARGETS macros will
-      be
-      built.<br>
-    </big>
-    <h4><big>NO_DEPS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is an exclusion flag.&nbsp; If
-      it is
-      defined,
-      then no auto-dependency files will be generated.&nbsp; This is useful
-      if
-      you're missing the makedep tool and trying to compile it.<br>
-    </big>
-    <h4><big>OBJECTS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The OBJECTS are all those files that
-      need to
-      be
-      created during compilation.&nbsp; Usually this list is filled based on
-      the files in SOURCE.
-    </big>
-    <h4><big>OPTIMIZE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Causes the make to create optimized
-      code.&nbsp;
-      The default optimization is for speed.
-    </big>
-    <h4><big>REBUILD</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; If the REBUILD variable is
-      non-empty, then all
-      files listed in the SOURCE variable are touched.&nbsp; This should
-      cause
-      all of those files to be rebuilt during the compilation.&nbsp;
-      Occasionally
-      GNU make will complain that a file is newer than the current time, but
-      this does not usually cause any problems.
-    </big>
-    <h4><big>SOURCE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The SOURCE variable is a list of
-      files that
-      are
-      to be compiled in order to create the final products of the
-      project.&nbsp;
-      These can be C++ source files (*.cpp), Win32 resource files (*.rc)
-      and
-      other types of source files.&nbsp; The list of objects to create will
-      be
-      determined by transforming the list of SOURCE files (such as by turning
-      a file called "fud.cpp" into an object called "fud.obj").&nbsp; More
-      file
-      types will be added as they are needed.
-    </big>
-    <h4><big>STATIC</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Causes the make to create statically
-      linked
-      targets.&nbsp;
-      Executables or dynamic libraries will not link in any compiler supplied
-      dynamic libraries, nor will they require them during run-time.
-    </big>
-    <h4><big>TYPE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a variable that describes
-      the kind of
-      project that is being compiled.&nbsp; Knowing the type of project is
-      necessary
-      because it controls some elements of the compilation and also of the
-      final
-      promotion of the compiled products.&nbsp; There are three TYPEs
-      supported
-      so far:
-    </big>
-    <ul>
-      <small> </small><big> </big><small> </small>
-      <li><big>library: indicates that the project will be primarily
-          creating
-          static
-          or
-          dynamic libraries.</big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big>application: indicates that the project will create
-          executables.</big></li>
-      <small> </small><big> </big><small> </small>
-      <li><big>test: indicates that the project constructs test
-          programs.</big></li>
-      <small> </small><small></small>
-    </ul>
-    <big>Projects of the "library" type will follow the special&nbsp;
-      rules for
-      their include directory (which is created as a copy of headers in the
-      library
-      directory).&nbsp; Library projects will also have their final products
-      copied to the lib or dll subdirectories of the build directory being
-      created.&nbsp;
-      Projects that are "application"s will have their executables copied to
-      the executable directory in the build.&nbsp; And "test" projects will
-      be
-      promoted to a subdirectory named after the PROJECT that resides under
-      the
-      test hierarchy in the build.
-    </big>
-    <h2><big><a name="DIRECTORY_VARS"></a><u>C++ Directory Structure
-          Variables</u></big></h2>
-    <h4><big>BASE_OUTPUT_PATH</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is the parent directory
-      for object files generated for the specified type of CPU and the style
-      of
-      build (e.g. debug or release builds).<br>
-    </big>
-    <h4><big>CPU_BUILD_DIR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable can be used to
-      distinguish
-      directory
-      names used for output.&nbsp; It includes the cpu name and the type of
-      build.
-    </big>
-    <h4><big>DYNAMIC_LIBRARY_DIR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;The directory where dynamic
-      libraries will be
-      stored after creation.<br>
-    </big>
-    <h4><big>EXECUTABLE_DIR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;The directory where executable files
-      will be
-      stored after creation.<br>
-    </big>
-    <h4><big>FINAL_DIR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the name of the directory
-      where the
-      finished
-      compilation products are stored, currently only import libraries for
-      dynamic libraries.&nbsp;
-      It is usually a directory under the OUTPUT_PATH named "final".
-    </big>
-    <h4><big>HEADER_SEARCH_PATH</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of directories that
-      will be
-      searched
-      for C++ header files (files ending in ?.h?).
-    </big>
-    <h4><big>HOOPLE_HEADERS</big></h4>
-<big>DEPRECATED</big>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The two standard places to look for
-      headers
-      (the repository and the third party directory) are listed in this
-      variable.
-    </big>
-    <h4><big>HOOPLE_LIBRARIES</big></h4>
-<big>DEPRECATED</big>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is where our libraries are
-      located.&nbsp; It is usually a subdirectory called "lib" under the
-      repository
-      directory.
-    </big>
-    <h4><big>LIBRARY_SEARCH_PATH</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of directories that
-      will be
-      searched
-      for C++ library archives (files ending in ".a" or ".lib").
-    </big>
-    <h4><big>LOCAL_HEADERS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable provides a way to
-      include
-      headers
-      prior to the default locations in the search path.&nbsp; For example,
-      if
-      you are compiling locally and have some headers that are not present in
-      the build you are using, then you can specify where they are in this
-      variable.
-    </big>
-    <h4><big>LOCAL_LIBRARIES</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable allows other library
-      directories
-      to be added prior to the default search locations.&nbsp; This enables
-      substitute
-      static or import libraries to be used instead of the standard ones
-      present
-      in the build.
-    </big>
-    <h4><big>STATIC_LIBRARY_DIR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the location where code
-      libraries are
-      to be copied during promotion and where they are to be searched for
-      when
-      listed in LOCAL_LIBS_USED.&nbsp; Under Unix, these libraries have a
-      ?.a?
-      suffix and are created with the "ar" program.&nbsp; Under Win32,
-      these
-      libraries have a ?.lib? suffix and are created with "link".
-    </big>
-    <h4><big>OBJECT_DIR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is where object files will be
-      stored
-      during
-      compilation for the target type being produced.
-    </big>
-    <h4><big>OUTPUT_DIRECTORY_LIST</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of directories that
-      need to be
-      created under the OUTPUT_PATH.&nbsp; It contains the "final" directory
-      where all finished products are stored, as well as all the intermediate
-      directories for objects.
-    </big>
-    <h4><big>OUTPUT_PATH</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the temporary file storage
-      area.&nbsp;
-      Any files that are created during the compilation process will be
-      stored
-      under here in a subdirectory named after the PROJECT.
-    </big>
-    <h4><big>OUTPUT_ROOT</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This specifies the root portion of
-      the
-      OUTPUT_PATH.&nbsp;
-      It lets a PC build use drive letters for the root, while a Unix build
-      can
-      specify a directory hierarchy.
-    </big>
-    <h4><big>SEARCH_DIRS</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of directories that
-      will be
-      searched
-      for both C++ header files and for C++ code libraries.&nbsp; The items
-      placed
-      on SEARCH_DIRS will be added to both the LIBRARY_SEARCH_PATH and the
-      HEADER_SEARCH_PATH.&nbsp;
-      The reasoning behind this variable is lost in antiquity.
-    </big>
-    <h4><big>TESTS_DIR <br>
-      </big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;The directory where test programs
-      will be
-      stored after creation.<br>
-    </big>
-    <h4><big>THIRD_PARTY_DIR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Third party components are sometimes
-      used in
-      the
-      creation of products.&nbsp; The directory is expected to have a
-      structure
-      containing "include" and "lib" subdirectories where headers and
-      libraries
-      are stored.
-    </big>
-    <h2><big><a name="CPP_FLAGS"></a><u>Compiler Dependent Flags</u></big></h2>
-    <h4><big>
-        CC</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the name of the C++ compiler
-      executable.
-    </big>
-    <h4><big>COMPILER_HEADER_DIR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is where the compiler's header
-      (or
-      include)
-      root directory is located.&nbsp; It is usually based on the root
-      directory.
-    </big>
-    <h4><big>COMPILER_LIBRARY_DIR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is where the code libraries for
-      the
-      compiler
-      are located.&nbsp; It is usually based on the root directory.
-    </big>
-    <h4><big>COMPILER_ROOT_DIR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This should automatically be set to
-      the
-      appropriate
-      local directory where the C++ compiler is located.
-    </big>
-    <h4><big>CREATE_LIBRARY_FLAG</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag, if required, specifies
-      the text
-      that
-      must precede the name of a library to create.&nbsp; It is passed to the
-      library creation tool.
-    </big>
-    <h4><big>DEF_FILE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag only applies to Win32
-      programs.&nbsp;
-      It specifies the name of a DEF file for all of the products created in
-      the project.
-    </big>
-    <h4><big>LIB_PREFIX &amp; LIB_SUFFIX</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;The portions of a library's name
-      dictated by the operating system. &nbsp;For example, on Unix the prefix
-      is "lib"
-      and the suffix is ".a", leading to library names like "libbasis.a" for
-      the
-      basis library. &nbsp;On win32, the prefix is "" and the suffix is
-      ".lib", leading
-      to library names like "basis.lib".<br>
-    </big>
-    <h4><big>LIBRARY_NAME_FLAG</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag contains the text that
-      specifies a
-      library
-      that will be included in a link.&nbsp; It is often "-l".
-    </big>
-    <h4><big>LIBRARY_PATH_FLAG</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag provides the text needed
-      to add
-      another
-      library search path.&nbsp; Multiple occurrences of this flag followed
-      by
-      a directory name are allowed by most compilers.
-    </big>
-    <h4><big>LIBRARY_TOOL</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the name of the program
-      responsible
-      for
-      creating libraries.
-    </big>
-    <h4><big>LINK_TOOL</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the name of the program that
-      links.&nbsp;
-      This is sometimes the same as the compiler (CC) and sometimes the same
-      as the librarian (LIBRARY_TOOL).
-    </big>
-    <h4><big>LINKER_OPTION_SEPARATOR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; In some compilers, linker options
-      need to be
-      separated
-      from compiler options that occur on the same command line.&nbsp; This
-      flag
-      serves that purpose.
-    </big>
-    <h4><big>LINKER_OUTPUT_FLAG</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag is sometimes required by a
-      linker
-      for
-      specifying the name of the library or executable that it is creating.
-    </big>
-    <h4><big>OBJECT_NAME_FLAG</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag is used to specify the
-      name of an
-      object
-      file being created.&nbsp; It is passed to the compiler to override
-      whatever
-      default name would be used.
-    </big>
-    <h2><big><u><a name="vcpp_only"></a>Microsoft-Visual C++ Only</u><br>
-      </big></h2>
-    <h4><big>USE_MFC</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag only applies to Visual C++
-      and
-      indicates
-      that MFC is to be used in creating this project.&nbsp; This is usually
-      the case for GUI applications.
-    </big>
-    <h4><big>VC_ROOT</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is an override that allows the
-      compiler
-      root
-      directory to be customized without changing the&nbsp; code.&nbsp; If
-      VC_ROOT
-      is set (either in a makefile or as an external variable), then it will
-      be used in place of the COMPILER_ROOT_DIR.&nbsp; The best way to use
-      this
-      override is as an external environment variable; this allows makefiles
-      to remain the same despite your local configuration of the compiler.
-      <br>
-      &nbsp;&nbsp;&nbsp;&nbsp; Note that this variable should use
-      forward-slashes,
-      where DOS/Win32 would use backslashes.&nbsp; Also, if you have
-      installed
-      Visual C++ in a directory path containing space characters, then please
-      use the 8.3 notation for the directories containing the spaces; this
-      allows
-      the name to be passed around successfully.&nbsp; For example...
-    </big>
-    <center><small></small><big> </big><big> </big><big> </big><big> </big><big></big><big></big><big>
-      </big><big> </big><big> </big><big> </big><big>
-      </big><big> </big><big> </big><big> </big><small> </small><small></small><small>
-      </small><small> </small><small> </small><small> </small><small>
-      </small><small> </small><small> </small><small> </small><small> </small><small></small><small>
-      </small><small> </small><small> </small><small> </small>
-      <table cellpadding="8" cellspacing="4">
-        <tbody>
-          <tr>
-            <td><big> </big><small> </small>
-              <center><big><u>If Visual C++ Is Installed In</u></big></center>
-              <small> </small><big> </big></td>
-            <td><big> </big><small> </small>
-              <center><big><u>Then VC_ROOT Should Be</u></big></center>
-              <small> </small><big> </big></td>
-          </tr>
-          <tr>
-            <td><big> </big><small> </small>
-              <center><big>c:\devstudio\vc</big></center>
-              <small> </small><big> </big></td>
-            <td><big> </big><small> </small>
-              <center><big>c:/devstudio/vc</big></center>
-              <small> </small><big> </big></td>
-          </tr>
-          <tr>
-            <td><big> </big><small> </small>
-              <center><big>c:\program files\devstudio\vc</big></center>
-              <small> </small><big> </big></td>
-            <td><big> </big><small> </small>
-              <center><big>c:/progra~1/devstudio/vc</big></center>
-              <small> </small><big> </big></td>
-          </tr>
-        </tbody>
-      </table>
-      <small></small></center>
-    <h4><big>VCS_ROOT</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Similarly to the VC_ROOT, this
-      variable points
-      at the root of the C# support for Visual Studio.Net.<br>
-    </big>
-    <h4><big>FRAMEWORK_DIR</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable specifies the location
-      of the
-      .Net framework directory.&nbsp; On MS-Windows XP, the default should be
-      fine.&nbsp; For MS-Windows 2000 or other Win32 OSes, the windows
-      directory
-      should be "winnt" instead.&nbsp; If the operating system is configured
-      in a non-default way, the framework directory can be specified in an
-      environment variable.<br>
-    </big>
-    <h4><big>VCPP_USE_BASE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Specifies that standard Win32
-      libraries should
-      be linked in.<br>
-    </big>
-    <h4><big>VCPP_USE_GUI</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Specifies that the MFC libraries
-      should be
-      linked in.
-    </big>
-    <h4><big>VCPP_USE_OLE</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Specifies that the COM / OLE
-      libraries should
-      be linked in.
-    </big>
-    <h4><big>VCPP_USE_RPC</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Specifies that the MS-RPC libraries
-      should be
-      linked in.<br>
-    </big>
-    <h4><big>VCPP_USE_SOCK</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Specifies that the MS-WinSock
-      libraries should
-      be linked in.<br>
-    </big>
-    <h2><big><a name="CPP_RULES"></a><u>C++ Specific Rules</u></big></h2>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These types of targets have one
-      thing in
-      common;
-      if any of the items that a target depends on in SOURCE or
-      LOCAL_LIBS_USED
-      or included files or whatever have changed since the last time the
-      target
-      was created, then it is recompiled.
-    </big>
-    <h4><big>%.bad</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;Causes the make to die. &nbsp;This
-      is added when an incorrect file type is spotted in a list of targets.<br>
-    </big>
-    <h4><big>%.dll</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These create dynamically linked
-      libraries from
-      the SOURCE.
-    </big>
-    <h4><big>%.elf</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;Creates elf-formatted binaries for
-      use with a
-      firmware build (a specialized RTOS is the only one currently supported).<br>
-    </big>
-    <h4><big>%.exe</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This creates an executable program
-      using all
-      of
-      the objects and libraries specified.&nbsp; It is therefore important in
-      a&nbsp; makefile to only have executables that depend on the same group
-      of object files.&nbsp; The hidden agenda in the "exe" type of target is
-      that a file ending in ".cpp" must exist; this is taken as the root of
-      the
-      executable.&nbsp; It should usually contain the main() function (or its
-      equivalent).
-    </big>
-    <h4><big>%.lib</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This creates static libraries from
-      the files
-      listed
-      in OBJECTS.
-    </big>
-    <h4><big>%.nil</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;A blank target for test compiles.<br>
-    </big>
-    <h4><big>%.obj</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These create object files from C++
-      source
-      files
-      (files ending in .c or .cpp).
-    </big>
-    <h4><big>%.res</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These create compiled resource files
-      from RC
-      files
-      in the SOURCE list.
-    </big>
-    <h2><big><a name="CPP_TARGETS"></a><u>C++ Specific Targets</u></big></h2>
-    <h4><big>
-        check_requirements</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target ensures that certain
-      characteristics
-      of the makefile are present.&nbsp; It complains and aborts the make if
-      they are missing.
-    </big>
-    <h4><big>post_compilation</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target finalizes the
-      compilation by
-      running
-      the postconditions script.&nbsp; If PROMOTE is true, then the final
-      products
-      are copied into the repository.
-    </big>
-    <h4><big>pre_compilation</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target executes the
-      preconditions script
-      to set up the compilation's output directories.
-    </big>
-    <h4><big>rebuild</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target performs the actions of
-      rebuilding.&nbsp;
-      This mainly involves touching all of the files in SOURCE before the
-      compilation
-      has really started.
-    </big>
-    <h2><big><a name="CPP_SCRIPTS"></a><u>C++ Specific Files</u></big></h2>
-    <h4><big>postconditions.sh</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; After a compilation has succeeded,
-      the
-      postconditions
-      script performs the final actions required.&nbsp; The nature of these
-      actions
-      depends on the type of project being made.&nbsp; For a library project,
-      the script copies the headers to the project's include directory and
-      copies
-      libraries to the appropriate locations.&nbsp; For application and test
-      program targets, the script copies the final products to the
-      appropriate
-      repository directory.
-    </big>
-    <h4><big>preconditions.sh</big></h4>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; Before any targets are compiled, the
-      preconditions
-      script ensures that the appropriate output directories exist for the
-      project.&nbsp;
-      The script also calls the version utilities to update the project's
-      version
-      file and to create any required resource files.<br>
-    </big>
-    <h4><big>rebuild_oldies.sh</big></h4>
-    <big>&nbsp;&nbsp;&nbsp; &nbsp;Used for compilers that support
-      multiple code
-      files
-      in one invocation. &nbsp;This is launched to compile a batch of sources
-      and
-      catch any errors.<br>
-    </big>
-    <hr noshade="noshade" size="8" width="100%">
-    <center><small></small>
-      <h2><big><a name="EXAMPLES"></a>CLAM Example Makefiles</big></h2>
-      <small></small></center>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; These examples show some common
-      patterns for
-      how&nbsp; is used.&nbsp; The makefiles below are actually used in real
-      software
-      projects.
-    </big>
-    <h3><big>Library-Only Makefile</big></h3>
-    <big>This example creates a dynamic library.
-    </big>
-    <ul>
-      <small> </small><big> <tt>include cpp/variables.def</tt> </big><small>
-      </small>
-      <p><big><tt>PROJECT = mechanisms</tt><br>
-          <tt>TYPE = library</tt> <br>
-          <tt>SOURCE = delayer.cpp eventmgr.cpp event_po.cpp heartbea.cpp
-            instance.cpp
-            \</tt> <br>
-          <tt>&nbsp; libmain.cpp monitor.cpp semaphor.cpp state_ma.cpp
-            timer.cpp
-            time_sta.cpp</tt> <br>
-          <tt>TARGETS = mechanisms.dll</tt> <br>
-          <tt>LOCAL_LIBS_USED = basis</tt> <br>
-          <tt>DEFINITIONS += BUILD_MECHANISMS USE_FEISTY_MEOW_DLLS</tt> </big></p>
-      <small> </small><big> </big><small> </small>
-      <p><big><tt>include cpp/rules.def</tt></big></p>
-      <small> </small><small></small>
-    </ul>
-    <big>The dynamic library created here is mechanisms.dll.&nbsp; The
-      basis
-      library is linked
-      in also.&nbsp; The file "roller.cpp" will also be copied to the build
-      directory's
-      include path, presumably since it is a template code file.
-    </big>
-    <h3><big>Library Plus Executable Makefile</big></h3>
-    <big>This example shows the basis makefile with a couple of test
-      programs
-      also
-      being generated.
-    </big>
-    <ul>
-      <small> </small><big> <tt>include cpp/variables.def</tt> </big><small>
-      </small>
-      <p><big><tt>PROJECT = basis</tt> <br>
-          <tt>TYPE = library</tt> <br>
-          <tt>SOURCE = chaos.cpp checkup.cpp guards.cpp \</tt> <br>
-          <tt>&nbsp; istring.cpp itime.cpp logger.cpp matrix.cpp
-            portable.cpp \</tt> <br>
-          <tt>&nbsp; realtime.cpp textdump.cpp timezone.cpp utility.cpp \</tt> <br>
-          <tt>&nbsp; version_checker.cpp version_record.cpp</tt> <br>
-          <tt>TARGETS = basis.lib t_string.exe t_alloc.exe</tt> </big></p>
-      <small> </small><big> </big><small> </small>
-      <p><big><tt>include cpp/rules.def</tt></big></p>
-      <small> </small><small></small>
-    </ul>
-    <big>Note that the executables
-      "t_string.exe" and "t_alloc.exe" require files called "t_string.cpp"
-      and
-      "t_alloc.cpp" to exist.&nbsp; These files are expected to contain the
-      "main()"
-      or "WinMain()" functions (or the MFC application object).&nbsp; All of
-      the
-      files in the SOURCE variable will be included in each final executable.
-    </big>
-    <h3><big>Executable-Only Makefile</big></h3>
-    <big>This example is produces several test programs that exercise
-      the
-      associated
-      library.
-    </big>
-    <ul>
-      <small> </small><big> <tt>include cpp/variables.def</tt> </big><small>
-      </small>
-      <p><big><tt>PROJECT = t_basis</tt> <br>
-          <tt>TYPE = test</tt> <br>
-          <tt>SOURCE = instance.cpp t_basis.rc</tt> <br>
-          <tt>TARGETS = t_alloc.exe t_chaos.exe t_checku.exe t_dattim.exe \</tt>
-          <br>
-          <tt>&nbsp; t_matrix.exe t_sequen.exe t_sorts.exe t_string.exe \</tt> <br>
-          <tt>&nbsp; t_texdmp.exe</tt> <br>
-          <tt>LOCAL_LIBS_USED = basis</tt> </big></p>
-      <small> </small><big> </big><small> </small>
-      <p><big><tt>include cpp/rules.def</tt></big></p>
-      <small> </small><small></small>
-    </ul>
-    <big>The programs "t_alloc.exe" and so on will require C++ files
-      with the
-      same
-      prefix (t_alloc.cpp) to contain the main program (as in the previous
-      example).&nbsp;
-      The items in the SOURCE list will be included in each executable, and
-      the
-      basis library will be linked in.
-    </big>
-    <h2><big><a name="CLAM_HINTS"></a>CLAM Hints</big></h2>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; This section
-      is devoted to untangling snags that have been encountered in the
-      past.&nbsp;
-      Hopefully problems you encounter will be discussed here. &nbsp;Please
-      contribute
-      any new problems found to the <a href="#lib_manager">library
-        administrator</a>.
-    </big>
-    <h3><big>Problem:</big></h3>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; A message like:
-    </big>
-    <ul>
-      <small> </small><big> </big><small> </small>
-      <ul>
-        <small> </small><big>make: *** No rule to make target
-          `o:/x86_w32_rel/project/final/myproj.dll',
-          needed by `all'.&nbsp; Stop. </big><small> </small>
-      </ul>
-      <small> </small><small></small>
-    </ul>
-    <big>is displayed during a make.
-    </big>
-    <h3><big>Solution:</big></h3>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The most frequent reason for
-      receiving a
-      message
-      similar to the above is that there is a file listed in SOURCE that
-      either
-      does not exist or that is capitalized differently from how it is
-      listed.&nbsp;
-      Check that all the files in SOURCE are in the makefile's directory and
-      that the exact spelling of those files (including their case) is
-      correct.
-      <br>
-      &nbsp;&nbsp;&nbsp;&nbsp; Another potential cause of this problem is
-      if a file is included in the SOURCE that&nbsp; does not
-      recognize.&nbsp;
-      The standard compilable files are supported (*.cpp, *.c, *.rc), but it
-      is possible that a makefile must handle a non-standard extension (such
-      as *.idl).&nbsp; Either the user's makefile must supply a rule for
-      processing
-      this type of file or the user must negotiate with the&nbsp;
-      administrator
-      to get that type of target added to the&nbsp; support.
-    </big>
-    <h3><big>Problem:</big></h3>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Clam is complaining about programs
-      not being
-      found
-      during a build.
-    </big>
-    <h3><big>Solution:</big></h3>
-    <big>&nbsp;&nbsp;&nbsp;&nbsp; The most frequent cause of this
-      problem is a
-      directory
-      not being on your path.&nbsp; The compilation tools bin (CLAM_BINARIES)
-      directory must be in
-      the PATH variable.
-      <br>
-      &nbsp;&nbsp;&nbsp;&nbsp; Problems are occasionally seen when the PATH
-      contains directory names that have spaces in them.&nbsp; Try using the
-      shorter 8.3 form of the directory name.
-      <br>
-      &nbsp;&nbsp;&nbsp;&nbsp; An even more obscure situation sometimes
-      occurs: paths with networked drives seem to somehow hide paths with
-      local drives that
-      are listed later in the PATH variable.&nbsp; The cause of this is
-      unknown,
-      although it was thought to be caused by NetWare at one point.&nbsp; To
-      fix
-      the situation, move the local paths before the networked ones.<br>
-      <br>
-    </big>
-    <hr noshade="noshade" size="8" width="100%">
-    <center><small></small>
-      <h2><big><a name="ACKS"></a>Acknowledgements</big></h2>
-      <small></small></center>
-    <center><big>Thanks to April Bly Monnen for the wonderful cover
-        art.
-      </big><small></small>
-      <p><big>Thanks to Kevin Wika for some early help with makefiles.
-        </big></p>
-      <small></small><big><big>
-        </big></big><small></small>
-      <hr noshade="noshade" size="8" width="100%"></center>
-    <big><br>
-      <br>
-    </big>
-  </body>
-</html>
diff --git a/doc/clam_manual/clam_root.html b/doc/clam_manual/clam_root.html
deleted file mode 100644 (file)
index 5c3a405..0000000
+++ /dev/null
@@ -1,40 +0,0 @@
-<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-  <head>
-    <meta content="text/html; charset=iso-8859-1" http-equiv="content-type">
-    <meta name="Author" content="Fred T. Hamster">
-    <meta name="generator" content="Mozilla/5.0 (X11; U; Linux i686; en-US) [Mozilla]">
-    <title>CLAM Home Page</title>
-    <meta content="Fred T. Hamster" name="author">
-    <meta content="CLAM Compilation tools based on GNU Make" name="description">
-  </head>
-  <body style="color: rgb(255, 153, 0); background-color: rgb(0, 0, 0);" link="#99ffff"
-    vlink="#cc33cc" alink="#33ff33">
-    <center>
-      <h1><img style="width: 600px; height: 280px;" alt="clam automagic maker"
-        src="../../infobase/pictures/clamblock2.jpg" align="left"></h1>
-    </center>
-    <center>
-      <center><br>
-        <big><big><a href="clam_docs.html">Tutorial and Reference Manual</a>
-          </big></big></center>
-      <center><big><big>
-            <a href="http://www.gnu.org/software/make/manual/make.html">GNU Make
-              Manual</a>
-          </big></big></center>
-      <center><big><big>
-            <a href="../">CLAM Source</a>
-          </big></big></center>
-      <center><big><big>
-            <a href="../cpp">CLAM C++ Support Source</a>
-          </big></big></center>
-      <center><big><big>
-            <a href="../csharp">CLAM C# Support Source</a>
-          </big></big></center>
-      <center><big><big>You can download CLAM from the <a href="http://feistymeow.org/">feistymeow.org</a> site.</big></big><br>
-        Please send any comments and contributions to the
-        <a href="mailto:fred@gruntose.com">Administrator</a>
-        .</center>
-    </center>
-  </body>
-</html>
diff --git a/doc/cygwin_install_list.txt b/doc/cygwin_install_list.txt
deleted file mode 100644 (file)
index acd8d77..0000000
+++ /dev/null
@@ -1,65 +0,0 @@
-\r
-recommended packages to install in cygwin's setup\r
-if you're going to use cygwin on windows:\r
-\r
-first, keep all the standard packages that cygwin will enable.\r
-second, add these packages to get the full recommended set...\r
-\r
-===========\r
-\r
-using apt-cyg (https://github.com/transcode-open/apt-cyg),\r
-this is the only command needed:\r
-\r
-apt-cyg install bc crypt emacs email expect gcc-g++ git gitk gvim inetutils \\r
-  libcrypt-devel libcurl-devel libgnutls-devel make mutt ncftp openssh \\r
-  openssl-devel perl python subversion time unzip util-linux vim xinit \\r
-  xterm zip\r
-\r
-\r
-===========\r
-\r
-list broken out by category:\r
-\r
-shells:\r
-  python\r
-  perl\r
-\r
-network:\r
-  ncftp\r
-  openssh\r
-\r
-editors:\r
-  vim\r
-  gvim\r
-  emacs\r
-\r
-revision control:\r
-  git\r
-  gitk\r
-  subversion\r
-\r
-general tools:\r
-  bc\r
-  expect\r
-  util-linux\r
-  inetutils\r
-  email\r
-  mutt\r
-  unzip\r
-  zip\r
-  crypt\r
-  time\r
-\r
-libraries:\r
-  libcurl-devel\r
-  libgnutls-devel \r
-  openssl-devel\r
-\r
-build tools:\r
-  gcc4\r
-  make\r
-\r
-x window support:\r
-  xterm\r
-  xinit\r
-\r
diff --git a/doc/doc_fodder/bash_tools.html b/doc/doc_fodder/bash_tools.html
deleted file mode 100644 (file)
index 655b028..0000000
+++ /dev/null
@@ -1,103 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-  <meta http-equiv="Content-Type"
- content="text/html; charset=iso-8859-1">
-  <meta name="Author" content="Fred T. Hamster">
-  <meta name="generator"
- content="Mozilla/5.0 (X11; U; Linux i686; en-US) [Mozilla]">
-  <meta name="Description"
- content="Open Source Perl for Your Perusement">
-  <meta name="KeyWords"
- content="reusable, open source, perl, shell, script, recursive, diff, snarf, yeti, free, source code, example, filename, snarfer">
-  <title>Feisty Meow Concerns Bash Scripts</title>
-  <meta content="Fred T. Hamster" name="author">
-  <meta
- content="Assorted scripts for enhancing the bash environment and tools that automate fairly common actions."
- name="description">
-</head>
-<body
- style="background-image: url(pics/home_front_b_5.jpg); background-color: rgb(0, 0, 0); color: rgb(255, 255, 153);"
- alink="#ffcc00" link="#66ff99" vlink="#00cc00">
-<h3>&nbsp; </h3>
-<center>
-<table bgcolor="#330000" border="4" cellpadding="0" cellspacing="0"
- cols="1" width="92%">
-  <tbody>
-    <tr>
-      <td>
-      <center>
-      <h1><a href="http://feistymeow.org/">Feisty Meow Concerns</a>Open Source Bash Scripts</h1>
-      <h2>GPL-Licensed Bash Code<br>
-      </h2>
-      </center>
-      <center>Contributed by Chris Koeritz (<a
- href="mailto:%20koeritz@gruntose.com">Koeritz@Gruntose.COM</a>) <br>
-See the <a href="http://www.gruntose.com/Info/GNU/GPL.html">GNU Public
-License</a> for details of licensing.<span style="font-style: italic;"></span><br>
-      </center>
-      <h4>Caveats: please refer to the <a href="perl_tools.html">Perl
-Scripts page</a> which shares the same constraints as these Bash
-Scripts do.<br>
-      </h4>
-      <span style="color: rgb(255, 255, 204);">Direct Cognition</span>:
-View the scripts directory itself rather than navigating with the links
-below: <a href=".">scripts</a>.
-      <ol>
-      </ol>
-      </td>
-    </tr>
-  </tbody>
-</table>
-</center>
-<h3>&nbsp; </h3>
-<center>
-<table bgcolor="#330000" border="4" cellpadding="0" cellspacing="0"
- cols="1" width="92%">
-  <tbody>
-    <tr>
-      <td>
-      <h2>Assorted Bash Script Files</h2>
-      <blockquote>
-        <h3> <a href="uhh.sh">uhh.sh</a></h3>
-        <blockquote>This documentation page isn't quite ready yet.<br>
-In fact, this file is still in its very first few iterations and is
-pretty
-limited so far...<br>
-        </blockquote>
-        <h3> </h3>
-        <h3><a href="../database/movie_seeker.sh">movie_seeker.sh</a>
-/ <a href="../database/movie_stripper.sh">movie_stripper.sh</a>
-/&nbsp;<a href="../database/show_stripper.sh">show_stripper.sh</a><br>
-        </h3>
-        <div style="margin-left: 40px;">Some manipulation methods for a
-particular type of movie and TV show database.&nbsp; These expect a db
-in the form of a CSV file with three fields per line: (1) index number,
-(2) show or movie name and (3) show episode title.&nbsp; The third
-field is defined as blank for movies.&nbsp; The movie_seeker finds a
-given movie (or pattern) in the database.&nbsp; The movie_stripper
-pulls out all the unique movie or show names in the database.&nbsp; The
-show_stripper pulls out the episode names for a particular show name
-(or pattern).<br>
-        </div>
-        <h3><a href="../database/call_movie_seeker.sh">call_movie_seeker.sh</a>
-/ <a href="../database/call_movie_stripper.sh">call_movie_stripper.sh</a>
-/ <a href="../database/call_show_stripper.sh">call_show_stripper.sh</a><br>
-        </h3>
-        <div style="margin-left: 40px;">These are CGI correspondents to
-the above movie database searches.&nbsp; They're used on the Gruntose
-web site.<br>
-        </div>
-        <br>
-      </blockquote>
-      </td>
-    </tr>
-  </tbody>
-</table>
-</center>
-<br>
-<br>
-<br>
-<br>
-</body>
-</html>
diff --git a/doc/doc_fodder/perl_tools.html b/doc/doc_fodder/perl_tools.html
deleted file mode 100644 (file)
index 4c4ce4d..0000000
+++ /dev/null
@@ -1,357 +0,0 @@
-<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
-<html>
-<head>
-  <meta http-equiv="Content-Type"
- content="text/html; charset=iso-8859-1">
-  <meta name="Author" content="Fred T. Hamster">
-  <meta name="generator"
- content="Mozilla/5.0 (X11; U; Linux i686; en-US) [Mozilla]">
-  <meta name="Description"
- content="Open Source Perl for Your Perusement">
-  <meta name="KeyWords"
- content="reusable, open source, perl, shell, script, recursive, diff, snarf, yeti, free, source code, example, filename, snarfer">
-  <title>Feisty Meow Concerns Perl Scripts</title>
-  <meta content="Fred T. Hamster" name="author">
-  <meta
- content="Scripts for backing up hierarchies, generating documents from other documents, etc etc."
- name="description">
-</head>
-<body
- style="background-image: url(pics/celtic_destiny14.jpg); background-color: rgb(0, 0, 0); color: rgb(255, 255, 153);"
- alink="#ffcc00" link="#66ff99" vlink="#00cc00">
-<h3>&nbsp; </h3>
-<center>
-<table bgcolor="#330000" border="4" cellpadding="0" cellspacing="0"
- cols="1" width="92%">
-  <tbody>
-    <tr>
-      <td>
-      <center>
-      <h1><a href="http://feistymeow.org/">Feisty Meow Concerns Codebase</a> Open Source Perl
-Scripts</h1>
-      <h2>Some Hopefully Useful GPL-Licensed Perl Code<br>
-      </h2>
-      </center>
-      <center>Contributed by Chris Koeritz (<a
- href="mailto:%20koeritz@gruntose.com">Koeritz@Gruntose.COM</a>) <br>
-See the <a href="http://www.gruntose.com/Info/GNU/GPL.html">GNU Public
-License</a> for details of licensing.<span style="font-style: italic;"></span><br>
-      </center>
-      <h4>Caveats:</h4>
-      <ol>
-        <li>No warranty, express, implied or imagined, is offered for
-these files.&nbsp; If you destroy your life by running one of them, I
-will have sympathy, but that's about it.</li>
-        <li>Some of these shell scripts depend on environment variables.&nbsp;
-The most frequent case of this is FEISTY_MEOW_APEX, which should point to the
-top-level
-directory where the Feisty Meow scripts are stored on your
-machine. &nbsp; This variable is set by default when the scripts are in
-the ~/feisty_meow folder.&nbsp; Consult your operating
-system documentation if you are
-unfamiliar with the concept or management of environment variables.</li>
-        <li>These files are provided as possibly useful shell scripts
-rather than as full-fledged reusable and object oriented components.</li>
-        <li>Improvements and contributions are gladly accepted.&nbsp;
-They will be processed as fast as our schedule permits.&nbsp; Please
-send any changes to the Gruntose Curator at <a
- href="mailto:%20fred@gruntose.com">fred@gruntose.com</a> .</li>
-        <li>These files are mostly portable between Unix and the
-various Windoze OSes, but in many cases you may want to fix the
-defaults or path names to make them more suitable for your own needs.</li>
-        <li>Some of the scripts invoke external programs that are
-available for most Unixes.&nbsp; For Windoze users, a set of GNU Unix
-utilities is available at "<a href="http://www.mingw.org/">http://www.mingw.org/</a>".</li>
-        <li>An alternative, but not recommended, GNU suite is
-at "<a href="http://www.cygwin.com/">http://www.cygwin.com/</a>".</li>
-        <li><span style="color: rgb(255, 255, 204);">Direct Cognition</span>:
-View the scripts directory itself rather than navigating with the links
-below: <a href=".">scripts</a>.</li>
-      </ol>
-      </td>
-    </tr>
-  </tbody>
-</table>
-</center>
-<h3>&nbsp; </h3>
-<center>
-<table bgcolor="#330000" border="4" cellpadding="0" cellspacing="0"
- cols="1" width="92%">
-  <tbody>
-    <tr>
-      <td>
-      <h2>Library Files<br>
-      </h2>
-      <blockquote>
-        <h3><a href="../text/diff_lib.pl">diff_lib.pl</a></h3>
-        <blockquote>The "differ" utilities can be used to compare two
-directories of text or binary files against each other.&nbsp; The two
-directories are presumably close in contents.&nbsp; This can be useful
-when one is revising a set of files and wants to synchronize an older
-copy against a newer version.&nbsp; Support for "<a href="#differ">differ.pl</a>"
-is provided
-here.</blockquote>
-        <h3> <a name="filename helper"></a><a
- href="../files/filename_helper.pl">filename_helper.pl</a></h3>
-        <blockquote>Contains a handy set of utilities for manipulating
-filenames.&nbsp; These can help to make perl scripts portable across
-the two well-known types of filename separators ('/' and '\').&nbsp;
-They also provide support for ripping up filenames into their
-components.</blockquote>
-        <h3> <a href="../core/inc_num.pl">inc_num.pl</a></h3>
-        <blockquote>This is a simple utility that manages a file with a
-number in it.&nbsp; This is somewhat more useful than it sounds.&nbsp;
-Functions are provided to get the current number and to change the
-number.</blockquote>
-        <h3> </h3>
-        <h3> <a href="../archival/shared_snarfer.pl">shared_snarfer.pl</a></h3>
-        <blockquote>This library supports the "snarf" utilities.&nbsp;
-The
-utilities manipulate archive files with the ".snarf" extension.&nbsp;
-These
-packed
-snarf files are compressed chunks of directory hierarchies.&nbsp; Bob
-files
-are useful because they track a number per distinct "snarf" types that
-is
-used to make uniquely named new archives of the appropriate type.&nbsp;
-This
-number is an ever increasing integer that's stored in a well-known
-(configurable) location.&nbsp; When a snarf file is unpacked (using the
-"unsnarf" tool), the number is updated on the local machine so that the
-next generated file will
-be one greater than the previous number.&nbsp; If one is travelling
-between
-two machines with the same snarf file, this will have the effect of
-keeping
-the number updated on both sides.
-        </blockquote>
-        <h3><a href="../files/zap_the_dir.pl">zap_the_dir.pl</a></h3>
-        <blockquote>Support for the zapdirs utility.&nbsp; This library
-cleans out the directory that it is passed by removing files that are
-not considered important (using "<a href="#filename%20helper">filename_helper.pl</a>
-").&nbsp; The list of important files is something you might want to
-look at to ensure that you won't get burned by zapdirs.</blockquote>
-      </blockquote>
-      </td>
-    </tr>
-  </tbody>
-</table>
-</center>
-<h3>&nbsp; </h3>
-<center>
-<table bgcolor="#330000" border="4" cellpadding="0" cellspacing="0"
- cols="1" width="92%">
-  <tbody>
-    <tr>
-      <td>
-      <h2>Applications</h2>
-      <blockquote>
-        <h3> <a href="../text/add_cr.pl">add_cr.pl</a></h3>
-        <blockquote>Processes Unix format text files for pcdos by
-forcing the line endings to be Carriage Return plus Line Feed (CRLF).</blockquote>
-        <h4> </h4>
-        <h3><a href="../cgi/cgi_display.pl">cgi_display.pl</a></h3>
-        <blockquote>Turns the files passed on the command line into a
-stream of CGI compatible text output. The javascript show_file method
-(see the
-source for this page) is preferred since it is lighter weight and
-doesn't
-need cgi, but there are some situations where cgi is the only option
-(older
-browsers or requirements of no javascript).</blockquote>
-        <h4> </h4>
-        <h3> <a href="../files/change_endings.pl">change_endings.pl</a></h3>
-        <blockquote>Replaces the suffix of all filenames in the current
-directory
-with a different suffix. &nbsp;Suffix here is defined as the set of
-characters
-after the last period ('.') in the name. &nbsp;Note this will not work
-for
-names without suffices.</blockquote>
-        <h3> </h3>
-        <h3><a href="../text/cpdiff.pl">cpdiff.pl</a></h3>
-        <blockquote>Copies files from a source directory into a
-destination directory.&nbsp; The files are only copied when they are
-missing in the destination or when the destination version has
-different contents.&nbsp; The syntax looks like this:<br>
-&nbsp;&nbsp;&nbsp; cpdiff&nbsp; source&nbsp; destination<br>
-The assumption is that the files in the source directory are somehow
-better, newer or more complete than the set of files in the destination.<br>
-        </blockquote>
-        <h3><a href="../text/cpdiffnow.pl">cpdiffnow.pl</a></h3>
-        <blockquote> Similar to cpdiff, but this utility sets the
-destination file's time stamp to "now".&nbsp; This should cause the new
-or changed files in the destination directory to be more recent than
-anything else in there.&nbsp; This is helpful sometimes for forcing
-compilation of modified source files.<br>
-        </blockquote>
-        <h4> </h4>
-        <h3><a href="../rev_control/cvs_fix.pl">cvs_fix.pl</a></h3>
-        <blockquote>Wraps the cygwin cvs command for pcdos/win32.
-&nbsp;Any
-unfriendly backward slashes are flipped to be forward slashes.<br>
-        </blockquote>
-        <h3> </h3>
-        <h3><a name="differ"></a><a
- href="../text/differ.pl">differ.pl</a></h3>
-        <blockquote>Compares two directory hierarchies and the files
-they
-contain.&nbsp; The first parameter is a directory
-to compare against "this" directory;
-every subdirectory "here" will be traversed in order to build the
-output file that shows the differences.&nbsp; An optional second
-argument can be used to specify a different directory than the current
-one as the source of the comparison (the first argument is always the
-destination of the comparison).</blockquote>
-        <h3> <a href="../files/filedump.pl">filedump.pl</a></h3>
-        <blockquote>Collects the contents of the files whose names are
-passed on the command line into one gigundo stream which is passed to
-standard output. The output can be piped into another file as desired.</blockquote>
-        <h3> <a href="../core/generate_aliases.pl">generate_aliases.pl</a></h3>
-        <blockquote>Performs some useful activities for the shell
-environment.&nbsp; Using the environment variable for FEISTY_MEOW_SCRIPTS (which
-is set in the appropriate startup files to be the shell scripts
-directory, where all this stuff lives), generate_aliases will create
-all of the aliases files for the combinations of operating systems and
-types of shells supported.&nbsp; Currently this includes Linux, Unix,
-PCDOS, OS/2 and MS-WIN32 (9x, NT, 2K, XP, etc) for
-supported operating systems.&nbsp; The shell languages supported are
-dos's command, nt's cmd, unix's sh and bash, and perl.&nbsp; This script will also look for
-any files ending in ".sh" or ".pl" and it will create aliases for them
-in forms appropriate to the different shells. &nbsp;The .zz_feisty_loading
-subdirectory is created under the home directory as a storage place for the generated script
-files.</blockquote>
-        <h4> </h4>
-        <h3> <a href="../text/new_sig.pl">new_sig.pl</a></h3>
-        <blockquote>Generates a signature file from the nechung
-database
-using the 'nechung' application. &nbsp;See the <a
- href="http://feistymeow.org/">Feisty Meow Concerns Codebase</a> for the nechung
-application.
-&nbsp;The database for nechung resides in the <a href="#download">whole Feisty Meow Concerns code package</a> in "feisty_meow/infobase".</blockquote>
-        <h3> </h3>
-        <h3> <a href="../files/renlower.pl">renlower.pl</a></h3>
-        <blockquote>Renames all of the files passed on the command line
-such that they are only in lower-case.&nbsp; Useful if you're tired of
-passing mistakenly re-capitalized names from a defective 8.3 OS (e.g.
-Doze95/98) to
-a file system where you care about the case.</blockquote>
-        <h3><a href="../processes/runner.pl">runner.pl</a></h3>
-        <blockquote>Finds all executable files in the current directory
-(and subdirectories) and runs them.&nbsp; The output of the programs is
-sent to standard output.&nbsp; Standard error is used to report which
-file is being worked on, plus the running programs' own standard error
-streams are merged into runner's standard error stream.&nbsp; This
-makes it nice to do something like:<br>
-&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; runner &gt;runs.log<br>
-where the runs.log file will contain the output of each program that
-was executed and the console will be sent messages as each program is
-started and finished (and errors show up at the console also).<br>
-        </blockquote>
-        <h3> <a name="safedel"></a><a
- href="../files/safedel.pl">safedel.pl</a></h3>
-        <blockquote>Makes deleting files and directories a little less
-nerve-wracking.&nbsp; If you substitute safedel as an alias for rm or
-del or deltree or whatever, it will make a zipped backup of the items
-before they are actually deleted.&nbsp; Safedel keeps track of a number
-that is attached to each zip to enforce uniquely numbered
-archives.&nbsp; They are stored in a directory named "zz_safedel_keep"
-that is stored under the temorary directory (specified by the
-environment
-variable named TMP).&nbsp; A report of the contents of the compressed
-trash
-is appended to a file named "zz_safedel.rpt" in the TMP directory.&nbsp;
-Occasional
-cleaning of the deleted files folder is recommend, but this utility has
-saved
-my various parts several times already.</blockquote>
-        <h4> </h4>
-        <h3> </h3>
-        <h3><a href="../archival/snarf_linux_config.pl">snarf_linux_config.pl</a></h3>
-        <blockquote>A snarf utility that packages up the
-important configuration files in a Linux installation.</blockquote>
-        <h4> </h4>
-        <h3> <a href="../archival/snarf_light.pl">snarf_light.pl</a></h3>
-        <blockquote>A selective snarf of the source hierarchy.&nbsp;
-This
-collects the code that I manage.&nbsp; As such, this is probably
-irrelevant to anyone but CAK.</blockquote>
-        <h3><a href="../archival/snarf_notes.pl">snarf_notes.pl</a></h3>
-        <blockquote>Gathers all "important" files from the home
-directory.
-&nbsp;This
-is somewhat personally tuned but it includes files and directories that
-have
-"project", "notes", or "crucial" in their name.</blockquote>
-        <h3> </h3>
-        <h3> <a href="../archival/snarf_src.pl">snarf_src.pl</a></h3>
-        <blockquote>A source code grabbing snarfer.&nbsp; The entire
-source
-code hierarchy is snarfed.&nbsp; Note that one should edit the
-hierarchy
-location to make it appropriate for your local source code.</blockquote>
-
-        <h3><a href="../files/summing_dir.pl">summing_dir.pl</a></h3>
-        <blockquote>Offers a directory listing along with total file
-sizes
-and disk free space.<br>
-          <br>
-        </blockquote>
-        <h3><a href="../build/synch_build.pl">synch_build.pl</a></h3>
-        <blockquote>This is a helper utility that synchronizes the binary
-outputs from a build process with an existing installed location.&nbsp; Given a target directory, the executable
-programs and dynamic libraries that exist there will be synchronized
-with the build repository's versions.&nbsp; This is kind of a quickie
-upgrade process, as long as the files in the target location are not
-locked by other processes.<br>
-        </blockquote>
-        <h3> <a href="../archival/unsnarf.pl">unsnarf.pl</a></h3>
-        <blockquote>Uses the snarfer utilities to undo a previously
-snarfed file.&nbsp; A folder named "snarf_BASE" is created for the
-contents, where BASE
-is replaced with the basename of the snarf file (that is, without the
-".snarf"
-suffix).&nbsp; The number that tracks the snarf files of this type is
-updated
-such that the next snarf file will be at least one higher than this
-snarf's
-sorta
-unique number.&nbsp; The number will be managed correctly if you're
-always
-unsnarfing the most recent snarf files before creating any new snarfs.</blockquote>
-        <h4> </h4>
-        <h3> <a href="../files/whack_forever.pl">whack_forever.pl</a></h3>
-        <blockquote>Since all of my file deletion commands are aliases
-to <a href="#safedel">safedel</a>, it is hard to actually remove a
-file. &nbsp;If I'm really really sure that a file or directory needs to
-be
-permanently deleted, then this command can be used. &nbsp;It shows the
-names
-it is removing also, but it does _not_ ask for confirmation.</blockquote>
-        <h3> </h3>
-        <h3><a href="../security/y2038_check.pl">y2038_check.pl</a></h3>
-        <div style="margin-left: 40px;">Tests the system for survival
-past the year 2038, which is when the Unix time scale runs out of bits
-for the number of seconds since 1970 measured in a 32 bit integer.<br>
-        </div>
-        <h3><a href="../files/zapdirs.pl">zapdirs.pl</a></h3>
-        <blockquote>Removes empty directories and directories
-containing only
-unimportant crud (see "<a href="#filename%20helper">filename_helper.pl</a>").&nbsp;
-If there are no arguments, then the current directory is cleaned up;
-any subdirectories
-will be traversed into and removed if it seems appropriate.&nbsp;
-Otherwise,
-zapdirs operates on the arguments passed to it as if they are directory
-names
-to be cleaned.</blockquote>
-      </blockquote>
-      </td>
-    </tr>
-  </tbody>
-</table>
-<h3>&nbsp;</h3>
-</center>
-</body>
-</html>
diff --git a/doc/doc_fodder/readme.txt b/doc/doc_fodder/readme.txt
deleted file mode 100644 (file)
index 7194c94..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-
-
-these are bits of documentation that could be scavenged.
diff --git a/doc/feisty_meow_dox.config b/doc/feisty_meow_dox.config
deleted file mode 100644 (file)
index 4c0f610..0000000
+++ /dev/null
@@ -1,1225 +0,0 @@
-# Doxyfile 1.5.0
-
-# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project
-#
-# All text after a hash (#) is considered a comment and will be ignored
-# The format is:
-#       TAG = value [value, ...]
-# For lists items can also be appended using:
-#       TAG += value [value, ...]
-# Values that contain spaces should be placed between quotes (" ")
-
-#---------------------------------------------------------------------------
-# Project related configuration options
-#---------------------------------------------------------------------------
-
-# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
-# by quotes) that should identify the project.
-
-PROJECT_NAME           = "feisty meow concerns codebase"
-
-# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
-# This could be handy for archiving the generated documentation or 
-# if some version control system is used.
-
-PROJECT_NUMBER         = 2.108
-
-# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
-# base path where the generated documentation will be put. 
-# If a relative path is entered, it will be relative to the location 
-# where doxygen was started. If left blank the current directory will be used.
-
-OUTPUT_DIRECTORY       = 
-
-# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
-# 4096 sub-directories (in 2 levels) under the output directory of each output 
-# format and will distribute the generated files over these directories. 
-# Enabling this option can be useful when feeding doxygen a huge amount of 
-# source files, where putting all generated files in the same directory would 
-# otherwise cause performance problems for the file system.
-
-CREATE_SUBDIRS         = NO
-
-# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
-# documentation generated by doxygen is written. Doxygen will use this 
-# information to generate all constant output in the proper language. 
-# The default language is English, other supported languages are: 
-# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
-# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, 
-# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, 
-# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, 
-# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
-
-OUTPUT_LANGUAGE        = English
-
-# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
-# include brief member descriptions after the members that are listed in 
-# the file and class documentation (similar to JavaDoc). 
-# Set to NO to disable this.
-
-BRIEF_MEMBER_DESC      = YES
-
-# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
-# the brief description of a member or function before the detailed description. 
-# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
-# brief descriptions will be completely suppressed.
-
-REPEAT_BRIEF           = YES
-
-# This tag implements a quasi-intelligent brief description abbreviator 
-# that is used to form the text in various listings. Each string 
-# in this list, if found as the leading text of the brief description, will be 
-# stripped from the text and the result after processing the whole list, is 
-# used as the annotated text. Otherwise, the brief description is used as-is. 
-# If left blank, the following values are used ("$name" is automatically 
-# replaced with the name of the entity): "The $name class" "The $name widget" 
-# "The $name file" "is" "provides" "specifies" "contains" 
-# "represents" "a" "an" "the"
-
-ABBREVIATE_BRIEF       = 
-
-# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
-# Doxygen will generate a detailed section even if there is only a brief 
-# description.
-
-ALWAYS_DETAILED_SEC    = NO
-
-# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
-# inherited members of a class in the documentation of that class as if those 
-# members were ordinary class members. Constructors, destructors and assignment 
-# operators of the base classes will not be shown.
-
-INLINE_INHERITED_MEMB  = NO
-
-# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
-# path before files name in the file list and in the header files. If set 
-# to NO the shortest path that makes the file name unique will be used.
-
-FULL_PATH_NAMES        = YES
-
-# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
-# can be used to strip a user-defined part of the path. Stripping is 
-# only done if one of the specified strings matches the left-hand part of 
-# the path. The tag can be used to show relative paths in the file list. 
-# If left blank the directory from which doxygen is run is used as the 
-# path to strip.
-
-STRIP_FROM_PATH        = 
-
-# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
-# the path mentioned in the documentation of a class, which tells 
-# the reader which header file to include in order to use a class. 
-# If left blank only the name of the header file containing the class 
-# definition is used. Otherwise one should specify the include paths that 
-# are normally passed to the compiler using the -I flag.
-
-STRIP_FROM_INC_PATH    = 
-
-# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
-# (but less readable) file names. This can be useful is your file systems 
-# doesn't support long names like on DOS, Mac, or CD-ROM.
-
-SHORT_NAMES            = NO
-
-# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
-# will interpret the first line (until the first dot) of a JavaDoc-style 
-# comment as the brief description. If set to NO, the JavaDoc 
-# comments will behave just like the Qt-style comments (thus requiring an 
-# explicit @brief command for a brief description.
-
-JAVADOC_AUTOBRIEF      = NO
-
-# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
-# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
-# comments) as a brief description. This used to be the default behaviour. 
-# The new default is to treat a multi-line C++ comment block as a detailed 
-# description. Set this tag to YES if you prefer the old behaviour instead.
-
-MULTILINE_CPP_IS_BRIEF = NO
-
-# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
-# member inherits the documentation from any documented member that it 
-# re-implements.
-
-INHERIT_DOCS           = YES
-
-# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
-# a new page for each member. If set to NO, the documentation of a member will 
-# be part of the file/class/namespace that contains it.
-
-SEPARATE_MEMBER_PAGES  = NO
-
-# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
-# Doxygen uses this value to replace tabs by spaces in code fragments.
-
-TAB_SIZE               = 2
-
-# This tag can be used to specify a number of aliases that acts 
-# as commands in the documentation. An alias has the form "name=value". 
-# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
-# put the command \sideeffect (or @sideeffect) in the documentation, which 
-# will result in a user-defined paragraph with heading "Side Effects:". 
-# You can put \n's in the value part of an alias to insert newlines.
-
-ALIASES                = 
-
-# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
-# sources only. Doxygen will then generate output that is more tailored for C. 
-# For instance, some of the names that are used will be different. The list 
-# of all members will be omitted, etc.
-
-OPTIMIZE_OUTPUT_FOR_C  = NO
-
-# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
-# sources only. Doxygen will then generate output that is more tailored for Java. 
-# For instance, namespaces will be presented as packages, qualified scopes 
-# will look different, etc.
-
-OPTIMIZE_OUTPUT_JAVA   = NO
-
-# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to 
-# include (a tag file for) the STL sources as input, then you should 
-# set this tag to YES in order to let doxygen match functions declarations and 
-# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
-# func(std::string) {}). This also make the inheritance and collaboration 
-# diagrams that involve STL classes more complete and accurate.
-
-BUILTIN_STL_SUPPORT    = NO
-
-# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
-# tag is set to YES, then doxygen will reuse the documentation of the first 
-# member in the group (if any) for the other members of the group. By default 
-# all members of a group must be documented explicitly.
-
-DISTRIBUTE_GROUP_DOC   = NO
-
-# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
-# the same type (for instance a group of public functions) to be put as a 
-# subgroup of that type (e.g. under the Public Functions section). Set it to 
-# NO to prevent subgrouping. Alternatively, this can be done per class using 
-# the \nosubgrouping command.
-
-SUBGROUPING            = YES
-
-#---------------------------------------------------------------------------
-# Build related configuration options
-#---------------------------------------------------------------------------
-
-# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
-# documentation are documented, even if no documentation was available. 
-# Private class members and static file members will be hidden unless 
-# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
-
-EXTRACT_ALL            = YES
-
-# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
-# will be included in the documentation.
-
-EXTRACT_PRIVATE        = NO
-
-# If the EXTRACT_STATIC tag is set to YES all static members of a file 
-# will be included in the documentation.
-
-EXTRACT_STATIC         = NO
-
-# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
-# defined locally in source files will be included in the documentation. 
-# If set to NO only classes defined in header files are included.
-
-EXTRACT_LOCAL_CLASSES  = NO
-
-# This flag is only useful for Objective-C code. When set to YES local 
-# methods, which are defined in the implementation section but not in 
-# the interface are included in the documentation. 
-# If set to NO (the default) only methods in the interface are included.
-
-EXTRACT_LOCAL_METHODS  = NO
-
-# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
-# undocumented members of documented classes, files or namespaces. 
-# If set to NO (the default) these members will be included in the 
-# various overviews, but no documentation section is generated. 
-# This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_MEMBERS     = NO
-
-# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
-# undocumented classes that are normally visible in the class hierarchy. 
-# If set to NO (the default) these classes will be included in the various 
-# overviews. This option has no effect if EXTRACT_ALL is enabled.
-
-HIDE_UNDOC_CLASSES     = NO
-
-# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
-# friend (class|struct|union) declarations. 
-# If set to NO (the default) these declarations will be included in the 
-# documentation.
-
-HIDE_FRIEND_COMPOUNDS  = NO
-
-# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
-# documentation blocks found inside the body of a function. 
-# If set to NO (the default) these blocks will be appended to the 
-# function's detailed documentation block.
-
-HIDE_IN_BODY_DOCS      = NO
-
-# The INTERNAL_DOCS tag determines if documentation 
-# that is typed after a \internal command is included. If the tag is set 
-# to NO (the default) then the documentation will be excluded. 
-# Set it to YES to include the internal documentation.
-
-INTERNAL_DOCS          = NO
-
-# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
-# file names in lower-case letters. If set to YES upper-case letters are also 
-# allowed. This is useful if you have classes or files whose names only differ 
-# in case and if your file system supports case sensitive file names. Windows 
-# and Mac users are advised to set this option to NO.
-
-CASE_SENSE_NAMES       = YES
-
-# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
-# will show members with their full class and namespace scopes in the 
-# documentation. If set to YES the scope will be hidden.
-
-HIDE_SCOPE_NAMES       = NO
-
-# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
-# will put a list of the files that are included by a file in the documentation 
-# of that file.
-
-SHOW_INCLUDE_FILES     = YES
-
-# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
-# is inserted in the documentation for inline members.
-
-INLINE_INFO            = YES
-
-# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
-# will sort the (detailed) documentation of file and class members 
-# alphabetically by member name. If set to NO the members will appear in 
-# declaration order.
-
-SORT_MEMBER_DOCS       = YES
-
-# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
-# brief documentation of file, namespace and class members alphabetically 
-# by member name. If set to NO (the default) the members will appear in 
-# declaration order.
-
-SORT_BRIEF_DOCS        = NO
-
-# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
-# sorted by fully-qualified names, including namespaces. If set to 
-# NO (the default), the class list will be sorted only by class name, 
-# not including the namespace part. 
-# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
-# Note: This option applies only to the class list, not to the 
-# alphabetical list.
-
-SORT_BY_SCOPE_NAME     = NO
-
-# The GENERATE_TODOLIST tag can be used to enable (YES) or 
-# disable (NO) the todo list. This list is created by putting \todo 
-# commands in the documentation.
-
-GENERATE_TODOLIST      = YES
-
-# The GENERATE_TESTLIST tag can be used to enable (YES) or 
-# disable (NO) the test list. This list is created by putting \test 
-# commands in the documentation.
-
-GENERATE_TESTLIST      = YES
-
-# The GENERATE_BUGLIST tag can be used to enable (YES) or 
-# disable (NO) the bug list. This list is created by putting \bug 
-# commands in the documentation.
-
-GENERATE_BUGLIST       = YES
-
-# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
-# disable (NO) the deprecated list. This list is created by putting 
-# \deprecated commands in the documentation.
-
-GENERATE_DEPRECATEDLIST= YES
-
-# The ENABLED_SECTIONS tag can be used to enable conditional 
-# documentation sections, marked by \if sectionname ... \endif.
-
-ENABLED_SECTIONS       = 
-
-# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
-# the initial value of a variable or define consists of for it to appear in 
-# the documentation. If the initializer consists of more lines than specified 
-# here it will be hidden. Use a value of 0 to hide initializers completely. 
-# The appearance of the initializer of individual variables and defines in the 
-# documentation can be controlled using \showinitializer or \hideinitializer 
-# command in the documentation regardless of this setting.
-
-MAX_INITIALIZER_LINES  = 30
-
-# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
-# at the bottom of the documentation of classes and structs. If set to YES the 
-# list will mention the files that were used to generate the documentation.
-
-SHOW_USED_FILES        = YES
-
-# If the sources in your project are distributed over multiple directories 
-# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
-# in the documentation. The default is NO.
-
-SHOW_DIRECTORIES       = YES
-
-# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
-# doxygen should invoke to get the current version for each file (typically from the 
-# version control system). Doxygen will invoke the program by executing (via 
-# popen()) the command <command> <input-file>, where <command> is the value of 
-# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
-# provided by doxygen. Whatever the program writes to standard output 
-# is used as the file version. See the manual for examples.
-
-FILE_VERSION_FILTER    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to warning and progress messages
-#---------------------------------------------------------------------------
-
-# The QUIET tag can be used to turn on/off the messages that are generated 
-# by doxygen. Possible values are YES and NO. If left blank NO is used.
-
-QUIET                  = NO
-
-# The WARNINGS tag can be used to turn on/off the warning messages that are 
-# generated by doxygen. Possible values are YES and NO. If left blank 
-# NO is used.
-
-WARNINGS               = YES
-
-# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
-# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
-# automatically be disabled.
-
-WARN_IF_UNDOCUMENTED   = YES
-
-# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
-# potential errors in the documentation, such as not documenting some 
-# parameters in a documented function, or documenting parameters that 
-# don't exist or using markup commands wrongly.
-
-WARN_IF_DOC_ERROR      = YES
-
-# This WARN_NO_PARAMDOC option can be abled to get warnings for 
-# functions that are documented, but have no documentation for their parameters 
-# or return value. If set to NO (the default) doxygen will only warn about 
-# wrong or incomplete parameter documentation, but not about the absence of 
-# documentation.
-
-WARN_NO_PARAMDOC       = NO
-
-# The WARN_FORMAT tag determines the format of the warning messages that 
-# doxygen can produce. The string should contain the $file, $line, and $text 
-# tags, which will be replaced by the file and line number from which the 
-# warning originated and the warning text. Optionally the format may contain 
-# $version, which will be replaced by the version of the file (if it could 
-# be obtained via FILE_VERSION_FILTER)
-
-WARN_FORMAT            = "$file:$line: $text"
-
-# The WARN_LOGFILE tag can be used to specify a file to which warning 
-# and error messages should be written. If left blank the output is written 
-# to stderr.
-
-WARN_LOGFILE           = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the input files
-#---------------------------------------------------------------------------
-
-# The INPUT tag can be used to specify the files and/or directories that contain 
-# documented source files. You may enter file names like "myfile.cpp" or 
-# directories like "/usr/src/myproject". Separate the files or directories 
-# with spaces.
-
-INPUT = \
-  $(FEISTY_MEOW_APEX)/scripts \
-  $(FEISTY_MEOW_APEX)/nucleus \
-  $(FEISTY_MEOW_APEX)/octopi \
-  $(FEISTY_MEOW_APEX)/graphiq \
-  $(FEISTY_MEOW_APEX)/kona/src \
-  $(PRODUCTION_STORE)/setup_src
-
-# If the value of the INPUT tag contains directories, you can use the 
-# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank the following patterns are tested: 
-# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
-# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
-
-FILE_PATTERNS          = 
-
-# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
-# should be searched for input files as well. Possible values are YES and NO. 
-# If left blank NO is used.
-
-RECURSIVE              = YES
-
-# The EXCLUDE tag can be used to specify files and/or directories that should 
-# excluded from the INPUT source files. This way you can easily exclude a 
-# subdirectory from a directory tree whose root is specified with the INPUT tag.
-
-EXCLUDE                = 
-
-# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
-# directories that are symbolic links (a Unix filesystem feature) are excluded 
-# from the input.
-
-EXCLUDE_SYMLINKS       = NO
-
-# If the value of the INPUT tag contains directories, you can use the 
-# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
-# certain files from those directories. Note that the wildcards are matched 
-# against the file with absolute path, so to exclude all test directories 
-# for example use the pattern */test/*
-
-EXCLUDE_PATTERNS       = "*/3rdparty/*" "*/bin/*" "*/binaries/*" "*/clam_bin/*" "*/install/*" "*/logs/*" "*/objects/*" "*/packages/*" "*/waste/*"
-
-# The EXAMPLE_PATH tag can be used to specify one or more files or 
-# directories that contain example code fragments that are included (see 
-# the \include command).
-
-EXAMPLE_PATH           = 
-
-# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
-# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
-# and *.h) to filter out the source-files in the directories. If left 
-# blank all files are included.
-
-EXAMPLE_PATTERNS       = 
-
-# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
-# searched for input files to be used with the \include or \dontinclude 
-# commands irrespective of the value of the RECURSIVE tag. 
-# Possible values are YES and NO. If left blank NO is used.
-
-EXAMPLE_RECURSIVE      = NO
-
-# The IMAGE_PATH tag can be used to specify one or more files or 
-# directories that contain image that are included in the documentation (see 
-# the \image command).
-
-IMAGE_PATH             = 
-
-# The INPUT_FILTER tag can be used to specify a program that doxygen should 
-# invoke to filter for each input file. Doxygen will invoke the filter program 
-# by executing (via popen()) the command <filter> <input-file>, where <filter> 
-# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
-# input file. Doxygen will then use the output that the filter program writes 
-# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
-# ignored.
-
-INPUT_FILTER           = 
-
-# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
-# basis.  Doxygen will compare the file name with each pattern and apply the 
-# filter if there is a match.  The filters are a list of the form: 
-# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
-# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
-# is applied to all files.
-
-FILTER_PATTERNS        = 
-
-# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
-# INPUT_FILTER) will be used to filter the input files when producing source 
-# files to browse (i.e. when SOURCE_BROWSER is set to YES).
-
-FILTER_SOURCE_FILES    = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to source browsing
-#---------------------------------------------------------------------------
-
-# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
-# be generated. Documented entities will be cross-referenced with these sources. 
-# Note: To get rid of all source code in the generated output, make sure also 
-# VERBATIM_HEADERS is set to NO.
-
-SOURCE_BROWSER         = YES
-
-# Setting the INLINE_SOURCES tag to YES will include the body 
-# of functions and classes directly in the documentation.
-
-INLINE_SOURCES         = NO
-
-# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
-# doxygen to hide any special comment blocks from generated source code 
-# fragments. Normal C and C++ comments will always remain visible.
-
-STRIP_CODE_COMMENTS    = YES
-
-# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
-# then for each documented function all documented 
-# functions referencing it will be listed.
-
-REFERENCED_BY_RELATION = YES
-
-# If the REFERENCES_RELATION tag is set to YES (the default) 
-# then for each documented function all documented entities 
-# called/used by that function will be listed.
-
-REFERENCES_RELATION    = YES
-
-# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
-# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
-# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
-# link to the source code.  Otherwise they will link to the documentstion.
-
-REFERENCES_LINK_SOURCE = YES
-
-# If the USE_HTAGS tag is set to YES then the references to source code 
-# will point to the HTML generated by the htags(1) tool instead of doxygen 
-# built-in source browser. The htags tool is part of GNU's global source 
-# tagging system (see http://www.gnu.org/software/global/global.html). You 
-# will need version 4.8.6 or higher.
-
-USE_HTAGS              = NO
-
-# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
-# will generate a verbatim copy of the header file for each class for 
-# which an include is specified. Set to NO to disable this.
-
-VERBATIM_HEADERS       = YES
-
-#---------------------------------------------------------------------------
-# configuration options related to the alphabetical class index
-#---------------------------------------------------------------------------
-
-# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
-# of all compounds will be generated. Enable this if the project 
-# contains a lot of classes, structs, unions or interfaces.
-
-ALPHABETICAL_INDEX     = YES
-
-# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
-# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
-# in which this list will be split (can be a number in the range [1..20])
-
-COLS_IN_ALPHA_INDEX    = 5
-
-# In case all classes in a project start with a common prefix, all 
-# classes will be put under the same header in the alphabetical index. 
-# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
-# should be ignored while generating the index headers.
-
-IGNORE_PREFIX          = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the HTML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
-# generate HTML output.
-
-GENERATE_HTML          = YES
-
-# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `html' will be used as the default path.
-
-HTML_OUTPUT            = $(PRODUCTION_STORE)/code_guide
-
-# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
-# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
-# doxygen will generate files with .html extension.
-
-HTML_FILE_EXTENSION    = .html
-
-# The HTML_HEADER tag can be used to specify a personal HTML header for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard header.
-
-HTML_HEADER            = 
-
-# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
-# each generated HTML page. If it is left blank doxygen will generate a 
-# standard footer.
-
-HTML_FOOTER            = 
-
-# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
-# style sheet that is used by each HTML page. It can be used to 
-# fine-tune the look of the HTML output. If the tag is left blank doxygen 
-# will generate a default style sheet. Note that doxygen will try to copy 
-# the style sheet file to the HTML output directory, so don't put your own 
-# stylesheet in the HTML output directory as well, or it will be erased!
-
-HTML_STYLESHEET        = 
-
-# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
-# files or namespaces will be aligned in HTML using tables. If set to 
-# NO a bullet list will be used.
-
-HTML_ALIGN_MEMBERS     = YES
-
-# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
-# will be generated that can be used as input for tools like the 
-# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
-# of the generated HTML documentation.
-
-GENERATE_HTMLHELP      = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
-# be used to specify the file name of the resulting .chm file. You 
-# can add a path in front of the file if the result should not be 
-# written to the html output directory.
-
-CHM_FILE               = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
-# be used to specify the location (absolute path including file name) of 
-# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
-# the HTML help compiler on the generated index.hhp.
-
-HHC_LOCATION           = 
-
-# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
-# controls if a separate .chi index file is generated (YES) or that 
-# it should be included in the master .chm file (NO).
-
-GENERATE_CHI           = NO
-
-# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
-# controls whether a binary table of contents is generated (YES) or a 
-# normal table of contents (NO) in the .chm file.
-
-BINARY_TOC             = NO
-
-# The TOC_EXPAND flag can be set to YES to add extra items for group members 
-# to the contents of the HTML help documentation and to the tree view.
-
-TOC_EXPAND             = NO
-
-# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
-# top of each HTML page. The value NO (the default) enables the index and 
-# the value YES disables it.
-
-DISABLE_INDEX          = NO
-
-# This tag can be used to set the number of enum values (range [1..20]) 
-# that doxygen will group on one line in the generated HTML documentation.
-
-ENUM_VALUES_PER_LINE   = 4
-
-# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
-# generated containing a tree-like index structure (just like the one that 
-# is generated for HTML Help). For this to work a browser that supports 
-# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
-# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
-# probably better off using the HTML help feature.
-
-GENERATE_TREEVIEW      = YES
-
-# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
-# used to set the initial width (in pixels) of the frame in which the tree 
-# is shown.
-
-TREEVIEW_WIDTH         = 250
-
-#---------------------------------------------------------------------------
-# configuration options related to the LaTeX output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
-# generate Latex output.
-
-GENERATE_LATEX         = NO
-
-# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `latex' will be used as the default path.
-
-LATEX_OUTPUT           = latex
-
-# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
-# invoked. If left blank `latex' will be used as the default command name.
-
-LATEX_CMD_NAME         = latex
-
-# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
-# generate index for LaTeX. If left blank `makeindex' will be used as the 
-# default command name.
-
-MAKEINDEX_CMD_NAME     = makeindex
-
-# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
-# LaTeX documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_LATEX          = NO
-
-# The PAPER_TYPE tag can be used to set the paper type that is used 
-# by the printer. Possible values are: a4, a4wide, letter, legal and 
-# executive. If left blank a4wide will be used.
-
-PAPER_TYPE             = a4wide
-
-# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
-# packages that should be included in the LaTeX output.
-
-EXTRA_PACKAGES         = 
-
-# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
-# the generated latex document. The header should contain everything until 
-# the first chapter. If it is left blank doxygen will generate a 
-# standard header. Notice: only use this tag if you know what you are doing!
-
-LATEX_HEADER           = 
-
-# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
-# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
-# contain links (just like the HTML output) instead of page references 
-# This makes the output suitable for online browsing using a pdf viewer.
-
-PDF_HYPERLINKS         = NO
-
-# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
-# plain latex in the generated Makefile. Set this option to YES to get a 
-# higher quality PDF documentation.
-
-USE_PDFLATEX           = NO
-
-# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
-# command to the generated LaTeX files. This will instruct LaTeX to keep 
-# running if errors occur, instead of asking the user for help. 
-# This option is also used when generating formulas in HTML.
-
-LATEX_BATCHMODE        = NO
-
-# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
-# include the index chapters (such as File Index, Compound Index, etc.) 
-# in the output.
-
-LATEX_HIDE_INDICES     = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the RTF output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
-# The RTF output is optimized for Word 97 and may not look very pretty with 
-# other RTF readers or editors.
-
-GENERATE_RTF           = NO
-
-# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `rtf' will be used as the default path.
-
-RTF_OUTPUT             = rtf
-
-# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
-# RTF documents. This may be useful for small projects and may help to 
-# save some trees in general.
-
-COMPACT_RTF            = NO
-
-# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
-# will contain hyperlink fields. The RTF file will 
-# contain links (just like the HTML output) instead of page references. 
-# This makes the output suitable for online browsing using WORD or other 
-# programs which support those fields. 
-# Note: wordpad (write) and others do not support links.
-
-RTF_HYPERLINKS         = NO
-
-# Load stylesheet definitions from file. Syntax is similar to doxygen's 
-# config file, i.e. a series of assignments. You only have to provide 
-# replacements, missing definitions are set to their default value.
-
-RTF_STYLESHEET_FILE    = 
-
-# Set optional variables used in the generation of an rtf document. 
-# Syntax is similar to doxygen's config file.
-
-RTF_EXTENSIONS_FILE    = 
-
-#---------------------------------------------------------------------------
-# configuration options related to the man page output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
-# generate man pages
-
-GENERATE_MAN           = NO
-
-# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `man' will be used as the default path.
-
-MAN_OUTPUT             = man
-
-# The MAN_EXTENSION tag determines the extension that is added to 
-# the generated man pages (default is the subroutine's section .3)
-
-MAN_EXTENSION          = .3
-
-# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
-# then it will generate one additional man file for each entity 
-# documented in the real man page(s). These additional files 
-# only source the real man page, but without them the man command 
-# would be unable to find the correct page. The default is NO.
-
-MAN_LINKS              = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the XML output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_XML tag is set to YES Doxygen will 
-# generate an XML file that captures the structure of 
-# the code including all documentation.
-
-GENERATE_XML           = NO
-
-# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
-# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
-# put in front of it. If left blank `xml' will be used as the default path.
-
-XML_OUTPUT             = xml
-
-# The XML_SCHEMA tag can be used to specify an XML schema, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_SCHEMA             = 
-
-# The XML_DTD tag can be used to specify an XML DTD, 
-# which can be used by a validating XML parser to check the 
-# syntax of the XML files.
-
-XML_DTD                = 
-
-# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
-# dump the program listings (including syntax highlighting 
-# and cross-referencing information) to the XML output. Note that 
-# enabling this will significantly increase the size of the XML output.
-
-XML_PROGRAMLISTING     = YES
-
-#---------------------------------------------------------------------------
-# configuration options for the AutoGen Definitions output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
-# generate an AutoGen Definitions (see autogen.sf.net) file 
-# that captures the structure of the code including all 
-# documentation. Note that this feature is still experimental 
-# and incomplete at the moment.
-
-GENERATE_AUTOGEN_DEF   = NO
-
-#---------------------------------------------------------------------------
-# configuration options related to the Perl module output
-#---------------------------------------------------------------------------
-
-# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
-# generate a Perl module file that captures the structure of 
-# the code including all documentation. Note that this 
-# feature is still experimental and incomplete at the 
-# moment.
-
-GENERATE_PERLMOD       = NO
-
-# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
-# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
-# to generate PDF and DVI output from the Perl module output.
-
-PERLMOD_LATEX          = NO
-
-# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
-# nicely formatted so it can be parsed by a human reader.  This is useful 
-# if you want to understand what is going on.  On the other hand, if this 
-# tag is set to NO the size of the Perl module output will be much smaller 
-# and Perl will parse it just the same.
-
-PERLMOD_PRETTY         = YES
-
-# The names of the make variables in the generated doxyrules.make file 
-# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
-# This is useful so different doxyrules.make files included by the same 
-# Makefile don't overwrite each other's variables.
-
-PERLMOD_MAKEVAR_PREFIX = 
-
-#---------------------------------------------------------------------------
-# Configuration options related to the preprocessor   
-#---------------------------------------------------------------------------
-
-# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
-# evaluate all C-preprocessor directives found in the sources and include 
-# files.
-
-ENABLE_PREPROCESSING   = YES
-
-# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
-# names in the source code. If set to NO (the default) only conditional 
-# compilation will be performed. Macro expansion can be done in a controlled 
-# way by setting EXPAND_ONLY_PREDEF to YES.
-
-MACRO_EXPANSION        = NO
-
-# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
-# then the macro expansion is limited to the macros specified with the 
-# PREDEFINED and EXPAND_AS_DEFINED tags.
-
-EXPAND_ONLY_PREDEF     = NO
-
-# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
-# in the INCLUDE_PATH (see below) will be search if a #include is found.
-
-SEARCH_INCLUDES        = YES
-
-# The INCLUDE_PATH tag can be used to specify one or more directories that 
-# contain include files that are not input files but should be processed by 
-# the preprocessor.
-
-INCLUDE_PATH           = 
-
-# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
-# patterns (like *.h and *.hpp) to filter out the header-files in the 
-# directories. If left blank, the patterns specified with FILE_PATTERNS will 
-# be used.
-
-INCLUDE_FILE_PATTERNS  = 
-
-# The PREDEFINED tag can be used to specify one or more macro names that 
-# are defined before the preprocessor is started (similar to the -D option of 
-# gcc). The argument of the tag is a list of macros of the form: name 
-# or name=definition (no spaces). If the definition and the = are 
-# omitted =1 is assumed. To prevent a macro definition from being 
-# undefined via #undef or recursively expanded use the := operator 
-# instead of the = operator.
-
-PREDEFINED             = $(DEFINITIONS)
-
-# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
-# this tag can be used to specify a list of macro names that should be expanded. 
-# The macro definition that is found in the sources will be used. 
-# Use the PREDEFINED tag if you want to use a different macro definition.
-
-EXPAND_AS_DEFINED      = 
-
-# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
-# doxygen's preprocessor will remove all function-like macros that are alone 
-# on a line, have an all uppercase name, and do not end with a semicolon. Such 
-# function macros are typically used for boiler-plate code, and will confuse 
-# the parser if not removed.
-
-SKIP_FUNCTION_MACROS   = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to external references   
-#---------------------------------------------------------------------------
-
-# The TAGFILES option can be used to specify one or more tagfiles. 
-# Optionally an initial location of the external documentation 
-# can be added for each tagfile. The format of a tag file without 
-# this location is as follows: 
-#   TAGFILES = file1 file2 ... 
-# Adding location for the tag files is done as follows: 
-#   TAGFILES = file1=loc1 "file2 = loc2" ... 
-# where "loc1" and "loc2" can be relative or absolute paths or 
-# URLs. If a location is present for each tag, the installdox tool 
-# does not have to be run to correct the links.
-# Note that each tag file must have a unique name
-# (where the name does NOT include the path)
-# If a tag file is not located in the directory in which doxygen 
-# is run, you must also specify the path to the tagfile here.
-
-TAGFILES               = 
-
-# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
-# a tag file that is based on the input files it reads.
-
-GENERATE_TAGFILE       = 
-
-# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
-# in the class index. If set to NO only the inherited external classes 
-# will be listed.
-
-ALLEXTERNALS           = NO
-
-# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
-# in the modules index. If set to NO, only the current project's groups will 
-# be listed.
-
-EXTERNAL_GROUPS        = YES
-
-# The PERL_PATH should be the absolute path and name of the perl script 
-# interpreter (i.e. the result of `which perl').
-
-PERL_PATH              = /usr/bin/perl
-
-#---------------------------------------------------------------------------
-# Configuration options related to the dot tool   
-#---------------------------------------------------------------------------
-
-# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
-# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
-# or super classes. Setting the tag to NO turns the diagrams off. Note that 
-# this option is superseded by the HAVE_DOT option below. This is only a 
-# fallback. It is recommended to install and use dot, since it yields more 
-# powerful graphs.
-
-CLASS_DIAGRAMS         = YES
-
-# If set to YES, the inheritance and collaboration graphs will hide 
-# inheritance and usage relations if the target is undocumented 
-# or is not a class.
-
-HIDE_UNDOC_RELATIONS   = YES
-
-# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
-# available from the path. This tool is part of Graphviz, a graph visualization 
-# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
-# have no effect if this option is set to NO (the default)
-
-HAVE_DOT               = YES
-
-# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect inheritance relations. Setting this tag to YES will force the 
-# the CLASS_DIAGRAMS tag to NO.
-
-CLASS_GRAPH            = YES
-
-# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for each documented class showing the direct and 
-# indirect implementation dependencies (inheritance, containment, and 
-# class references variables) of the class with other documented classes.
-
-COLLABORATION_GRAPH    = YES
-
-# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
-# will generate a graph for groups, showing the direct groups dependencies
-
-GROUP_GRAPHS           = YES
-
-# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
-# collaboration diagrams in a style similar to the OMG's Unified Modeling 
-# Language.
-
-UML_LOOK               = NO
-
-# If set to YES, the inheritance and collaboration graphs will show the 
-# relations between templates and their instances.
-
-TEMPLATE_RELATIONS     = NO
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
-# tags are set to YES then doxygen will generate a graph for each documented 
-# file showing the direct and indirect include dependencies of the file with 
-# other documented files.
-
-INCLUDE_GRAPH          = YES
-
-# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
-# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
-# documented header file showing the documented files that directly or 
-# indirectly include this file.
-
-INCLUDED_BY_GRAPH      = YES
-
-# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
-# generate a call dependency graph for every global function or class method. 
-# Note that enabling this option will significantly increase the time of a run. 
-# So in most cases it will be better to enable call graphs for selected 
-# functions only using the \callgraph command.
-
-CALL_GRAPH             = NO
-
-# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
-# generate a caller dependency graph for every global function or class method. 
-# Note that enabling this option will significantly increase the time of a run. 
-# So in most cases it will be better to enable caller graphs for selected 
-# functions only using the \callergraph command.
-
-CALLER_GRAPH           = NO
-
-# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
-# will graphical hierarchy of all classes instead of a textual one.
-
-GRAPHICAL_HIERARCHY    = YES
-
-# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
-# then doxygen will show the dependencies a directory has on other directories 
-# in a graphical way. The dependency relations are determined by the #include
-# relations between the files in the directories.
-
-DIRECTORY_GRAPH        = YES
-
-# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
-# generated by dot. Possible values are png, jpg, or gif
-# If left blank png will be used.
-
-DOT_IMAGE_FORMAT       = png
-
-# The tag DOT_PATH can be used to specify the path where the dot tool can be 
-# found. If left blank, it is assumed the dot tool can be found in the path.
-
-DOT_PATH               = /usr/bin
-
-# The DOTFILE_DIRS tag can be used to specify one or more directories that 
-# contain dot files that are included in the documentation (see the 
-# \dotfile command).
-
-DOTFILE_DIRS           = 
-
-# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
-# graphs generated by dot. A depth value of 3 means that only nodes reachable 
-# from the root by following a path via at most 3 edges will be shown. Nodes 
-# that lay further from the root node will be omitted. Note that setting this 
-# option to 1 or 2 may greatly reduce the computation time needed for large 
-# code bases. Also note that a graph may be further truncated if the graph's 
-# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH 
-# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), 
-# the graph is not depth-constrained.
-
-MAX_DOT_GRAPH_DEPTH    = 0
-
-# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
-# background. This is disabled by default, which results in a white background. 
-# Warning: Depending on the platform used, enabling this option may lead to 
-# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 
-# read).
-
-DOT_TRANSPARENT        = NO
-
-# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
-# files in one run (i.e. multiple -o and -T options on the command line). This 
-# makes dot run faster, but since only newer versions of dot (>1.8.10) 
-# support this, this feature is disabled by default.
-
-DOT_MULTI_TARGETS      = NO
-
-# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
-# generate a legend page explaining the meaning of the various boxes and 
-# arrows in the dot generated graphs.
-
-GENERATE_LEGEND        = YES
-
-# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
-# remove the intermediate dot files that are used to generate 
-# the various graphs.
-
-DOT_CLEANUP            = YES
-
-#---------------------------------------------------------------------------
-# Configuration::additions related to the search engine   
-#---------------------------------------------------------------------------
-
-# The SEARCHENGINE tag specifies whether or not a search engine should be 
-# used. If set to NO the values of all tags below this one will be ignored.
-
-SEARCHENGINE           = NO
diff --git a/doc/headers/fmc_header.java b/doc/headers/fmc_header.java
deleted file mode 100644 (file)
index fb76d4f..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-/**
- * {one-line description}
- * {extended information...}
- * @author Chris Koeritz
- * @copyright Copyright (c) 2012-$now By Feisty Meow Concerns, Ltd.
- * @license GNU General Public License -- http://www.gnu.org/licenses/gpl.html
- * @contribute Feel free to send updates to: fred@feistymeow.org
- */
-
diff --git a/doc/headers/gnu_header.h b/doc/headers/gnu_header.h
deleted file mode 100644 (file)
index 5e74be0..0000000
+++ /dev/null
@@ -1,21 +0,0 @@
-#ifndef NAMEOF_CLASS
-#define NAMEOF_CLASS
-
-//////////////
-// Name   : THISCLASSNAME
-// Author : Chris Koeritz
-// Rights : Copyright (c) 2012-$now By Author
-//////////////
-// This file is free software; you can modify/redistribute it under the terms
-// of the GNU General Public License. [ http://www.gnu.org/licenses/gpl.html ]
-// Feel free to send updates to: [ fred@gruntose.com ]
-//////////////
-
-//! brief description goes here.
-/*!
-  detailed description goes here.
-...
-*/
-
-#endif
-
diff --git a/doc/headers/shell_header.txt b/doc/headers/shell_header.txt
deleted file mode 100644 (file)
index 15e2b44..0000000
+++ /dev/null
@@ -1,14 +0,0 @@
-#!/bin/bash
-#!/usr/bin/perl
-#!/usr/bin/python
-##############
-# Name   : NAMEOFSCRIPT
-# Author : Chris Koeritz
-# Rights : Copyright (C) 2013-$now by Feisty Meow Concerns, Ltd.
-##############
-# This script is free software; you can modify/redistribute it under the terms
-# of the GNU General Public License. [ http://www.gnu.org/licenses/gpl.html ]
-# Feel free to send updates to: [ fred@gruntose.com ]
-##############
-#
-# ...description of file.
diff --git a/doc/headers/uva_header.java b/doc/headers/uva_header.java
deleted file mode 100644 (file)
index c748162..0000000
+++ /dev/null
@@ -1,9 +0,0 @@
-
-/**
- * {one-line description}
- * {extended information...}
- * @author Chris Koeritz
- * @copyright Copyright (c) 2012-$now By University of Virginia
- * @license Apache License v2.0: http://www.apache.org/licenses/LICENSE-2.0
- */
-
diff --git a/doc/history_anat.txt b/doc/history_anat.txt
deleted file mode 100644 (file)
index f6e4918..0000000
+++ /dev/null
@@ -1,128 +0,0 @@
-
-This is the "feisty meow® concerns" codebase top folder.
-
-This software is licensed *per* *file* using either the GNU General Public
-License (GNU GPL) version 3 *or* the Apache Software License version 2.0.
-If a file does not have a license statement attached and it is part of the
-feisty meow® codebase (rather than attributed to some other author), then the
-default license is the GNU GPL.
-
-For information on building the source code, see the file "building.txt".
-
-####
-
-Feisty Meow Concerns Ltd. is a small software shop that concentrates on
-building high quality, portable, open source projects in a variety of
-languages (primarily bash, perl, C++, Java, and python).  Here are some
-highlights of our main products:
-
-  Bookmark Processing Tools - can take a mozilla bookmark file or arbitrary
-     web page and extract all the links out of it, building a csv database of
-     web links.  Using that database, a variety of output formats are
-     provided, including one that outputs a mozilla bookmark file again.
-     The most useful feature is probably the marks checker that operates on
-     our csv format and that locates all unreachable links in the file and
-     separates them out.
-
-  CROMP protocol - supports transmission of objects across the network and
-     provides a platform independent method for RPC and other types of
-     communication.
-
-  Octopus design pattern - the underpinning of the CROMP protocol.  An octopus
-     has an arbitrary number of tentacles (no, not just eight) which are each
-     responsible for consuming a different type of object (or datum).
-
-  Fast Templates and Portable Abstractions - the class libraries of Feisty Meow
-     provide numerous different data structures and programming language
-     abstractions (like threads and state machines).  There are also some
-     fairly ancient templates (in use since late 80s) which in many cases
-     perform faster than their STL analogues.
-
-  CLAM System - Feisty Meow is the home site of the CLAM makefile system.  The
-     CLAM system is a flexible and extensible method for building C++ and
-     C# files using makefiles.
-
-####
-
-Historical note:
-Feisty Meow® Concerns codebase comprises some but probably not all of several projects that
-have come before.  These include the Twain.COM library scripts, the Yeti / YetiCode library
-scripts, the HOOPLE 1 and HOOPLE 2 C++ Codebases, the Fred Huffhines open source LSL scripts,
-the CLAM build system, and a variety of other efforts.
-
-####
-
-Directories and files of interest here...
-
-scripts/
-    Stores the script files that we use a lot.  These are usually written in interpreted
-    languages, such as bash and perl.  These were the core of the YetiCode scripts library.
-
-nucleus/
-    Source for the basic modules of the Feisty Meow® codebase.  This includes generic
-    data structures, useful utilities, and the like.  This hierarchy, plus octopi and graphiq,
-    formed the major parts of hoople1 and hoople2.
-
-huffware/
-    The library of LSL scripts for osgrid and Second Life written by the avatar named Fred
-    Huffhines.  Fred Huffhines is a regular contributor and a well-loved member of our
-    development team.  He also happens to be a fictional sock-puppet for adventuring around
-    the grids, but a lot of code has been written in his name.  We are going to release the
-    full corpus of the Huffhines work over time.
-
-octopi/
-    Octopus design pattern and CROMP protocol reference implementations.  Assorted applications
-    based on these.
-
-database/
-    Some files considered critical to the operations of Feisty Meow Concerns Ltd.  This includes
-    the database of fortunes used by the Nechung Oracle Program.
-
-doc/
-    Assorted documentation files for Feisty Meow and a code-scanning documentation generator
-    based on doxygen.
-
-examples/
-    Some files that show how to get work done with Feisty Meow or that show how to do certain
-    tasks in different scripting / programming languages.
-
-kona/
-    Our burgeoning Java libraries.  Not much to see here yet, but there is some code piling
-    up for these that we will try to release soon.
-
-osgi/
-    Some example bundles for Java OSGi.  These may eventually fill out with real material,
-    but currently they are just tracking the investigation we did into creating bundles and
-    running using them.
-
-production/
-    Machinery for getting releases out the door, including the generated files such as binaries
-    and build system tools.
-
-graphiq/
-    GUI tools and components, somewhat busted or just absent right now.
-
-webby/
-    Source code specifically for web programming and building sites.  Mainly a few javascript
-    files we keep around.
-
-####
-
-Notable Prerequisites for Using the Feisty Meow® codebase:
-
-  Software required to compile under Linux:
-    Gnu C++
-    A few free source libraries (see "building.txt" for more information).
-
-  Software required to compiler under MS-windows:
-    The free Microsoft compiler should build the codebase but it is untested.
-    The full version of MS Visual Studio 2010 (version 10) is supported.
-      --but this has fallen into disrepair.
-    Gnu C++ should compile the codebase but it is also untested recently.
-
-####
-
-More information is available at the official site http://feistymeow.org
-
-####
-
diff --git a/doc/makefile b/doc/makefile
deleted file mode 100644 (file)
index 88ed416..0000000
+++ /dev/null
@@ -1,17 +0,0 @@
-
-export DEFINITIONS
-  # ensure that the macros get passed down to the subprocesses.
-
-include cpp/variables.def
-
-PROJECT = Source_Documentation
-TYPE = application
-FIRST_TARGETS += build_doxygen
-CLEANUPS += html
-
-include cpp/rules.def
-
-build_doxygen:
-       @echo the defs are $(DEFINITIONS)
-       doxygen $(wildcard *.config)
-
diff --git a/doc/text_examples/chinese_simplified_text.txt b/doc/text_examples/chinese_simplified_text.txt
deleted file mode 100644 (file)
index 1219fd3..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-
-we will translate this at babelfish:
-
-Let us see then if we can narrow it down.  As I focus my mind upon it, it seems rather less impenetrable.  What indications have we as to this book?
-
-into this:
-
-让我们然后看如果我们能使它狭窄击倒。因为我聚焦我的头脑在它, 它似乎宁可较不难贯穿。什么征兆有我们至于这本书?
-
-
diff --git a/doc/text_examples/korean_text.txt b/doc/text_examples/korean_text.txt
deleted file mode 100644 (file)
index 52be298..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-we will translate this at babelfish:
-
-Let us see then if we can narrow it down.  As I focus my mind upon it, it seems rather less impenetrable.  What indications have we as to this book?
-
-into this:
-
-우리들을 그때 우리가 떨어뜨리기 위하여 그것을 좁힐 수 있으면 보는 시키십시요. 나가 그것에 나의 마음을 초점을 맞추기 때문에, 오히려 보다 적게 보인다. 이 책에 관해서는 무슨 표시가 우리가 있는가?
-
-
-
diff --git a/doc/text_examples/readme.txt b/doc/text_examples/readme.txt
deleted file mode 100644 (file)
index 0111f86..0000000
+++ /dev/null
@@ -1,7 +0,0 @@
-
-
-these are example files of other languages in utf-8 format.
-
-they can be used to test proper handling of the characters in hoople code.
-
-
diff --git a/doc/text_examples/russian_text.txt b/doc/text_examples/russian_text.txt
deleted file mode 100644 (file)
index 4ef6c44..0000000
+++ /dev/null
@@ -1,4 +0,0 @@
-
-Stanislav Yevgrafovich Petrov (Russian: Станислав Евграфович Петров) (born c. 1939) is a retired Russian Strategic Rocket Forces lieutenant colonel who, on September 26, 1983, averted a potential nuclear war by refusing to believe that the United States had launched missiles against the Soviet Union, despite the indications given by his computerized early warning systems.[1]
-
-
diff --git a/doc/text_examples/tibetan_text.txt b/doc/text_examples/tibetan_text.txt
deleted file mode 100644 (file)
index 321ddac..0000000
+++ /dev/null
@@ -1,13 +0,0 @@
-
-
-om mani padme hum:
-ༀ'མཎི'པདེྨ'ཧཱུྃ ༔
-
-
-this was scarfed from a tibetan resources page:
-
-
-༄༅།།གངས་ལྗོངས་གློག་རྡུལ་དཔེ་མཛོད་ཁང་ཞེས་པ་འདི་དེང་དུས་ཀྱི་ འཕྲུལ་རྩལ་བེད་སྤྱད་དེ་ཁ་བའི་ལྗོངས་དང་འབྲེལ་ཡོད་ཀྱི་རིག་ གཞུང་ངོ་མཚར་ཅན་རྣམས་འཛམ་གླིང་ཡུལ་གྲུ་རིས་མེད་ཀྱི་སྐྱེ་བོའི་ སྤྱན་ལམ་དུ་བསྟར་བའི་རིན་གོང་མེད་པའི་དྲ་བའི་སྟེགས་བུ་ཞིག་ ཡིན། ངེད་ཚོས་དྲ་ལམ་དེ་བརྒྱུད་སྐད་རིགས་མི་འདྲ་བའི་ཐོག་ནས་ཁུལ་ དེའི་དཔྱད་གཞིའི་ཡིག་ཆ་སྣ་ཚོགས་མཁོ་འདོན་བྱེད་ཀྱིན་ཡོད་པས་ ཚུལ་དེ་ནི་གསར
-
-
-
diff --git a/documentation/clam_manual/clam_docs.html b/documentation/clam_manual/clam_docs.html
new file mode 100644 (file)
index 0000000..6872a4e
--- /dev/null
@@ -0,0 +1,2335 @@
+<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+  <head>
+    <meta content="text/html; charset=iso-8859-1" http-equiv="content-type">
+    <meta content="Fred T. Hamster" name="Author">
+    <meta name="generator" content="Mozilla/5.0 (X11; U; Linux i686; en-US) [Mozilla]">
+    <title>CLAM Reference Manual</title>
+  </head>
+  <body link="#33ff33" text="#ffff99" vlink="#009900" bgcolor="#400080" alink="#ff9900">
+    <center><big>
+      </big><small></small>
+      <h1><big>CLAM: Coordinated Librarian &amp;</big></h1>
+      <h1><big>Automatic Maker</big></h1>
+      <small></small></center>
+    <center><big><img src="../../infobase/pictures/clams_tran.gif" height="347" width="392"></big></center>
+    <center><big>
+      </big><small></small>
+      <h2><big>Tutorial and Reference Manual</big></h2>
+      <small></small></center>
+    <center><big>
+      </big><small></small>
+      <address><big><a name="lib_manager"></a>By Chris Koeritz (<a href="mailto:koeritz@gruntose.com">koeritz@gruntose.com</a>)</big></address>
+      <small></small></center>
+    <center><big>
+      </big><small></small>
+      <h2><small></small>
+        <hr noshade="noshade" size="8" width="100%"></h2>
+      <small></small></center>
+    <center><big>
+      </big><small></small>
+      <h2><big>Table of Contents</big></h2>
+      <small></small></center>
+    <ol>
+      <small> </small><big> </big><small> </small>
+      <li><big> <a href="#EXECUTIVE_SUMMARY">Executive Summary</a></big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big> <a href="#PREPARATION">Preparing Your Computer to Use
+            CLAM</a></big></li>
+      <small> </small><big> </big><small> </small>
+      <ol>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#STEPS_NEEDED">Necessary Steps</a></big></li>
+        <small> </small><big> </big><small> </small>
+      </ol>
+      <small> </small><big> </big><small> </small>
+      <li><big> <a href="#TUTORIAL">CLAM Tutorial</a></big></li>
+      <small> </small><big> </big><small> </small>
+      <ol>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#CAVEATS">Caveats</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#TUT_BASICS">Basics</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#TUT_COMMON">Common Files</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#TUT_IMPORTANT_VARS">Important Variables</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#TUT_VAR_ASSIGN">Variable Assignment</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#TUT_OPTIONAL_VARS">Optional Variables</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#WRITING_RULES">Writing Your Own Rules</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#TUT_CONCLUSION">Conclusion</a></big></li>
+        <small> </small><big> </big><small> </small>
+      </ol>
+      <small> </small><big> </big><small> </small>
+      <li><big> <a href="#REFERENCE">CLAM Reference</a></big></li>
+      <small> </small><big> </big><small> </small>
+      <ol>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#LANG_INDEP_VARS">Language Independent
+              Variables</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#LANG_INDEP_RULES">Language Independent
+              Rules</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#LANG_INDEP_TARGETS">Language Independent
+              Targets</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#LANG_INDEP_SCRIPTS">Language Independent
+              Files</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#CPP_VARS">C++ Specific Variables</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <ol>
+          <small> </small><big> </big><small> </small>
+          <li><big> <a href="#DIRECTORY_VARS">Directory Structure
+                Variables</a></big></li>
+          <small> </small><big> </big><small> </small>
+          <li><big> <a href="#CPP_FLAGS">Compiler Dependent Flags</a></big></li>
+          <small> </small><big> </big><small> </small>
+          <li><big><a href="#vcpp_only">Microsoft Visual C++ Only</a><br>
+            </big></li>
+          <small> </small><big> </big><small> </small>
+          <li><big> <a href="#SUPPORT_EXTENSIONS">Support for
+                Compilation
+                Extensions</a></big></li>
+          <small> </small><big> </big><small> </small>
+        </ol>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#CPP_RULES">C++ Specific Rules</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#CPP_TARGETS">C++ Specific Targets</a></big></li>
+        <small> </small><big> </big><small> </small>
+        <li><big> <a href="#CPP_SCRIPTS">C++ Specific Files</a></big></li>
+        <small> </small><big> </big><small> </small>
+      </ol>
+      <small> </small><big> </big><small> </small>
+      <li><big> <a href="#EXAMPLES">Example CLAM Makefiles</a></big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big> <a href="#CLAM_HINTS">CLAM Hints and Troubleshooting</a></big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big> <a href="#ACKS">Acknowledgements</a></big></li>
+      <small> </small><small></small>
+    </ol>
+    <center><big>
+      </big><small></small>
+      <h2><small></small>
+        <hr noshade="noshade" size="8" width="100%"></h2>
+      <small></small></center>
+    <center><big>
+      </big><small></small>
+      <h2><big><a name="EXECUTIVE_SUMMARY"></a>Executive Summary</big></h2>
+      <small></small></center>
+    <big>&nbsp;&nbsp;&nbsp; The CLAM system is a set of macros and rules
+      for the GNU make program
+      that
+      simplifies the creation of executable programs and code
+      libraries.&nbsp;
+      Most makefiles that use the CLAM system are ten lines long or
+      less.&nbsp;
+      Makefiles are stated in terms of a set of special variable names that
+      CLAM
+      interprets in order to issue the correct sequence of compilation
+      directives.&nbsp;
+      This document presents a tutorial on the variable names and simple
+      rules
+      that need to be used with CLAM. &nbsp;Several example makefiles and the
+      full
+      reference manual for CLAM are also included.<br>
+      &nbsp;&nbsp;&nbsp; CLAM is part of the Feisty Meow® codebase (<a href="http://feistymeow.org/">http://feistymeow.org/</a>)
+      and can be
+      downloaded from there or through a sourceforge mirror site.<br>
+      &nbsp;&nbsp;&nbsp; In the remainder of the document, we will often
+      refer to CLAM as just "clam".<br>
+      &nbsp;
+    </big>
+    <center><small></small>
+      <h2><small></small>
+        <hr noshade="noshade" size="8" width="100%"></h2>
+      <small></small></center>
+    <center><big>
+      </big><small></small>
+      <h2><big><a name="PREPARATION"></a>Preparing Your Computer to Use
+          CLAM</big></h2>
+      <small></small></center>
+    <h3><big><a name="STEPS_NEEDED"></a>Necessary Steps:</big></h3>
+    <ol>
+      <small> </small><big> </big><small> </small>
+      <li><big>Setting environment variables for clam:</big></li>
+      <small> </small><big> </big><small> </small>
+      <ol>
+        <li><big>FEISTY_MEOW_APEX:</big></li>
+        <small> </small><big> </big><small> </small>
+        <ol>
+          <small> </small><big> </big><small> </small>
+
+<big>DEPRECATED</big>
+          <li><big> **REVISE** out of date... This variable has been needed
+              since clam became
+              part of the YETIcode project (at <a href="http://feistymeow.org/">http://feistymeow.org</a>).</big></li>
+          <small> </small>
+          <li><big>The default location for clam is under the FEISTY_MEOW_SCRIPTS directory in a
+              folder named clam.<br>
+            </big></li>
+          <small> </small><big> </big><small> </small>
+          <li><big>If the yeti root directory is in $HOME/yeti
+              already, then the
+              default for FEISTY_MEOW_APEX will work and it doesn't need to be
+              declared.</big></li>
+          <li><big>Setting the variable:<br>
+            </big></li>
+          <small> </small><big> </big><small> </small>
+          <ol>
+            <small> </small><big> </big><small> </small>
+            <li><big>On Unix (with the bash shell): <span style="font-weight: bold;">export
+                  MAKEFLAGS="-I $HOME/yeti/clam"</span></big></li>
+            <small> </small><big> </big><small> </small>
+            <li><big>On win32: <span style="font-weight: bold;">set
+                  MAKEFLAGS="-I c:/yeti/clam"</span>&nbsp; (or set this in the
+                System
+                control panel, under the advanced tab, in environment variables)<span
+                  style="font-weight: bold;"><br>
+                </span></big></li>
+            <small> </small><big> </big><small> </small>
+            <li><big>Note that the use of
+                forward slashes is mandatory in the clam directory in MAKEFLAGS.<br>
+              </big></li>
+            <small> </small><big> </big><small> </small>
+          </ol>
+          <small> </small><big> </big><small> </small>
+        </ol>
+        <small> </small><big> </big><small> </small>
+        <li><big>MAKEFLAGS:</big></li>
+        <small> </small><big> </big><small> </small>
+        <ol>
+          <small> </small><big> </big><small> </small>
+          <li><big> This variable is required to be set in the
+              environment before using clam with gnu-make.&nbsp; It tells make
+              where
+              to find the clam definitions and scripts.</big></li>
+          <small> </small>
+          <li><big>Setting the variable:<br>
+            </big></li>
+          <small> </small><big> </big><small> </small>
+          <ol>
+            <small> </small><big> </big><small> </small>
+            <li><big>On Unix (assuming bash as shell): <span style="font-weight: bold;">export
+                  MAKEFLAGS="-I $FEISTY_MEOW_APEX/clam"</span></big></li>
+            <small> </small><big> </big><small> </small>
+            <li><big>On win32: <span style="font-weight: bold;">set
+                  MAKEFLAGS="-I %FEISTY_MEOW_APEX%/clam"</span></big></li>
+            <small> </small><big> </big><small> </small>
+            <li><big>This variable also requires forward slashes
+                instead of
+                backslashes.</big></li>
+            <small> </small><big> </big><small> </small>
+          </ol>
+          <small> </small><big> </big><small> </small>
+        </ol>
+        <small> </small>
+      </ol>
+      <small> </small>
+      <li><big>Required Tools:</big></li>
+      <small> </small><big> </big><small> </small>
+      <ol>
+        <small> </small><big> </big><small> </small>
+        <li><big>The compiler itself:<br>
+          </big></li>
+        <small> </small><big> </big><small> </small>
+        <ol>
+          <small> </small><big> </big><small> </small>
+          <li><big>If you are running GNU/Linux (or almost any other
+              Posix-compliant operating system), then the GNU C/C++ compiler
+              suite is pretty much all that's needed.</big></li>
+          <small> </small><big> </big><small> </small>
+          <li><big>The
+              GNU C/C++ compiler (included in the <a href="http://www.mingw.org/">MinGW</a>
+              toolkit) should be all that's needed for
+              compilation,
+              but the Microsoft Visual Studio 6.0-8.0 compilers can be used if
+              available.&nbsp; Compatibility is only guaranteed for vc8
+              however.<br>
+            </big></li>
+          <small> </small><big> </big><small> </small>
+        </ol>
+        <small> </small><big> </big><small> </small>
+        <li><big>Win32 Unix Tools:</big></li>
+        <small> </small><big> </big><small> </small>
+        <ol>
+          <small> </small><big> </big><small> </small>
+          <li><big>&nbsp;If you are running a win32-based product
+              (windows NT,
+              windows
+              2000,
+              windows xp, etc) then a few additional tools are required...<br>
+            </big></li>
+          <small> </small><big> </big><small> </small><small></small>
+          <li><big>The recommended GNU utilities are available for
+              win32 in the
+              MingW MSYS
+              package (http://www.mingw.org/).</big></li>
+          <li><big>Note that you will need to add the binaries directory from
+              MSYS to
+              your path.&nbsp; The PATH variable can be accessed under MS-NT
+              type OSes through the
+              "control panel | system | advanced | environment variables" menu
+              trail.&nbsp; If you
+              plan to use msys outside of clam, then ensure that
+              the MSYS bin directory is prior to the
+              windows system directory in your path; this causes the Unix "find"
+              command to be used instead of the Windows version.</big></li>
+          <li><big>Alternatively, a similar set of GNU utilities is
+              available
+              in the <a href="http://cygwin.com/">Cygwin package</a>, although
+              these tools are no longer recommended and are, in
+              fact, actively deprecated.</big></li>
+          <small> </small><big> </big><small> </small>
+          <ol>
+            <small> </small><big> </big><small> </small>
+          </ol>
+          <small> </small><big> </big><small> </small>
+        </ol>
+        <small> </small><big> </big><small> </small>
+        <li><big>makedep and version_stamper tools:</big></li>
+        <small> </small><big> </big><small> </small>
+        <ol>
+          <small> </small><big> </big><small> </small>
+          <li><big>The CLAM_BINARIES directory in the archive has
+              pre-built
+              versions of tools used by clam during a build.<br>
+            </big></li>
+          <small> </small><big> </big><small> </small>
+          <li><big>If you would rather rebuild them from source, then
+              running
+              the script "scripts/generator/produce_feisty_meow.sh" will
+              recreate all of these internal tools.<br>
+            </big></li>
+          <small> </small><big> </big><small> </small>
+        </ol>
+        <small> </small><big> </big><small> </small>
+      </ol>
+      <small> </small><big> </big><small> </small>
+      <li><big>Third Party Tools Used By or Supported Within clam:</big></li>
+      <small> </small><big> </big><small> </small>
+      <ol>
+        <small> </small><big> </big><small> </small>
+        <li><big>wx widgets:</big></li>
+        <small> </small><big> </big><small> </small>
+        <ol>
+          <small> </small><big> </big><small> </small>
+          <li><big>home page: http://www.wxwidgets.org/</big></li>
+          <small> </small><big> </big><small> </small>
+          <li><big>As far as the clam team is concerned, this is the
+              premier
+              portable (and open source) library for graphical user interfaces.<br>
+            </big></li>
+          <small> </small><big> </big><small> </small>
+        </ol>
+        <small> </small><big> </big><small> </small>
+        <li><big>OpenSSL:</big></li>
+        <small> </small><big> </big><small> </small>
+        <ol>
+          <small> </small><big> </big><small> </small>
+          <li><big>home page: http://www.openssl.org/</big></li>
+          <small> </small><big> </big><small> </small>
+          <li><big>This is the team's most favorite library for SSL
+              (Secure
+              Sockets Layer) and general encryption needs.<br>
+            </big></li>
+          <small> </small><big> </big><small> </small>
+        </ol>
+        <small> </small><big> </big><small> </small>
+        <li><big>cURL:</big></li>
+        <small> </small><big> </big><small> </small>
+        <ol>
+          <small> </small><big> </big><small> </small>
+          <li><big>home page: http://curl.haxx.se/</big></li>
+          <small> </small><big> </big><small> </small>
+          <li><big>The curl library rocks(!) and provides a very
+              powerful set of
+              tools for programmatically interacting with live web pages.<br>
+            </big></li>
+          <small> </small><big> </big><small> </small>
+        </ol>
+        <small> </small><big> </big><small> </small>
+      </ol>
+      <small> </small><big> </big><small> </small>
+      <li><big>Other clam Preconditions:</big></li>
+      <small> </small><big> </big><small> </small>
+      <ol>
+        <small> </small><big> </big><small> </small>
+        <li><big>Linux platforms:</big></li>
+        <small> </small><big> </big><small> </small>
+        <ol>
+          <small> </small><big> </big><small> </small>
+          <li><big>The standard source code repository is a directory
+              called
+              "feisty_meow"
+              in the user's home directory. &nbsp;If you decompress the feisty_meow
+              library archive in your home directory, you should be all set to
+              perform a build.</big></li>
+          <small> </small><big> </big><small> </small>
+          <li><big>See the Feisty Meow Concerns Ltdwebsite for more details about
+              downloading that codebase (<a href="http://feistymeow.org">http://feistymeow.org</a>).<br>
+            </big></li>
+          <small> </small><big> </big><small> </small>
+          <ol>
+            <small></small><small></small>
+          </ol>
+          <small> </small><big> </big><small> </small>
+        </ol>
+        <small> </small><big> </big><small> </small>
+        <li><big>Win32 platforms:</big></li>
+        <small> </small><big> </big><small> </small>
+        <ol>
+          <small> </small><big> </big><small> </small>
+          <li><big>The standard repository for source code is a substituted
+              drive l:, which is where all the other hierarchies start.
+              &nbsp;This
+              drive can be mapped to any folder desired using the "subst"
+              command
+              (for example, "subst l: c:\build_dir").
+              &nbsp;All
+              objects and final products will be generated to the l: drive.</big></li>
+          <small> </small><big> </big><small> </small>
+          <li value="2"><big>Using MS Visual Studio as the Compiler:</big></li>
+          <small> </small><big> </big><small> </small>
+          <ol>
+            <small> </small><big> </big><small> </small>
+            <li><big>VS80COMNTOOLS/VS90COMNTOOLS/VS100COMNTOOLS variable:</big></li>
+            <small> </small><big> </big><small> </small>
+            <ol>
+              <small> </small><big> </big><small> </small>
+              <li><big>This variable should be automatically created by
+                  Visual Studio upon installation.&nbsp; If it isn't, then
+                  Microsoft has
+                  a bug or you need to restart your current prompt or your
+                  computer.<br>
+                </big></li>
+              <li><big>The paths that clam uses to find compiler binaries
+                  is calculated based on this variable.</big></li>
+              <li><big>Older versions of visual studio are currently
+                  unsupported because Microsoft constantly rearranges their
+                  folders and
+                  tools in a non-maintainable way.<br>
+                </big></li>
+            </ol>
+            <li><big>Several other environment variables are required
+                by Visual
+                Studio.&nbsp; They can be set up for your current command prompt
+                by
+                running "vcvars32.bat" or "vsvars32.bat" (found under
+                the
+                compiler's common directory, which varies depending on the
+                version of
+                visual studio).<br>
+              </big></li>
+            <small> </small><big> </big><small> </small>
+          </ol>
+          <small> </small><big> </big><small> </small>
+        </ol>
+        <small> </small><big> </big><small> </small>
+      </ol>
+      <small> </small><small></small>
+    </ol>
+    <center><big>
+      </big><small></small>
+      <h2><small></small>
+        <hr noshade="noshade" size="8" width="100%"></h2>
+      <small></small></center>
+    <center><big>
+      </big><small></small>
+      <h2><big><a name="TUTORIAL"></a>CLAM Tutorial</big></h2>
+      <small></small></center>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This section provides an overview of
+      how clam
+      works and how you can make it work for you.&nbsp; It is quite brief,
+      but
+      should suffice for most common cases of makefiles.&nbsp; For more
+      detailed
+      usage, consult the CLAM Reference section of this document.
+    </big>
+    <h3><big><a name="CAVEATS"></a>Caveats</big></h3>
+    <ul>
+      <small> </small><big> </big><small> </small>
+      <li><big>Most of the Unix tools employed in the make process are
+          case-sensitive.&nbsp;
+          This means that they will probably not find any of the clam support if
+          the files have been changed to upper-case names.&nbsp; It also means
+          that
+          all code files must match their descriptions in makefiles, letter for
+          letter.&nbsp;
+          And any batch files or executables invoked also need to be in
+          lower-case
+          as clam expects them to be.</big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big>A corollary case requirement is that the makefile must
+          be named
+          either
+          "makefile" or "Makefile".&nbsp; These are the Unix standard names and
+          GNU make
+          looks for these by default.&nbsp; If you are willing to type "make -f
+          <i>makefile_name</i>",
+          then you can run any makefile.&nbsp; However, the build-ready
+          makefiles
+          should be named according to the standard, since the build process
+          will
+          look for these automatically.</big></li>
+      <small> </small><small></small>
+    </ul>
+    <h3><big>
+        <a name="TUT_BASICS"></a>Basics</big></h3>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The C++ Library
+      Automatic Maker system (or CLAM) is defined as a set of
+      variable
+      (or macro) definitions. &nbsp;These variable definitions are
+      manipulated in
+      order to compile and link programs.&nbsp; By setting the variables'
+      values
+      appropriately, specific products can be generated from the target rules
+      defined
+      in clam.&nbsp; Both variables and rules are extensible.&nbsp; The
+      general
+      procedure for building a clam-based Makefile has four user-defined
+      steps:
+    </big>
+    <ol>
+      <small> </small><big> </big><small> </small>
+      <li><big>loading the default variables for clam,</big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big>redefining the default variables where necessary,</big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big>loading the default rule set for clam,</big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big>defining rules that are local to the user's Makefile.</big></li>
+      <small> </small><small></small>
+    </ol>
+    <big>Step 4 can usually be omitted unless the project creates
+      components
+      whose types are not supported by clam.<br>
+      &nbsp;&nbsp;&nbsp;&nbsp; clam is structured as a directory hierarchy
+      where the root of clam
+      supports
+      the most general makefile activities. &nbsp;Activities such as
+      recursing
+      into subdirectories and providing support for cleaning up after a make
+      are
+      provided at this level. &nbsp; In the remainder of the document, we
+      will
+      designate this location with a "$" character to clarify what part of
+      the clam hierarchy we are describing.<br>
+      &nbsp; &nbsp;&nbsp; The root clam
+      support files are mostly language independent, since they are used by
+      all
+      varieties of language dependent derived versions of clam.&nbsp; These
+      files
+      are generally not of concern unless one is designing a new derived
+      version
+      of clam for a language not yet supported.<br>
+      &nbsp;&nbsp;&nbsp;&nbsp; The subdirectories off of the clam root
+      provide
+      "derived" makefile services, such as C++ or Ada compilation.&nbsp; Each
+      derived clam service implements at least two files to link into the
+      rest of the
+      clam system: a variables file and a rules file. &nbsp;The variables
+      file defines
+      the options for the derived make process; by changing the values of
+      these,
+      different types of targets can be created. &nbsp;The rules file
+      implements
+      creation of the targets relevant to the programming language being
+      supported.<br>
+      &nbsp;&nbsp; &nbsp; It may be worth noting that clam can be used to
+      drive
+      any kind of programmatic process--not just compilation. &nbsp;Currently
+      though,
+      program compilation is the primary goal.
+    </big>
+    <h3><big><a name="TUT_COMMON"></a>Common Files</big></h3>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The top-level file called
+      "$/variables.def"
+      contains
+      definitions and descriptions of the variables used throughout the clam
+      system.&nbsp; For a non-derived type of make (using only base clam
+      support),
+      this file should be included near the start of the user's
+      Makefile.&nbsp;
+      The rules file (stored in "$/rules.def") should be included after the
+      user
+      has modified the appropriate variables that will dictate how the make
+      is
+      performed.
+      <br>
+      &nbsp;&nbsp;&nbsp;&nbsp; This scheme of including variables at the
+      top and then rules at the bottom of the user's makefile is employed in
+      all clam makefiles.&nbsp; For example, makefiles for C++ compilation
+      are structured the
+      same way.&nbsp; The user's C++ makefile includes the C++ variables
+      (stored
+      in a subdirectory called "$/cpp" under the clam root) at the top of the
+      makefile and then includes the C++ rules at the bottom.<br>
+      &nbsp;&nbsp;&nbsp;&nbsp; An example
+      of a C++ makefile is shown below:
+    </big>
+    <ul>
+      <small> </small><big> <tt>include cpp/variables.def <br>
+          <br>
+          PROJECT = basis<br>
+          TYPE = library<br>
+          SOURCE = chaos.cpp checkup.cpp earth_time.cpp guards.cpp istring.cpp \<br>
+          &nbsp; log_base.cpp mutex.cpp occurrence.cpp outcome.cpp
+          outcome_table.cpp \<br>
+          &nbsp; packable.cpp portable.cpp runtime_history.cpp
+          system_outcomes.cpp \<br>
+          &nbsp; utility.cpp version_checker.cpp version_record.cpp<br>
+          TARGETS = basis.lib<br>
+          <br>
+          include cpp/rules.def</tt><br>
+      </big><small></small>
+    </ul>
+    <big>The interior of the makefile overrides the TYPE, SOURCE
+      and TARGETS variables for C++ compilation to specify what is to be
+      built
+      (basis.lib) and what it consists of (the CPP files mentioned in
+      SOURCE).&nbsp;
+      &nbsp;The PROJECT variable being overridden is actually defined in the
+      $/variables.def;
+      a project name is a required feature of all clam makefiles.
+    </big>
+    <h3><big><a name="TUT_IMPORTANT_VARS"></a>Important Variables</big></h3>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp;
+      The clam root directory is pointed to by an internal variable called
+      "CLAM_SCRIPTS",
+      defined in $/variables.def.&nbsp; This variable is used by the clam
+      system
+      to find extra files that might be needed by derived makefile
+      support.&nbsp;
+      It is important to change this to the appropriate value when you are
+      using the system in a different location. &nbsp;The CLAM_SCRIPTS variable
+      can either
+      be directly edited in $/variables.def, or it can be overridden in the
+      environment
+      of the shell running the make, or it can be passed on the command line
+      to
+      make.<br>
+      &nbsp;&nbsp;&nbsp;&nbsp; For C++ compilation, the above example
+      makefile
+      (for basis.lib) contains examples for most of the required
+      elements.&nbsp; Additional elements
+      will be discussed in the examples section or can be found in the
+      reference.&nbsp;
+      The absolutely required variables for C++ are PROJECT, TYPE, SOURCE and
+      TARGETS.
+    </big>
+    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; PROJECT is a variable that
+        provides the
+        name
+        of the project being compiled.&nbsp; This should be a word that can
+        also
+        be used as a directory name and partial component of filenames.&nbsp;
+        Thus,
+        spaces and other unusual punctuation characters are discouraged.&nbsp;
+        All of the project's temporary directories will be created based on
+        this
+        variable.&nbsp; This project name should be unique across a full build;
+        otherwise files generated by compiling identical project names will be
+        jumbled together.
+      </big></p>
+    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; TYPE is a variable that describes
+        the kind
+        of project that is being compiled.&nbsp; This is necessary because it
+        controls
+        some aspects of the compilation, such as where the compilation products
+        are
+        generated.&nbsp; All files generated by compilation are stored in the
+        repository
+        directory (by default, either "~/feisty_meow" in Linux or "l:\" in
+        win32).&nbsp; There are three TYPEs supported so far: </big></p>
+    <ul>
+      <small> </small><big> </big><small> </small>
+      <li><big>library: indicates that the project will primarily be
+          creating
+          static
+          or
+          dynamic libraries.</big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big>application: indicates that the project will create
+          executables.</big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big>test: indicates that the project constructs test
+          programs.</big></li>
+      <small> </small><small></small>
+    </ul>
+
+<big>DEPRECATED</big>
+    <big>
+
+&nbsp;&nbsp;&nbsp; &nbsp;Projects of the "library" type will
+      be given
+      an include directory named after the project, such as
+
+      "~/feisty_meow/include/basis".
+      &nbsp;The include directory is created as a copy of the headers in the
+      project's
+      directory .&nbsp; Library projects will also have their final products
+      copied
+      to the lib or dll subdirectories of the build directory being created.<br>
+      &nbsp;&nbsp;&nbsp; &nbsp;Projects that are of type "application" will
+      have their executables
+      copied to the executable directory in the repository (such as
+      "~/hoople/exe").
+
+<br>
+      &nbsp; &nbsp; &nbsp;The "test" type of project
+      will be promoted to a subdirectory named after the PROJECT that resides
+      under the test hierarchy in the repository (such as
+      "~/hoople/tests/turbodog").
+    </big>
+
+<big>DEPRECATED</big>
+    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; SOURCE is a list of files that
+        are to be
+        compiled
+        in order to create the final products of the project.&nbsp; These can
+        be
+        C++ source files (*.cpp), MS-Win32 resource files (*.rc) and other
+        types
+        of source files.&nbsp; The list of objects to create will be determined
+        by transforming the list of SOURCE files (such as by turning a file
+        called
+        "fud.cpp" into an object called "fud.obj").
+      </big></p>
+    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; TARGETS is a list of the products
+        that are
+        to be created by compilation and linking.&nbsp; The suffix of a target
+        is a well established extension, such as ".lib", ".exe"
+        or ".dll" for MS-Win32 compilation products.
+      </big></p>
+    <h3><big><a name="TUT_VAR_ASSIGN"></a>Variable Assignment Policies</big></h3>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp;
+      The assignment of variable values is mostly straightforward, but it
+      might
+      be valuable to provide a refresher.&nbsp; In GNU make, a variable
+      (a.k.a.
+      macro) can be assigned using the following syntax:
+    </big>
+    <ul>
+      <small> </small><big>FRED = a b c </big><small> </small>
+    </ul>
+    <big>This sets the variable named FRED to the value of "a
+      b c". &nbsp;The variable is referred to as $(FRED) when it is being
+      used,
+      although its name is just FRED.<br>
+      &nbsp;&nbsp;&nbsp; &nbsp;This syntax is fine when the variable is to be
+      defined only once.&nbsp;
+      In many cases though, a variable is already defined and needs to be
+      added
+      to instead of redefined.&nbsp; Using the standard equals (=) operator
+      would
+      wipe out the previous definition, so a special assignment
+      is provided:
+    </big>
+    <ul>
+      <small> </small><big>FRED += d e f </big><small> </small>
+    </ul>
+    <big>This is quite similar to the C syntax on integers.&nbsp; It
+      means that
+      FRED will be given a value equal to its old value plus the new
+      contents.&nbsp;
+      In our example, FRED would be equal to "a b c d e f". &nbsp;Note that
+      one cannot say:<br>
+      <br>
+      &nbsp;&nbsp; &nbsp;&nbsp;&nbsp; &nbsp;&nbsp; FRED = $(FRED) d e f
+      &nbsp; &nbsp; &nbsp; (BAD!)<br>
+      <br>
+      This is not allowed in GNU make because it includes a macro's own value
+      in its definition. &nbsp;This causes a badly formed recursive
+      definition
+      of the variable; a variable dereferencing operation (such
+      as $(FRED)) causes the variable's current value to
+      be resolved, which in turn dereferences any other variables in the
+      definition.
+      &nbsp;Thus, the reference to $(FRED) causes infinite recursion when
+      included
+      in the definition of FRED.<br>
+      <br>
+      &nbsp;&nbsp;&nbsp;&nbsp; In the case of variables that <u>must</u>
+      be defined by the user's makefile, the standard assignment operator
+      (via the = character) can
+      be used.&nbsp; This includes the PROJECT, TYPE, SOURCE, and TARGETS
+      variables.&nbsp;
+      Also, any other variables that are set only by the user's makefile can
+      use simple assignment.&nbsp; This category includes LOCAL_LIBS_USED,
+      LIBS_USED and others of similar nature.<br>
+      &nbsp;&nbsp;&nbsp;&nbsp; But several variables are defined partially
+      by clam, then added to within the user's makefile, and then possibly
+      extended
+      after the user's makefile is processed (by the clam rules file).&nbsp;
+      These variables cannot use
+      standard assignment and must instead use the incremental assignment
+      (+=)
+      operator.&nbsp; Variables included in this category are DEFINITIONS,
+      LOAD_FLAG_PREFIX,
+      CLEANUPS, and many others.
+      <br>
+      &nbsp;&nbsp;&nbsp;&nbsp; If you are unsure about the type of variable
+      you are defining, then the incremental assignment (+=) operator is
+      preferred
+      to avoid trashing the variable's previous values.<br>
+      &nbsp;&nbsp;&nbsp;&nbsp;
+      Note that when variables are "exported", then any make in a subshell
+      will
+      inherit the parent shell's value.&nbsp; This can induce some weird
+      behavior
+      for variables that are incrementally constructed with the +=
+      operator.&nbsp;
+      If this seems to be happening, try using the simple assignment operator
+      for
+      that variable in the sub-makefile, if this is allowed. &nbsp;In general
+      though,
+      variables are not exported unless they MUST be seen by shell scripts
+      and
+      this does not occur overly frequently.
+    </big>
+    <h3><big><a name="TUT_OPTIONAL_VARS"></a>Optional Variables</big></h3>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; There are several miscellaneous
+      variables that
+      are useful, either within one's makefiles or when passed to GNU make on
+      the command
+      line.&nbsp; These are described below.
+    </big>
+    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; LOCAL_LIBS_USED is a list of
+        library names
+        that are to be linked in with the library or executable being
+        created.&nbsp;
+        These are specially formatted names; they are just the prefix part of
+        the
+        full library name.&nbsp; For example, if you're building a release
+        executable
+        and want to link in a data structures library "i_adt.lib" (win32) or
+        "libi_adt.a" (Linux), you can specify:
+        <br>
+        &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; LOCAL_LIBS_USED = i_adt
+        <br>
+        The appropriate prefix and suffix will be attached.
+      </big></p>
+    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; EXTRA_COPIES is a list of files
+        that should be copied to a project's output folder when it is done
+        being compiled.&nbsp; These should be files that are not already
+        copied as the main products, such as extra data or configuration files
+        that belong with an application.
+      </big></p>
+    <p><big>&nbsp;&nbsp;&nbsp;&nbsp; EXTRA_VERSIONS is a list of
+        version files
+        that
+        also need to be updated to the main build version during a
+        compilation.&nbsp;
+        These are usually needed if a project compiles several executable
+        files,
+        and each one performs version checking.&nbsp; (By default, any project
+        containing a file called "version.ini" will get a version stamp from
+        the
+        main build version.)
+      </big></p>
+    <h3><big><a name="WRITING_RULES"></a>Writing Your Own Rules</big></h3>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; One might need to write new rules
+      for
+      processing
+      file types that are not directly supported by clam.&nbsp; There are a
+      number
+      of features provided for writing rules, but there are also some
+      requirements
+      placed on the rules.
+      <br>
+      &nbsp;&nbsp;&nbsp;&nbsp; All rules in makefiles need to be prefaced
+      with one of the provided "launcher" macros.&nbsp; These are used to
+      ensure
+      that the rules can be properly executed on different platforms;
+      Windoze95
+      was especially hard to implement for until these macros were developed
+      (due to what appear to be basic defects in the command line
+      support).&nbsp;
+      All preaching aside, here are the macros:
+    </big>
+    <ul>
+      <small> </small><big> </big><small> </small>
+      <li><big>HIDER: Executes a command but hides the
+          invocation.&nbsp; Any
+          output is
+          still sent to standard out.&nbsp; If a verbose
+          build is being done, then all of the invocations become visible again.</big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big>HIDESH: Executes a shell script but hides the
+          invocation.
+          &nbsp;Similar to HIDER but supports scripts specifically.<br>
+        </big></li>
+      <small> </small><small></small>
+    </ul>
+    <big>Here are some examples of using the macros properly.&nbsp;
+      Note that
+      the
+      command itself must be contained in single quotes:<br>
+      <br>
+      $(HIDER) $(MIDL) crumpet_server.idl<br>
+    </big>
+    <blockquote><big>MIDL is also a provided macro; it executes the
+        Microsoft
+        IDL compiler. </big></blockquote>
+    <big>$(HIDESH) $(CLAM_SCRIPTS)/postconditions.sh<br>
+    </big>
+    <blockquote><big>This runs a shell script that handles the end
+        portion of a
+        make.</big></blockquote>
+    <h3><big>
+        <a name="TUT_CONCLUSION"></a>Conclusion</big></h3>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This tutorial is intended to raise
+      awareness
+      of
+      basic&nbsp; usage.&nbsp; Hopefully the reader will now be able to
+      create
+      simple makefiles that use .&nbsp; For more aggressive compilation
+      requirements,
+      the reference section may be needed; it describes every variable and
+      rule
+      used in the&nbsp; system.&nbsp; However, it is most likely the case
+      that
+      your unsupported compilation needs will also be required by others in
+      the
+      future, and it is hoped that you will contribute them to the
+      main-line&nbsp; support.&nbsp; Currently, the appropriate way to do
+      this is just
+      to
+      send the makefile code to the <a href="#lib_manager">library
+        administrator</a>, who will include them
+      in the next version of .
+    </big>
+    <center><small></small>
+      <h2><small></small>
+        <hr noshade="noshade" size="8" width="100%"></h2>
+      <small></small></center>
+    <center><big>
+      </big><small></small>
+      <h2><big><a name="REFERENCE"></a>CLAM Reference</big></h2>
+      <small></small></center>
+    <h2><big>
+        <a name="LANG_INDEP_VARS"></a><u>Language Independent Variables</u></big></h2>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The language independent variables
+      are stored
+      in the file "$/variables.def".&nbsp; They define the overall structure
+      of a make and can usually be overridden to customize how the make is
+      performed.
+    </big>
+    <h4><big>BUILD_BEFORE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of projects that need
+      to be
+      created
+      before this project can be created.&nbsp; The items in the list are
+      interpreted
+      as directories that contain a makefile to be run.&nbsp; For example, if
+      an item in BUILD_BEFORE is listed as ?fred?, then the target
+      "fred.make"
+      will be executed.&nbsp; That target changes to the directory 'fred'
+      before
+      running the makefile there.&nbsp; The project in the specified
+      directory
+      is created using make if needed (as determined by that directory's
+      Makefile).&nbsp;
+      The projects in BUILD_BEFORE are made immediately after the
+      FIRST_TARGETS
+      are made.
+    </big>
+    <h4><big>ACTUAL_TARGETS, ACTUAL_FIRST_TARGETS, ACTUAL_LAST_TARGETS</big></h4>
+    <big>&nbsp;&nbsp; &nbsp; See below for TARGETS, FIRST_TARGETS and
+      LAST_TARGETS.<br>
+    </big>
+    <h4><big>BUILD_AFTER</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; A list of directory names that
+      should be
+      recursed
+      into after this project finishes. &nbsp;Each listed directory will have
+      make
+      started on any makefile found.<br>
+    </big>
+    <h4><big>BUILD_BEFORE<br>
+      </big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; A list of directory names that
+      should be
+      recursed into before this project
+      starts. &nbsp;Each directory listed will have make started on any
+      makefile found.<br>
+    </big>
+    <h4><big>MAKEFILE_NAME</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; A variable that specifies the name
+      of the
+      makefile
+      for all sub-makes.&nbsp; It works with BUILD_BEFORE and
+      BUILD_AFTER and allows the name of the makefile in a
+      subdirectory to be changed to something other than 'makefile'.&nbsp;
+      This
+      supports different types of builds which are controlled by different
+      makefile
+      names.
+    </big>
+    <h4><big>PARAMETER_FILE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;A file name that is
+      usually found at the root of the repository. &nbsp;The name is
+      often "build.ini", but any name can be used as the parameter file.
+      &nbsp;This file is an extension of the variable set included in
+      $/variables.def
+      and can be used to provide compilation paramters without resorting to
+      the
+      command line. &nbsp;This file is associated with a particular build
+      rather
+      than the&nbsp; support, so different releases will have different build
+      parameter
+      files. &nbsp;On systems supporting version information, the build's
+      version
+      number is stored here also.<br>
+    </big>
+    <h4><big>CATCHER</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;A sub-program launcher like HIDESH
+      but this will trap errors it sees and play the build error
+      CLAM_ERROR_SOUND.<br>
+    </big>
+    <h4><big>CLAM_BINARIES</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a folder where the helper
+      binaries for the CLAM makefile system are located.  <br>
+    </big>
+    <h4><big>CLAM_SCRIPTS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable points at the location
+      where the&nbsp; definitions and helper scripts are located.&nbsp; The
+      default is
+      "~/yeti/clam",
+      but this can be overridden for local installations of .<br>
+    </big>
+    <h4><big>CLAM_ERROR_SOUND</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is a list of sound files
+      that should be played when a make stops with an error. &nbsp;It serves
+      as
+      an audible warning that something bad happened.<br>
+    </big>
+    <h4><big>CLAM_FINISH_SOUND</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is a list of sound files
+      that should be played when the make has concluded
+      successfully. &nbsp;It should play when the outer-most make
+      has seen all targets created as intended.<br>
+    </big>
+    <h4><big>CLAM_TMP</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;Specifies the location for temporary
+      files generated during a make. &nbsp;The default value usually works
+      fine.
+      &nbsp;This directory will be created if it does not already exist.<br>
+    </big>
+    <h4><big>CLEANUPS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of files to be
+      removed by the
+      make
+      clean command.&nbsp; They are possibly acquired from the TARGETS
+      defined
+      in the user's Makefile, or by language dependent rules for
+      cleaning.&nbsp;
+      Additional files can be added to this list by the user's makefile also.
+    </big>
+    <h4><big>DIRTY_FILE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable points at a file that
+      signifies
+      that some targets have been remade.&nbsp; It is not used at the base
+      level
+      of clam, but language-specific versions might do something special if
+      targets
+      were remade (such as put them in a build repository).
+    </big>
+    <h4><big>FAILURE_FILE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This file is used as a flag that
+      indicates
+      when
+      a make has failed.&nbsp; The particular file used depends on the
+      project
+      name for this makefile.&nbsp; It is cleared at both the beginning and
+      end
+      of a make.
+    </big>
+    <h4><big>FIRST_TARGETS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The FIRST_TARGETS are made before
+      any
+      libraries
+      are created and before any executables are compiled.&nbsp; There must
+      be
+      a rule for making every entry in this list, either through implicit
+      rules
+      or explicit ones provided by the user's makefile.
+    </big>
+    <h4><big>FLAG_FILES</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is a list of all the files
+      that are used for compilation flags. &nbsp;They are whacked at the
+      beginning
+      and end of a make.<br>
+    </big>
+    <h4><big>HIDER</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This macro is used throughout&nbsp;
+      to hide the
+      commands that are being sent to the operating system.&nbsp; It can be
+      disabled to allow a verbose make (see the NOISY macro).
+    </big>
+    <h4><big>HIDESH</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Just like HIDER, but this macro is
+      specifically
+      for launching shell scripts. &nbsp;Some versions of GNU make (like
+      Cygwin's)
+      have problems running scripts which don't arise when running executable
+      files.
+      &nbsp;Those problems led to the creation of the HIDESH macro for those
+      specific
+      cases. &nbsp;This is not an issue for Unix systems.
+    </big>
+    <h4><big>&nbsp;LAST_TARGETS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The LAST_TARGETS are made after all
+      of the
+      other
+      standard targets are made.&nbsp; Their must be a rule for making every
+      entry in this list, either through implicit rules or explicit ones
+      provided
+      by the user's makefile.
+    </big>
+    <h4><big>NOISY</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable can be used to cause a
+      verbose
+      make.&nbsp;
+      If the variable is non-empty, then all commands will be echoed to
+      standard
+      output.&nbsp; Otherwise, the default is to hide the commands that are
+      issued
+      and just show the output of running those commands.
+    </big>
+    <h4><big>OP_SYSTEM</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a flag that defines the
+      operating
+      system
+      name.&nbsp; This flag is sometimes used to choose the appropriate tools
+      per platform or to conditionally compile code for system
+      dependent interfaces.&nbsp; The available possibilities so far are
+      UNIX,
+      OS2, SYSV (System V Unix), DOS, and WIN32.&nbsp; Only UNIX and WIN32
+      are
+      currently very functional.
+    </big>
+    <h4><big>&nbsp;OTHER_CLEANS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These are targets to execute before
+      performing
+      the main clean up during "make clean".&nbsp; These might be targets
+      that
+      contain shell commands to execute as part of clean up or they could
+      contain
+      the "clean_subdirs" command (defined below).
+    </big>
+    <h4><big>PROJECT</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a variable that provides the
+      name of
+      the
+      project being compiled.&nbsp; This should be a word that can also be
+      used
+      as a directory name and as a partial component of filenames.&nbsp;
+      Thus, spaces
+      and other unusual punctuation characters are discouraged.&nbsp; All of
+      the project's temporary directories will be created based on this
+      variable.
+    </big>
+    <h4><big>FEISTY_MEOW_APEX</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;Specifies the root directory
+      for compilation or other&nbsp; building activities. &nbsp; The
+      repository
+      is also where source code and final products of compilation reside,
+      unless
+      the default is over-ridden (see TARGETS_STORE).<br>
+    </big>
+    <h4><big>SH &amp; SHELL</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These variables both point at a
+      shell program
+      that is
+      used for starting commands. &nbsp;SHELL is defined by GNU make, whereas
+      SH is defined by .
+    </big>
+    <h4><big>SUB_FLAG_FILES</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is a list of the compilation
+      flag files
+      which
+      should be destroyed only at the end of a make.&nbsp; They are used for
+      communication
+      with submakefiles--makefiles that were invoked by "this" makefile.<br>
+    </big>
+    <h4><big>SUBMAKE_FLAG</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;This points to a file whose presence
+      indicates
+      that
+      a "submake" performed some actions. &nbsp;The flag can be interpreted
+      by
+      some language-specific versions of&nbsp; as a reason to set a flag
+      using
+      the
+      DIRTY_FILE.<br>
+    </big>
+    <h4><big>TARGETS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These are the products to be created
+      by .&nbsp;
+      Each item listed in TARGETS should have a rule that knows how to create
+      that type of file.&nbsp; The language independent system provides very
+      few suffix based rules.&nbsp; TARGETS is filled in by the user in
+      their&nbsp; file, but it is not used directly by the&nbsp;
+      system.&nbsp;
+      Instead,
+      a generated variable called ACTUAL_TARGETS is used.<br>
+    </big>
+    <h4><big>TARGETS_STORE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This folder is where all generated
+      files are
+      to
+      be stored. &nbsp;It is usually identical to FEISTY_MEOW_APEX but can be
+      overridden
+      when the targets should be stored elsewhere.<br>
+    </big>
+    <h4><big>Version components: major, minor, revision, build<br>
+      </big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;These four variables specify the
+      version of
+      this
+      particular build. &nbsp;They are usually stored in the
+      PARAMETER_FILE.
+      &nbsp;The major and minor versions are the traditional 2.3, 4.0, etc
+      style
+      of release numbers. &nbsp;The revision number is often used to sequence
+      the
+      builds of that particular release, such that build 3.5.127 is the 127th
+      build
+      of the 3.5 release.<br>
+      &nbsp; &nbsp; &nbsp;A version-tagged file (such as an executable or
+      dynamic
+      library) with any one of the major, minor or revision numbers differing
+      from
+      an installed build is incompatible with the installed build. &nbsp;An
+      executable
+      file or dynamic library will not be allowed to load other dynamic
+      libraries
+      where these numbers differ.<br>
+      &nbsp; &nbsp; &nbsp;The last version component is misleadingly called
+      "build";
+      this number specifies the service pack level for a file. &nbsp;Files
+      whose
+      versions only differ in the last "build" component are intended to be
+      compatible
+      with each other. &nbsp;The understanding is that if only that number
+      differs,
+      then the external interface to the file has not changed, although the
+      interior
+      implementation may have.<br>
+    </big>
+    <h2><big><a name="LANG_INDEP_RULES"></a><u>Language Independent
+          Rules</u></big></h2>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The file "$/rules.def" uses the
+      composite
+      macros
+      defined in "$/variables.def" together with a set of make rules to
+      perform
+      actions during compilation.&nbsp; The rules file should be included in
+      the user's Makefile after the compilation variables have been
+      initialized
+      for the project being compiled.&nbsp; The user's own targets should be
+      placed after the directive that includes "$/rules.def".
+    </big>
+    <h4><big>%.halt</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These targets cause&nbsp; to exit,
+      usually to
+      avoid
+      something that it considers catastrophic.&nbsp; An example of this
+      would
+      be when&nbsp; finds an inappropriate entry in the list of objects to
+      create;
+      allowing a "make clean" on this makefile will delete files that are
+      probably
+      not intended.&nbsp; Hence, when&nbsp; finds this kind of usage, it will
+      stop the make and issue a complaint.
+    </big>
+    <h4><big>%.make</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Used to compile a makefile in a
+      subdirectory
+      named
+      "%".&nbsp; This rule is employed by the BUILD_BEFORE macro, but can be
+      used in the user's makefile targets also.
+    </big>
+    <h2><big><a name="LANG_INDEP_TARGETS"></a><u>Language Independent
+          Targets</u></big></h2>
+    <big>&nbsp;&nbsp;&nbsp; The following targets are defined by
+      "$/rules.def".
+    </big>
+    <h4><big>all</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a standard target that is
+      executed
+      when
+      no particular target is specified at the make command line.&nbsp; It is
+      an umbrella target that invokes all of the other targets required to
+      perform
+      a make.&nbsp; The order in which the major targets are created is:
+    </big>
+    <ol>
+      <small> </small><big> </big><small> </small>
+      <li><big>FIRST_TARGETS</big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big>TARGETS</big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big>LAST_TARGETS</big></li>
+      <small> </small><small></small>
+    </ol>
+    <h4><big>
+        clean</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This causes all of the files in
+      CLEANUPS to be
+      removed and also executes all of the targets in OTHER_CLEANS.&nbsp; The
+      language dependent system can override some of this behavior or it can
+      just add more files to the list of CLEANUPS.
+    </big>
+    <h4><big>clean_subdirs</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is similar to "make_subdirs" in
+      that it
+      descends
+      into the subdirectories in no particular order, but it runs "make
+      clean"
+      in each of them.&nbsp; This allows a directory hierarchy of projects to
+      be cleaned with one command.
+    </big>
+    <h4><big>finish</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The "finish" target represents the
+      completion
+      of a make, whether successful or not.&nbsp; It reports the time and
+      date
+      (and logs them).
+    </big>
+    <h4><big>rm_links</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target causes all link files in
+      the
+      current
+      directory to be deleted.&nbsp; This is only applicable on a Unix
+      operating
+      system.
+    </big>
+    <h4><big>make_subdirs</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target allows a makefile to
+      specify that
+      all of the subdirectories under the current directory should be scanned
+      for makefiles and that those makefiles should be executed.&nbsp; If a
+      makefile
+      does not exist, it is skipped.&nbsp; Note that the subdirectories are
+      descended
+      into in no particular order; the order depends on how the operating
+      system
+      decides to list the directories.&nbsp; If the order of make is
+      important,
+      use BUILD_BEFORE instead.
+    </big>
+    <h4><big>start</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The "start" target represents the
+      beginning of
+      the make.&nbsp; It reports the time and date (and logs them).
+    </big>
+    <h2><big><a name="LANG_INDEP_SCRIPTS"></a><u>Language Independent
+          Files</u></big></h2>
+    <h4><big>$(PARAMETER_FILE)</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is a special
+      file that has at least two purposes in .&nbsp; It is the source of
+      the
+      version number that will be stamped on all the appropriate DLLs and
+      EXEs
+      created during a build.&nbsp; It is also a place where build-wide
+      compilation
+      directives can be included so that they do not have to be passed on the
+      command
+      line.&nbsp; For C++ compilation, this is usually an INI file
+      stored in the
+      FEISTY_MEOW_APEX under the build folder.&nbsp;
+      Here is a sample parameter file:
+    </big>
+    <blockquote><big><tt><font size="-1"><big>#\</big></font></tt> <br>
+        <tt><font size="-1"><big>[version]</big></font></tt> <br>
+        <tt><font size="-1"><big>major=14</big></font></tt> <br>
+        <tt><font size="-1"><big>minor=3</big></font></tt> <br>
+        <tt><font size="-1"><big>revision=140</big></font></tt> <br>
+        <tt><font size="-1"><big>build=0</big></font></tt> </big><small> </small>
+      <p><big><tt><font size="-1"><big>DEBUG=t</big></font></tt> <br>
+          <tt><font size="-1"><big>OPTIMIZE=t</big></font></tt> <br>
+        </big></p>
+      <small> </small></blockquote>
+    <big>Note the bizarre comment at the top of the makefile; this is
+      used to
+      hide
+      the "[version]" section marker.&nbsp; The comment is required because
+      the
+      build parameter file is pulled directly into the makefile code to set
+      the
+      variables after the version stamp.&nbsp; Without a comment in front of
+      the section, a syntax error would result.&nbsp; The "[version]" section
+      marker is required because this file is also sometimes treated as a
+      win32 INI file
+      in order to read the version stamp.<br>
+      &nbsp;&nbsp;&nbsp;&nbsp; The build version is stored in the first four
+      entries.&nbsp; Our interpretation of the stamp is standard for "major"
+      and "minor".&nbsp; We treat the "revision" as a build revision number;
+      within a release, there will be numerous revisions--one for each new
+      build
+      that is performed.&nbsp; We then treat the "build" entry as a patch
+      level
+      within that particular build.&nbsp; When we perform our version
+      checking,
+      only the first three entries are compared; the patch level in "build"
+      is
+      considered irrelevant.
+      <br>
+      &nbsp;&nbsp;&nbsp;&nbsp; This example also specifies that the build
+      should be a debug style (rather than release) build and that it should
+      be optimizer.&nbsp; We can also see that
+      the flags for bounds checker instrumentation and true time
+      analysis support are commented out.<br>
+    </big>
+    <h4><big>badness_catcher.sh</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;Runs the command line passed
+      in as a sub-shell and looks for error conditions. &nbsp;If an error
+      occurred,
+      the build is stopped and the CLAM_ERROR_SOUND is played.<br>
+    </big>
+    <h4><big>datestamp.sh</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;Echoes the time and date. &nbsp;This
+      is a
+      separate
+      file to make the cross-platform difference less annoying.<br>
+    </big>
+    <h4><big>exit_make.sh</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Causes the make to stop dead in its
+      tracks.
+    </big>
+    <h4><big>postconditions.sh</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;Invoked at the end of the
+      language-invariant
+      portion of a make.<br>
+    </big>
+    <h4><big>preconditions.sh</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;Invoked at the beginning of the
+      language-invariant portion of a make.<br>
+    </big>
+    <h4><big>starter.sh</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This shell script executes a command
+      that is
+      passed
+      to it as its parameters and logs error conditions to standard
+      output.&nbsp;
+      It's used by the CATCHER macro.
+    </big>
+    <h2><small></small>
+      <hr noshade="noshade" size="8" width="100%"></h2>
+    <h2><big>
+        <a name="CPP_VARS"></a><u>C++ Specific Variables</u></big></h2>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These variables are used throughout
+      the C++
+      compilation
+      support.&nbsp; They are defined in "$/cpp/variables.def".
+    </big>
+    <h4><big>BASE_CPU</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Allows specification of the
+      processor that the
+      build is targeted for.&nbsp; This is needed when special actions must
+      be
+      taken for different processor types.&nbsp; Valid values currently
+      include
+      m68k (for Motorola 68000 series), m68340 (specifically the 68340),
+      x86 (intel 386 and upwards), and ppc860 (the PowerPC 860).
+    </big>
+    <h4><big>BUILD_LIST_FILE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;The list of files that must
+      be rebuilt. &nbsp;This is only used with compilers that support
+      compilation
+      of multiple source files with one invocation of the compiler (currently
+      only
+      MS-Visual C++).<br>
+    </big>
+    <h4><big>BUILD_WHACK_FILE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;A list of object files that must be
+      destroyed
+      if
+      the make fails. &nbsp;This is only relevant in the same situations as
+      BUILD_LIST_FILE.<br>
+    </big>
+    <h4><big>COMPILER</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable chooses the specific
+      flags
+      needed
+      for the compiler.&nbsp; Not all operating system choices above are
+      suitable
+      with the COMPILER choices, but generally it is fairly obvious which are
+      supported.&nbsp; The current possibilities include BORLAND_DOS,
+      BORLAND_OS2,
+      UNIX (default cc), GNU_OS2, GNU_LINUX, OBJECT_CENTER (Saber compiler),
+      SUN_UNIX,
+      VISUAL_CPP, and DIAB3.
+    </big>
+    <h4><big>COMPILER_FLAGS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the list of flags passed to
+      the
+      preprocessor
+      and compiler. It is composed of the SYSTEM, the DEFINITIONS, the
+      SEARCH_DIRS,
+      and any user-included options. If flags that don't fit one of the
+      categories
+      are needed, they can be added here.
+    </big>
+    <h4><big>CONSOLE_MODE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This causes the program
+      to be generated as a console application.&nbsp; This is relevant in
+      systems
+      (such as win32) where programs have a split personality depending on
+      whether
+      they are to have graphical user interfaces or just console interfaces.
+    </big>
+    <h4><big>DEBUG_FLAGS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These are flags used for generating
+      specialized
+      versions of object files, such as ones that include debugging code
+      (e.g.,
+      for gdb) or ones that add code for profiling (e.g., gprof). Possible
+      values
+      in the Sun CenterLine Compiler environment are -g for debugging code
+      and
+      -pg for profiling.
+    </big>
+    <h4><big>DEFINITIONS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of compiler flags
+      that define
+      the
+      value of C or C++ macros. These usually have the format of
+      ?-D&lt;flag&gt;?,
+      but in this particular variable only the &lt;flag&gt; itself should be
+      listed
+      (because the compiler option characters ?-D? are added automatically).
+    </big>
+    <h4><big>DEPENDENCY_ADDITIONS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of extra flags that
+      gets passed
+      to the auto-dependency tool.&nbsp; The list can vary for each compiler.
+    </big>
+    <h4><big>DEPS_FILE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This file is where the
+      auto-dependency
+      information
+      is stored.&nbsp; The "makedep" program is used to generate
+      auto-dependency
+      information for the files listed in SOURCE.&nbsp; During a build, the
+      DEPS_FILE
+      is pulled into the actual code of the makefile; this causes the
+      dependencies
+      to be automatically included so that they can dictate the files that
+      need
+      to be rebuilt.
+    </big>
+    <h4><big>EXTRA_VERSIONS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of version files that
+      also need
+      to be updated to the main build version during a compilation.&nbsp;
+      These
+      are usually needed if a project compiles several executable files, and
+      each one performs version checking.&nbsp; By default, any project
+      containing
+      a file called "version.ini" will get a version stamp from the main
+      build
+      version.
+    </big>
+    <h4><big>LIBRARIAN_FLAGS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of flags that are
+      passed to the
+      library creation tool.&nbsp; Sometimes this must be overridden for a
+      particular
+      compiler.
+    </big>
+    <h4><big>LIBS_USED</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These are code libraries that the
+      executables
+      depend upon.&nbsp; They are searched for in any of the directories
+      listed
+      in the LIBRARY_SEARCH_PATH.
+    </big>
+    <h4><big>LOAD_FLAG_PREFIX &amp; LOAD_FLAG_SUFFIX</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These tell the linker and loader how
+      to deal
+      with
+      the files and where to locate library components. The prefix is listed
+      on the compilation command line before the object files are listed, and
+      the suffix after. The prefix should contain information such as the
+      directories
+      to be searched for code libraries (although they should be added to
+      LIBRARY_SEARCH_PATH).&nbsp;
+      In the suffix definition, actual library loading statements (like
+      -lmath)
+      can be included (although they should be listed in a different form in
+      LIBS_USED or LOCAL_LIBS_USED).
+    </big>
+    <h4><big>LOCAL_LIBS_USED</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The names in this list actually
+      cause the
+      OBJECTS
+      to be recompiled when the libraries listed have changed.&nbsp; To
+      accomplish
+      this, these libraries MUST be located in the STATIC_LIBRARY_DIR rather
+      than
+      at some arbitrary place on the LIBRARY_SEARCH_PATH.&nbsp; These
+      libraries
+      also must follow the special naming convention followed by ; if
+      "basis"
+      is an entry in this list, then a library called "basis.lib" will be
+      sought
+      during the build.
+    </big>
+    <h4><big>NO_COMPILE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;Specifies that no compilation
+      should be performed. &nbsp;Nothing in the SOURCE or TARGETS macros will
+      be
+      built.<br>
+    </big>
+    <h4><big>NO_DEPS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is an exclusion flag.&nbsp; If
+      it is
+      defined,
+      then no auto-dependency files will be generated.&nbsp; This is useful
+      if
+      you're missing the makedep tool and trying to compile it.<br>
+    </big>
+    <h4><big>OBJECTS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The OBJECTS are all those files that
+      need to
+      be
+      created during compilation.&nbsp; Usually this list is filled based on
+      the files in SOURCE.
+    </big>
+    <h4><big>OPTIMIZE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Causes the make to create optimized
+      code.&nbsp;
+      The default optimization is for speed.
+    </big>
+    <h4><big>REBUILD</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; If the REBUILD variable is
+      non-empty, then all
+      files listed in the SOURCE variable are touched.&nbsp; This should
+      cause
+      all of those files to be rebuilt during the compilation.&nbsp;
+      Occasionally
+      GNU make will complain that a file is newer than the current time, but
+      this does not usually cause any problems.
+    </big>
+    <h4><big>SOURCE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The SOURCE variable is a list of
+      files that
+      are
+      to be compiled in order to create the final products of the
+      project.&nbsp;
+      These can be C++ source files (*.cpp), Win32 resource files (*.rc)
+      and
+      other types of source files.&nbsp; The list of objects to create will
+      be
+      determined by transforming the list of SOURCE files (such as by turning
+      a file called "fud.cpp" into an object called "fud.obj").&nbsp; More
+      file
+      types will be added as they are needed.
+    </big>
+    <h4><big>STATIC</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Causes the make to create statically
+      linked
+      targets.&nbsp;
+      Executables or dynamic libraries will not link in any compiler supplied
+      dynamic libraries, nor will they require them during run-time.
+    </big>
+    <h4><big>TYPE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a variable that describes
+      the kind of
+      project that is being compiled.&nbsp; Knowing the type of project is
+      necessary
+      because it controls some elements of the compilation and also of the
+      final
+      promotion of the compiled products.&nbsp; There are three TYPEs
+      supported
+      so far:
+    </big>
+    <ul>
+      <small> </small><big> </big><small> </small>
+      <li><big>library: indicates that the project will be primarily
+          creating
+          static
+          or
+          dynamic libraries.</big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big>application: indicates that the project will create
+          executables.</big></li>
+      <small> </small><big> </big><small> </small>
+      <li><big>test: indicates that the project constructs test
+          programs.</big></li>
+      <small> </small><small></small>
+    </ul>
+    <big>Projects of the "library" type will follow the special&nbsp;
+      rules for
+      their include directory (which is created as a copy of headers in the
+      library
+      directory).&nbsp; Library projects will also have their final products
+      copied to the lib or dll subdirectories of the build directory being
+      created.&nbsp;
+      Projects that are "application"s will have their executables copied to
+      the executable directory in the build.&nbsp; And "test" projects will
+      be
+      promoted to a subdirectory named after the PROJECT that resides under
+      the
+      test hierarchy in the build.
+    </big>
+    <h2><big><a name="DIRECTORY_VARS"></a><u>C++ Directory Structure
+          Variables</u></big></h2>
+    <h4><big>BASE_OUTPUT_PATH</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;This is the parent directory
+      for object files generated for the specified type of CPU and the style
+      of
+      build (e.g. debug or release builds).<br>
+    </big>
+    <h4><big>CPU_BUILD_DIR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable can be used to
+      distinguish
+      directory
+      names used for output.&nbsp; It includes the cpu name and the type of
+      build.
+    </big>
+    <h4><big>DYNAMIC_LIBRARY_DIR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;The directory where dynamic
+      libraries will be
+      stored after creation.<br>
+    </big>
+    <h4><big>EXECUTABLE_DIR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;The directory where executable files
+      will be
+      stored after creation.<br>
+    </big>
+    <h4><big>FINAL_DIR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the name of the directory
+      where the
+      finished
+      compilation products are stored, currently only import libraries for
+      dynamic libraries.&nbsp;
+      It is usually a directory under the OUTPUT_PATH named "final".
+    </big>
+    <h4><big>HEADER_SEARCH_PATH</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of directories that
+      will be
+      searched
+      for C++ header files (files ending in ?.h?).
+    </big>
+    <h4><big>HOOPLE_HEADERS</big></h4>
+<big>DEPRECATED</big>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The two standard places to look for
+      headers
+      (the repository and the third party directory) are listed in this
+      variable.
+    </big>
+    <h4><big>HOOPLE_LIBRARIES</big></h4>
+<big>DEPRECATED</big>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is where our libraries are
+      located.&nbsp; It is usually a subdirectory called "lib" under the
+      repository
+      directory.
+    </big>
+    <h4><big>LIBRARY_SEARCH_PATH</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of directories that
+      will be
+      searched
+      for C++ library archives (files ending in ".a" or ".lib").
+    </big>
+    <h4><big>LOCAL_HEADERS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable provides a way to
+      include
+      headers
+      prior to the default locations in the search path.&nbsp; For example,
+      if
+      you are compiling locally and have some headers that are not present in
+      the build you are using, then you can specify where they are in this
+      variable.
+    </big>
+    <h4><big>LOCAL_LIBRARIES</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable allows other library
+      directories
+      to be added prior to the default search locations.&nbsp; This enables
+      substitute
+      static or import libraries to be used instead of the standard ones
+      present
+      in the build.
+    </big>
+    <h4><big>STATIC_LIBRARY_DIR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the location where code
+      libraries are
+      to be copied during promotion and where they are to be searched for
+      when
+      listed in LOCAL_LIBS_USED.&nbsp; Under Unix, these libraries have a
+      ?.a?
+      suffix and are created with the "ar" program.&nbsp; Under Win32,
+      these
+      libraries have a ?.lib? suffix and are created with "link".
+    </big>
+    <h4><big>OBJECT_DIR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is where object files will be
+      stored
+      during
+      compilation for the target type being produced.
+    </big>
+    <h4><big>OUTPUT_DIRECTORY_LIST</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of directories that
+      need to be
+      created under the OUTPUT_PATH.&nbsp; It contains the "final" directory
+      where all finished products are stored, as well as all the intermediate
+      directories for objects.
+    </big>
+    <h4><big>OUTPUT_PATH</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the temporary file storage
+      area.&nbsp;
+      Any files that are created during the compilation process will be
+      stored
+      under here in a subdirectory named after the PROJECT.
+    </big>
+    <h4><big>OUTPUT_ROOT</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This specifies the root portion of
+      the
+      OUTPUT_PATH.&nbsp;
+      It lets a PC build use drive letters for the root, while a Unix build
+      can
+      specify a directory hierarchy.
+    </big>
+    <h4><big>SEARCH_DIRS</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is a list of directories that
+      will be
+      searched
+      for both C++ header files and for C++ code libraries.&nbsp; The items
+      placed
+      on SEARCH_DIRS will be added to both the LIBRARY_SEARCH_PATH and the
+      HEADER_SEARCH_PATH.&nbsp;
+      The reasoning behind this variable is lost in antiquity.
+    </big>
+    <h4><big>TESTS_DIR <br>
+      </big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;The directory where test programs
+      will be
+      stored after creation.<br>
+    </big>
+    <h4><big>THIRD_PARTY_DIR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Third party components are sometimes
+      used in
+      the
+      creation of products.&nbsp; The directory is expected to have a
+      structure
+      containing "include" and "lib" subdirectories where headers and
+      libraries
+      are stored.
+    </big>
+    <h2><big><a name="CPP_FLAGS"></a><u>Compiler Dependent Flags</u></big></h2>
+    <h4><big>
+        CC</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the name of the C++ compiler
+      executable.
+    </big>
+    <h4><big>COMPILER_HEADER_DIR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is where the compiler's header
+      (or
+      include)
+      root directory is located.&nbsp; It is usually based on the root
+      directory.
+    </big>
+    <h4><big>COMPILER_LIBRARY_DIR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is where the code libraries for
+      the
+      compiler
+      are located.&nbsp; It is usually based on the root directory.
+    </big>
+    <h4><big>COMPILER_ROOT_DIR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This should automatically be set to
+      the
+      appropriate
+      local directory where the C++ compiler is located.
+    </big>
+    <h4><big>CREATE_LIBRARY_FLAG</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag, if required, specifies
+      the text
+      that
+      must precede the name of a library to create.&nbsp; It is passed to the
+      library creation tool.
+    </big>
+    <h4><big>DEF_FILE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag only applies to Win32
+      programs.&nbsp;
+      It specifies the name of a DEF file for all of the products created in
+      the project.
+    </big>
+    <h4><big>LIB_PREFIX &amp; LIB_SUFFIX</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;The portions of a library's name
+      dictated by the operating system. &nbsp;For example, on Unix the prefix
+      is "lib"
+      and the suffix is ".a", leading to library names like "libbasis.a" for
+      the
+      basis library. &nbsp;On win32, the prefix is "" and the suffix is
+      ".lib", leading
+      to library names like "basis.lib".<br>
+    </big>
+    <h4><big>LIBRARY_NAME_FLAG</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag contains the text that
+      specifies a
+      library
+      that will be included in a link.&nbsp; It is often "-l".
+    </big>
+    <h4><big>LIBRARY_PATH_FLAG</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag provides the text needed
+      to add
+      another
+      library search path.&nbsp; Multiple occurrences of this flag followed
+      by
+      a directory name are allowed by most compilers.
+    </big>
+    <h4><big>LIBRARY_TOOL</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the name of the program
+      responsible
+      for
+      creating libraries.
+    </big>
+    <h4><big>LINK_TOOL</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is the name of the program that
+      links.&nbsp;
+      This is sometimes the same as the compiler (CC) and sometimes the same
+      as the librarian (LIBRARY_TOOL).
+    </big>
+    <h4><big>LINKER_OPTION_SEPARATOR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; In some compilers, linker options
+      need to be
+      separated
+      from compiler options that occur on the same command line.&nbsp; This
+      flag
+      serves that purpose.
+    </big>
+    <h4><big>LINKER_OUTPUT_FLAG</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag is sometimes required by a
+      linker
+      for
+      specifying the name of the library or executable that it is creating.
+    </big>
+    <h4><big>OBJECT_NAME_FLAG</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag is used to specify the
+      name of an
+      object
+      file being created.&nbsp; It is passed to the compiler to override
+      whatever
+      default name would be used.
+    </big>
+    <h2><big><u><a name="vcpp_only"></a>Microsoft-Visual C++ Only</u><br>
+      </big></h2>
+    <h4><big>USE_MFC</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This flag only applies to Visual C++
+      and
+      indicates
+      that MFC is to be used in creating this project.&nbsp; This is usually
+      the case for GUI applications.
+    </big>
+    <h4><big>VC_ROOT</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This is an override that allows the
+      compiler
+      root
+      directory to be customized without changing the&nbsp; code.&nbsp; If
+      VC_ROOT
+      is set (either in a makefile or as an external variable), then it will
+      be used in place of the COMPILER_ROOT_DIR.&nbsp; The best way to use
+      this
+      override is as an external environment variable; this allows makefiles
+      to remain the same despite your local configuration of the compiler.
+      <br>
+      &nbsp;&nbsp;&nbsp;&nbsp; Note that this variable should use
+      forward-slashes,
+      where DOS/Win32 would use backslashes.&nbsp; Also, if you have
+      installed
+      Visual C++ in a directory path containing space characters, then please
+      use the 8.3 notation for the directories containing the spaces; this
+      allows
+      the name to be passed around successfully.&nbsp; For example...
+    </big>
+    <center><small></small><big> </big><big> </big><big> </big><big> </big><big></big><big></big><big>
+      </big><big> </big><big> </big><big> </big><big>
+      </big><big> </big><big> </big><big> </big><small> </small><small></small><small>
+      </small><small> </small><small> </small><small> </small><small>
+      </small><small> </small><small> </small><small> </small><small> </small><small></small><small>
+      </small><small> </small><small> </small><small> </small>
+      <table cellpadding="8" cellspacing="4">
+        <tbody>
+          <tr>
+            <td><big> </big><small> </small>
+              <center><big><u>If Visual C++ Is Installed In</u></big></center>
+              <small> </small><big> </big></td>
+            <td><big> </big><small> </small>
+              <center><big><u>Then VC_ROOT Should Be</u></big></center>
+              <small> </small><big> </big></td>
+          </tr>
+          <tr>
+            <td><big> </big><small> </small>
+              <center><big>c:\devstudio\vc</big></center>
+              <small> </small><big> </big></td>
+            <td><big> </big><small> </small>
+              <center><big>c:/devstudio/vc</big></center>
+              <small> </small><big> </big></td>
+          </tr>
+          <tr>
+            <td><big> </big><small> </small>
+              <center><big>c:\program files\devstudio\vc</big></center>
+              <small> </small><big> </big></td>
+            <td><big> </big><small> </small>
+              <center><big>c:/progra~1/devstudio/vc</big></center>
+              <small> </small><big> </big></td>
+          </tr>
+        </tbody>
+      </table>
+      <small></small></center>
+    <h4><big>VCS_ROOT</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Similarly to the VC_ROOT, this
+      variable points
+      at the root of the C# support for Visual Studio.Net.<br>
+    </big>
+    <h4><big>FRAMEWORK_DIR</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This variable specifies the location
+      of the
+      .Net framework directory.&nbsp; On MS-Windows XP, the default should be
+      fine.&nbsp; For MS-Windows 2000 or other Win32 OSes, the windows
+      directory
+      should be "winnt" instead.&nbsp; If the operating system is configured
+      in a non-default way, the framework directory can be specified in an
+      environment variable.<br>
+    </big>
+    <h4><big>VCPP_USE_BASE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Specifies that standard Win32
+      libraries should
+      be linked in.<br>
+    </big>
+    <h4><big>VCPP_USE_GUI</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Specifies that the MFC libraries
+      should be
+      linked in.
+    </big>
+    <h4><big>VCPP_USE_OLE</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Specifies that the COM / OLE
+      libraries should
+      be linked in.
+    </big>
+    <h4><big>VCPP_USE_RPC</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Specifies that the MS-RPC libraries
+      should be
+      linked in.<br>
+    </big>
+    <h4><big>VCPP_USE_SOCK</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Specifies that the MS-WinSock
+      libraries should
+      be linked in.<br>
+    </big>
+    <h2><big><a name="CPP_RULES"></a><u>C++ Specific Rules</u></big></h2>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These types of targets have one
+      thing in
+      common;
+      if any of the items that a target depends on in SOURCE or
+      LOCAL_LIBS_USED
+      or included files or whatever have changed since the last time the
+      target
+      was created, then it is recompiled.
+    </big>
+    <h4><big>%.bad</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;Causes the make to die. &nbsp;This
+      is added when an incorrect file type is spotted in a list of targets.<br>
+    </big>
+    <h4><big>%.dll</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These create dynamically linked
+      libraries from
+      the SOURCE.
+    </big>
+    <h4><big>%.elf</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;Creates elf-formatted binaries for
+      use with a
+      firmware build (a specialized RTOS is the only one currently supported).<br>
+    </big>
+    <h4><big>%.exe</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This creates an executable program
+      using all
+      of
+      the objects and libraries specified.&nbsp; It is therefore important in
+      a&nbsp; makefile to only have executables that depend on the same group
+      of object files.&nbsp; The hidden agenda in the "exe" type of target is
+      that a file ending in ".cpp" must exist; this is taken as the root of
+      the
+      executable.&nbsp; It should usually contain the main() function (or its
+      equivalent).
+    </big>
+    <h4><big>%.lib</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This creates static libraries from
+      the files
+      listed
+      in OBJECTS.
+    </big>
+    <h4><big>%.nil</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;A blank target for test compiles.<br>
+    </big>
+    <h4><big>%.obj</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These create object files from C++
+      source
+      files
+      (files ending in .c or .cpp).
+    </big>
+    <h4><big>%.res</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These create compiled resource files
+      from RC
+      files
+      in the SOURCE list.
+    </big>
+    <h2><big><a name="CPP_TARGETS"></a><u>C++ Specific Targets</u></big></h2>
+    <h4><big>
+        check_requirements</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target ensures that certain
+      characteristics
+      of the makefile are present.&nbsp; It complains and aborts the make if
+      they are missing.
+    </big>
+    <h4><big>post_compilation</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target finalizes the
+      compilation by
+      running
+      the postconditions script.&nbsp; If PROMOTE is true, then the final
+      products
+      are copied into the repository.
+    </big>
+    <h4><big>pre_compilation</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target executes the
+      preconditions script
+      to set up the compilation's output directories.
+    </big>
+    <h4><big>rebuild</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This target performs the actions of
+      rebuilding.&nbsp;
+      This mainly involves touching all of the files in SOURCE before the
+      compilation
+      has really started.
+    </big>
+    <h2><big><a name="CPP_SCRIPTS"></a><u>C++ Specific Files</u></big></h2>
+    <h4><big>postconditions.sh</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; After a compilation has succeeded,
+      the
+      postconditions
+      script performs the final actions required.&nbsp; The nature of these
+      actions
+      depends on the type of project being made.&nbsp; For a library project,
+      the script copies the headers to the project's include directory and
+      copies
+      libraries to the appropriate locations.&nbsp; For application and test
+      program targets, the script copies the final products to the
+      appropriate
+      repository directory.
+    </big>
+    <h4><big>preconditions.sh</big></h4>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; Before any targets are compiled, the
+      preconditions
+      script ensures that the appropriate output directories exist for the
+      project.&nbsp;
+      The script also calls the version utilities to update the project's
+      version
+      file and to create any required resource files.<br>
+    </big>
+    <h4><big>rebuild_oldies.sh</big></h4>
+    <big>&nbsp;&nbsp;&nbsp; &nbsp;Used for compilers that support
+      multiple code
+      files
+      in one invocation. &nbsp;This is launched to compile a batch of sources
+      and
+      catch any errors.<br>
+    </big>
+    <hr noshade="noshade" size="8" width="100%">
+    <center><small></small>
+      <h2><big><a name="EXAMPLES"></a>CLAM Example Makefiles</big></h2>
+      <small></small></center>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; These examples show some common
+      patterns for
+      how&nbsp; is used.&nbsp; The makefiles below are actually used in real
+      software
+      projects.
+    </big>
+    <h3><big>Library-Only Makefile</big></h3>
+    <big>This example creates a dynamic library.
+    </big>
+    <ul>
+      <small> </small><big> <tt>include cpp/variables.def</tt> </big><small>
+      </small>
+      <p><big><tt>PROJECT = mechanisms</tt><br>
+          <tt>TYPE = library</tt> <br>
+          <tt>SOURCE = delayer.cpp eventmgr.cpp event_po.cpp heartbea.cpp
+            instance.cpp
+            \</tt> <br>
+          <tt>&nbsp; libmain.cpp monitor.cpp semaphor.cpp state_ma.cpp
+            timer.cpp
+            time_sta.cpp</tt> <br>
+          <tt>TARGETS = mechanisms.dll</tt> <br>
+          <tt>LOCAL_LIBS_USED = basis</tt> <br>
+          <tt>DEFINITIONS += BUILD_MECHANISMS USE_FEISTY_MEOW_DLLS</tt> </big></p>
+      <small> </small><big> </big><small> </small>
+      <p><big><tt>include cpp/rules.def</tt></big></p>
+      <small> </small><small></small>
+    </ul>
+    <big>The dynamic library created here is mechanisms.dll.&nbsp; The
+      basis
+      library is linked
+      in also.&nbsp; The file "roller.cpp" will also be copied to the build
+      directory's
+      include path, presumably since it is a template code file.
+    </big>
+    <h3><big>Library Plus Executable Makefile</big></h3>
+    <big>This example shows the basis makefile with a couple of test
+      programs
+      also
+      being generated.
+    </big>
+    <ul>
+      <small> </small><big> <tt>include cpp/variables.def</tt> </big><small>
+      </small>
+      <p><big><tt>PROJECT = basis</tt> <br>
+          <tt>TYPE = library</tt> <br>
+          <tt>SOURCE = chaos.cpp checkup.cpp guards.cpp \</tt> <br>
+          <tt>&nbsp; istring.cpp itime.cpp logger.cpp matrix.cpp
+            portable.cpp \</tt> <br>
+          <tt>&nbsp; realtime.cpp textdump.cpp timezone.cpp utility.cpp \</tt> <br>
+          <tt>&nbsp; version_checker.cpp version_record.cpp</tt> <br>
+          <tt>TARGETS = basis.lib t_string.exe t_alloc.exe</tt> </big></p>
+      <small> </small><big> </big><small> </small>
+      <p><big><tt>include cpp/rules.def</tt></big></p>
+      <small> </small><small></small>
+    </ul>
+    <big>Note that the executables
+      "t_string.exe" and "t_alloc.exe" require files called "t_string.cpp"
+      and
+      "t_alloc.cpp" to exist.&nbsp; These files are expected to contain the
+      "main()"
+      or "WinMain()" functions (or the MFC application object).&nbsp; All of
+      the
+      files in the SOURCE variable will be included in each final executable.
+    </big>
+    <h3><big>Executable-Only Makefile</big></h3>
+    <big>This example is produces several test programs that exercise
+      the
+      associated
+      library.
+    </big>
+    <ul>
+      <small> </small><big> <tt>include cpp/variables.def</tt> </big><small>
+      </small>
+      <p><big><tt>PROJECT = t_basis</tt> <br>
+          <tt>TYPE = test</tt> <br>
+          <tt>SOURCE = instance.cpp t_basis.rc</tt> <br>
+          <tt>TARGETS = t_alloc.exe t_chaos.exe t_checku.exe t_dattim.exe \</tt>
+          <br>
+          <tt>&nbsp; t_matrix.exe t_sequen.exe t_sorts.exe t_string.exe \</tt> <br>
+          <tt>&nbsp; t_texdmp.exe</tt> <br>
+          <tt>LOCAL_LIBS_USED = basis</tt> </big></p>
+      <small> </small><big> </big><small> </small>
+      <p><big><tt>include cpp/rules.def</tt></big></p>
+      <small> </small><small></small>
+    </ul>
+    <big>The programs "t_alloc.exe" and so on will require C++ files
+      with the
+      same
+      prefix (t_alloc.cpp) to contain the main program (as in the previous
+      example).&nbsp;
+      The items in the SOURCE list will be included in each executable, and
+      the
+      basis library will be linked in.
+    </big>
+    <h2><big><a name="CLAM_HINTS"></a>CLAM Hints</big></h2>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; This section
+      is devoted to untangling snags that have been encountered in the
+      past.&nbsp;
+      Hopefully problems you encounter will be discussed here. &nbsp;Please
+      contribute
+      any new problems found to the <a href="#lib_manager">library
+        administrator</a>.
+    </big>
+    <h3><big>Problem:</big></h3>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; A message like:
+    </big>
+    <ul>
+      <small> </small><big> </big><small> </small>
+      <ul>
+        <small> </small><big>make: *** No rule to make target
+          `o:/x86_w32_rel/project/final/myproj.dll',
+          needed by `all'.&nbsp; Stop. </big><small> </small>
+      </ul>
+      <small> </small><small></small>
+    </ul>
+    <big>is displayed during a make.
+    </big>
+    <h3><big>Solution:</big></h3>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The most frequent reason for
+      receiving a
+      message
+      similar to the above is that there is a file listed in SOURCE that
+      either
+      does not exist or that is capitalized differently from how it is
+      listed.&nbsp;
+      Check that all the files in SOURCE are in the makefile's directory and
+      that the exact spelling of those files (including their case) is
+      correct.
+      <br>
+      &nbsp;&nbsp;&nbsp;&nbsp; Another potential cause of this problem is
+      if a file is included in the SOURCE that&nbsp; does not
+      recognize.&nbsp;
+      The standard compilable files are supported (*.cpp, *.c, *.rc), but it
+      is possible that a makefile must handle a non-standard extension (such
+      as *.idl).&nbsp; Either the user's makefile must supply a rule for
+      processing
+      this type of file or the user must negotiate with the&nbsp;
+      administrator
+      to get that type of target added to the&nbsp; support.
+    </big>
+    <h3><big>Problem:</big></h3>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Clam is complaining about programs
+      not being
+      found
+      during a build.
+    </big>
+    <h3><big>Solution:</big></h3>
+    <big>&nbsp;&nbsp;&nbsp;&nbsp; The most frequent cause of this
+      problem is a
+      directory
+      not being on your path.&nbsp; The compilation tools bin (CLAM_BINARIES)
+      directory must be in
+      the PATH variable.
+      <br>
+      &nbsp;&nbsp;&nbsp;&nbsp; Problems are occasionally seen when the PATH
+      contains directory names that have spaces in them.&nbsp; Try using the
+      shorter 8.3 form of the directory name.
+      <br>
+      &nbsp;&nbsp;&nbsp;&nbsp; An even more obscure situation sometimes
+      occurs: paths with networked drives seem to somehow hide paths with
+      local drives that
+      are listed later in the PATH variable.&nbsp; The cause of this is
+      unknown,
+      although it was thought to be caused by NetWare at one point.&nbsp; To
+      fix
+      the situation, move the local paths before the networked ones.<br>
+      <br>
+    </big>
+    <hr noshade="noshade" size="8" width="100%">
+    <center><small></small>
+      <h2><big><a name="ACKS"></a>Acknowledgements</big></h2>
+      <small></small></center>
+    <center><big>Thanks to April Bly Monnen for the wonderful cover
+        art.
+      </big><small></small>
+      <p><big>Thanks to Kevin Wika for some early help with makefiles.
+        </big></p>
+      <small></small><big><big>
+        </big></big><small></small>
+      <hr noshade="noshade" size="8" width="100%"></center>
+    <big><br>
+      <br>
+    </big>
+  </body>
+</html>
diff --git a/documentation/clam_manual/clam_root.html b/documentation/clam_manual/clam_root.html
new file mode 100644 (file)
index 0000000..5c3a405
--- /dev/null
@@ -0,0 +1,40 @@
+<!DOCTYPE doctype PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+  <head>
+    <meta content="text/html; charset=iso-8859-1" http-equiv="content-type">
+    <meta name="Author" content="Fred T. Hamster">
+    <meta name="generator" content="Mozilla/5.0 (X11; U; Linux i686; en-US) [Mozilla]">
+    <title>CLAM Home Page</title>
+    <meta content="Fred T. Hamster" name="author">
+    <meta content="CLAM Compilation tools based on GNU Make" name="description">
+  </head>
+  <body style="color: rgb(255, 153, 0); background-color: rgb(0, 0, 0);" link="#99ffff"
+    vlink="#cc33cc" alink="#33ff33">
+    <center>
+      <h1><img style="width: 600px; height: 280px;" alt="clam automagic maker"
+        src="../../infobase/pictures/clamblock2.jpg" align="left"></h1>
+    </center>
+    <center>
+      <center><br>
+        <big><big><a href="clam_docs.html">Tutorial and Reference Manual</a>
+          </big></big></center>
+      <center><big><big>
+            <a href="http://www.gnu.org/software/make/manual/make.html">GNU Make
+              Manual</a>
+          </big></big></center>
+      <center><big><big>
+            <a href="../">CLAM Source</a>
+          </big></big></center>
+      <center><big><big>
+            <a href="../cpp">CLAM C++ Support Source</a>
+          </big></big></center>
+      <center><big><big>
+            <a href="../csharp">CLAM C# Support Source</a>
+          </big></big></center>
+      <center><big><big>You can download CLAM from the <a href="http://feistymeow.org/">feistymeow.org</a> site.</big></big><br>
+        Please send any comments and contributions to the
+        <a href="mailto:fred@gruntose.com">Administrator</a>
+        .</center>
+    </center>
+  </body>
+</html>
diff --git a/documentation/cygwin_install_list.txt b/documentation/cygwin_install_list.txt
new file mode 100644 (file)
index 0000000..acd8d77
--- /dev/null
@@ -0,0 +1,65 @@
+\r
+recommended packages to install in cygwin's setup\r
+if you're going to use cygwin on windows:\r
+\r
+first, keep all the standard packages that cygwin will enable.\r
+second, add these packages to get the full recommended set...\r
+\r
+===========\r
+\r
+using apt-cyg (https://github.com/transcode-open/apt-cyg),\r
+this is the only command needed:\r
+\r
+apt-cyg install bc crypt emacs email expect gcc-g++ git gitk gvim inetutils \\r
+  libcrypt-devel libcurl-devel libgnutls-devel make mutt ncftp openssh \\r
+  openssl-devel perl python subversion time unzip util-linux vim xinit \\r
+  xterm zip\r
+\r
+\r
+===========\r
+\r
+list broken out by category:\r
+\r
+shells:\r
+  python\r
+  perl\r
+\r
+network:\r
+  ncftp\r
+  openssh\r
+\r
+editors:\r
+  vim\r
+  gvim\r
+  emacs\r
+\r
+revision control:\r
+  git\r
+  gitk\r
+  subversion\r
+\r
+general tools:\r
+  bc\r
+  expect\r
+  util-linux\r
+  inetutils\r
+  email\r
+  mutt\r
+  unzip\r
+  zip\r
+  crypt\r
+  time\r
+\r
+libraries:\r
+  libcurl-devel\r
+  libgnutls-devel \r
+  openssl-devel\r
+\r
+build tools:\r
+  gcc4\r
+  make\r
+\r
+x window support:\r
+  xterm\r
+  xinit\r
+\r
diff --git a/documentation/doc_fodder/bash_tools.html b/documentation/doc_fodder/bash_tools.html
new file mode 100644 (file)
index 0000000..655b028
--- /dev/null
@@ -0,0 +1,103 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+  <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+  <meta name="Author" content="Fred T. Hamster">
+  <meta name="generator"
+ content="Mozilla/5.0 (X11; U; Linux i686; en-US) [Mozilla]">
+  <meta name="Description"
+ content="Open Source Perl for Your Perusement">
+  <meta name="KeyWords"
+ content="reusable, open source, perl, shell, script, recursive, diff, snarf, yeti, free, source code, example, filename, snarfer">
+  <title>Feisty Meow Concerns Bash Scripts</title>
+  <meta content="Fred T. Hamster" name="author">
+  <meta
+ content="Assorted scripts for enhancing the bash environment and tools that automate fairly common actions."
+ name="description">
+</head>
+<body
+ style="background-image: url(pics/home_front_b_5.jpg); background-color: rgb(0, 0, 0); color: rgb(255, 255, 153);"
+ alink="#ffcc00" link="#66ff99" vlink="#00cc00">
+<h3>&nbsp; </h3>
+<center>
+<table bgcolor="#330000" border="4" cellpadding="0" cellspacing="0"
+ cols="1" width="92%">
+  <tbody>
+    <tr>
+      <td>
+      <center>
+      <h1><a href="http://feistymeow.org/">Feisty Meow Concerns</a>Open Source Bash Scripts</h1>
+      <h2>GPL-Licensed Bash Code<br>
+      </h2>
+      </center>
+      <center>Contributed by Chris Koeritz (<a
+ href="mailto:%20koeritz@gruntose.com">Koeritz@Gruntose.COM</a>) <br>
+See the <a href="http://www.gruntose.com/Info/GNU/GPL.html">GNU Public
+License</a> for details of licensing.<span style="font-style: italic;"></span><br>
+      </center>
+      <h4>Caveats: please refer to the <a href="perl_tools.html">Perl
+Scripts page</a> which shares the same constraints as these Bash
+Scripts do.<br>
+      </h4>
+      <span style="color: rgb(255, 255, 204);">Direct Cognition</span>:
+View the scripts directory itself rather than navigating with the links
+below: <a href=".">scripts</a>.
+      <ol>
+      </ol>
+      </td>
+    </tr>
+  </tbody>
+</table>
+</center>
+<h3>&nbsp; </h3>
+<center>
+<table bgcolor="#330000" border="4" cellpadding="0" cellspacing="0"
+ cols="1" width="92%">
+  <tbody>
+    <tr>
+      <td>
+      <h2>Assorted Bash Script Files</h2>
+      <blockquote>
+        <h3> <a href="uhh.sh">uhh.sh</a></h3>
+        <blockquote>This documentation page isn't quite ready yet.<br>
+In fact, this file is still in its very first few iterations and is
+pretty
+limited so far...<br>
+        </blockquote>
+        <h3> </h3>
+        <h3><a href="../database/movie_seeker.sh">movie_seeker.sh</a>
+/ <a href="../database/movie_stripper.sh">movie_stripper.sh</a>
+/&nbsp;<a href="../database/show_stripper.sh">show_stripper.sh</a><br>
+        </h3>
+        <div style="margin-left: 40px;">Some manipulation methods for a
+particular type of movie and TV show database.&nbsp; These expect a db
+in the form of a CSV file with three fields per line: (1) index number,
+(2) show or movie name and (3) show episode title.&nbsp; The third
+field is defined as blank for movies.&nbsp; The movie_seeker finds a
+given movie (or pattern) in the database.&nbsp; The movie_stripper
+pulls out all the unique movie or show names in the database.&nbsp; The
+show_stripper pulls out the episode names for a particular show name
+(or pattern).<br>
+        </div>
+        <h3><a href="../database/call_movie_seeker.sh">call_movie_seeker.sh</a>
+/ <a href="../database/call_movie_stripper.sh">call_movie_stripper.sh</a>
+/ <a href="../database/call_show_stripper.sh">call_show_stripper.sh</a><br>
+        </h3>
+        <div style="margin-left: 40px;">These are CGI correspondents to
+the above movie database searches.&nbsp; They're used on the Gruntose
+web site.<br>
+        </div>
+        <br>
+      </blockquote>
+      </td>
+    </tr>
+  </tbody>
+</table>
+</center>
+<br>
+<br>
+<br>
+<br>
+</body>
+</html>
diff --git a/documentation/doc_fodder/perl_tools.html b/documentation/doc_fodder/perl_tools.html
new file mode 100644 (file)
index 0000000..4c4ce4d
--- /dev/null
@@ -0,0 +1,357 @@
+<!DOCTYPE html PUBLIC "-//w3c//dtd html 4.0 transitional//en">
+<html>
+<head>
+  <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+  <meta name="Author" content="Fred T. Hamster">
+  <meta name="generator"
+ content="Mozilla/5.0 (X11; U; Linux i686; en-US) [Mozilla]">
+  <meta name="Description"
+ content="Open Source Perl for Your Perusement">
+  <meta name="KeyWords"
+ content="reusable, open source, perl, shell, script, recursive, diff, snarf, yeti, free, source code, example, filename, snarfer">
+  <title>Feisty Meow Concerns Perl Scripts</title>
+  <meta content="Fred T. Hamster" name="author">
+  <meta
+ content="Scripts for backing up hierarchies, generating documents from other documents, etc etc."
+ name="description">
+</head>
+<body
+ style="background-image: url(pics/celtic_destiny14.jpg); background-color: rgb(0, 0, 0); color: rgb(255, 255, 153);"
+ alink="#ffcc00" link="#66ff99" vlink="#00cc00">
+<h3>&nbsp; </h3>
+<center>
+<table bgcolor="#330000" border="4" cellpadding="0" cellspacing="0"
+ cols="1" width="92%">
+  <tbody>
+    <tr>
+      <td>
+      <center>
+      <h1><a href="http://feistymeow.org/">Feisty Meow Concerns Codebase</a> Open Source Perl
+Scripts</h1>
+      <h2>Some Hopefully Useful GPL-Licensed Perl Code<br>
+      </h2>
+      </center>
+      <center>Contributed by Chris Koeritz (<a
+ href="mailto:%20koeritz@gruntose.com">Koeritz@Gruntose.COM</a>) <br>
+See the <a href="http://www.gruntose.com/Info/GNU/GPL.html">GNU Public
+License</a> for details of licensing.<span style="font-style: italic;"></span><br>
+      </center>
+      <h4>Caveats:</h4>
+      <ol>
+        <li>No warranty, express, implied or imagined, is offered for
+these files.&nbsp; If you destroy your life by running one of them, I
+will have sympathy, but that's about it.</li>
+        <li>Some of these shell scripts depend on environment variables.&nbsp;
+The most frequent case of this is FEISTY_MEOW_APEX, which should point to the
+top-level
+directory where the Feisty Meow scripts are stored on your
+machine. &nbsp; This variable is set by default when the scripts are in
+the ~/feisty_meow folder.&nbsp; Consult your operating
+system documentation if you are
+unfamiliar with the concept or management of environment variables.</li>
+        <li>These files are provided as possibly useful shell scripts
+rather than as full-fledged reusable and object oriented components.</li>
+        <li>Improvements and contributions are gladly accepted.&nbsp;
+They will be processed as fast as our schedule permits.&nbsp; Please
+send any changes to the Gruntose Curator at <a
+ href="mailto:%20fred@gruntose.com">fred@gruntose.com</a> .</li>
+        <li>These files are mostly portable between Unix and the
+various Windoze OSes, but in many cases you may want to fix the
+defaults or path names to make them more suitable for your own needs.</li>
+        <li>Some of the scripts invoke external programs that are
+available for most Unixes.&nbsp; For Windoze users, a set of GNU Unix
+utilities is available at "<a href="http://www.mingw.org/">http://www.mingw.org/</a>".</li>
+        <li>An alternative, but not recommended, GNU suite is
+at "<a href="http://www.cygwin.com/">http://www.cygwin.com/</a>".</li>
+        <li><span style="color: rgb(255, 255, 204);">Direct Cognition</span>:
+View the scripts directory itself rather than navigating with the links
+below: <a href=".">scripts</a>.</li>
+      </ol>
+      </td>
+    </tr>
+  </tbody>
+</table>
+</center>
+<h3>&nbsp; </h3>
+<center>
+<table bgcolor="#330000" border="4" cellpadding="0" cellspacing="0"
+ cols="1" width="92%">
+  <tbody>
+    <tr>
+      <td>
+      <h2>Library Files<br>
+      </h2>
+      <blockquote>
+        <h3><a href="../text/diff_lib.pl">diff_lib.pl</a></h3>
+        <blockquote>The "differ" utilities can be used to compare two
+directories of text or binary files against each other.&nbsp; The two
+directories are presumably close in contents.&nbsp; This can be useful
+when one is revising a set of files and wants to synchronize an older
+copy against a newer version.&nbsp; Support for "<a href="#differ">differ.pl</a>"
+is provided
+here.</blockquote>
+        <h3> <a name="filename helper"></a><a
+ href="../files/filename_helper.pl">filename_helper.pl</a></h3>
+        <blockquote>Contains a handy set of utilities for manipulating
+filenames.&nbsp; These can help to make perl scripts portable across
+the two well-known types of filename separators ('/' and '\').&nbsp;
+They also provide support for ripping up filenames into their
+components.</blockquote>
+        <h3> <a href="../core/inc_num.pl">inc_num.pl</a></h3>
+        <blockquote>This is a simple utility that manages a file with a
+number in it.&nbsp; This is somewhat more useful than it sounds.&nbsp;
+Functions are provided to get the current number and to change the
+number.</blockquote>
+        <h3> </h3>
+        <h3> <a href="../archival/shared_snarfer.pl">shared_snarfer.pl</a></h3>
+        <blockquote>This library supports the "snarf" utilities.&nbsp;
+The
+utilities manipulate archive files with the ".snarf" extension.&nbsp;
+These
+packed
+snarf files are compressed chunks of directory hierarchies.&nbsp; Bob
+files
+are useful because they track a number per distinct "snarf" types that
+is
+used to make uniquely named new archives of the appropriate type.&nbsp;
+This
+number is an ever increasing integer that's stored in a well-known
+(configurable) location.&nbsp; When a snarf file is unpacked (using the
+"unsnarf" tool), the number is updated on the local machine so that the
+next generated file will
+be one greater than the previous number.&nbsp; If one is travelling
+between
+two machines with the same snarf file, this will have the effect of
+keeping
+the number updated on both sides.
+        </blockquote>
+        <h3><a href="../files/zap_the_dir.pl">zap_the_dir.pl</a></h3>
+        <blockquote>Support for the zapdirs utility.&nbsp; This library
+cleans out the directory that it is passed by removing files that are
+not considered important (using "<a href="#filename%20helper">filename_helper.pl</a>
+").&nbsp; The list of important files is something you might want to
+look at to ensure that you won't get burned by zapdirs.</blockquote>
+      </blockquote>
+      </td>
+    </tr>
+  </tbody>
+</table>
+</center>
+<h3>&nbsp; </h3>
+<center>
+<table bgcolor="#330000" border="4" cellpadding="0" cellspacing="0"
+ cols="1" width="92%">
+  <tbody>
+    <tr>
+      <td>
+      <h2>Applications</h2>
+      <blockquote>
+        <h3> <a href="../text/add_cr.pl">add_cr.pl</a></h3>
+        <blockquote>Processes Unix format text files for pcdos by
+forcing the line endings to be Carriage Return plus Line Feed (CRLF).</blockquote>
+        <h4> </h4>
+        <h3><a href="../cgi/cgi_display.pl">cgi_display.pl</a></h3>
+        <blockquote>Turns the files passed on the command line into a
+stream of CGI compatible text output. The javascript show_file method
+(see the
+source for this page) is preferred since it is lighter weight and
+doesn't
+need cgi, but there are some situations where cgi is the only option
+(older
+browsers or requirements of no javascript).</blockquote>
+        <h4> </h4>
+        <h3> <a href="../files/change_endings.pl">change_endings.pl</a></h3>
+        <blockquote>Replaces the suffix of all filenames in the current
+directory
+with a different suffix. &nbsp;Suffix here is defined as the set of
+characters
+after the last period ('.') in the name. &nbsp;Note this will not work
+for
+names without suffices.</blockquote>
+        <h3> </h3>
+        <h3><a href="../text/cpdiff.pl">cpdiff.pl</a></h3>
+        <blockquote>Copies files from a source directory into a
+destination directory.&nbsp; The files are only copied when they are
+missing in the destination or when the destination version has
+different contents.&nbsp; The syntax looks like this:<br>
+&nbsp;&nbsp;&nbsp; cpdiff&nbsp; source&nbsp; destination<br>
+The assumption is that the files in the source directory are somehow
+better, newer or more complete than the set of files in the destination.<br>
+        </blockquote>
+        <h3><a href="../text/cpdiffnow.pl">cpdiffnow.pl</a></h3>
+        <blockquote> Similar to cpdiff, but this utility sets the
+destination file's time stamp to "now".&nbsp; This should cause the new
+or changed files in the destination directory to be more recent than
+anything else in there.&nbsp; This is helpful sometimes for forcing
+compilation of modified source files.<br>
+        </blockquote>
+        <h4> </h4>
+        <h3><a href="../rev_control/cvs_fix.pl">cvs_fix.pl</a></h3>
+        <blockquote>Wraps the cygwin cvs command for pcdos/win32.
+&nbsp;Any
+unfriendly backward slashes are flipped to be forward slashes.<br>
+        </blockquote>
+        <h3> </h3>
+        <h3><a name="differ"></a><a
+ href="../text/differ.pl">differ.pl</a></h3>
+        <blockquote>Compares two directory hierarchies and the files
+they
+contain.&nbsp; The first parameter is a directory
+to compare against "this" directory;
+every subdirectory "here" will be traversed in order to build the
+output file that shows the differences.&nbsp; An optional second
+argument can be used to specify a different directory than the current
+one as the source of the comparison (the first argument is always the
+destination of the comparison).</blockquote>
+        <h3> <a href="../files/filedump.pl">filedump.pl</a></h3>
+        <blockquote>Collects the contents of the files whose names are
+passed on the command line into one gigundo stream which is passed to
+standard output. The output can be piped into another file as desired.</blockquote>
+        <h3> <a href="../core/generate_aliases.pl">generate_aliases.pl</a></h3>
+        <blockquote>Performs some useful activities for the shell
+environment.&nbsp; Using the environment variable for FEISTY_MEOW_SCRIPTS (which
+is set in the appropriate startup files to be the shell scripts
+directory, where all this stuff lives), generate_aliases will create
+all of the aliases files for the combinations of operating systems and
+types of shells supported.&nbsp; Currently this includes Linux, Unix,
+PCDOS, OS/2 and MS-WIN32 (9x, NT, 2K, XP, etc) for
+supported operating systems.&nbsp; The shell languages supported are
+dos's command, nt's cmd, unix's sh and bash, and perl.&nbsp; This script will also look for
+any files ending in ".sh" or ".pl" and it will create aliases for them
+in forms appropriate to the different shells. &nbsp;The .zz_feisty_loading
+subdirectory is created under the home directory as a storage place for the generated script
+files.</blockquote>
+        <h4> </h4>
+        <h3> <a href="../text/new_sig.pl">new_sig.pl</a></h3>
+        <blockquote>Generates a signature file from the nechung
+database
+using the 'nechung' application. &nbsp;See the <a
+ href="http://feistymeow.org/">Feisty Meow Concerns Codebase</a> for the nechung
+application.
+&nbsp;The database for nechung resides in the <a href="#download">whole Feisty Meow Concerns code package</a> in "feisty_meow/infobase".</blockquote>
+        <h3> </h3>
+        <h3> <a href="../files/renlower.pl">renlower.pl</a></h3>
+        <blockquote>Renames all of the files passed on the command line
+such that they are only in lower-case.&nbsp; Useful if you're tired of
+passing mistakenly re-capitalized names from a defective 8.3 OS (e.g.
+Doze95/98) to
+a file system where you care about the case.</blockquote>
+        <h3><a href="../processes/runner.pl">runner.pl</a></h3>
+        <blockquote>Finds all executable files in the current directory
+(and subdirectories) and runs them.&nbsp; The output of the programs is
+sent to standard output.&nbsp; Standard error is used to report which
+file is being worked on, plus the running programs' own standard error
+streams are merged into runner's standard error stream.&nbsp; This
+makes it nice to do something like:<br>
+&nbsp;&nbsp;&nbsp; &nbsp;&nbsp; runner &gt;runs.log<br>
+where the runs.log file will contain the output of each program that
+was executed and the console will be sent messages as each program is
+started and finished (and errors show up at the console also).<br>
+        </blockquote>
+        <h3> <a name="safedel"></a><a
+ href="../files/safedel.pl">safedel.pl</a></h3>
+        <blockquote>Makes deleting files and directories a little less
+nerve-wracking.&nbsp; If you substitute safedel as an alias for rm or
+del or deltree or whatever, it will make a zipped backup of the items
+before they are actually deleted.&nbsp; Safedel keeps track of a number
+that is attached to each zip to enforce uniquely numbered
+archives.&nbsp; They are stored in a directory named "zz_safedel_keep"
+that is stored under the temorary directory (specified by the
+environment
+variable named TMP).&nbsp; A report of the contents of the compressed
+trash
+is appended to a file named "zz_safedel.rpt" in the TMP directory.&nbsp;
+Occasional
+cleaning of the deleted files folder is recommend, but this utility has
+saved
+my various parts several times already.</blockquote>
+        <h4> </h4>
+        <h3> </h3>
+        <h3><a href="../archival/snarf_linux_config.pl">snarf_linux_config.pl</a></h3>
+        <blockquote>A snarf utility that packages up the
+important configuration files in a Linux installation.</blockquote>
+        <h4> </h4>
+        <h3> <a href="../archival/snarf_light.pl">snarf_light.pl</a></h3>
+        <blockquote>A selective snarf of the source hierarchy.&nbsp;
+This
+collects the code that I manage.&nbsp; As such, this is probably
+irrelevant to anyone but CAK.</blockquote>
+        <h3><a href="../archival/snarf_notes.pl">snarf_notes.pl</a></h3>
+        <blockquote>Gathers all "important" files from the home
+directory.
+&nbsp;This
+is somewhat personally tuned but it includes files and directories that
+have
+"project", "notes", or "crucial" in their name.</blockquote>
+        <h3> </h3>
+        <h3> <a href="../archival/snarf_src.pl">snarf_src.pl</a></h3>
+        <blockquote>A source code grabbing snarfer.&nbsp; The entire
+source
+code hierarchy is snarfed.&nbsp; Note that one should edit the
+hierarchy
+location to make it appropriate for your local source code.</blockquote>
+
+        <h3><a href="../files/summing_dir.pl">summing_dir.pl</a></h3>
+        <blockquote>Offers a directory listing along with total file
+sizes
+and disk free space.<br>
+          <br>
+        </blockquote>
+        <h3><a href="../build/synch_build.pl">synch_build.pl</a></h3>
+        <blockquote>This is a helper utility that synchronizes the binary
+outputs from a build process with an existing installed location.&nbsp; Given a target directory, the executable
+programs and dynamic libraries that exist there will be synchronized
+with the build repository's versions.&nbsp; This is kind of a quickie
+upgrade process, as long as the files in the target location are not
+locked by other processes.<br>
+        </blockquote>
+        <h3> <a href="../archival/unsnarf.pl">unsnarf.pl</a></h3>
+        <blockquote>Uses the snarfer utilities to undo a previously
+snarfed file.&nbsp; A folder named "snarf_BASE" is created for the
+contents, where BASE
+is replaced with the basename of the snarf file (that is, without the
+".snarf"
+suffix).&nbsp; The number that tracks the snarf files of this type is
+updated
+such that the next snarf file will be at least one higher than this
+snarf's
+sorta
+unique number.&nbsp; The number will be managed correctly if you're
+always
+unsnarfing the most recent snarf files before creating any new snarfs.</blockquote>
+        <h4> </h4>
+        <h3> <a href="../files/whack_forever.pl">whack_forever.pl</a></h3>
+        <blockquote>Since all of my file deletion commands are aliases
+to <a href="#safedel">safedel</a>, it is hard to actually remove a
+file. &nbsp;If I'm really really sure that a file or directory needs to
+be
+permanently deleted, then this command can be used. &nbsp;It shows the
+names
+it is removing also, but it does _not_ ask for confirmation.</blockquote>
+        <h3> </h3>
+        <h3><a href="../security/y2038_check.pl">y2038_check.pl</a></h3>
+        <div style="margin-left: 40px;">Tests the system for survival
+past the year 2038, which is when the Unix time scale runs out of bits
+for the number of seconds since 1970 measured in a 32 bit integer.<br>
+        </div>
+        <h3><a href="../files/zapdirs.pl">zapdirs.pl</a></h3>
+        <blockquote>Removes empty directories and directories
+containing only
+unimportant crud (see "<a href="#filename%20helper">filename_helper.pl</a>").&nbsp;
+If there are no arguments, then the current directory is cleaned up;
+any subdirectories
+will be traversed into and removed if it seems appropriate.&nbsp;
+Otherwise,
+zapdirs operates on the arguments passed to it as if they are directory
+names
+to be cleaned.</blockquote>
+      </blockquote>
+      </td>
+    </tr>
+  </tbody>
+</table>
+<h3>&nbsp;</h3>
+</center>
+</body>
+</html>
diff --git a/documentation/doc_fodder/readme.txt b/documentation/doc_fodder/readme.txt
new file mode 100644 (file)
index 0000000..7194c94
--- /dev/null
@@ -0,0 +1,3 @@
+
+
+these are bits of documentation that could be scavenged.
diff --git a/documentation/doxygen_objdb_22847.tmp b/documentation/doxygen_objdb_22847.tmp
new file mode 100644 (file)
index 0000000..e69de29
diff --git a/documentation/feisty_meow_dox.config b/documentation/feisty_meow_dox.config
new file mode 100644 (file)
index 0000000..4c0f610
--- /dev/null
@@ -0,0 +1,1225 @@
+# Doxyfile 1.5.0
+
+# This file describes the settings to be used by the documentation system
+# doxygen (www.doxygen.org) for a project
+#
+# All text after a hash (#) is considered a comment and will be ignored
+# The format is:
+#       TAG = value [value, ...]
+# For lists items can also be appended using:
+#       TAG += value [value, ...]
+# Values that contain spaces should be placed between quotes (" ")
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+
+# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
+# by quotes) that should identify the project.
+
+PROJECT_NAME           = "feisty meow concerns codebase"
+
+# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
+# This could be handy for archiving the generated documentation or 
+# if some version control system is used.
+
+PROJECT_NUMBER         = 2.108
+
+# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
+# base path where the generated documentation will be put. 
+# If a relative path is entered, it will be relative to the location 
+# where doxygen was started. If left blank the current directory will be used.
+
+OUTPUT_DIRECTORY       = 
+
+# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
+# 4096 sub-directories (in 2 levels) under the output directory of each output 
+# format and will distribute the generated files over these directories. 
+# Enabling this option can be useful when feeding doxygen a huge amount of 
+# source files, where putting all generated files in the same directory would 
+# otherwise cause performance problems for the file system.
+
+CREATE_SUBDIRS         = NO
+
+# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
+# documentation generated by doxygen is written. Doxygen will use this 
+# information to generate all constant output in the proper language. 
+# The default language is English, other supported languages are: 
+# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
+# Croatian, Czech, Danish, Dutch, Finnish, French, German, Greek, Hungarian, 
+# Italian, Japanese, Japanese-en (Japanese with English messages), Korean, 
+# Korean-en, Lithuanian, Norwegian, Polish, Portuguese, Romanian, Russian, 
+# Serbian, Slovak, Slovene, Spanish, Swedish, and Ukrainian.
+
+OUTPUT_LANGUAGE        = English
+
+# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
+# include brief member descriptions after the members that are listed in 
+# the file and class documentation (similar to JavaDoc). 
+# Set to NO to disable this.
+
+BRIEF_MEMBER_DESC      = YES
+
+# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
+# the brief description of a member or function before the detailed description. 
+# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
+# brief descriptions will be completely suppressed.
+
+REPEAT_BRIEF           = YES
+
+# This tag implements a quasi-intelligent brief description abbreviator 
+# that is used to form the text in various listings. Each string 
+# in this list, if found as the leading text of the brief description, will be 
+# stripped from the text and the result after processing the whole list, is 
+# used as the annotated text. Otherwise, the brief description is used as-is. 
+# If left blank, the following values are used ("$name" is automatically 
+# replaced with the name of the entity): "The $name class" "The $name widget" 
+# "The $name file" "is" "provides" "specifies" "contains" 
+# "represents" "a" "an" "the"
+
+ABBREVIATE_BRIEF       = 
+
+# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
+# Doxygen will generate a detailed section even if there is only a brief 
+# description.
+
+ALWAYS_DETAILED_SEC    = NO
+
+# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
+# inherited members of a class in the documentation of that class as if those 
+# members were ordinary class members. Constructors, destructors and assignment 
+# operators of the base classes will not be shown.
+
+INLINE_INHERITED_MEMB  = NO
+
+# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
+# path before files name in the file list and in the header files. If set 
+# to NO the shortest path that makes the file name unique will be used.
+
+FULL_PATH_NAMES        = YES
+
+# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
+# can be used to strip a user-defined part of the path. Stripping is 
+# only done if one of the specified strings matches the left-hand part of 
+# the path. The tag can be used to show relative paths in the file list. 
+# If left blank the directory from which doxygen is run is used as the 
+# path to strip.
+
+STRIP_FROM_PATH        = 
+
+# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
+# the path mentioned in the documentation of a class, which tells 
+# the reader which header file to include in order to use a class. 
+# If left blank only the name of the header file containing the class 
+# definition is used. Otherwise one should specify the include paths that 
+# are normally passed to the compiler using the -I flag.
+
+STRIP_FROM_INC_PATH    = 
+
+# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
+# (but less readable) file names. This can be useful is your file systems 
+# doesn't support long names like on DOS, Mac, or CD-ROM.
+
+SHORT_NAMES            = NO
+
+# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
+# will interpret the first line (until the first dot) of a JavaDoc-style 
+# comment as the brief description. If set to NO, the JavaDoc 
+# comments will behave just like the Qt-style comments (thus requiring an 
+# explicit @brief command for a brief description.
+
+JAVADOC_AUTOBRIEF      = NO
+
+# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
+# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
+# comments) as a brief description. This used to be the default behaviour. 
+# The new default is to treat a multi-line C++ comment block as a detailed 
+# description. Set this tag to YES if you prefer the old behaviour instead.
+
+MULTILINE_CPP_IS_BRIEF = NO
+
+# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
+# member inherits the documentation from any documented member that it 
+# re-implements.
+
+INHERIT_DOCS           = YES
+
+# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
+# a new page for each member. If set to NO, the documentation of a member will 
+# be part of the file/class/namespace that contains it.
+
+SEPARATE_MEMBER_PAGES  = NO
+
+# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
+# Doxygen uses this value to replace tabs by spaces in code fragments.
+
+TAB_SIZE               = 2
+
+# This tag can be used to specify a number of aliases that acts 
+# as commands in the documentation. An alias has the form "name=value". 
+# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
+# put the command \sideeffect (or @sideeffect) in the documentation, which 
+# will result in a user-defined paragraph with heading "Side Effects:". 
+# You can put \n's in the value part of an alias to insert newlines.
+
+ALIASES                = 
+
+# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
+# sources only. Doxygen will then generate output that is more tailored for C. 
+# For instance, some of the names that are used will be different. The list 
+# of all members will be omitted, etc.
+
+OPTIMIZE_OUTPUT_FOR_C  = NO
+
+# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
+# sources only. Doxygen will then generate output that is more tailored for Java. 
+# For instance, namespaces will be presented as packages, qualified scopes 
+# will look different, etc.
+
+OPTIMIZE_OUTPUT_JAVA   = NO
+
+# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want to 
+# include (a tag file for) the STL sources as input, then you should 
+# set this tag to YES in order to let doxygen match functions declarations and 
+# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
+# func(std::string) {}). This also make the inheritance and collaboration 
+# diagrams that involve STL classes more complete and accurate.
+
+BUILTIN_STL_SUPPORT    = NO
+
+# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
+# tag is set to YES, then doxygen will reuse the documentation of the first 
+# member in the group (if any) for the other members of the group. By default 
+# all members of a group must be documented explicitly.
+
+DISTRIBUTE_GROUP_DOC   = NO
+
+# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
+# the same type (for instance a group of public functions) to be put as a 
+# subgroup of that type (e.g. under the Public Functions section). Set it to 
+# NO to prevent subgrouping. Alternatively, this can be done per class using 
+# the \nosubgrouping command.
+
+SUBGROUPING            = YES
+
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+
+# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
+# documentation are documented, even if no documentation was available. 
+# Private class members and static file members will be hidden unless 
+# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
+
+EXTRACT_ALL            = YES
+
+# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
+# will be included in the documentation.
+
+EXTRACT_PRIVATE        = NO
+
+# If the EXTRACT_STATIC tag is set to YES all static members of a file 
+# will be included in the documentation.
+
+EXTRACT_STATIC         = NO
+
+# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
+# defined locally in source files will be included in the documentation. 
+# If set to NO only classes defined in header files are included.
+
+EXTRACT_LOCAL_CLASSES  = NO
+
+# This flag is only useful for Objective-C code. When set to YES local 
+# methods, which are defined in the implementation section but not in 
+# the interface are included in the documentation. 
+# If set to NO (the default) only methods in the interface are included.
+
+EXTRACT_LOCAL_METHODS  = NO
+
+# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
+# undocumented members of documented classes, files or namespaces. 
+# If set to NO (the default) these members will be included in the 
+# various overviews, but no documentation section is generated. 
+# This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_MEMBERS     = NO
+
+# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
+# undocumented classes that are normally visible in the class hierarchy. 
+# If set to NO (the default) these classes will be included in the various 
+# overviews. This option has no effect if EXTRACT_ALL is enabled.
+
+HIDE_UNDOC_CLASSES     = NO
+
+# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
+# friend (class|struct|union) declarations. 
+# If set to NO (the default) these declarations will be included in the 
+# documentation.
+
+HIDE_FRIEND_COMPOUNDS  = NO
+
+# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
+# documentation blocks found inside the body of a function. 
+# If set to NO (the default) these blocks will be appended to the 
+# function's detailed documentation block.
+
+HIDE_IN_BODY_DOCS      = NO
+
+# The INTERNAL_DOCS tag determines if documentation 
+# that is typed after a \internal command is included. If the tag is set 
+# to NO (the default) then the documentation will be excluded. 
+# Set it to YES to include the internal documentation.
+
+INTERNAL_DOCS          = NO
+
+# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
+# file names in lower-case letters. If set to YES upper-case letters are also 
+# allowed. This is useful if you have classes or files whose names only differ 
+# in case and if your file system supports case sensitive file names. Windows 
+# and Mac users are advised to set this option to NO.
+
+CASE_SENSE_NAMES       = YES
+
+# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
+# will show members with their full class and namespace scopes in the 
+# documentation. If set to YES the scope will be hidden.
+
+HIDE_SCOPE_NAMES       = NO
+
+# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
+# will put a list of the files that are included by a file in the documentation 
+# of that file.
+
+SHOW_INCLUDE_FILES     = YES
+
+# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
+# is inserted in the documentation for inline members.
+
+INLINE_INFO            = YES
+
+# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
+# will sort the (detailed) documentation of file and class members 
+# alphabetically by member name. If set to NO the members will appear in 
+# declaration order.
+
+SORT_MEMBER_DOCS       = YES
+
+# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
+# brief documentation of file, namespace and class members alphabetically 
+# by member name. If set to NO (the default) the members will appear in 
+# declaration order.
+
+SORT_BRIEF_DOCS        = NO
+
+# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
+# sorted by fully-qualified names, including namespaces. If set to 
+# NO (the default), the class list will be sorted only by class name, 
+# not including the namespace part. 
+# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
+# Note: This option applies only to the class list, not to the 
+# alphabetical list.
+
+SORT_BY_SCOPE_NAME     = NO
+
+# The GENERATE_TODOLIST tag can be used to enable (YES) or 
+# disable (NO) the todo list. This list is created by putting \todo 
+# commands in the documentation.
+
+GENERATE_TODOLIST      = YES
+
+# The GENERATE_TESTLIST tag can be used to enable (YES) or 
+# disable (NO) the test list. This list is created by putting \test 
+# commands in the documentation.
+
+GENERATE_TESTLIST      = YES
+
+# The GENERATE_BUGLIST tag can be used to enable (YES) or 
+# disable (NO) the bug list. This list is created by putting \bug 
+# commands in the documentation.
+
+GENERATE_BUGLIST       = YES
+
+# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
+# disable (NO) the deprecated list. This list is created by putting 
+# \deprecated commands in the documentation.
+
+GENERATE_DEPRECATEDLIST= YES
+
+# The ENABLED_SECTIONS tag can be used to enable conditional 
+# documentation sections, marked by \if sectionname ... \endif.
+
+ENABLED_SECTIONS       = 
+
+# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
+# the initial value of a variable or define consists of for it to appear in 
+# the documentation. If the initializer consists of more lines than specified 
+# here it will be hidden. Use a value of 0 to hide initializers completely. 
+# The appearance of the initializer of individual variables and defines in the 
+# documentation can be controlled using \showinitializer or \hideinitializer 
+# command in the documentation regardless of this setting.
+
+MAX_INITIALIZER_LINES  = 30
+
+# Set the SHOW_USED_FILES tag to NO to disable the list of files generated 
+# at the bottom of the documentation of classes and structs. If set to YES the 
+# list will mention the files that were used to generate the documentation.
+
+SHOW_USED_FILES        = YES
+
+# If the sources in your project are distributed over multiple directories 
+# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
+# in the documentation. The default is NO.
+
+SHOW_DIRECTORIES       = YES
+
+# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
+# doxygen should invoke to get the current version for each file (typically from the 
+# version control system). Doxygen will invoke the program by executing (via 
+# popen()) the command <command> <input-file>, where <command> is the value of 
+# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
+# provided by doxygen. Whatever the program writes to standard output 
+# is used as the file version. See the manual for examples.
+
+FILE_VERSION_FILTER    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+
+# The QUIET tag can be used to turn on/off the messages that are generated 
+# by doxygen. Possible values are YES and NO. If left blank NO is used.
+
+QUIET                  = NO
+
+# The WARNINGS tag can be used to turn on/off the warning messages that are 
+# generated by doxygen. Possible values are YES and NO. If left blank 
+# NO is used.
+
+WARNINGS               = YES
+
+# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
+# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
+# automatically be disabled.
+
+WARN_IF_UNDOCUMENTED   = YES
+
+# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
+# potential errors in the documentation, such as not documenting some 
+# parameters in a documented function, or documenting parameters that 
+# don't exist or using markup commands wrongly.
+
+WARN_IF_DOC_ERROR      = YES
+
+# This WARN_NO_PARAMDOC option can be abled to get warnings for 
+# functions that are documented, but have no documentation for their parameters 
+# or return value. If set to NO (the default) doxygen will only warn about 
+# wrong or incomplete parameter documentation, but not about the absence of 
+# documentation.
+
+WARN_NO_PARAMDOC       = NO
+
+# The WARN_FORMAT tag determines the format of the warning messages that 
+# doxygen can produce. The string should contain the $file, $line, and $text 
+# tags, which will be replaced by the file and line number from which the 
+# warning originated and the warning text. Optionally the format may contain 
+# $version, which will be replaced by the version of the file (if it could 
+# be obtained via FILE_VERSION_FILTER)
+
+WARN_FORMAT            = "$file:$line: $text"
+
+# The WARN_LOGFILE tag can be used to specify a file to which warning 
+# and error messages should be written. If left blank the output is written 
+# to stderr.
+
+WARN_LOGFILE           = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the input files
+#---------------------------------------------------------------------------
+
+# The INPUT tag can be used to specify the files and/or directories that contain 
+# documented source files. You may enter file names like "myfile.cpp" or 
+# directories like "/usr/src/myproject". Separate the files or directories 
+# with spaces.
+
+INPUT = \
+  $(FEISTY_MEOW_APEX)/scripts \
+  $(FEISTY_MEOW_APEX)/nucleus \
+  $(FEISTY_MEOW_APEX)/octopi \
+  $(FEISTY_MEOW_APEX)/graphiq \
+  $(FEISTY_MEOW_APEX)/kona/src \
+  $(PRODUCTION_STORE)/setup_src
+
+# If the value of the INPUT tag contains directories, you can use the 
+# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank the following patterns are tested: 
+# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
+# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py
+
+FILE_PATTERNS          = 
+
+# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
+# should be searched for input files as well. Possible values are YES and NO. 
+# If left blank NO is used.
+
+RECURSIVE              = YES
+
+# The EXCLUDE tag can be used to specify files and/or directories that should 
+# excluded from the INPUT source files. This way you can easily exclude a 
+# subdirectory from a directory tree whose root is specified with the INPUT tag.
+
+EXCLUDE                = 
+
+# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
+# directories that are symbolic links (a Unix filesystem feature) are excluded 
+# from the input.
+
+EXCLUDE_SYMLINKS       = NO
+
+# If the value of the INPUT tag contains directories, you can use the 
+# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
+# certain files from those directories. Note that the wildcards are matched 
+# against the file with absolute path, so to exclude all test directories 
+# for example use the pattern */test/*
+
+EXCLUDE_PATTERNS       = "*/3rdparty/*" "*/bin/*" "*/binaries/*" "*/clam_bin/*" "*/install/*" "*/logs/*" "*/objects/*" "*/packages/*" "*/waste/*"
+
+# The EXAMPLE_PATH tag can be used to specify one or more files or 
+# directories that contain example code fragments that are included (see 
+# the \include command).
+
+EXAMPLE_PATH           = 
+
+# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
+# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
+# and *.h) to filter out the source-files in the directories. If left 
+# blank all files are included.
+
+EXAMPLE_PATTERNS       = 
+
+# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
+# searched for input files to be used with the \include or \dontinclude 
+# commands irrespective of the value of the RECURSIVE tag. 
+# Possible values are YES and NO. If left blank NO is used.
+
+EXAMPLE_RECURSIVE      = NO
+
+# The IMAGE_PATH tag can be used to specify one or more files or 
+# directories that contain image that are included in the documentation (see 
+# the \image command).
+
+IMAGE_PATH             = 
+
+# The INPUT_FILTER tag can be used to specify a program that doxygen should 
+# invoke to filter for each input file. Doxygen will invoke the filter program 
+# by executing (via popen()) the command <filter> <input-file>, where <filter> 
+# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
+# input file. Doxygen will then use the output that the filter program writes 
+# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
+# ignored.
+
+INPUT_FILTER           = 
+
+# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
+# basis.  Doxygen will compare the file name with each pattern and apply the 
+# filter if there is a match.  The filters are a list of the form: 
+# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
+# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
+# is applied to all files.
+
+FILTER_PATTERNS        = 
+
+# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
+# INPUT_FILTER) will be used to filter the input files when producing source 
+# files to browse (i.e. when SOURCE_BROWSER is set to YES).
+
+FILTER_SOURCE_FILES    = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to source browsing
+#---------------------------------------------------------------------------
+
+# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
+# be generated. Documented entities will be cross-referenced with these sources. 
+# Note: To get rid of all source code in the generated output, make sure also 
+# VERBATIM_HEADERS is set to NO.
+
+SOURCE_BROWSER         = YES
+
+# Setting the INLINE_SOURCES tag to YES will include the body 
+# of functions and classes directly in the documentation.
+
+INLINE_SOURCES         = NO
+
+# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
+# doxygen to hide any special comment blocks from generated source code 
+# fragments. Normal C and C++ comments will always remain visible.
+
+STRIP_CODE_COMMENTS    = YES
+
+# If the REFERENCED_BY_RELATION tag is set to YES (the default) 
+# then for each documented function all documented 
+# functions referencing it will be listed.
+
+REFERENCED_BY_RELATION = YES
+
+# If the REFERENCES_RELATION tag is set to YES (the default) 
+# then for each documented function all documented entities 
+# called/used by that function will be listed.
+
+REFERENCES_RELATION    = YES
+
+# If the REFERENCES_LINK_SOURCE tag is set to YES (the default)
+# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from
+# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will
+# link to the source code.  Otherwise they will link to the documentstion.
+
+REFERENCES_LINK_SOURCE = YES
+
+# If the USE_HTAGS tag is set to YES then the references to source code 
+# will point to the HTML generated by the htags(1) tool instead of doxygen 
+# built-in source browser. The htags tool is part of GNU's global source 
+# tagging system (see http://www.gnu.org/software/global/global.html). You 
+# will need version 4.8.6 or higher.
+
+USE_HTAGS              = NO
+
+# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
+# will generate a verbatim copy of the header file for each class for 
+# which an include is specified. Set to NO to disable this.
+
+VERBATIM_HEADERS       = YES
+
+#---------------------------------------------------------------------------
+# configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+
+# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
+# of all compounds will be generated. Enable this if the project 
+# contains a lot of classes, structs, unions or interfaces.
+
+ALPHABETICAL_INDEX     = YES
+
+# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
+# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
+# in which this list will be split (can be a number in the range [1..20])
+
+COLS_IN_ALPHA_INDEX    = 5
+
+# In case all classes in a project start with a common prefix, all 
+# classes will be put under the same header in the alphabetical index. 
+# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
+# should be ignored while generating the index headers.
+
+IGNORE_PREFIX          = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the HTML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
+# generate HTML output.
+
+GENERATE_HTML          = YES
+
+# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `html' will be used as the default path.
+
+HTML_OUTPUT            = $(PRODUCTION_STORE)/code_guide
+
+# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
+# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
+# doxygen will generate files with .html extension.
+
+HTML_FILE_EXTENSION    = .html
+
+# The HTML_HEADER tag can be used to specify a personal HTML header for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard header.
+
+HTML_HEADER            = 
+
+# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
+# each generated HTML page. If it is left blank doxygen will generate a 
+# standard footer.
+
+HTML_FOOTER            = 
+
+# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
+# style sheet that is used by each HTML page. It can be used to 
+# fine-tune the look of the HTML output. If the tag is left blank doxygen 
+# will generate a default style sheet. Note that doxygen will try to copy 
+# the style sheet file to the HTML output directory, so don't put your own 
+# stylesheet in the HTML output directory as well, or it will be erased!
+
+HTML_STYLESHEET        = 
+
+# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
+# files or namespaces will be aligned in HTML using tables. If set to 
+# NO a bullet list will be used.
+
+HTML_ALIGN_MEMBERS     = YES
+
+# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
+# will be generated that can be used as input for tools like the 
+# Microsoft HTML help workshop to generate a compressed HTML help file (.chm) 
+# of the generated HTML documentation.
+
+GENERATE_HTMLHELP      = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
+# be used to specify the file name of the resulting .chm file. You 
+# can add a path in front of the file if the result should not be 
+# written to the html output directory.
+
+CHM_FILE               = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
+# be used to specify the location (absolute path including file name) of 
+# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
+# the HTML help compiler on the generated index.hhp.
+
+HHC_LOCATION           = 
+
+# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
+# controls if a separate .chi index file is generated (YES) or that 
+# it should be included in the master .chm file (NO).
+
+GENERATE_CHI           = NO
+
+# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
+# controls whether a binary table of contents is generated (YES) or a 
+# normal table of contents (NO) in the .chm file.
+
+BINARY_TOC             = NO
+
+# The TOC_EXPAND flag can be set to YES to add extra items for group members 
+# to the contents of the HTML help documentation and to the tree view.
+
+TOC_EXPAND             = NO
+
+# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
+# top of each HTML page. The value NO (the default) enables the index and 
+# the value YES disables it.
+
+DISABLE_INDEX          = NO
+
+# This tag can be used to set the number of enum values (range [1..20]) 
+# that doxygen will group on one line in the generated HTML documentation.
+
+ENUM_VALUES_PER_LINE   = 4
+
+# If the GENERATE_TREEVIEW tag is set to YES, a side panel will be
+# generated containing a tree-like index structure (just like the one that 
+# is generated for HTML Help). For this to work a browser that supports 
+# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
+# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
+# probably better off using the HTML help feature.
+
+GENERATE_TREEVIEW      = YES
+
+# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
+# used to set the initial width (in pixels) of the frame in which the tree 
+# is shown.
+
+TREEVIEW_WIDTH         = 250
+
+#---------------------------------------------------------------------------
+# configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
+# generate Latex output.
+
+GENERATE_LATEX         = NO
+
+# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `latex' will be used as the default path.
+
+LATEX_OUTPUT           = latex
+
+# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
+# invoked. If left blank `latex' will be used as the default command name.
+
+LATEX_CMD_NAME         = latex
+
+# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
+# generate index for LaTeX. If left blank `makeindex' will be used as the 
+# default command name.
+
+MAKEINDEX_CMD_NAME     = makeindex
+
+# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
+# LaTeX documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_LATEX          = NO
+
+# The PAPER_TYPE tag can be used to set the paper type that is used 
+# by the printer. Possible values are: a4, a4wide, letter, legal and 
+# executive. If left blank a4wide will be used.
+
+PAPER_TYPE             = a4wide
+
+# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
+# packages that should be included in the LaTeX output.
+
+EXTRA_PACKAGES         = 
+
+# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
+# the generated latex document. The header should contain everything until 
+# the first chapter. If it is left blank doxygen will generate a 
+# standard header. Notice: only use this tag if you know what you are doing!
+
+LATEX_HEADER           = 
+
+# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
+# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
+# contain links (just like the HTML output) instead of page references 
+# This makes the output suitable for online browsing using a pdf viewer.
+
+PDF_HYPERLINKS         = NO
+
+# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
+# plain latex in the generated Makefile. Set this option to YES to get a 
+# higher quality PDF documentation.
+
+USE_PDFLATEX           = NO
+
+# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
+# command to the generated LaTeX files. This will instruct LaTeX to keep 
+# running if errors occur, instead of asking the user for help. 
+# This option is also used when generating formulas in HTML.
+
+LATEX_BATCHMODE        = NO
+
+# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
+# include the index chapters (such as File Index, Compound Index, etc.) 
+# in the output.
+
+LATEX_HIDE_INDICES     = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the RTF output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
+# The RTF output is optimized for Word 97 and may not look very pretty with 
+# other RTF readers or editors.
+
+GENERATE_RTF           = NO
+
+# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `rtf' will be used as the default path.
+
+RTF_OUTPUT             = rtf
+
+# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
+# RTF documents. This may be useful for small projects and may help to 
+# save some trees in general.
+
+COMPACT_RTF            = NO
+
+# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
+# will contain hyperlink fields. The RTF file will 
+# contain links (just like the HTML output) instead of page references. 
+# This makes the output suitable for online browsing using WORD or other 
+# programs which support those fields. 
+# Note: wordpad (write) and others do not support links.
+
+RTF_HYPERLINKS         = NO
+
+# Load stylesheet definitions from file. Syntax is similar to doxygen's 
+# config file, i.e. a series of assignments. You only have to provide 
+# replacements, missing definitions are set to their default value.
+
+RTF_STYLESHEET_FILE    = 
+
+# Set optional variables used in the generation of an rtf document. 
+# Syntax is similar to doxygen's config file.
+
+RTF_EXTENSIONS_FILE    = 
+
+#---------------------------------------------------------------------------
+# configuration options related to the man page output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
+# generate man pages
+
+GENERATE_MAN           = NO
+
+# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `man' will be used as the default path.
+
+MAN_OUTPUT             = man
+
+# The MAN_EXTENSION tag determines the extension that is added to 
+# the generated man pages (default is the subroutine's section .3)
+
+MAN_EXTENSION          = .3
+
+# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
+# then it will generate one additional man file for each entity 
+# documented in the real man page(s). These additional files 
+# only source the real man page, but without them the man command 
+# would be unable to find the correct page. The default is NO.
+
+MAN_LINKS              = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the XML output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_XML tag is set to YES Doxygen will 
+# generate an XML file that captures the structure of 
+# the code including all documentation.
+
+GENERATE_XML           = NO
+
+# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
+# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
+# put in front of it. If left blank `xml' will be used as the default path.
+
+XML_OUTPUT             = xml
+
+# The XML_SCHEMA tag can be used to specify an XML schema, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_SCHEMA             = 
+
+# The XML_DTD tag can be used to specify an XML DTD, 
+# which can be used by a validating XML parser to check the 
+# syntax of the XML files.
+
+XML_DTD                = 
+
+# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
+# dump the program listings (including syntax highlighting 
+# and cross-referencing information) to the XML output. Note that 
+# enabling this will significantly increase the size of the XML output.
+
+XML_PROGRAMLISTING     = YES
+
+#---------------------------------------------------------------------------
+# configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
+# generate an AutoGen Definitions (see autogen.sf.net) file 
+# that captures the structure of the code including all 
+# documentation. Note that this feature is still experimental 
+# and incomplete at the moment.
+
+GENERATE_AUTOGEN_DEF   = NO
+
+#---------------------------------------------------------------------------
+# configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+
+# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
+# generate a Perl module file that captures the structure of 
+# the code including all documentation. Note that this 
+# feature is still experimental and incomplete at the 
+# moment.
+
+GENERATE_PERLMOD       = NO
+
+# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
+# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
+# to generate PDF and DVI output from the Perl module output.
+
+PERLMOD_LATEX          = NO
+
+# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
+# nicely formatted so it can be parsed by a human reader.  This is useful 
+# if you want to understand what is going on.  On the other hand, if this 
+# tag is set to NO the size of the Perl module output will be much smaller 
+# and Perl will parse it just the same.
+
+PERLMOD_PRETTY         = YES
+
+# The names of the make variables in the generated doxyrules.make file 
+# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
+# This is useful so different doxyrules.make files included by the same 
+# Makefile don't overwrite each other's variables.
+
+PERLMOD_MAKEVAR_PREFIX = 
+
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor   
+#---------------------------------------------------------------------------
+
+# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
+# evaluate all C-preprocessor directives found in the sources and include 
+# files.
+
+ENABLE_PREPROCESSING   = YES
+
+# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
+# names in the source code. If set to NO (the default) only conditional 
+# compilation will be performed. Macro expansion can be done in a controlled 
+# way by setting EXPAND_ONLY_PREDEF to YES.
+
+MACRO_EXPANSION        = NO
+
+# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
+# then the macro expansion is limited to the macros specified with the 
+# PREDEFINED and EXPAND_AS_DEFINED tags.
+
+EXPAND_ONLY_PREDEF     = NO
+
+# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
+# in the INCLUDE_PATH (see below) will be search if a #include is found.
+
+SEARCH_INCLUDES        = YES
+
+# The INCLUDE_PATH tag can be used to specify one or more directories that 
+# contain include files that are not input files but should be processed by 
+# the preprocessor.
+
+INCLUDE_PATH           = 
+
+# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
+# patterns (like *.h and *.hpp) to filter out the header-files in the 
+# directories. If left blank, the patterns specified with FILE_PATTERNS will 
+# be used.
+
+INCLUDE_FILE_PATTERNS  = 
+
+# The PREDEFINED tag can be used to specify one or more macro names that 
+# are defined before the preprocessor is started (similar to the -D option of 
+# gcc). The argument of the tag is a list of macros of the form: name 
+# or name=definition (no spaces). If the definition and the = are 
+# omitted =1 is assumed. To prevent a macro definition from being 
+# undefined via #undef or recursively expanded use the := operator 
+# instead of the = operator.
+
+PREDEFINED             = $(DEFINITIONS)
+
+# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
+# this tag can be used to specify a list of macro names that should be expanded. 
+# The macro definition that is found in the sources will be used. 
+# Use the PREDEFINED tag if you want to use a different macro definition.
+
+EXPAND_AS_DEFINED      = 
+
+# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
+# doxygen's preprocessor will remove all function-like macros that are alone 
+# on a line, have an all uppercase name, and do not end with a semicolon. Such 
+# function macros are typically used for boiler-plate code, and will confuse 
+# the parser if not removed.
+
+SKIP_FUNCTION_MACROS   = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to external references   
+#---------------------------------------------------------------------------
+
+# The TAGFILES option can be used to specify one or more tagfiles. 
+# Optionally an initial location of the external documentation 
+# can be added for each tagfile. The format of a tag file without 
+# this location is as follows: 
+#   TAGFILES = file1 file2 ... 
+# Adding location for the tag files is done as follows: 
+#   TAGFILES = file1=loc1 "file2 = loc2" ... 
+# where "loc1" and "loc2" can be relative or absolute paths or 
+# URLs. If a location is present for each tag, the installdox tool 
+# does not have to be run to correct the links.
+# Note that each tag file must have a unique name
+# (where the name does NOT include the path)
+# If a tag file is not located in the directory in which doxygen 
+# is run, you must also specify the path to the tagfile here.
+
+TAGFILES               = 
+
+# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
+# a tag file that is based on the input files it reads.
+
+GENERATE_TAGFILE       = 
+
+# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
+# in the class index. If set to NO only the inherited external classes 
+# will be listed.
+
+ALLEXTERNALS           = NO
+
+# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
+# in the modules index. If set to NO, only the current project's groups will 
+# be listed.
+
+EXTERNAL_GROUPS        = YES
+
+# The PERL_PATH should be the absolute path and name of the perl script 
+# interpreter (i.e. the result of `which perl').
+
+PERL_PATH              = /usr/bin/perl
+
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool   
+#---------------------------------------------------------------------------
+
+# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
+# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
+# or super classes. Setting the tag to NO turns the diagrams off. Note that 
+# this option is superseded by the HAVE_DOT option below. This is only a 
+# fallback. It is recommended to install and use dot, since it yields more 
+# powerful graphs.
+
+CLASS_DIAGRAMS         = YES
+
+# If set to YES, the inheritance and collaboration graphs will hide 
+# inheritance and usage relations if the target is undocumented 
+# or is not a class.
+
+HIDE_UNDOC_RELATIONS   = YES
+
+# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
+# available from the path. This tool is part of Graphviz, a graph visualization 
+# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
+# have no effect if this option is set to NO (the default)
+
+HAVE_DOT               = YES
+
+# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect inheritance relations. Setting this tag to YES will force the 
+# the CLASS_DIAGRAMS tag to NO.
+
+CLASS_GRAPH            = YES
+
+# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for each documented class showing the direct and 
+# indirect implementation dependencies (inheritance, containment, and 
+# class references variables) of the class with other documented classes.
+
+COLLABORATION_GRAPH    = YES
+
+# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
+# will generate a graph for groups, showing the direct groups dependencies
+
+GROUP_GRAPHS           = YES
+
+# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
+# collaboration diagrams in a style similar to the OMG's Unified Modeling 
+# Language.
+
+UML_LOOK               = NO
+
+# If set to YES, the inheritance and collaboration graphs will show the 
+# relations between templates and their instances.
+
+TEMPLATE_RELATIONS     = NO
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
+# tags are set to YES then doxygen will generate a graph for each documented 
+# file showing the direct and indirect include dependencies of the file with 
+# other documented files.
+
+INCLUDE_GRAPH          = YES
+
+# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
+# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
+# documented header file showing the documented files that directly or 
+# indirectly include this file.
+
+INCLUDED_BY_GRAPH      = YES
+
+# If the CALL_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a call dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable call graphs for selected 
+# functions only using the \callgraph command.
+
+CALL_GRAPH             = NO
+
+# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then doxygen will 
+# generate a caller dependency graph for every global function or class method. 
+# Note that enabling this option will significantly increase the time of a run. 
+# So in most cases it will be better to enable caller graphs for selected 
+# functions only using the \callergraph command.
+
+CALLER_GRAPH           = NO
+
+# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
+# will graphical hierarchy of all classes instead of a textual one.
+
+GRAPHICAL_HIERARCHY    = YES
+
+# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
+# then doxygen will show the dependencies a directory has on other directories 
+# in a graphical way. The dependency relations are determined by the #include
+# relations between the files in the directories.
+
+DIRECTORY_GRAPH        = YES
+
+# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
+# generated by dot. Possible values are png, jpg, or gif
+# If left blank png will be used.
+
+DOT_IMAGE_FORMAT       = png
+
+# The tag DOT_PATH can be used to specify the path where the dot tool can be 
+# found. If left blank, it is assumed the dot tool can be found in the path.
+
+DOT_PATH               = /usr/bin
+
+# The DOTFILE_DIRS tag can be used to specify one or more directories that 
+# contain dot files that are included in the documentation (see the 
+# \dotfile command).
+
+DOTFILE_DIRS           = 
+
+# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
+# graphs generated by dot. A depth value of 3 means that only nodes reachable 
+# from the root by following a path via at most 3 edges will be shown. Nodes 
+# that lay further from the root node will be omitted. Note that setting this 
+# option to 1 or 2 may greatly reduce the computation time needed for large 
+# code bases. Also note that a graph may be further truncated if the graph's 
+# image dimensions are not sufficient to fit the graph (see MAX_DOT_GRAPH_WIDTH 
+# and MAX_DOT_GRAPH_HEIGHT). If 0 is used for the depth value (the default), 
+# the graph is not depth-constrained.
+
+MAX_DOT_GRAPH_DEPTH    = 0
+
+# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
+# background. This is disabled by default, which results in a white background. 
+# Warning: Depending on the platform used, enabling this option may lead to 
+# badly anti-aliased labels on the edges of a graph (i.e. they become hard to 
+# read).
+
+DOT_TRANSPARENT        = NO
+
+# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
+# files in one run (i.e. multiple -o and -T options on the command line). This 
+# makes dot run faster, but since only newer versions of dot (>1.8.10) 
+# support this, this feature is disabled by default.
+
+DOT_MULTI_TARGETS      = NO
+
+# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
+# generate a legend page explaining the meaning of the various boxes and 
+# arrows in the dot generated graphs.
+
+GENERATE_LEGEND        = YES
+
+# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
+# remove the intermediate dot files that are used to generate 
+# the various graphs.
+
+DOT_CLEANUP            = YES
+
+#---------------------------------------------------------------------------
+# Configuration::additions related to the search engine   
+#---------------------------------------------------------------------------
+
+# The SEARCHENGINE tag specifies whether or not a search engine should be 
+# used. If set to NO the values of all tags below this one will be ignored.
+
+SEARCHENGINE           = NO
diff --git a/documentation/headers/fmc_header.java b/documentation/headers/fmc_header.java
new file mode 100644 (file)
index 0000000..fb76d4f
--- /dev/null
@@ -0,0 +1,10 @@
+
+/**
+ * {one-line description}
+ * {extended information...}
+ * @author Chris Koeritz
+ * @copyright Copyright (c) 2012-$now By Feisty Meow Concerns, Ltd.
+ * @license GNU General Public License -- http://www.gnu.org/licenses/gpl.html
+ * @contribute Feel free to send updates to: fred@feistymeow.org
+ */
+
diff --git a/documentation/headers/gnu_header.h b/documentation/headers/gnu_header.h
new file mode 100644 (file)
index 0000000..5e74be0
--- /dev/null
@@ -0,0 +1,21 @@
+#ifndef NAMEOF_CLASS
+#define NAMEOF_CLASS
+
+//////////////
+// Name   : THISCLASSNAME
+// Author : Chris Koeritz
+// Rights : Copyright (c) 2012-$now By Author
+//////////////
+// This file is free software; you can modify/redistribute it under the terms
+// of the GNU General Public License. [ http://www.gnu.org/licenses/gpl.html ]
+// Feel free to send updates to: [ fred@gruntose.com ]
+//////////////
+
+//! brief description goes here.
+/*!
+  detailed description goes here.
+...
+*/
+
+#endif
+
diff --git a/documentation/headers/shell_header.txt b/documentation/headers/shell_header.txt
new file mode 100644 (file)
index 0000000..15e2b44
--- /dev/null
@@ -0,0 +1,14 @@
+#!/bin/bash
+#!/usr/bin/perl
+#!/usr/bin/python
+##############
+# Name   : NAMEOFSCRIPT
+# Author : Chris Koeritz
+# Rights : Copyright (C) 2013-$now by Feisty Meow Concerns, Ltd.
+##############
+# This script is free software; you can modify/redistribute it under the terms
+# of the GNU General Public License. [ http://www.gnu.org/licenses/gpl.html ]
+# Feel free to send updates to: [ fred@gruntose.com ]
+##############
+#
+# ...description of file.
diff --git a/documentation/headers/uva_header.java b/documentation/headers/uva_header.java
new file mode 100644 (file)
index 0000000..c748162
--- /dev/null
@@ -0,0 +1,9 @@
+
+/**
+ * {one-line description}
+ * {extended information...}
+ * @author Chris Koeritz
+ * @copyright Copyright (c) 2012-$now By University of Virginia
+ * @license Apache License v2.0: http://www.apache.org/licenses/LICENSE-2.0
+ */
+
diff --git a/documentation/history_anat.txt b/documentation/history_anat.txt
new file mode 100644 (file)
index 0000000..9bf86e8
--- /dev/null
@@ -0,0 +1,128 @@
+
+This is the "feisty meow® concerns" codebase top folder.
+
+This software is licensed *per* *file* using either the GNU General Public
+License (GNU GPL) version 3 *or* the Apache Software License version 2.0.
+If a file does not have a license statement attached and it is part of the
+feisty meow® codebase (rather than attributed to some other author), then the
+default license is the GNU GPL.
+
+For information on building the source code, see the file "building.txt".
+
+####
+
+Feisty Meow Concerns Ltd. is a small software shop that concentrates on
+building high quality, portable, open source projects in a variety of
+languages (primarily bash, perl, C++, Java, and python).  Here are some
+highlights of our main products:
+
+  Bookmark Processing Tools - can take a mozilla bookmark file or arbitrary
+     web page and extract all the links out of it, building a csv database of
+     web links.  Using that database, a variety of output formats are
+     provided, including one that outputs a mozilla bookmark file again.
+     The most useful feature is probably the marks checker that operates on
+     our csv format and that locates all unreachable links in the file and
+     separates them out.
+
+  CROMP protocol - supports transmission of objects across the network and
+     provides a platform independent method for RPC and other types of
+     communication.
+
+  Octopus design pattern - the underpinning of the CROMP protocol.  An octopus
+     has an arbitrary number of tentacles (no, not just eight) which are each
+     responsible for consuming a different type of object (or datum).
+
+  Fast Templates and Portable Abstractions - the class libraries of Feisty Meow
+     provide numerous different data structures and programming language
+     abstractions (like threads and state machines).  There are also some
+     fairly ancient templates (in use since late 80s) which in many cases
+     perform faster than their STL analogues.
+
+  CLAM System - Feisty Meow is the home site of the CLAM makefile system.  The
+     CLAM system is a flexible and extensible method for building C++ and
+     C# files using makefiles.
+
+####
+
+Historical note:
+Feisty Meow® Concerns codebase comprises some but probably not all of several projects that
+have come before.  These include the Twain.COM library scripts, the Yeti / YetiCode library
+scripts, the HOOPLE 1 and HOOPLE 2 C++ Codebases, the Fred Huffhines open source LSL scripts,
+the CLAM build system, and a variety of other efforts.
+
+####
+
+Directories and files of interest here...
+
+scripts/
+    Stores the script files that we use a lot.  These are usually written in interpreted
+    languages, such as bash and perl.  These were the core of the YetiCode scripts library.
+
+nucleus/
+    Source for the basic modules of the Feisty Meow® codebase.  This includes generic
+    data structures, useful utilities, and the like.  This hierarchy, plus octopi and graphiq,
+    formed the major parts of hoople1 and hoople2.
+
+huffware/
+    The library of LSL scripts for osgrid and Second Life written by the avatar named Fred
+    Huffhines.  Fred Huffhines is a regular contributor and a well-loved member of our
+    development team.  He also happens to be a fictional sock-puppet for adventuring around
+    the grids, but a lot of code has been written in his name.  We are going to release the
+    full corpus of the Huffhines work over time.
+
+octopi/
+    Octopus design pattern and CROMP protocol reference implementations.  Assorted applications
+    based on these.
+
+database/
+    Some files considered critical to the operations of Feisty Meow Concerns Ltd.  This includes
+    the database of fortunes used by the Nechung Oracle Program.
+
+documentation/
+    Helpful guides and information for Feisty Meow.  Also includes a code documentation generator
+    configuration for feisty meow that produces a nice set of web docs, using doxygen.
+
+examples/
+    Some files that show how to get work done with Feisty Meow or that show how to do certain
+    tasks in different scripting / programming languages.
+
+kona/
+    Our burgeoning Java libraries.  Not much to see here yet, but there is some code piling
+    up for these that we will try to release soon.
+
+osgi/
+    Some example bundles for Java OSGi.  These may eventually fill out with real material,
+    but currently they are just tracking the investigation we did into creating bundles and
+    running using them.
+
+production/
+    Machinery for getting releases out the door, including the generated files such as binaries
+    and build system tools.
+
+graphiq/
+    GUI tools and components, somewhat busted or just absent right now.
+
+webby/
+    Source code specifically for web programming and building sites.  Mainly a few javascript
+    files we keep around.
+
+####
+
+Notable Prerequisites for Using the Feisty Meow® codebase:
+
+  Software required to compile under Linux:
+    Gnu C++
+    A few free source libraries (see "building.txt" for more information).
+
+  Software required to compiler under MS-windows:
+    The free Microsoft compiler should build the codebase but it is untested.
+    The full version of MS Visual Studio 2010 (version 10) is supported.
+      --but this has fallen into disrepair.
+    Gnu C++ should compile the codebase but it is also untested recently.
+
+####
+
+More information is available at the official site http://feistymeow.org
+
+####
+
diff --git a/documentation/makefile b/documentation/makefile
new file mode 100644 (file)
index 0000000..30fa822
--- /dev/null
@@ -0,0 +1,27 @@
+
+export DEFINITIONS
+  # ensure that the macros get passed down to the subprocesses.
+
+include cpp/variables.def
+
+PROJECT = Source_Documentation
+TYPE = application
+FIRST_TARGETS += build_doxygen
+CLEANUPS += html
+
+include cpp/rules.def
+
+build_doxygen:
+       @echo the defs are $(DEFINITIONS)
+       $(HIDESH) -c '\
+doxygen $(wildcard *.config); \
+if [ $$? -ne 0 ]; then \
+  echo failed to run doxygen on our configuration file.; \
+  echo perhaps it is not installed?; \
+  echo these are the ubuntu install steps:; \
+  echo   sudo apt-get install doxygen graphviz; \
+echo and something else, uhhh....; \
+echo oy; \
+fi \
+'
+
diff --git a/documentation/text_examples/chinese_simplified_text.txt b/documentation/text_examples/chinese_simplified_text.txt
new file mode 100644 (file)
index 0000000..1219fd3
--- /dev/null
@@ -0,0 +1,10 @@
+
+we will translate this at babelfish:
+
+Let us see then if we can narrow it down.  As I focus my mind upon it, it seems rather less impenetrable.  What indications have we as to this book?
+
+into this:
+
+让我们然后看如果我们能使它狭窄击倒。因为我聚焦我的头脑在它, 它似乎宁可较不难贯穿。什么征兆有我们至于这本书?
+
+
diff --git a/documentation/text_examples/korean_text.txt b/documentation/text_examples/korean_text.txt
new file mode 100644 (file)
index 0000000..52be298
--- /dev/null
@@ -0,0 +1,12 @@
+
+
+we will translate this at babelfish:
+
+Let us see then if we can narrow it down.  As I focus my mind upon it, it seems rather less impenetrable.  What indications have we as to this book?
+
+into this:
+
+우리들을 그때 우리가 떨어뜨리기 위하여 그것을 좁힐 수 있으면 보는 시키십시요. 나가 그것에 나의 마음을 초점을 맞추기 때문에, 오히려 보다 적게 보인다. 이 책에 관해서는 무슨 표시가 우리가 있는가?
+
+
+
diff --git a/documentation/text_examples/readme.txt b/documentation/text_examples/readme.txt
new file mode 100644 (file)
index 0000000..0111f86
--- /dev/null
@@ -0,0 +1,7 @@
+
+
+these are example files of other languages in utf-8 format.
+
+they can be used to test proper handling of the characters in hoople code.
+
+
diff --git a/documentation/text_examples/russian_text.txt b/documentation/text_examples/russian_text.txt
new file mode 100644 (file)
index 0000000..4ef6c44
--- /dev/null
@@ -0,0 +1,4 @@
+
+Stanislav Yevgrafovich Petrov (Russian: Станислав Евграфович Петров) (born c. 1939) is a retired Russian Strategic Rocket Forces lieutenant colonel who, on September 26, 1983, averted a potential nuclear war by refusing to believe that the United States had launched missiles against the Soviet Union, despite the indications given by his computerized early warning systems.[1]
+
+
diff --git a/documentation/text_examples/tibetan_text.txt b/documentation/text_examples/tibetan_text.txt
new file mode 100644 (file)
index 0000000..321ddac
--- /dev/null
@@ -0,0 +1,13 @@
+
+
+om mani padme hum:
+ༀ'མཎི'པདེྨ'ཧཱུྃ ༔
+
+
+this was scarfed from a tibetan resources page:
+
+
+༄༅།།གངས་ལྗོངས་གློག་རྡུལ་དཔེ་མཛོད་ཁང་ཞེས་པ་འདི་དེང་དུས་ཀྱི་ འཕྲུལ་རྩལ་བེད་སྤྱད་དེ་ཁ་བའི་ལྗོངས་དང་འབྲེལ་ཡོད་ཀྱི་རིག་ གཞུང་ངོ་མཚར་ཅན་རྣམས་འཛམ་གླིང་ཡུལ་གྲུ་རིས་མེད་ཀྱི་སྐྱེ་བོའི་ སྤྱན་ལམ་དུ་བསྟར་བའི་རིན་གོང་མེད་པའི་དྲ་བའི་སྟེགས་བུ་ཞིག་ ཡིན། ངེད་ཚོས་དྲ་ལམ་དེ་བརྒྱུད་སྐད་རིགས་མི་འདྲ་བའི་ཐོག་ནས་ཁུལ་ དེའི་དཔྱད་གཞིའི་ཡིག་ཆ་སྣ་ཚོགས་མཁོ་འདོན་བྱེད་ཀྱིན་ཡོད་པས་ ཚུལ་དེ་ནི་གསར
+
+
+
index 4ea575e56a516f57d8ec6c91ab370e8cd97790e9..48016eccfda511ff7ac3b84d8eda0b225ff9351f 100644 (file)
@@ -5,6 +5,8 @@ SHELL=/bin/bash
 
 USER=fred
 
+# this is out of date!
+
 #[doxygen]
 20 4 * * * (source $HOME/feisty_meow/scripts/core/launch_feisty_meow.sh; cd $HOME/hoople/docs; make) &>>/tmp/zz_doxy_make_$USER.log
 
index 8100faa6d66f1d83863352eb37d030d78260a504..40423314b989758202b78ecfee46a8d962d7bc35 100644 (file)
@@ -8,7 +8,7 @@ production_inis=t
 docs=t
 top_makefile=t
 production_makefile=t
-customizing=t
+customize=t
 database=t
 examples=t
 scripts=t
@@ -64,9 +64,9 @@ source=$PRODUCTION_STORE/makefile
 target=$TARGET/production/makefile
 keyword=sources
 
-[customizing]
-source=$FEISTY_MEOW_APEX/customizing
-target=$TARGET/customizing
+[customize]
+source=$FEISTY_MEOW_APEX/customize
+target=$TARGET/customize
 recurse=1
 keyword=sources
 
@@ -77,8 +77,8 @@ recurse=1
 keyword=sources
 
 [docs]
-source=$FEISTY_MEOW_APEX/doc
-target=$TARGET/doc
+source=$FEISTY_MEOW_APEX/documentation
+target=$TARGET/documentation
 recurse=1
 keyword=sources
 
index d5cd8d7fbd08ee7b80faf2900e7cbc9d84fb054d..fd06924fed162831c1ab6c4058b99ca3aafb97a1 100644 (file)
@@ -9,7 +9,7 @@ conditional portions are prefixed with a '|' character.)
 How to get the feisty meow codebase
 
 | On Microsoft Windows, install the Cygwin tools as documented here:
-| ~/feisty_meow/doc/cygwin_install_list.txt
+| ~/feisty_meow/documentation/cygwin_install_list.txt
 
 Retrieve a clone of the feisty meow code:
 => git clone git://feistymeow.org/feisty_meow
@@ -53,7 +53,7 @@ How to install the build dependencies for feisty meow
 
 | Microsoft Windows:
 | Download and install the Cygwin environment first from cygwin.com, which is
-| documented in ~/feisty_meow/doc/cygwin_install_list.txt
+| documented in ~/feisty_meow/documentation/cygwin_install_list.txt
 
 ==============
 How to build the feisty meow codebase
index c532dddb587fea392f9b932ae448763907ffa608..fd9192e7741336e7b570d374260836bedd42306e 100644 (file)
@@ -39,9 +39,9 @@ local($root) = &canonicalize("$HOME/feisty_meow");
 
 # snarf up all the important directories.
 # CAK: current as of 2012-05-05.
-&backup_hierarchy($snarf_file_base, $number, $root, "customizing");
+&backup_hierarchy($snarf_file_base, $number, $root, "customize");
 &backup_hierarchy($snarf_file_base, $number, $root, "infobase");
-&backup_hierarchy($snarf_file_base, $number, $root, "doc");
+&backup_hierarchy($snarf_file_base, $number, $root, "documentation");
 &backup_hierarchy($snarf_file_base, $number, $root, "examples");
 &backup_hierarchy($snarf_file_base, $number, $root, "feisty_inits");
 &backup_hierarchy($snarf_file_base, $number, $root, "graphiq");
index 65aa94106950201e7d9d34700b501f86c85afdb9..94591263a954886d82ea216854163ea74aa371b3 100644 (file)
@@ -376,15 +376,15 @@ if [ -z "$skip_all" ]; then
       # use our default example user if there was no name provided.
       user=fred
     fi
-    if [ ! -d "$FEISTY_MEOW_APEX/customizing/$user" ]; then
+    if [ ! -d "$FEISTY_MEOW_APEX/customize/$user" ]; then
       echo "The customization folder provided for $user should be:"
-      echo "  '$FEISTY_MEOW_APEX/customizing/$user'"
+      echo "  '$FEISTY_MEOW_APEX/customize/$user'"
       echo "but that folder does not exist.  Skipping customization."
       return 1
     fi
     regenerate >/dev/null
     pushd "$FEISTY_MEOW_LOADING_DOCK/custom" &>/dev/null
-    incongruous_files="$(bash "$FEISTY_MEOW_SCRIPTS/files/list_non_dupes.sh" "$FEISTY_MEOW_APEX/customizing/$user" "$FEISTY_MEOW_LOADING_DOCK/custom")"
+    incongruous_files="$(bash "$FEISTY_MEOW_SCRIPTS/files/list_non_dupes.sh" "$FEISTY_MEOW_APEX/customize/$user" "$FEISTY_MEOW_LOADING_DOCK/custom")"
     
     #echo "the incongruous files list is: $incongruous_files"
     # disallow a single character result, since we get "*" as result when nothing exists yet.
@@ -396,10 +396,10 @@ if [ -z "$skip_all" ]; then
     popd &>/dev/null
     echo "copying custom overrides for $user"
     mkdir -p "$FEISTY_MEOW_LOADING_DOCK/custom" 2>/dev/null
-    perl "$FEISTY_MEOW_SCRIPTS/text/cpdiff.pl" "$FEISTY_MEOW_APEX/customizing/$user" "$FEISTY_MEOW_LOADING_DOCK/custom"
-    if [ -d "$FEISTY_MEOW_APEX/customizing/$user/scripts" ]; then
+    perl "$FEISTY_MEOW_SCRIPTS/text/cpdiff.pl" "$FEISTY_MEOW_APEX/customize/$user" "$FEISTY_MEOW_LOADING_DOCK/custom"
+    if [ -d "$FEISTY_MEOW_APEX/customize/$user/scripts" ]; then
       echo "copying custom scripts for $user"
-      \cp -R "$FEISTY_MEOW_APEX/customizing/$user/scripts" "$FEISTY_MEOW_LOADING_DOCK/custom/"
+      \cp -R "$FEISTY_MEOW_APEX/customize/$user/scripts" "$FEISTY_MEOW_LOADING_DOCK/custom/"
     fi
     echo
     regenerate