summaryrefslogtreecommitdiff
path: root/HOWTO
diff options
context:
space:
mode:
authorSteven Knight <knight@baldmt.com>2002-06-27 15:00:50 +0000
committerSteven Knight <knight@baldmt.com>2002-06-27 15:00:50 +0000
commit0cd4837fd6a10791576c5dcafa09514d47c0fc97 (patch)
treefc4c551de3335992c11ccf2fdfde73d4d731a9bd /HOWTO
parent5dd473bc401492d93a372b03965f2718b05426b8 (diff)
downloadscons-0cd4837fd6a10791576c5dcafa09514d47c0fc97.tar.gz
Add support for assembly language (.s and .S) Tools. Still needs support for building shared objects.
Diffstat (limited to 'HOWTO')
-rw-r--r--HOWTO/new-tool.txt79
1 files changed, 79 insertions, 0 deletions
diff --git a/HOWTO/new-tool.txt b/HOWTO/new-tool.txt
new file mode 100644
index 00000000..c906b7fb
--- /dev/null
+++ b/HOWTO/new-tool.txt
@@ -0,0 +1,79 @@
+Adding a new Tool to the SCons distribution:
+
+ -- Add the following files (aenf):
+
+ src/engine/SCons/Tool/xxx.py
+
+ Use one of the other Tool files as a template.
+
+ The tool should set and use construction variables:
+
+ XXX (specific tool)
+ XXXCOM (the command line)
+ XXXFLAGS (flags for the command line)
+
+ -- Modify the following files (aecp):
+
+ doc/man/scons.1
+
+ Add the new tool to the default Platform lists
+ (if appropriate).
+
+ If this creates object files from a new source
+ file type, add the new file suffixes.
+
+ Document the new construction variables.
+
+ rpm/scons.spec
+
+ Add to the list at the bottom of the file:
+
+ /usr/lib/scons/SCons/Tool/xxx.py
+ /usr/lib/scons/SCons/Tool/xxx.pyc
+
+ [THIS LIST SHOULD BE GENERATED FROM MANIFEST.in,
+ AND WILL BE SOME DAY.]
+
+ src/CHANGES.txt
+
+ Add mention of the new Tool specification.
+
+ src/engine/MANIFEST.in
+
+ Add to the list:
+
+ SCons/Tool/xxx.py
+
+ src/engine/SCons/Defaults.py
+
+ If there are any new Actions for the Tool, add them
+ here.
+
+ src/engine/SCons/Platform/*.py
+
+ Add the Tool to the list(s) returned by tool_list().
+
+ -- Add the following tests (aent):
+
+ test/XXX.py
+
+ Use one of the other tests as a template.
+
+ The first part should be a platform-independent test
+ using dummy 'myxxx.py' utilities to test if $XXX is set.
+
+ Remaining parts of the test can check to see if the
+ specific tool is installed on the system, and test
+ actually executing the tool.
+
+ test/XXXFLAGS.py
+
+ Use one of the other tests as a template.
+
+ The first part should be a platform-independent test
+ using dummy 'myxxx.py' utilities to test if $XXXFLAGS is
+ set.
+
+ Optionally, remaining parts of the test can check to see
+ if the specific tool is installed on the system, and
+ test actually executing the tool.