SCons/Tool/c++.xml
SCons/Tool/default.xml
SCons/Tool/dmd.xml
+SCons/Tool/dvi.xml
SCons/Tool/dvipdf.xml
SCons/Tool/dvips.xml
SCons/Tool/f77.xml
SCons/Tool/mwcc.xml
SCons/Tool/mwld.xml
SCons/Tool/nasm.xml
+SCons/Tool/pdf.xml
SCons/Tool/pdflatex.xml
SCons/Tool/pdftex.xml
SCons/Tool/Perforce.xml
SCons/Tool/CVS.py
SCons/Tool/dmd.py
SCons/Tool/default.py
+SCons/Tool/dvi.py
SCons/Tool/dvipdf.py
SCons/Tool/dvips.py
SCons/Tool/f77.py
SCons/Tool/mwcc.py
SCons/Tool/mwld.py
SCons/Tool/nasm.py
+SCons/Tool/pdf.py
SCons/Tool/pdflatex.py
SCons/Tool/pdftex.py
SCons/Tool/Perforce.py
LdModuleLinkAction = SCons.Action.Action("$LDMODULECOM", "$LDMODULECOMSTR")
-def DVI():
- """Common function to generate a DVI file Builder."""
- return SCons.Builder.Builder(action = {},
- source_scanner = LaTeXScan,
- # The suffix is not configurable via a
- # construction variable like $DVISUFFIX
- # because the output file name is
- # hard-coded within TeX.
- suffix = '.dvi',
- emitter = {})
-
-def PDF():
- """A function for generating the PDF Builder."""
- return SCons.Builder.Builder(action = { },
- source_scanner = LaTeXScan,
- prefix = '$PDFPREFIX',
- suffix = '$PDFSUFFIX',
- emitter = {})
-
# Common tasks that we allow users to perform in platform-independent
# ways by creating ActionFactory instances.
ActionFactory = SCons.Action.ActionFactory
'DSUFFIXES' : SCons.Tool.DSuffixes,
'IDLSUFFIXES' : SCons.Tool.IDLSuffixes,
'LATEXSUFFIXES' : SCons.Tool.LaTeXSuffixes,
- 'PDFPREFIX' : '',
- 'PDFSUFFIX' : '.pdf',
- 'PSPREFIX' : '',
- 'PSSUFFIX' : '.ps',
'ENV' : {},
'INSTALL' : copyFunc,
'_concat' : _concat,
This file is processed by the bin/SConsDoc.py module.
See its __doc__ string for a discussion of the format.
-->
-<builder name="DVI">
-<summary>
-Builds a <filename>.dvi</filename> file
-from a <filename>.tex</filename>,
-<filename>.ltx</filename> or <filename>.latex</filename> input file.
-If the source file suffix is <filename>.tex</filename>,
-&scons;
-will examine the contents of the file;
-if the string
-<literal>\documentclass</literal>
-or
-<literal>\documentstyle</literal>
-is found, the file is assumed to be a LaTeX file and
-the target is built by invoking the &cv-LATEXCOM; command line;
-otherwise, the &cv-TEXCOM; command line is used.
-If the file is a LaTeX file,
-the
-&b-DVI;
-builder method will also examine the contents
-of the
-<filename>.aux</filename>
-file and invoke the &cv-BIBTEX; command line
-if the string
-<literal>bibdata</literal>
-is found,
-start &cv-MAKEINDEX; to generate an index if a
-<filename>.ind</filename>
-file is found
-and will examine the contents
-<filename>.log</filename>
-file and re-run the &cv-LATEXCOM; command
-if the log file says it is necessary.
-
-The suffix <filename>.dvi</filename>
-(hard-coded within TeX itself)
-is automatically added to the target
-if it is not already present.
-Examples:
-
-<example>
-# builds from aaa.tex
-env.DVI(target = 'aaa.dvi', source = 'aaa.tex')
-# builds bbb.dvi
-env.DVI(target = 'bbb', source = 'bbb.ltx')
-# builds from ccc.latex
-env.DVI(target = 'ccc.dvi', source = 'ccc.latex')
-</example>
-</summary>
-</builder>
-
-<builder name="PDF">
-<summary>
-Builds a <filename>.pdf</filename> file
-from a <filename>.dvi</filename> input file
-(or, by extension, a <filename>.tex</filename>,
-<filename>.ltx</filename>,
-or
-<filename>.latex</filename> input file).
-The suffix specified by the &cv-PDFSUFFIX; construction variable
-(<filename>.pdf</filename> by default)
-is added automatically to the target
-if it is not already present. Example:
-
-<example>
-# builds from aaa.tex
-env.PDF(target = 'aaa.pdf', source = 'aaa.tex')
-# builds bbb.pdf from bbb.dvi
-env.PDF(target = 'bbb', source = 'bbb.dvi')
-</example>
-</summary>
-</builder>
-
<cvar name ="_concat">
<summary>
A function used to produce variables like &cv-_CPPINCFLAGS;. It takes
</summary>
</cvar>
-<cvar name="PDFPREFIX">
-<summary>
-The prefix used for PDF file names.
-</summary>
-</cvar>
-
-<cvar name="PDFSUFFIX">
-<summary>
-The suffix used for PDF file names.
-</summary>
-</cvar>
-
<cvar name="RDirs">
<summary>
A function that converts a string into a list of Dir instances by
--- /dev/null
+"""SCons.Tool.dvi
+
+Common DVI Builder definition for various other Tool modules that use it.
+
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import SCons.Builder
+import SCons.Tool
+
+DVIBuilder = None
+
+def generate(env):
+ try:
+ bld = env['BUILDERS']['DVI']
+ except KeyError:
+ global DVIBuilder
+
+ if DVIBuilder is None:
+ # The suffix is hard-coded to '.dvi', not configurable via a
+ # construction variable like $DVISUFFIX, because the output
+ # file name is hard-coded within TeX.
+ DVIBuilder = SCons.Builder.Builder(action = {},
+ source_scanner = SCons.Tool.LaTeXScanner,
+ suffix = '.dvi',
+ emitter = {})
+
+ env['BUILDERS']['DVI'] = DVIBuilder
+
+def exists(env):
+ # This only puts a skeleton Builder in place, so if someone
+ # references this Tool directly, it's always "available."
+ return 1
--- /dev/null
+<!--
+__COPYRIGHT__
+
+This file is processed by the bin/SConsDoc.py module.
+See its __doc__ string for a discussion of the format.
+-->
+<builder name="DVI">
+<summary>
+Builds a <filename>.dvi</filename> file
+from a <filename>.tex</filename>,
+<filename>.ltx</filename> or <filename>.latex</filename> input file.
+If the source file suffix is <filename>.tex</filename>,
+&scons;
+will examine the contents of the file;
+if the string
+<literal>\documentclass</literal>
+or
+<literal>\documentstyle</literal>
+is found, the file is assumed to be a LaTeX file and
+the target is built by invoking the &cv-LATEXCOM; command line;
+otherwise, the &cv-TEXCOM; command line is used.
+If the file is a LaTeX file,
+the
+&b-DVI;
+builder method will also examine the contents
+of the
+<filename>.aux</filename>
+file and invoke the &cv-BIBTEX; command line
+if the string
+<literal>bibdata</literal>
+is found,
+start &cv-MAKEINDEX; to generate an index if a
+<filename>.ind</filename>
+file is found
+and will examine the contents
+<filename>.log</filename>
+file and re-run the &cv-LATEXCOM; command
+if the log file says it is necessary.
+
+The suffix <filename>.dvi</filename>
+(hard-coded within TeX itself)
+is automatically added to the target
+if it is not already present.
+Examples:
+
+<example>
+# builds from aaa.tex
+env.DVI(target = 'aaa.dvi', source = 'aaa.tex')
+# builds bbb.dvi
+env.DVI(target = 'bbb', source = 'bbb.ltx')
+# builds from ccc.latex
+env.DVI(target = 'ccc.dvi', source = 'ccc.latex')
+</example>
+</summary>
+</builder>
+
import SCons.Action
import SCons.Defaults
+import SCons.Tool.pdf
import SCons.Util
-PDFAction = SCons.Action.Action('$DVIPDFCOM', '$DVIPDFCOMSTR')
+PDFAction = None
+
+def PDFEmitter(target, source, env):
+ """Strips any .aux or .log files from the input source list.
+ These are created by the TeX Builder that in all likelihood was
+ used to generate the .dvi file we're using as input, and we only
+ care about the .dvi file.
+ """
+ def strip_suffixes(n):
+ return not SCons.Util.splitext(str(n))[1] in ['.aux', '.log']
+ source = filter(strip_suffixes, source)
+ return (target, source)
def generate(env):
"""Add Builders and construction variables for dvipdf to an Environment."""
- try:
- bld = env['BUILDERS']['PDF']
- except KeyError:
- bld = SCons.Defaults.PDF()
- env['BUILDERS']['PDF'] = bld
+ global PDFAction
+ if PDFAction is None:
+ PDFAction = SCons.Action.Action('$DVIPDFCOM', '$DVIPDFCOMSTR')
+
+ import pdf
+ pdf.generate(env)
+
+ bld = env['BUILDERS']['PDF']
bld.add_action('.dvi', PDFAction)
+ bld.add_emitter('.dvi', PDFEmitter)
env['DVIPDF'] = 'dvipdf'
env['DVIPDFFLAGS'] = SCons.Util.CLVar('')
import SCons.Action
import SCons.Builder
-import SCons.Defaults
import SCons.Util
-PSAction = SCons.Action.Action('$PSCOM', '$PSCOMSTR')
-
-PostScript = SCons.Builder.Builder(action = PSAction,
- prefix = '$PSPREFIX',
- suffix = '$PSSUFFIX',
- src_suffix = '.dvi',
- src_builder = 'DVI')
+PSAction = None
+PSBuilder = None
def generate(env):
"""Add Builders and construction variables for dvips to an Environment."""
- env['BUILDERS']['PostScript'] = PostScript
+ global PSAction
+ if PSAction is None:
+ PSAction = SCons.Action.Action('$PSCOM', '$PSCOMSTR')
+
+ global PSBuilder
+ if PSBuilder is None:
+ PSBuilder = SCons.Builder.Builder(action = PSAction,
+ prefix = '$PSPREFIX',
+ suffix = '$PSSUFFIX',
+ src_suffix = '.dvi',
+ src_builder = 'DVI')
+
+ env['BUILDERS']['PostScript'] = PSBuilder
env['DVIPS'] = 'dvips'
env['DVIPSFLAGS'] = SCons.Util.CLVar('')
env['PSCOM'] = '$DVIPS $DVIPSFLAGS -o $TARGET $SOURCE'
+ env['PSPREFIX'] = ''
+ env['PSSUFFIX'] = '.ps'
def exists(env):
return env.Detect('dvips')
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import SCons.Action
-import SCons.Defaults
import SCons.Platform
import SCons.Util
else:
gs = 'gs'
-GhostscriptAction = SCons.Action.Action('$GSCOM', '$GSCOMSTR')
+GhostscriptAction = None
def generate(env):
"""Add Builders and construction variables for Ghostscript to an
Environment."""
- try:
- bld = env['BUILDERS']['PDF']
- except KeyError:
- bld = SCons.Defaults.PDF()
- env['BUILDERS']['PDF'] = bld
+ global GhostscriptAction
+ if GhostscriptAction is None:
+ GhostscriptAction = SCons.Action.Action('$GSCOM', '$GSCOMSTR')
+
+ import pdf
+ pdf.generate(env)
+
+ bld = env['BUILDERS']['PDF']
bld.add_action('.ps', GhostscriptAction)
env['GS'] = gs
import SCons.Tool
import SCons.Tool.tex
-LaTeXAction = SCons.Action.Action('$LATEXCOM', '$LATEXCOMSTR')
+LaTeXAction = None
def LaTeXAuxFunction(target = None, source= None, env=None):
SCons.Tool.tex.InternalLaTeXAuxAction( LaTeXAction, target, source, env )
def generate(env):
"""Add Builders and construction variables for LaTeX to an Environment."""
+ global LaTeXAction
+ if LaTeXAction is None:
+ LaTeXAction = SCons.Action.Action('$LATEXCOM', '$LATEXCOMSTR')
- try:
- bld = env['BUILDERS']['DVI']
- except KeyError:
- bld = SCons.Defaults.DVI()
- env['BUILDERS']['DVI'] = bld
+ import dvi
+ dvi.generate(env)
+ bld = env['BUILDERS']['DVI']
bld.add_action('.ltx', LaTeXAuxAction)
bld.add_action('.latex', LaTeXAuxAction)
bld.add_emitter('.ltx', SCons.Tool.tex.tex_emitter)
--- /dev/null
+"""SCons.Tool.pdf
+
+Common PDF Builder definition for various other Tool modules that use it.
+
+"""
+
+#
+# __COPYRIGHT__
+#
+# Permission is hereby granted, free of charge, to any person obtaining
+# a copy of this software and associated documentation files (the
+# "Software"), to deal in the Software without restriction, including
+# without limitation the rights to use, copy, modify, merge, publish,
+# distribute, sublicense, and/or sell copies of the Software, and to
+# permit persons to whom the Software is furnished to do so, subject to
+# the following conditions:
+#
+# The above copyright notice and this permission notice shall be included
+# in all copies or substantial portions of the Software.
+#
+# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
+# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE
+# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
+# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
+# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
+# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+#
+
+__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
+
+import SCons.Builder
+import SCons.Tool
+
+PDFBuilder = None
+
+def generate(env):
+ try:
+ bld = env['BUILDERS']['PDF']
+ except KeyError:
+ global PDFBuilder
+ if PDFBuilder is None:
+ PDFBuilder = SCons.Builder.Builder(action = {},
+ source_scanner = SCons.Tool.LaTeXScanner,
+ prefix = '$PDFPREFIX',
+ suffix = '$PDFSUFFIX',
+ emitter = {})
+ env['BUILDERS']['PDF'] = PDFBuilder
+
+ env['PDFPREFIX'] = ''
+ env['PDFSUFFIX'] = '.pdf'
+
+def exists(env):
+ # This only puts a skeleton Builder in place, so if someone
+ # references this Tool directly, it's always "available."
+ return 1
--- /dev/null
+<!--
+__COPYRIGHT__
+
+This file is processed by the bin/SConsDoc.py module.
+See its __doc__ string for a discussion of the format.
+-->
+<builder name="PDF">
+<summary>
+Builds a <filename>.pdf</filename> file
+from a <filename>.dvi</filename> input file
+(or, by extension, a <filename>.tex</filename>,
+<filename>.ltx</filename>,
+or
+<filename>.latex</filename> input file).
+The suffix specified by the &cv-PDFSUFFIX; construction variable
+(<filename>.pdf</filename> by default)
+is added automatically to the target
+if it is not already present. Example:
+
+<example>
+# builds from aaa.tex
+env.PDF(target = 'aaa.pdf', source = 'aaa.tex')
+# builds bbb.pdf from bbb.dvi
+env.PDF(target = 'bbb', source = 'bbb.dvi')
+</example>
+</summary>
+</builder>
+
+<cvar name="PDFPREFIX">
+<summary>
+The prefix used for PDF file names.
+</summary>
+</cvar>
+
+<cvar name="PDFSUFFIX">
+<summary>
+The suffix used for PDF file names.
+</summary>
+</cvar>
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import SCons.Action
-import SCons.Defaults
import SCons.Util
+import SCons.Tool.pdf
import SCons.Tool.tex
-PDFLaTeXAction = SCons.Action.Action('$PDFLATEXCOM', '$PDFLATEXCOMSTR')
+PDFLaTeXAction = None
def PDFLaTeXAuxFunction(target = None, source= None, env=None):
SCons.Tool.tex.InternalLaTeXAuxAction( PDFLaTeXAction, target, source, env )
-PDFLaTeXAuxAction = SCons.Action.Action(PDFLaTeXAuxFunction, strfunction=None)
+PDFLaTeXAuxAction = None
def generate(env):
"""Add Builders and construction variables for pdflatex to an Environment."""
- try:
- bld = env['BUILDERS']['PDF']
- except KeyError:
- bld = SCons.Defaults.PDF()
- env['BUILDERS']['PDF'] = bld
+ global PDFLaTeXAction
+ if PDFLaTeXAction is None:
+ PDFLaTeXAction = SCons.Action.Action('$PDFLATEXCOM', '$PDFLATEXCOMSTR')
+ global PDFLaTeXAuxAction
+ if PDFLaTeXAuxAction is None:
+ PDFLaTeXAuxAction = SCons.Action.Action(PDFLaTeXAuxFunction,
+ strfunction=None)
+
+ import pdf
+ pdf.generate(env)
+
+ bld = env['BUILDERS']['PDF']
bld.add_action('.ltx', PDFLaTeXAuxAction)
bld.add_action('.latex', PDFLaTeXAuxAction)
bld.add_emitter('.ltx', SCons.Tool.tex.tex_emitter)
__revision__ = "__FILE__ __REVISION__ __DATE__ __DEVELOPER__"
import SCons.Action
-import SCons.Defaults
import SCons.Util
import SCons.Tool.tex
-PDFTeXAction = SCons.Action.Action('$PDFTEXCOM', '$PDFTEXCOMSTR')
+PDFTeXAction = None
-# Define an action to build a latex file. This action might be needed more
-# than once if we are dealing with labels and bibtex
-PDFLaTeXAction = SCons.Action.Action("$PDFLATEXCOM", "$PDFLATEXCOMSTR")
+# This action might be needed more than once if we are dealing with
+# labels and bibtex.
+PDFLaTeXAction = None
def PDFLaTeXAuxAction(target = None, source= None, env=None):
SCons.Tool.tex.InternalLaTeXAuxAction( PDFLaTeXAction, target, source, env )
PDFTeXAction(target,source,env)
return 0
-PDFTeXLaTeXAction = SCons.Action.Action(PDFTeXLaTeXFunction,
- strfunction=None)
+PDFTeXLaTeXAction = None
def generate(env):
"""Add Builders and construction variables for pdftex to an Environment."""
- try:
- bld = env['BUILDERS']['PDF']
- except KeyError:
- bld = SCons.Defaults.PDF()
- env['BUILDERS']['PDF'] = bld
+ global PDFTeXAction
+ if PDFTeXAction is None:
+ PDFTeXAction = SCons.Action.Action('$PDFTEXCOM', '$PDFTEXCOMSTR')
+ global PDFLaTeXAction
+ if PDFLaTeXAction is None:
+ PDFLaTeXAction = SCons.Action.Action("$PDFLATEXCOM", "$PDFLATEXCOMSTR")
+
+ global PDFTeXLaTeXAction
+ if PDFTeXLaTeXAction is None:
+ PDFTeXLaTeXAction = SCons.Action.Action(PDFTeXLaTeXFunction,
+ strfunction=None)
+
+ import pdf
+ pdf.generate(env)
+
+ bld = env['BUILDERS']['PDF']
bld.add_action('.tex', PDFTeXLaTeXAction)
bld.add_emitter('.tex', SCons.Tool.tex.tex_emitter)
import string
import SCons.Action
-import SCons.Defaults
import SCons.Node
import SCons.Node.FS
import SCons.Util
-# Define an action to build a generic tex file. This is sufficient for all
-# tex files.
-TeXAction = SCons.Action.Action("$TEXCOM", "$TEXCOMSTR")
+# An Action sufficient to build any generic tex file.
+TeXAction = None
-# Define an action to build a latex file. This action might be needed more
-# than once if we are dealing with labels and bibtex
-LaTeXAction = SCons.Action.Action("$LATEXCOM", "$LATEXCOMSTR")
+# An action to build a latex file. This action might be needed more
+# than once if we are dealing with labels and bibtex.
+LaTeXAction = None
-# Define an action to run BibTeX on a file.
-BibTeXAction = SCons.Action.Action("$BIBTEXCOM", "$BIBTEXCOMSTR")
+# An action to run BibTeX on a file.
+BibTeXAction = None
-# Define an action to run MakeIndex on a file.
-MakeIndexAction = SCons.Action.Action("$MAKEINDEXCOM", "$MAKEINDEXOMSTR")
+# An action to run MakeIndex on a file.
+MakeIndexAction = None
def InternalLaTeXAuxAction(XXXLaTeXAction, target = None, source= None, env=None):
"""A builder for LaTeX files that checks the output in the aux file
and decides how many times to use LaTeXAction, and BibTeXAction."""
- # Get the base name of the target
- basename, ext = os.path.splitext(str(target[0]))
+
+ basename, ext = SCons.Util.splitext(str(target[0]))
# Run LaTeX once to generate a new aux file.
XXXLaTeXAction(target,source,env)
TeXAction(target,source,env)
return 0
-def tex_emitter( target, source, env ):
- target.append( os.path.splitext( SCons.Util.to_String(source[0]) )[0] + ".aux" )
- target.append( os.path.splitext( SCons.Util.to_String(source[0]) )[0] + ".log" )
- return (target, source)
+def tex_emitter(target, source, env):
+ base = SCons.Util.splitext(str(source[0]))[0]
+ target.append(base + '.aux')
+ target.append(base + '.log')
+ return (target, source)
-TeXLaTeXAction = SCons.Action.Action(TeXLaTeXFunction, strfunction=None)
+TeXLaTeXAction = None
def generate(env):
"""Add Builders and construction variables for TeX to an Environment."""
- try:
- bld = env['BUILDERS']['DVI']
- except KeyError:
- bld = SCons.Defaults.DVI()
- env['BUILDERS']['DVI'] = bld
+ # A generic tex file Action, sufficient for all tex files.
+ global TeXAction
+ if TeXAction is None:
+ TeXAction = SCons.Action.Action("$TEXCOM", "$TEXCOMSTR")
+
+ # An Action to build a latex file. This might be needed more
+ # than once if we are dealing with labels and bibtex.
+ global LaTeXAction
+ if LaTeXAction is None:
+ LaTeXAction = SCons.Action.Action("$LATEXCOM", "$LATEXCOMSTR")
+
+ # Define an action to run BibTeX on a file.
+ global BibTeXAction
+ if BibTeXAction is None:
+ BibTeXAction = SCons.Action.Action("$BIBTEXCOM", "$BIBTEXCOMSTR")
+
+ # Define an action to run MakeIndex on a file.
+ global MakeIndexAction
+ if MakeIndexAction is None:
+ MakeIndexAction = SCons.Action.Action("$MAKEINDEXCOM", "$MAKEINDEXOMSTR")
+
+ global TeXLaTeXAction
+ if TeXLaTeXAction is None:
+ TeXLaTeXAction = SCons.Action.Action(TeXLaTeXFunction, strfunction=None)
+
+ import dvi
+ dvi.generate(env)
+
+ bld = env['BUILDERS']['DVI']
bld.add_action('.tex', TeXLaTeXAction)
bld.add_emitter('.tex', tex_emitter)
'CVS',
'default',
'dmd',
+ 'dvi',
'dvipdf',
'dvips',
'f77',
'mwcc',
'mwld',
'nasm',
+ 'pdf',
'pdflatex',
'pdftex',
'Perforce',