nakedmudv3.3/
nakedmudv3.3/lib/
nakedmudv3.3/lib/logs/
nakedmudv3.3/lib/misc/
nakedmudv3.3/lib/players/
nakedmudv3.3/lib/txt/
nakedmudv3.3/lib/world/
nakedmudv3.3/lib/world/examples/
nakedmudv3.3/lib/world/examples/mproto/
nakedmudv3.3/lib/world/examples/oproto/
nakedmudv3.3/lib/world/examples/reset/
nakedmudv3.3/lib/world/examples/rproto/
nakedmudv3.3/lib/world/examples/trigger/
nakedmudv3.3/lib/world/limbo/
nakedmudv3.3/lib/world/limbo/room/
nakedmudv3.3/lib/world/limbo/rproto/
nakedmudv3.3/src/alias/
nakedmudv3.3/src/char_vars/
nakedmudv3.3/src/editor/
nakedmudv3.3/src/example_module/
nakedmudv3.3/src/help/
nakedmudv3.3/src/set_val/
nakedmudv3.3/src/socials/
nakedmudv3.3/src/time/
Introduction:
------------

This package contains a new build system that I put together for
NakedMud using the python based build tool SCons
(http://www.scons.org). It compiles the unmodified codebase without
errors and uses distutils to determine the python include path (unlike
the bundled make-based system). It will also pass the appropriate
options to the linker (e.g., -Xlinker -export-dynamic). Well, at least
it does the right thing on my system.

Installation:
------------

Extract the tarball into the src directory of your NakedMud. If you
haven't added any C modules, just skip ahead to the build command
list.

You'll have to add the module name to the list of modules in the
SConstruct file (in the source directory: it's SCons' equivalent to
the top-level Makefile):

Have a look for this line in the SConstruct:

modules += ['time', 'socials', 'alias', 'help']

And add your custom modules to the end of the list.

Basic Usage:
-----------

To build, simply run `scons`. To clean, run `scons -c` (unlike Make,
SCons can work out what it's built and delete it). To make a backup,
run `scons backup` (caveat: this won't clean first like the Makefile
does. You'll have to run `scons -c` by hand).

Advanced Usage:
--------------

If, for some reason, a module needs to tinker with the build process,
it an do so by creating a file called SConscript in the top of the
module subdirectory. This file will be parsed by SCons before
compiling anything, and can interact with the build environment using
normal SCons commands. The build environment will need to be imported
with the following line in the SConscript:

  Import('nakedmud')

The presence of a file called .suppress in the top of a module's
subdirectory will also influence the build process:

  - Each .c file named in the .suppress file will not be compiled or
    linked into the NakedMud binary.

  - If the .suppress file contains a line called 'all', no .c file in
    that module directory will be compiled or linked.

Closing Remarks:
---------------

I've tested with Python 2.4.3, NakedMud 3.2.1, NakedMud 3.3a, SCons
0.96.91 and 0.96.92. Hopefully it should be fairly easy to follow.

Oh, and there's no restrictions on its use.

Enjoy,
Jack Kelly

ChangeLog:
---------

Version 1.2 (19 Dec 2006):

* Doesn't guess the LINKFLAGS when sys.platform == 'darwin': it seems
  to cause breakage on OSX 10.4. Apparently it still works without it.

Version 1.1 (10 Nov 2006):

* Builds the list of C files to compile automatically using glob.

* SConscript files in the module subdirectories are now optional. They
  will be sourced if they exist, if a module needs to modify the build
  environment in some strange way. The environment can be imported
  with the line:
    Import('nakedmud')

* The presence of a file called .suppress in the top of a module's
  subdirectory will influence the build process:

  - Each .c file named in the .suppress file will not be compiled or
    linked into the NakedMud binary.

  - If the .suppress file contains a line called 'all', no .c file in
    that module directory will be compiled or linked.

Version 1.0 (29 Oct 2006):

* Initial Version