123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- 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
|