Maintainer Notes
================

Prerequisites
-------------

You'll need these packages installed at least:

        automake
        autoconf

For processing any Win32 ported files you'll also need this on your UNIX
box:

        dos2unix
        expand                  (man expand(1): convert TABS to spaces)

For processing the documentation, you'll need this too:

        zoem                    (? TODO )



Rebuild from scratch / After editing the .am/.in files
------------------------------------------------------

To regenerate the configure script, proper Makefile.in, et al, execute the
sequence:

        ./bootstrap
        ./configure

and you may wish to run the suggested

        make distcheck

command to ensure the distribution is self contained/complete.
Alternatively (WARNING: this is the _old_ way) you may run

        ./autogen.sh

(which remains with this package as several UIs/editors recognize this script
to simplify regenerating the configuration setup scripts)


To generate the man and html documentation follow up with these:

        make man                (? TODO - does not work?)

and to produce a new distro archive choose one of these (or
        grep -e 'dist-' Makefile
to see the available distro packaging methods):

        make dist
        make dist-bzip2
        make dist-all
        make dist-7z
        make distribution

where the latter creates them all and then some: a separate 'diff only'
archive is also produced

(diff archive will 'work', assuming you have both the 'old/original'
CRM114 source code and your own tree in the apropriate directories:
../../1original/crm114/src/crm114.sourceforge.org/src
and this dir is: ../../3actual/crm114 )



Clean up source files after editing [on a Win32 or other non-UNIX box]
----------------------------------------------------------------------

run the

        ./fix_crlf.sh

shell script to clean up the code: it does more that just clean up those
CRLF line terminations (using dos2unix) but also expands any TAB characters
found in any text/source files and trims trailing whitespace to boot.

If you *really* feel like a spring sale is coming up, you might also want to
run

        make reindent

and

        make htmltidy

for some finegrained distro dust busting.


CAVEATS: you may wish to run ./fix_crlf.sh at the end again, just to make
absolutely sure. More important though is running this:

        make clean

or:

        make distclean

as any previous compiler output (binaries, object files, that sort of thing)
residing in this directory tree will surely have been destroyed by
./fix_crlf.sh !




When you've synced sources or otherwise with BillY's ./src/ wget distro
-----------------------------------------------------------------------

After merging your ./src/ with the wget copy, run

        make BillY-sync

to update all the files in

        ./tests/
        ./docs/
        ./examples/
        ./mailfilter/

:WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING:
: hence it is assumed that the crm/input/... files in ./src/ are        :
: LEADING and those DO OVERRIDE the copies which you kept in the        :
: directories listed above.                                             :
:WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING WARNING:


The transfer uses the shell script

        distribute_files_from_src_dir.sh

which performs some mandatory processing on the files while copying them
into their designated directories.




Notes / Misc
------------

Note to self: handy commands for Sourceforge CVS access (these commands
assume that the local directory tree exactly mirrors the remote repository
as obtained through 'cvs checkout'):

- view diff between local file and remote repository's version:

  cvs -d:ext:i_a@crm114.cvs.sourceforge.net:/cvsroot/crm114 -z3 diff -bBcw README.win32

- add a new directory (e.g. 'doc/') to the remote repository:

  cd ./crm114/   <-- parent of directory to create
  cvs -d:ext:i_a@crm114.cvs.sourceforge.net:/cvsroot/crm114 -z3 add -m "new files that come with the Win32 port of crm114" doc

- add a new file to the remote repository:

  cvs -d:ext:i_a@crm114.cvs.sourceforge.net:/cvsroot/crm114 -z3 add -m "new files that come with the Win32 port of crm114" doc/Makefile.am

  or add all files in this directory at once:

  cvs -d:ext:i_a@crm114.cvs.sourceforge.net:/cvsroot/crm114 -z3 add -m "new files that come with the Win32 port of crm114" ` find -maxdepth 1 -type f `

- Big Bang: checkin all changed files in the current directory (NO
  recursion!):

  cvs -d:ext:i_a@crm114.cvs.sourceforge.net:/cvsroot/crm114 -z3 ci -F ../../cvs-entry.txt ` find -maxdepth 1 -type f `





