
Jungle Monkey HACKING
---------------------
Copyright (C) 2000-2001 David A. Helder


Overview
--------

This document is intended for those who would like to contribute to
Jungle Monkey.

See the TODO list.  Write us before starting work on something so we
can coordinate.  New translations are always welcome.


Mailing list
------------

The developer's list is jm-dev@junglemonkey.net.  To join it, send an
email to jm-dev-request@junglemonkey.net with "subscribe" as the
subject.


Translation
-----------

Please translate JM to your native language if it hasn't been done so
already.  If you don't know how to do this, read the GNU gettext
documentation, look in the "po" directory, or ask another translator
for help.  David regrettably doesn't know much about gettext and I18N.


CVS
---

The source code for Jungle Monkey is an a CVS repository.  This is the
most current code, but not necessarily the most stable code.  In fact,
the code may not even compile and may not be compatable with the
latest released version.

To get this code:

  > cd <directory I want Jungle Monkey to go>
  > setenv CVSROOT :pserver:cvs@ask.eecs.umich.edu:/z/home/dhelder/repositories/jm-repository
  > cvs login	[hit return, then enter 'cvs' as the password]
  > cvs -z3 checkout jm
  > cd jm
  > cvs -z3 update -d -P

Use the autogen.sh script to build the necessary files you will need
to build Jungle Monkey.  You need to have current versions of
autoconf, automake, and libtool installed for it to work.  

You may need to set the ACLOCAL_INCLUDE environment variable if you
have autoconf macros in non-standard places.  For example, if you have
a /usr/X11R6/share/aclocal directory and it's complaining about not
finding GTK macros, set it to "-I /usr/X11R6/share/aclocal".

Use the --enable-build-docs flag if you want to build documentation
from scratch.  You may need to modify doc/Makefile.am and
doc/C/Makefile.am to get all the documentation to build.  Some of the
tool paths are hardcoded for David's machine.  David would be grateful
if someone fixed this.

You can join the jm-dev-cvs mailing list to get notifications of
commits to the repository.  Join it like you would the other mailing
lists.


Code overview	
-------------

[TOWRITE]


Porting
-------

Some things that may be problematic when porting:

- Sometimes / is assumed to be the directory separator.

- mmap is still used in some testing code (mtpmirror?), but should not
    be in the JM or the libraries.

- sha_async is probably not portable.  It assumes async file io works.
    It should use the GLib idle function instead.
