SCons / HOWTO / new-tool.txt

__COPYRIGHT__

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.
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.